Messages in this thread | | | Date | Mon, 11 Jul 2022 17:58:21 +0800 | From | kernel test robot <> | Subject | drivers/soc/qcom/llcc-qcom.c:88:8: warning: Excessive padding in 'struct llcc_slice_config' (6 padding bytes, where 2 is optimal). Optimal fields order: usecase_id, slice_id, max_cap, priority, bonus_ways, res_ways, cache_mode, probe_target_ways, fixed_s |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 32346491ddf24599decca06190ebca03ff9de7f8 commit: 2b8175a1f108361c2c1a11b27415631994efbfce soc: qcom: llcc: Add write-cache cacheable support date: 5 months ago config: riscv-randconfig-c006-20220707 (https://download.01.org/0day-ci/archive/20220711/202207111703.pE1rkAYv-lkp@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 77a38f6839980bfac61babb40d83772c51427011) 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 riscv cross compiling tool for clang build # apt-get install binutils-riscv-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2b8175a1f108361c2c1a11b27415631994efbfce git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 2b8175a1f108361c2c1a11b27415631994efbfce # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 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 >>) ^~~~ Suppressed 7 warnings (7 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. 8 warnings generated. drivers/gpio/gpio-virtio.c:24:8: warning: Excessive padding in 'struct virtio_gpio_line' (158 padding bytes, where 30 is optimal). Optimal fields order: res, rxlen, completion, req, lock, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct virtio_gpio_line { ~~~~~~~^~~~~~~~~~~~~~~~~~ drivers/gpio/gpio-virtio.c:24:8: note: Excessive padding in 'struct virtio_gpio_line' (158 padding bytes, where 30 is optimal). Optimal fields order: res, rxlen, completion, req, lock, consider reordering the fields or adding explicit padding members struct virtio_gpio_line { ~~~~~~~^~~~~~~~~~~~~~~~~~ drivers/gpio/gpio-virtio.c:32:8: warning: Excessive padding in 'struct vgpio_irq_line' (183 padding bytes, where 119 is optimal). Optimal fields order: ires, type, disabled, masked, queued, update_pending, queue_pending, ireq, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct vgpio_irq_line { ~~~~~~~^~~~~~~~~~~~~~~~ drivers/gpio/gpio-virtio.c:32:8: note: Excessive padding in 'struct vgpio_irq_line' (183 padding bytes, where 119 is optimal). Optimal fields order: ires, type, disabled, masked, queued, update_pending, queue_pending, ireq, consider reordering the fields or adding explicit padding members struct vgpio_irq_line { ~~~~~~~^~~~~~~~~~~~~~~~ Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 7 warnings generated. Suppressed 7 warnings (7 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 12 warnings generated. drivers/bus/mhi/core/pm.c:320:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct device *dev = &mhi_cntrl->mhi_dev->dev; ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/bus/mhi/core/pm.c:320:17: note: Value stored to 'dev' during its initialization is never read struct device *dev = &mhi_cntrl->mhi_dev->dev; ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/bus/mhi/core/pm.c:377:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct device *dev = &mhi_cntrl->mhi_dev->dev; ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/bus/mhi/core/pm.c:377:17: note: Value stored to 'dev' during its initialization is never read struct device *dev = &mhi_cntrl->mhi_dev->dev; ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/bus/mhi/core/pm.c:720:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct device *dev = &mhi_cntrl->mhi_dev->dev; ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/bus/mhi/core/pm.c:720:17: note: Value stored to 'dev' during its initialization is never read struct device *dev = &mhi_cntrl->mhi_dev->dev; ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/bus/mhi/core/pm.c:739:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct device *dev = &mhi_cntrl->mhi_dev->dev; ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/bus/mhi/core/pm.c:739:17: note: Value stored to 'dev' during its initialization is never read struct device *dev = &mhi_cntrl->mhi_dev->dev; ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/bus/mhi/core/pm.c:1201:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct device *dev = &mhi_cntrl->mhi_dev->dev; ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/bus/mhi/core/pm.c:1201:17: note: Value stored to 'dev' during its initialization is never read struct device *dev = &mhi_cntrl->mhi_dev->dev; ^~~ ~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 7 warnings (7 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. 7 warnings generated. drivers/usb/cdns3/cdns3-ti.c:160:2: warning: Value stored to 'reg' is never read [clang-analyzer-deadcode.DeadStores] reg = cdns_ti_readl(data, USBSS_STATIC_CONFIG); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/usb/cdns3/cdns3-ti.c:160:2: note: Value stored to 'reg' is never read reg = cdns_ti_readl(data, USBSS_STATIC_CONFIG); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 10 warnings generated. Suppressed 10 warnings (10 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. 6 warnings generated. >> drivers/soc/qcom/llcc-qcom.c:88:8: warning: Excessive padding in 'struct llcc_slice_config' (6 padding bytes, where 2 is optimal). Optimal fields order: usecase_id, slice_id, max_cap, priority, bonus_ways, res_ways, cache_mode, probe_target_ways, fixed_size, dis_cap_alloc, retain_on_pc, activate_on_init, write_scid_en, write_scid_cacheable_en, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct llcc_slice_config { ~~~~~~~^~~~~~~~~~~~~~~~~~~ drivers/soc/qcom/llcc-qcom.c:88:8: note: Excessive padding in 'struct llcc_slice_config' (6 padding bytes, where 2 is optimal). Optimal fields order: usecase_id, slice_id, max_cap, priority, bonus_ways, res_ways, cache_mode, probe_target_ways, fixed_size, dis_cap_alloc, retain_on_pc, activate_on_init, write_scid_en, write_scid_cacheable_en, consider reordering the fields or adding explicit padding members struct llcc_slice_config { ~~~~~~~^~~~~~~~~~~~~~~~~~~ Suppressed 5 warnings (5 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. 5 warnings generated. Suppressed 5 warnings (5 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. 5 warnings generated. Suppressed 5 warnings (5 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. 2 warnings generated. Suppressed 2 warnings (2 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. 2 warnings generated. Suppressed 2 warnings (2 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 10 warnings generated. drivers/firewire/core-cdev.c:611:2: warning: 7th function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage] fw_send_request(client->device->card, &e->r.transaction, ^ drivers/firewire/core-cdev.c:1481:6: note: Assuming field 'speed' is <= field 'link_speed' if (a->speed > client->device->card->link_speed || ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/firewire/core-cdev.c:1481:6: note: Left side of '||' is false if (a->speed > client->device->card->link_speed || ^ drivers/firewire/core-cdev.c:1482:6: note: Assuming the condition is false a->length > 1024 << a->speed) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/firewire/core-cdev.c:1481:2: note: '?' condition is false if (a->speed > client->device->card->link_speed || ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/firewire/core-cdev.c:1481:9: note: Field 'speed' is <= field 'link_speed' if (a->speed > client->device->card->link_speed || ^ drivers/firewire/core-cdev.c:1481:6: note: Left side of '||' is false if (a->speed > client->device->card->link_speed || ^ drivers/firewire/core-cdev.c:1481:2: note: '?' condition is false if (a->speed > client->device->card->link_speed || ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ drivers/firewire/core-cdev.c:1481:2: note: Taking false branch if (a->speed > client->device->card->link_speed || ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ drivers/firewire/core-cdev.c:1485:6: note: Assuming field 'tag' is <= 3 if (a->tag > 3 || a->channel > 63 || a->sy > 15) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/firewire/core-cdev.c:1485:6: note: Left side of '||' is false if (a->tag > 3 || a->channel > 63 || a->sy > 15) ^ drivers/firewire/core-cdev.c:1485:20: note: Assuming field 'channel' is <= 63 if (a->tag > 3 || a->channel > 63 || a->sy > 15) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
vim +88 drivers/soc/qcom/llcc-qcom.c
8008e7902f28eb Sai Prakash Ranjan 2022-01-28 60 99356b03b431f9 Vivek Gautam 2019-07-18 61 /** 171c03171a4cdf Lee Jones 2020-11-03 62 * struct llcc_slice_config - Data associated with the llcc slice 99356b03b431f9 Vivek Gautam 2019-07-18 63 * @usecase_id: Unique id for the client's use case 99356b03b431f9 Vivek Gautam 2019-07-18 64 * @slice_id: llcc slice id for each client 99356b03b431f9 Vivek Gautam 2019-07-18 65 * @max_cap: The maximum capacity of the cache slice provided in KB 99356b03b431f9 Vivek Gautam 2019-07-18 66 * @priority: Priority of the client used to select victim line for replacement 99356b03b431f9 Vivek Gautam 2019-07-18 67 * @fixed_size: Boolean indicating if the slice has a fixed capacity 99356b03b431f9 Vivek Gautam 2019-07-18 68 * @bonus_ways: Bonus ways are additional ways to be used for any slice, 99356b03b431f9 Vivek Gautam 2019-07-18 69 * if client ends up using more than reserved cache ways. Bonus 99356b03b431f9 Vivek Gautam 2019-07-18 70 * ways are allocated only if they are not reserved for some 99356b03b431f9 Vivek Gautam 2019-07-18 71 * other client. 99356b03b431f9 Vivek Gautam 2019-07-18 72 * @res_ways: Reserved ways for the cache slice, the reserved ways cannot 99356b03b431f9 Vivek Gautam 2019-07-18 73 * be used by any other client than the one its assigned to. 99356b03b431f9 Vivek Gautam 2019-07-18 74 * @cache_mode: Each slice operates as a cache, this controls the mode of the 99356b03b431f9 Vivek Gautam 2019-07-18 75 * slice: normal or TCM(Tightly Coupled Memory) 99356b03b431f9 Vivek Gautam 2019-07-18 76 * @probe_target_ways: Determines what ways to probe for access hit. When 99356b03b431f9 Vivek Gautam 2019-07-18 77 * configured to 1 only bonus and reserved ways are probed. 99356b03b431f9 Vivek Gautam 2019-07-18 78 * When configured to 0 all ways in llcc are probed. 99356b03b431f9 Vivek Gautam 2019-07-18 79 * @dis_cap_alloc: Disable capacity based allocation for a client 99356b03b431f9 Vivek Gautam 2019-07-18 80 * @retain_on_pc: If this bit is set and client has maintained active vote 99356b03b431f9 Vivek Gautam 2019-07-18 81 * then the ways assigned to this client are not flushed on power 99356b03b431f9 Vivek Gautam 2019-07-18 82 * collapse. 99356b03b431f9 Vivek Gautam 2019-07-18 83 * @activate_on_init: Activate the slice immediately after it is programmed c4df37fe186de4 Manivannan Sadhasivam 2020-11-30 84 * @write_scid_en: Bit enables write cache support for a given scid. 2b8175a1f10836 Sai Prakash Ranjan 2022-01-28 85 * @write_scid_cacheable_en: Enables write cache cacheable support for a 2b8175a1f10836 Sai Prakash Ranjan 2022-01-28 86 * given scid (not supported on v2 or older hardware). 99356b03b431f9 Vivek Gautam 2019-07-18 87 */ 99356b03b431f9 Vivek Gautam 2019-07-18 @88 struct llcc_slice_config { 99356b03b431f9 Vivek Gautam 2019-07-18 89 u32 usecase_id; 99356b03b431f9 Vivek Gautam 2019-07-18 90 u32 slice_id; 99356b03b431f9 Vivek Gautam 2019-07-18 91 u32 max_cap; 99356b03b431f9 Vivek Gautam 2019-07-18 92 u32 priority; 99356b03b431f9 Vivek Gautam 2019-07-18 93 bool fixed_size; 99356b03b431f9 Vivek Gautam 2019-07-18 94 u32 bonus_ways; 99356b03b431f9 Vivek Gautam 2019-07-18 95 u32 res_ways; 99356b03b431f9 Vivek Gautam 2019-07-18 96 u32 cache_mode; 99356b03b431f9 Vivek Gautam 2019-07-18 97 u32 probe_target_ways; 99356b03b431f9 Vivek Gautam 2019-07-18 98 bool dis_cap_alloc; 99356b03b431f9 Vivek Gautam 2019-07-18 99 bool retain_on_pc; 99356b03b431f9 Vivek Gautam 2019-07-18 100 bool activate_on_init; c4df37fe186de4 Manivannan Sadhasivam 2020-11-30 101 bool write_scid_en; 2b8175a1f10836 Sai Prakash Ranjan 2022-01-28 102 bool write_scid_cacheable_en; 99356b03b431f9 Vivek Gautam 2019-07-18 103 }; 99356b03b431f9 Vivek Gautam 2019-07-18 104
:::::: The code at line 88 was first introduced by commit :::::: 99356b03b431f9589bbaec2bc5bacceccb3dd99a soc: qcom: Make llcc-qcom a generic driver
:::::: TO: Vivek Gautam <vivek.gautam@codeaurora.org> :::::: CC: Bjorn Andersson <bjorn.andersson@linaro.org>
-- 0-DAY CI Kernel Test Service https://01.org/lkp
| |