* drivers/net/ieee802154/adf7242.c:269:8: warning: Excessive padding in 'struct adf7242_local' (45 padding bytes, where 13 is optimal). Optimal fields order: buf, promiscuous, spi, hw, debugfs_root, wqueue, flags, tx_stat, tx_complete, bmux, work, stat_msg, ...
@ 2022-09-04 2:27 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-09-04 2:27 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 23480 bytes --]
::::::
:::::: Manual check reason: "low confidence static check first_new_problem: drivers/net/ieee802154/adf7242.c:269:8: warning: Excessive padding in 'struct adf7242_local' (45 padding bytes, where 13 is optimal). Optimal fields order: buf, promiscuous, spi, hw, debugfs_root, wqueue, flags, tx_stat, tx_complete, bmux, work, stat_msg, stat_xfer, rssi, max_frame_retries, max_cca_retries, max_be, min_be, buf_stat_rx, buf_stat_tx, buf_cmd, buf_reg_tx, buf_read_tx, buf_read_rx, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]"
::::::
BCC: lkp(a)intel.com
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: David Jander <david@protonic.nl>
CC: Mark Brown <broonie@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 65eea2c060aee3bf6d27ea365360059fbd4eeff4
commit: 1714582a3a087eda8786d5a1b32b2ec86ca8a303 spi: Move ctlr->cur_msg_prepared to struct spi_message
date: 10 weeks ago
:::::: branch date: 6 hours ago
:::::: commit date: 10 weeks ago
config: arm-randconfig-c002-20220901 (https://download.01.org/0day-ci/archive/20220904/202209041058.jJNqNbEE-lkp(a)intel.com/config)
compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project c55b41d5199d2394dd6cdb8f52180d8b81d809d4)
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=1714582a3a087eda8786d5a1b32b2ec86ca8a303
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 1714582a3a087eda8786d5a1b32b2ec86ca8a303
# 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 >>)
^~~~~~
crypto/tcrypt.c:1171:5: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
memset(&iv, 0xff, iv_len);
^~~~~~
crypto/tcrypt.c:1171:5: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11
memset(&iv, 0xff, iv_len);
^~~~~~
crypto/tcrypt.c:1186:6: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
memset(cur->xbuf[p], 0xff, PAGE_SIZE);
^~~~~~
crypto/tcrypt.c:1186:6: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11
memset(cur->xbuf[p], 0xff, PAGE_SIZE);
^~~~~~
crypto/tcrypt.c:1192:5: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
memset(cur->xbuf[p], 0xff, k);
^~~~~~
crypto/tcrypt.c:1192:5: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11
memset(cur->xbuf[p], 0xff, k);
^~~~~~
crypto/tcrypt.c:1369:4: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
memset(tvmem[0], 0xff, PAGE_SIZE);
^~~~~~
crypto/tcrypt.c:1369:4: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11
memset(tvmem[0], 0xff, PAGE_SIZE);
^~~~~~
crypto/tcrypt.c:1399:6: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
memset(tvmem[j], 0xff, PAGE_SIZE);
^~~~~~
crypto/tcrypt.c:1399:6: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11
memset(tvmem[j], 0xff, PAGE_SIZE);
^~~~~~
crypto/tcrypt.c:1404:5: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
memset(tvmem[j], 0xff, k);
^~~~~~
crypto/tcrypt.c:1404:5: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11
memset(tvmem[j], 0xff, k);
^~~~~~
crypto/tcrypt.c:1411:5: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
memset(&iv, 0xff, iv_len);
^~~~~~
crypto/tcrypt.c:1411:5: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11
memset(&iv, 0xff, iv_len);
^~~~~~
Suppressed 32 warnings (32 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.
33 warnings generated.
sound/core/info.c:114:3: warning: Value stored to 'offset' is never read [clang-analyzer-deadcode.DeadStores]
offset = entry->c.ops->llseek(entry,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/core/info.c:114:3: note: Value stored to 'offset' is never read
offset = entry->c.ops->llseek(entry,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/core/info.c:509:2: warning: Call to function 'sprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'sprintf_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
sprintf(str, "card%i", card->number);
^~~~~~~
sound/core/info.c:509:2: note: Call to function 'sprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'sprintf_s' in case of C11
sprintf(str, "card%i", card->number);
^~~~~~~
Suppressed 31 warnings (31 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.
sound/core/ctljack.c:34:2: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
memset(&sid, 0, sizeof(sid));
^~~~~~
sound/core/ctljack.c:34:2: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11
memset(&sid, 0, sizeof(sid));
^~~~~~
sound/core/ctljack.c:58:2: warning: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
snprintf(name, size, need_cat ? "%s Jack" : "%s", src_name);
^~~~~~~~
sound/core/ctljack.c:58:2: note: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11
snprintf(name, size, need_cat ? "%s Jack" : "%s", src_name);
^~~~~~~~
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.
67 warnings generated.
drivers/net/ieee802154/mrf24j40.c:518:2: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
memcpy(buf, data, count);
^~~~~~
drivers/net/ieee802154/mrf24j40.c:518:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11
memcpy(buf, data, count);
^~~~~~
drivers/net/ieee802154/mrf24j40.c:689:3: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
memcpy(addr, &filt->ieee_addr, 8);
^~~~~~
drivers/net/ieee802154/mrf24j40.c:689:3: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11
memcpy(addr, &filt->ieee_addr, 8);
^~~~~~
drivers/net/ieee802154/mrf24j40.c:759:2: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
memcpy(rx_local_buf, devrec->rx_fifo_buf, len);
^~~~~~
drivers/net/ieee802154/mrf24j40.c:759:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11
memcpy(rx_local_buf, devrec->rx_fifo_buf, len);
^~~~~~
Suppressed 64 warnings (64 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.
64 warnings generated.
Suppressed 64 warnings (64 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.
72 warnings generated.
>> drivers/net/ieee802154/adf7242.c:269:8: warning: Excessive padding in 'struct adf7242_local' (45 padding bytes, where 13 is optimal). Optimal fields order: buf, promiscuous, spi, hw, debugfs_root, wqueue, flags, tx_stat, tx_complete, bmux, work, stat_msg, stat_xfer, rssi, max_frame_retries, max_cca_retries, max_be, min_be, buf_stat_rx, buf_stat_tx, buf_cmd, buf_reg_tx, buf_read_tx, buf_read_rx, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct adf7242_local {
~~~~~~~^~~~~~~~~~~~~~~
drivers/net/ieee802154/adf7242.c:269:8: note: Excessive padding in 'struct adf7242_local' (45 padding bytes, where 13 is optimal). Optimal fields order: buf, promiscuous, spi, hw, debugfs_root, wqueue, flags, tx_stat, tx_complete, bmux, work, stat_msg, stat_xfer, rssi, max_frame_retries, max_cca_retries, max_be, min_be, buf_stat_rx, buf_stat_tx, buf_cmd, buf_reg_tx, buf_read_tx, buf_read_rx, consider reordering the fields or adding explicit padding members
struct adf7242_local {
~~~~~~~^~~~~~~~~~~~~~~
drivers/net/ieee802154/adf7242.c:623:6: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
tmp &= ~PA_BRIDGE_DBIAS(~0);
~~~ ^
drivers/net/ieee802154/adf7242.c:602:28: note: 'tmp' declared without an initial value
u8 pwr, bias_ctrl, dbias, tmp;
^~~
drivers/net/ieee802154/adf7242.c:605:2: note: Taking false branch
dev_vdbg(&lp->spi->dev, "%s : Power %d dB\n", __func__, db);
^
include/linux/dev_printk.h:261:2: note: expanded from macro 'dev_vdbg'
if (0) \
^
drivers/net/ieee802154/adf7242.c:607:6: note: Assuming 'db' is <= 5
if (db > 5 || db < -26)
^~~~~~
drivers/net/ieee802154/adf7242.c:607:6: note: Left side of '||' is false
drivers/net/ieee802154/adf7242.c:607:16: note: Assuming the condition is false
if (db > 5 || db < -26)
^~~~~~~~
drivers/net/ieee802154/adf7242.c:607:2: note: Taking false branch
if (db > 5 || db < -26)
^
drivers/net/ieee802154/adf7242.c:610:7: note: Left side of '||' is false
db = DIV_ROUND_CLOSEST(db + 29, 2);
^
include/linux/math.h:90:3: note: expanded from macro 'DIV_ROUND_CLOSEST'
(((typeof(x))-1) > 0 || \
^
drivers/net/ieee802154/adf7242.c:610:7: note: Left side of '||' is false
db = DIV_ROUND_CLOSEST(db + 29, 2);
^
include/linux/math.h:90:3: note: expanded from macro 'DIV_ROUND_CLOSEST'
(((typeof(x))-1) > 0 || \
^
drivers/net/ieee802154/adf7242.c:610:7: note: '__x' is > 0
db = DIV_ROUND_CLOSEST(db + 29, 2);
^
include/linux/math.h:92:5: note: expanded from macro 'DIV_ROUND_CLOSEST'
(((__x) > 0) == ((__d) > 0))) ? \
^~~~~
drivers/net/ieee802154/adf7242.c:610:7: note: '?' condition is true
db = DIV_ROUND_CLOSEST(db + 29, 2);
^
include/linux/math.h:90:2: note: expanded from macro 'DIV_ROUND_CLOSEST'
(((typeof(x))-1) > 0 || \
^
drivers/net/ieee802154/adf7242.c:612:6: note: Assuming 'db' is <= 15
if (db > 15) {
^~~~~~~
drivers/net/ieee802154/adf7242.c:612:2: note: Taking false branch
if (db > 15) {
^
drivers/net/ieee802154/adf7242.c:620:8: note: Assuming '__UNIQUE_ID___x305' is <= '__UNIQUE_ID___y306'
pwr = clamp_t(u8, db, 3, 15);
^
include/linux/minmax.h:124:48: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:112:27: note: expanded from macro 'max_t'
#define max_t(type, x, y) __careful_cmp((type)(x), (type)(y), >)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/minmax.h:104:48: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
include/linux/minmax.h:38:14: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:31:25: note: expanded from macro '__cmp_once'
typeof(x) unique_x = (x); \
^
drivers/net/ieee802154/adf7242.c:620:8: note: '?' condition is false
pwr = clamp_t(u8, db, 3, 15);
^
include/linux/minmax.h:124:48: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
^
include/linux/minmax.h:112:27: note: expanded from macro 'max_t'
#define max_t(type, x, y) __careful_cmp((type)(x), (type)(y), >)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
drivers/net/ieee802154/adf7242.c:620:8: note: '__UNIQUE_ID___x307' is < '__UNIQUE_ID___y308'
pwr = clamp_t(u8, db, 3, 15);
^
vim +269 drivers/net/ieee802154/adf7242.c
7302b9d9011749 Michael Hennerich 2015-12-11 268
7302b9d9011749 Michael Hennerich 2015-12-11 @269 struct adf7242_local {
7302b9d9011749 Michael Hennerich 2015-12-11 270 struct spi_device *spi;
7302b9d9011749 Michael Hennerich 2015-12-11 271 struct completion tx_complete;
7302b9d9011749 Michael Hennerich 2015-12-11 272 struct ieee802154_hw *hw;
7302b9d9011749 Michael Hennerich 2015-12-11 273 struct mutex bmux; /* protect SPI messages */
7302b9d9011749 Michael Hennerich 2015-12-11 274 struct spi_message stat_msg;
7302b9d9011749 Michael Hennerich 2015-12-11 275 struct spi_transfer stat_xfer;
7302b9d9011749 Michael Hennerich 2015-12-11 276 struct dentry *debugfs_root;
58e9683d14752d Michael Hennerich 2018-06-25 277 struct delayed_work work;
58e9683d14752d Michael Hennerich 2018-06-25 278 struct workqueue_struct *wqueue;
7302b9d9011749 Michael Hennerich 2015-12-11 279 unsigned long flags;
7302b9d9011749 Michael Hennerich 2015-12-11 280 int tx_stat;
7302b9d9011749 Michael Hennerich 2015-12-11 281 bool promiscuous;
7302b9d9011749 Michael Hennerich 2015-12-11 282 s8 rssi;
7302b9d9011749 Michael Hennerich 2015-12-11 283 u8 max_frame_retries;
7302b9d9011749 Michael Hennerich 2015-12-11 284 u8 max_cca_retries;
7302b9d9011749 Michael Hennerich 2015-12-11 285 u8 max_be;
7302b9d9011749 Michael Hennerich 2015-12-11 286 u8 min_be;
7302b9d9011749 Michael Hennerich 2015-12-11 287
7302b9d9011749 Michael Hennerich 2015-12-11 288 /* DMA (thus cache coherency maintenance) requires the
7302b9d9011749 Michael Hennerich 2015-12-11 289 * transfer buffers to live in their own cache lines.
7302b9d9011749 Michael Hennerich 2015-12-11 290 */
7302b9d9011749 Michael Hennerich 2015-12-11 291
7302b9d9011749 Michael Hennerich 2015-12-11 292 u8 buf[3] ____cacheline_aligned;
7302b9d9011749 Michael Hennerich 2015-12-11 293 u8 buf_reg_tx[3];
7302b9d9011749 Michael Hennerich 2015-12-11 294 u8 buf_read_tx[4];
7302b9d9011749 Michael Hennerich 2015-12-11 295 u8 buf_read_rx[4];
7302b9d9011749 Michael Hennerich 2015-12-11 296 u8 buf_stat_rx;
7302b9d9011749 Michael Hennerich 2015-12-11 297 u8 buf_stat_tx;
7302b9d9011749 Michael Hennerich 2015-12-11 298 u8 buf_cmd;
7302b9d9011749 Michael Hennerich 2015-12-11 299 };
7302b9d9011749 Michael Hennerich 2015-12-11 300
:::::: The code@line 269 was first introduced by commit
:::::: 7302b9d90117496049dd4bfa28755f7c2ed55b27 ieee802154/adf7242: Driver for ADF7242 MAC IEEE802154
:::::: TO: Michael Hennerich <michael.hennerich@analog.com>
:::::: CC: Marcel Holtmann <marcel@holtmann.org>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-09-04 2:27 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-04 2:27 drivers/net/ieee802154/adf7242.c:269:8: warning: Excessive padding in 'struct adf7242_local' (45 padding bytes, where 13 is optimal). Optimal fields order: buf, promiscuous, spi, hw, debugfs_root, wqueue, flags, tx_stat, tx_complete, bmux, work, stat_msg, kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.