drivers/iio/adc/ad7476.c:39:8: warning: Excessive padding in 'struct ad7476_state' (72 padding bytes, where 8 is optimal). Optimal fields order: data, spi, chip_info, ref_reg, convst_gpio, msg, xfer, consider reordering the fields or adding explicit paddi...

From: kernel test robot
Date: Wed Jul 13 2022 - 19:05:31 EST


Hi Jonathan,

First bad commit (maybe != root cause):

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 4a57a8400075bc5287c5c877702c68aeae2a033d
commit: 396f7234856956eb29f009da6e5d846f29f87ebd iio: core: move @chrdev from struct iio_dev to struct iio_dev_opaque
date: 1 year, 2 months ago
config: arm-randconfig-c002-20220702 (https://download.01.org/0day-ci/archive/20220714/202207140603.1fJMMFgV-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project f7a80c3d08d4821e621fc88d6a2e435291f82dff)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=396f7234856956eb29f009da6e5d846f29f87ebd
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 396f7234856956eb29f009da6e5d846f29f87ebd
# save the config file
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>


clang-analyzer warnings: (new ones prefixed by >>)
^
arch/arm/include/asm/uaccess.h:393:3: note: expanded from macro '__put_user_switch'
switch (sizeof(*(ptr))) { \
^
drivers/tee/tee_core.c:584:6: note: Execution continues on line 584
if (put_user(arg.ret, &uarg->ret) ||
^
arch/arm/include/asm/uaccess.h:406:2: note: expanded from macro 'put_user'
__put_user_switch((x), (ptr), __pu_err, __put_user_check); \
^
arch/arm/include/asm/uaccess.h:396:47: note: expanded from macro '__put_user_switch'
case 4: __fn(__pu_val, __pu_ptr, __err, 4); break; \
^
drivers/tee/tee_core.c:584:6: note: Loop condition is false. Exiting loop
if (put_user(arg.ret, &uarg->ret) ||
^
arch/arm/include/asm/uaccess.h:406:2: note: expanded from macro 'put_user'
__put_user_switch((x), (ptr), __pu_err, __put_user_check); \
^
arch/arm/include/asm/uaccess.h:387:2: note: expanded from macro '__put_user_switch'
do { \
^
drivers/tee/tee_core.c:584:6: note: Assuming the condition is false
if (put_user(arg.ret, &uarg->ret) ||
^
arch/arm/include/asm/uaccess.h:403:31: note: expanded from macro 'put_user'
#define put_user(x, ptr) \
^
drivers/tee/tee_core.c:584:6: note: Left side of '||' is false
if (put_user(arg.ret, &uarg->ret) ||
^
arch/arm/include/asm/uaccess.h:403:31: note: expanded from macro 'put_user'
#define put_user(x, ptr) \
^
drivers/tee/tee_core.c:585:6: note: Control jumps to 'case 4:' at line 585
put_user(arg.ret_origin, &uarg->ret_origin)) {
^
arch/arm/include/asm/uaccess.h:406:2: note: expanded from macro 'put_user'
__put_user_switch((x), (ptr), __pu_err, __put_user_check); \
^
arch/arm/include/asm/uaccess.h:393:3: note: expanded from macro '__put_user_switch'
switch (sizeof(*(ptr))) { \
^
drivers/tee/tee_core.c:585:6: note: Execution continues on line 585
put_user(arg.ret_origin, &uarg->ret_origin)) {
^
arch/arm/include/asm/uaccess.h:406:2: note: expanded from macro 'put_user'
__put_user_switch((x), (ptr), __pu_err, __put_user_check); \
^
arch/arm/include/asm/uaccess.h:396:47: note: expanded from macro '__put_user_switch'
case 4: __fn(__pu_val, __pu_ptr, __err, 4); break; \
^
drivers/tee/tee_core.c:585:6: note: Loop condition is false. Exiting loop
put_user(arg.ret_origin, &uarg->ret_origin)) {
^
arch/arm/include/asm/uaccess.h:406:2: note: expanded from macro 'put_user'
__put_user_switch((x), (ptr), __pu_err, __put_user_check); \
^
arch/arm/include/asm/uaccess.h:387:2: note: expanded from macro '__put_user_switch'
do { \
^
drivers/tee/tee_core.c:585:6: note: Assuming the condition is false
put_user(arg.ret_origin, &uarg->ret_origin)) {
^
arch/arm/include/asm/uaccess.h:403:31: note: expanded from macro 'put_user'
#define put_user(x, ptr) \
^
drivers/tee/tee_core.c:584:2: note: Taking false branch
if (put_user(arg.ret, &uarg->ret) ||
^
drivers/tee/tee_core.c:589:47: note: Passing null pointer value via 3rd parameter 'params'
rc = params_to_user(uparams, arg.num_params, params);
^~~~~~
drivers/tee/tee_core.c:589:7: note: Calling 'params_to_user'
rc = params_to_user(uparams, arg.num_params, params);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/tee/tee_core.c:439:14: note: Assuming 'n' is < 'num_params'
for (n = 0; n < num_params; n++) {
^~~~~~~~~~~~~~
drivers/tee/tee_core.c:439:2: note: Loop condition is true. Entering loop body
for (n = 0; n < num_params; n++) {
^
drivers/tee/tee_core.c:441:3: note: 'p' initialized to a null pointer value
struct tee_param *p = params + n;
^~~~~~~~~~~~~~~~~~~
drivers/tee/tee_core.c:443:11: note: Access to field 'attr' results in a dereference of a null pointer (loaded from variable 'p')
switch (p->attr) {
^
Suppressed 16 warnings (16 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
17 warnings generated.
drivers/iio/adc/ad7298.c:40:8: warning: Excessive padding in 'struct ad7298_state' (72 padding bytes, where 8 is optimal). Optimal fields order: rx_buf, spi, reg, ext_ref, ring_msg, scan_single_msg, scan_single_xfer, ring_xfer, tx_buf, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct ad7298_state {
~~~~~~~^~~~~~~~~~~~~~
drivers/iio/adc/ad7298.c:40:8: note: Excessive padding in 'struct ad7298_state' (72 padding bytes, where 8 is optimal). Optimal fields order: rx_buf, spi, reg, ext_ref, ring_msg, scan_single_msg, scan_single_xfer, ring_xfer, tx_buf, consider reordering the fields or adding explicit padding members
struct ad7298_state {
~~~~~~~^~~~~~~~~~~~~~
Suppressed 16 warnings (16 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
17 warnings generated.
>> drivers/iio/adc/ad7476.c:39:8: warning: Excessive padding in 'struct ad7476_state' (72 padding bytes, where 8 is optimal). Optimal fields order: data, spi, chip_info, ref_reg, convst_gpio, msg, xfer, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct ad7476_state {
~~~~~~~^~~~~~~~~~~~~~
drivers/iio/adc/ad7476.c:39:8: note: Excessive padding in 'struct ad7476_state' (72 padding bytes, where 8 is optimal). Optimal fields order: data, spi, chip_info, ref_reg, convst_gpio, msg, xfer, consider reordering the fields or adding explicit padding members
struct ad7476_state {
~~~~~~~^~~~~~~~~~~~~~
Suppressed 16 warnings (16 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
16 warnings generated.
Suppressed 16 warnings (16 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
16 warnings generated.
Suppressed 16 warnings (16 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
15 warnings generated.
Suppressed 15 warnings (15 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
17 warnings generated.
drivers/soundwire/stream.c:848:10: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
kfree(bus->defer_msg.msg->buf);
^
drivers/soundwire/stream.c:1756:6: note: Assuming 'stream' is non-null
if (!stream) {
^~~~~~~
drivers/soundwire/stream.c:1756:2: note: Taking false branch
if (!stream) {
^
drivers/soundwire/stream.c:1763:6: note: Assuming field 'state' is equal to SDW_STREAM_ENABLED
if (stream->state != SDW_STREAM_ENABLED) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/soundwire/stream.c:1763:2: note: Taking false branch
if (stream->state != SDW_STREAM_ENABLED) {
^
drivers/soundwire/stream.c:1770:8: note: Calling '_sdw_disable_stream'
ret = _sdw_disable_stream(stream);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/soundwire/stream.c:1701:2: note: Left side of '&&' is false
list_for_each_entry(m_rt, &stream->master_list, stream_node) {
^
include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
include/linux/kernel.h:704:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/soundwire/stream.c:1701:2: note: Taking false branch
list_for_each_entry(m_rt, &stream->master_list, stream_node) {
^
include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/soundwire/stream.c:1701:2: note: Loop condition is false. Exiting loop
list_for_each_entry(m_rt, &stream->master_list, stream_node) {
^
include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/soundwire/stream.c:1701:2: note: Loop condition is false. Execution continues on line 1711
list_for_each_entry(m_rt, &stream->master_list, stream_node) {
^
include/linux/list.h:628:2: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
--
^
drivers/crypto/inside-secure/safexcel.c:651:3: note: Taking false branch
if (priv->flags & SAFEXCEL_HW_EIP197)
^
drivers/crypto/inside-secure/safexcel.c:664:10: note: Assuming the condition is false
while ((readl(EIP197_HIA_DSE_THR(priv) + EIP197_HIA_DSE_THR_STAT(pe)) &
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:664:3: note: Loop condition is false. Execution continues on line 669
while ((readl(EIP197_HIA_DSE_THR(priv) + EIP197_HIA_DSE_THR_STAT(pe)) &
^
drivers/crypto/inside-secure/safexcel.c:669:7: note: Assuming field 'hwnumpes' is <= 4
if (priv->hwconfig.hwnumpes > 4) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:669:3: note: Taking false branch
if (priv->hwconfig.hwnumpes > 4) {
^
drivers/crypto/inside-secure/safexcel.c:684:3: note: Taking false branch
if (priv->flags & SAFEXCEL_HW_EIP197)
^
drivers/crypto/inside-secure/safexcel.c:618:15: note: Assuming 'pe' is >= field 'pes'
for (pe = 0; pe < priv->config.pes; pe++) {
^~~~~~~~~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:618:2: note: Loop condition is false. Execution continues on line 712
for (pe = 0; pe < priv->config.pes; pe++) {
^
drivers/crypto/inside-secure/safexcel.c:712:14: note: Assuming 'i' is >= field 'rings'
for (i = 0; i < priv->config.rings; i++) {
^~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/inside-secure/safexcel.c:712:2: note: Loop condition is false. Execution continues on line 738
for (i = 0; i < priv->config.rings; i++) {
^
drivers/crypto/inside-secure/safexcel.c:738:2: note: Loop condition is false. Execution continues on line 760
for (i = 0; i < priv->config.rings; i++) {
^
drivers/crypto/inside-secure/safexcel.c:760:2: note: Loop condition is true. Entering loop body
for (pe = 0; pe < priv->config.pes; pe++) {
^
drivers/crypto/inside-secure/safexcel.c:762:35: note: The result of the right shift is undefined due to shifting by '32', which is greater or equal to the width of type 'unsigned long'
writel(EIP197_DxE_THR_CTRL_EN | GENMASK(priv->config.rings - 1, 0),
^
include/linux/bits.h:38:31: note: expanded from macro 'GENMASK'
(GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
^
include/linux/bits.h:36:11: note: expanded from macro '__GENMASK'
(~UL(0) >> (BITS_PER_LONG - 1 - (h))))
^
arch/arm/include/asm/io.h:307:51: note: expanded from macro 'writel'
#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
~~~~~~~~~~~~~~~^~~~
arch/arm/include/asm/io.h:299:68: note: expanded from macro 'writel_relaxed'
#define writel_relaxed(v,c) __raw_writel((__force u32) cpu_to_le32(v),c)
~~~~~~~~~~~~^~
include/uapi/linux/byteorder/little_endian.h:33:51: note: expanded from macro '__cpu_to_le32'
#define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
^
Suppressed 16 warnings (16 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
15 warnings generated.
Suppressed 15 warnings (15 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
15 warnings generated.
Suppressed 15 warnings (15 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
15 warnings generated.
Suppressed 15 warnings (15 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
15 warnings generated.
Suppressed 15 warnings (15 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
17 warnings generated.
drivers/iio/imu/adis16400.c:179:8: warning: Excessive padding in 'struct adis16400_state' (112 padding bytes, where 48 is optimal). Optimal fields order: adis, variant, filt_int, avail_scan_mask, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct adis16400_state {
~~~~~~~^~~~~~~~~~~~~~~~~
drivers/iio/imu/adis16400.c:179:8: note: Excessive padding in 'struct adis16400_state' (112 padding bytes, where 48 is optimal). Optimal fields order: adis, variant, filt_int, avail_scan_mask, consider reordering the fields or adding explicit padding members
struct adis16400_state {
~~~~~~~^~~~~~~~~~~~~~~~~
Suppressed 16 warnings (16 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
17 warnings generated.
drivers/iio/imu/adis16475.c:100:8: warning: Excessive padding in 'struct adis16475' (73 padding bytes, where 9 is optimal). Optimal fields order: adis, data, info, clk_freq, lsb_flag, sync_mode, burst32, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct adis16475 {
~~~~~~~^~~~~~~~~~~
drivers/iio/imu/adis16475.c:100:8: note: Excessive padding in 'struct adis16475' (73 padding bytes, where 9 is optimal). Optimal fields order: adis, data, info, clk_freq, lsb_flag, sync_mode, burst32, consider reordering the fields or adding explicit padding members
struct adis16475 {
~~~~~~~^~~~~~~~~~~
Suppressed 16 warnings (16 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
16 warnings generated.
Suppressed 16 warnings (16 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
17 warnings generated.
drivers/iio/adc/ad7298.c:40:8: warning: Excessive padding in 'struct ad7298_state' (72 padding bytes, where 8 is optimal). Optimal fields order: rx_buf, spi, reg, ext_ref, ring_msg, scan_single_msg, scan_single_xfer, ring_xfer, tx_buf, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct ad7298_state {
~~~~~~~^~~~~~~~~~~~~~
drivers/iio/adc/ad7298.c:40:8: note: Excessive padding in 'struct ad7298_state' (72 padding bytes, where 8 is optimal). Optimal fields order: rx_buf, spi, reg, ext_ref, ring_msg, scan_single_msg, scan_single_xfer, ring_xfer, tx_buf, consider reordering the fields or adding explicit padding members
struct ad7298_state {
~~~~~~~^~~~~~~~~~~~~~
Suppressed 16 warnings (16 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
17 warnings generated.
>> drivers/iio/adc/ad7476.c:39:8: warning: Excessive padding in 'struct ad7476_state' (72 padding bytes, where 8 is optimal). Optimal fields order: data, spi, chip_info, ref_reg, convst_gpio, msg, xfer, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct ad7476_state {
~~~~~~~^~~~~~~~~~~~~~
drivers/iio/adc/ad7476.c:39:8: note: Excessive padding in 'struct ad7476_state' (72 padding bytes, where 8 is optimal). Optimal fields order: data, spi, chip_info, ref_reg, convst_gpio, msg, xfer, consider reordering the fields or adding explicit padding members
struct ad7476_state {
~~~~~~~^~~~~~~~~~~~~~
Suppressed 16 warnings (16 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
16 warnings generated.
Suppressed 16 warnings (16 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
32 warnings generated.
net/9p/client.c:541:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = p9pdu_readf(&req->rc, c->proto_version, "d", &ecode);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/9p/client.c:541:3: note: Value stored to 'err' is never read
err = p9pdu_readf(&req->rc, c->proto_version, "d", &ecode);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/9p/client.c:628:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = p9pdu_readf(&req->rc, c->proto_version, "d", &ecode);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/9p/client.c:628:3: note: Value stored to 'err' is never read
err = p9pdu_readf(&req->rc, c->proto_version, "d", &ecode);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/9p/client.c:1008:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:1008:2: note: Value stored to 'err' is never read
err = 0;
^ ~
net/9p/client.c:1175:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:1175:2: note: Value stored to 'err' is never read
err = 0;
^ ~
net/9p/client.c:1252:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:1252:2: note: Value stored to 'err' is never read
err = 0;
^ ~
net/9p/client.c:1344:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:1344:2: note: Value stored to 'err' is never read
err = 0;
^ ~
net/9p/client.c:1713:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:1713:2: note: Value stored to 'err' is never read
err = 0;
^ ~
net/9p/client.c:1766:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:1766:2: note: Value stored to 'err' is never read
err = 0;
^ ~
net/9p/client.c:1916:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:1916:2: note: Value stored to 'err' is never read
err = 0;
^ ~
net/9p/client.c:2018:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:2018:2: note: Value stored to 'err' is never read
err = 0;
^ ~
net/9p/client.c:2095:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:2095:2: note: Value stored to 'err' is never read
err = 0;
^ ~
net/9p/client.c:2155:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:2155:2: note: Value stored to 'err' is never read
err = 0;
^ ~
net/9p/client.c:2186:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:2186:2: note: Value stored to 'err' is never read
err = 0;
^ ~
net/9p/client.c:2216:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:2216:2: note: Value stored to 'err' is never read
err = 0;
^ ~
net/9p/client.c:2249:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/9p/client.c:2249:2: note: Value stored to 'err' is never read
err = 0;

vim +39 drivers/iio/adc/ad7476.c

7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 38
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 @39 struct ad7476_state {
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 40 struct spi_device *spi;
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 41 const struct ad7476_chip_info *chip_info;
7bf50a968a1cd0 drivers/iio/adc/ad7476.c Jonathan Cameron 2021-04-25 42 struct regulator *ref_reg;
af37e4703d00ce drivers/iio/adc/ad7476.c Dragos Bogdan 2020-03-11 43 struct gpio_desc *convst_gpio;
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 44 struct spi_transfer xfer;
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 45 struct spi_message msg;
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 46 /*
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 47 * DMA (thus cache coherency maintenance) requires the
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 48 * transfer buffers to live in their own cache lines.
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 49 * Make the buffer large enough for one 16 bit sample and one 64 bit
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 50 * aligned 64 bit timestamp.
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 51 */
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 52 unsigned char data[ALIGN(2, sizeof(s64)) + sizeof(s64)]
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 53 ____cacheline_aligned;
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 54 };
7a28fe3c93d6cd drivers/staging/iio/adc/ad7476.c Lars-Peter Clausen 2012-09-10 55

:::::: The code at line 39 was first introduced by commit
:::::: 7a28fe3c93d6cd920c84678a1bf45af8b4248577 staging:iio:ad7476: Squash driver into a single file.

:::::: TO: Lars-Peter Clausen <lars@xxxxxxxxxx>
:::::: CC: Jonathan Cameron <jic23@xxxxxxxxxx>

--
0-DAY CI Kernel Test Service
https://01.org/lkp