Messages in this thread | | | Date | Mon, 25 Jul 2022 14:56:28 +0800 | From | kernel test robot <> | Subject | drivers/iio/adc/max1027.c:268:8: warning: Excessive padding in 'struct max1027_state' (55 padding bytes, where 23 is optimal). Optimal fields order: reg, info, spi, trig, buffer, lock, complete, consider reordering the fields or adding explicit padding m |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: e0dccc3b76fb35bb257b4118367a883073d7390e commit: 1f7b4048b31b2b1aba9d297d34055dac17485823 iio: adc: max1027: Use the EOC IRQ when populated for single reads date: 9 months ago config: arm-randconfig-c002-20220718 (https://download.01.org/0day-ci/archive/20220725/202207251400.INBNhoyY-lkp@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d74b88c69dc2644bd0dc5d64e2d7413a0d4040e5) 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=1f7b4048b31b2b1aba9d297d34055dac17485823 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 1f7b4048b31b2b1aba9d297d34055dac17485823 # 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@intel.com>
clang-analyzer warnings: (new ones prefixed by >>) 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 1 warnings (1 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. 1 warning generated. drivers/iio/adc/stm32-adc-core.c:325:11: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] u32 ier, offset = stm32_adc_offset[adc]; ^ drivers/iio/adc/stm32-adc-core.c:355:14: note: Assuming 'i' is < field 'num_irqs' for (i = 0; i < priv->cfg->num_irqs; i++) { ^~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/stm32-adc-core.c:355:2: note: Loop condition is true. Entering loop body for (i = 0; i < priv->cfg->num_irqs; i++) { ^ drivers/iio/adc/stm32-adc-core.c:356:8: note: Assuming the condition is false if ((status & priv->cfg->regs->eoc_msk[i] && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/stm32-adc-core.c:356:45: note: Left side of '&&' is false if ((status & priv->cfg->regs->eoc_msk[i] && ^ drivers/iio/adc/stm32-adc-core.c:358:9: note: Assuming the condition is false (status & priv->cfg->regs->ovr_msk[i])) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/stm32-adc-core.c:356:3: note: Taking false branch if ((status & priv->cfg->regs->eoc_msk[i] && ^ drivers/iio/adc/stm32-adc-core.c:355:14: note: Assuming 'i' is < field 'num_irqs' for (i = 0; i < priv->cfg->num_irqs; i++) { ^~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/stm32-adc-core.c:355:2: note: Loop condition is true. Entering loop body for (i = 0; i < priv->cfg->num_irqs; i++) { ^ drivers/iio/adc/stm32-adc-core.c:356:8: note: Assuming the condition is false if ((status & priv->cfg->regs->eoc_msk[i] && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/stm32-adc-core.c:356:45: note: Left side of '&&' is false if ((status & priv->cfg->regs->eoc_msk[i] && ^ drivers/iio/adc/stm32-adc-core.c:358:9: note: Assuming the condition is false (status & priv->cfg->regs->ovr_msk[i])) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/stm32-adc-core.c:356:3: note: Taking false branch if ((status & priv->cfg->regs->eoc_msk[i] && ^ drivers/iio/adc/stm32-adc-core.c:355:14: note: Assuming 'i' is < field 'num_irqs' for (i = 0; i < priv->cfg->num_irqs; i++) { ^~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/stm32-adc-core.c:355:2: note: Loop condition is true. Entering loop body for (i = 0; i < priv->cfg->num_irqs; i++) { ^ drivers/iio/adc/stm32-adc-core.c:356:8: note: Assuming the condition is false if ((status & priv->cfg->regs->eoc_msk[i] && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/stm32-adc-core.c:356:45: note: Left side of '&&' is false if ((status & priv->cfg->regs->eoc_msk[i] && ^ drivers/iio/adc/stm32-adc-core.c:358:9: note: Assuming the condition is false (status & priv->cfg->regs->ovr_msk[i])) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/stm32-adc-core.c:356:3: note: Taking false branch if ((status & priv->cfg->regs->eoc_msk[i] && ^ drivers/iio/adc/stm32-adc-core.c:355:39: note: The value 3 is assigned to 'i' for (i = 0; i < priv->cfg->num_irqs; i++) { ^~~ drivers/iio/adc/stm32-adc-core.c:355:14: note: Assuming 'i' is < field 'num_irqs' for (i = 0; i < priv->cfg->num_irqs; i++) { ^~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/stm32-adc-core.c:355:2: note: Loop condition is true. Entering loop body for (i = 0; i < priv->cfg->num_irqs; i++) { ^ drivers/iio/adc/stm32-adc-core.c:356:8: note: Assuming the condition is true if ((status & priv->cfg->regs->eoc_msk[i] && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/stm32-adc-core.c:356:8: note: Left side of '&&' is true drivers/iio/adc/stm32-adc-core.c:357:36: note: Passing the value 3 via 2nd parameter 'adc' stm32_adc_eoc_enabled(priv, i)) || ^ drivers/iio/adc/stm32-adc-core.c:357:8: note: Calling 'stm32_adc_eoc_enabled' stm32_adc_eoc_enabled(priv, i)) || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/stm32-adc-core.c:325:11: note: Assigned value is garbage or undefined u32 ier, offset = stm32_adc_offset[adc]; ^ ~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. Suppressed 1 warnings (1 with check filters). 2 warnings generated. drivers/media/i2c/ov2680.c:424:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = ov2680_write_reg16(sensor, OV2680_REG_GAIN_PK, gain); ^ drivers/media/i2c/ov2680.c:424:2: note: Value stored to 'ret' is never read Suppressed 1 warnings (1 with check filters). 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. Suppressed 1 warnings (1 with check filters). 2 warnings generated. >> drivers/iio/adc/max1027.c:268:8: warning: Excessive padding in 'struct max1027_state' (55 padding bytes, where 23 is optimal). Optimal fields order: reg, info, spi, trig, buffer, lock, complete, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct max1027_state { ~~~~~~~^~~~~~~~~~~~~~~ drivers/iio/adc/max1027.c:268:8: note: Excessive padding in 'struct max1027_state' (55 padding bytes, where 23 is optimal). Optimal fields order: reg, info, spi, trig, buffer, lock, complete, consider reordering the fields or adding explicit padding members struct max1027_state { ~~~~~~~^~~~~~~~~~~~~~~ drivers/iio/adc/max1027.c:304:13: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult] st->reg |= MAX1027_CHAN(fls(*indio_dev->active_scan_mask) - 2); ^ drivers/iio/adc/max1027.c:38:32: note: expanded from macro 'MAX1027_CHAN' #define MAX1027_CHAN(n) ((n) << 3) ^ drivers/iio/adc/max1027.c:456:6: note: Assuming 'ret' is 0 if (ret) ^~~ drivers/iio/adc/max1027.c:456:2: note: Taking false branch if (ret) ^ drivers/iio/adc/max1027.c:459:6: note: 'state' is true if (state) { ^~~~~ drivers/iio/adc/max1027.c:459:2: note: Taking true branch if (state) { ^ drivers/iio/adc/max1027.c:460:9: note: Calling 'max1027_configure_chans_and_start' ret = max1027_configure_chans_and_start(indio_dev); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/max1027.c:304:13: note: The result of the left shift is undefined because the left operand is negative st->reg |= MAX1027_CHAN(fls(*indio_dev->active_scan_mask) - 2); ^ drivers/iio/adc/max1027.c:38:32: note: expanded from macro 'MAX1027_CHAN' #define MAX1027_CHAN(n) ((n) << 3) ~~~ ^ 1 warning generated. drivers/iio/adc/max11100.c:31:8: warning: Excessive padding in 'struct max11100_state' (53 padding bytes, where 21 is optimal). Optimal fields order: buffer, vref_reg, spi, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct max11100_state { ~~~~~~~^~~~~~~~~~~~~~~~ drivers/iio/adc/max11100.c:31:8: note: Excessive padding in 'struct max11100_state' (53 padding bytes, where 21 is optimal). Optimal fields order: buffer, vref_reg, spi, consider reordering the fields or adding explicit padding members struct max11100_state { ~~~~~~~^~~~~~~~~~~~~~~~ 10 warnings generated. kernel/sched/fair.c:676:15: warning: Value stored to 'nr_running' during its initialization is never read [clang-analyzer-deadcode.DeadStores] unsigned int nr_running = cfs_rq->nr_running; ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ kernel/sched/fair.c:676:15: note: Value stored to 'nr_running' during its initialization is never read unsigned int nr_running = cfs_rq->nr_running; ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ kernel/sched/fair.c:7084:37: warning: Access to field 'vruntime' results in a dereference of a null pointer (loaded from variable 'se') [clang-analyzer-core.NullDereference] s64 gran, vdiff = curr->vruntime - se->vruntime; ^ kernel/sched/fair.c:7403:9: note: Calling 'pick_next_task_fair' return pick_next_task_fair(rq, NULL, NULL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sched/fair.c:7266:7: note: Calling 'sched_fair_runnable' if (!sched_fair_runnable(rq)) ^~~~~~~~~~~~~~~~~~~~~~~ kernel/sched/sched.h:2238:9: note: Assuming field 'nr_running' is > 0 return rq->cfs.nr_running > 0; ^~~~~~~~~~~~~~~~~~~~~~ kernel/sched/sched.h:2238:2: note: Returning without writing to 'rq->cfs.tasks_timeline.rb_leftmost', which participates in a condition later return rq->cfs.nr_running > 0; ^ kernel/sched/sched.h:2238:2: note: Returning without writing to 'rq->cfs.next', which participates in a condition later kernel/sched/fair.c:7266:7: note: Returning from 'sched_fair_runnable' if (!sched_fair_runnable(rq)) ^~~~~~~~~~~~~~~~~~~~~~~ kernel/sched/fair.c:7266:2: note: Taking false branch if (!sched_fair_runnable(rq)) ^ kernel/sched/fair.c:7270:7: note: 'prev' is null if (!prev || prev->sched_class != &fair_sched_class) ^~~~ kernel/sched/fair.c:7270:12: note: Left side of '||' is true if (!prev || prev->sched_class != &fair_sched_class) ^ kernel/sched/fair.c:7271:3: note: Control jumps to line 7347 goto simple; ^ kernel/sched/fair.c:7347:6: note: 'prev' is null if (prev) ^~~~ kernel/sched/fair.c:7347:2: note: Taking false branch if (prev) ^ kernel/sched/fair.c:7351:33: note: Passing null pointer value via 2nd parameter 'curr' se = pick_next_entity(cfs_rq, NULL); ^ include/linux/stddef.h:8:14: note: expanded from macro 'NULL' #define NULL ((void *)0) ^~~~~~~~~~~ kernel/sched/fair.c:7351:8: note: Calling 'pick_next_entity' se = pick_next_entity(cfs_rq, NULL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sched/fair.c:4526:30: note: Calling '__pick_first_entity' struct sched_entity *left = __pick_first_entity(cfs_rq); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/sched/fair.c:592:6: note: Assuming 'left' is null if (!left) ^~~~~ kernel/sched/fair.c:592:2: note: Taking true branch if (!left)
vim +268 drivers/iio/adc/max1027.c
fc167f62483325a Philippe Reynes 2014-06-14 267 fc167f62483325a Philippe Reynes 2014-06-14 @268 struct max1027_state { fc167f62483325a Philippe Reynes 2014-06-14 269 const struct max1027_chip_info *info; fc167f62483325a Philippe Reynes 2014-06-14 270 struct spi_device *spi; fc167f62483325a Philippe Reynes 2014-06-14 271 struct iio_trigger *trig; fc167f62483325a Philippe Reynes 2014-06-14 272 __be16 *buffer; fc167f62483325a Philippe Reynes 2014-06-14 273 struct mutex lock; 1f7b4048b31b2b1 Miquel Raynal 2021-09-21 274 struct completion complete; fc167f62483325a Philippe Reynes 2014-06-14 275 fc167f62483325a Philippe Reynes 2014-06-14 276 u8 reg ____cacheline_aligned; fc167f62483325a Philippe Reynes 2014-06-14 277 }; fc167f62483325a Philippe Reynes 2014-06-14 278
:::::: The code at line 268 was first introduced by commit :::::: fc167f62483325aea9137e70e6773fe7ad1ca2ac iio: add support of the max1027
:::::: TO: Philippe Reynes <tremyfr@yahoo.fr> :::::: CC: Jonathan Cameron <jic23@kernel.org>
-- 0-DAY CI Kernel Test Service https://01.org/lkp
| |