Re: [linux-next:master 3615/4301] include/linux/compiler_types.h:335:45: error: call to '__compiletime_assert_314' declared with attribute error: BUILD_BUG_ON failed: sizeof(txpd->tx_dest_addr) != ETH_ALEN

5 messages, 3 authors, 2021-12-01 · open the first message on its own page

Re: [linux-next:master 3615/4301] include/linux/compiler_types.h:335:45: error: call to '__compiletime_assert_314' declared with attribute error: BUILD_BUG_ON failed: sizeof(txpd->tx_dest_addr) != ETH_ALEN

From: Kalle Valo <kvalo@kernel.org>
Date: 2021-12-01 07:43:32

+ linux-wireless

kernel test robot [off-list ref] writes:
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   34f255a1e91ab44ff8926cf8294ff9144e62e861
commit: 5fd32ae0433a7af37eac27ace3aabae8cb7c2fc4 [3615/4301] libertas: Use struct_group() for memcpy() region
config: arm-randconfig-r011-20211129 (https://download.01.org/0day-ci/archive/20211130/202111302102.apaePz2J-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
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
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5fd32ae0433a7af37eac27ace3aabae8cb7c2fc4
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout 5fd32ae0433a7af37eac27ace3aabae8cb7c2fc4
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash drivers/net/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <redacted>

All errors (new ones prefixed by >>):

   In file included from <command-line>:
   drivers/net/wireless/marvell/libertas/tx.c: In function 'lbs_hard_start_xmit':
quoted
quoted
include/linux/compiler_types.h:335:45: error: call to '__compiletime_assert_314' declared with attribute error: BUILD_BUG_ON failed: sizeof(txpd->tx_dest_addr) != ETH_ALEN
     335 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |                                             ^
   include/linux/compiler_types.h:316:25: note: in definition of macro '__compiletime_assert'
     316 |                         prefix ## suffix();                             \
         |                         ^~~~~~
   include/linux/compiler_types.h:335:9: note: in expansion of macro '_compiletime_assert'
     335 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |         ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
      39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
         |                                     ^~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
      50 |         BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
         |         ^~~~~~~~~~~~~~~~
   drivers/net/wireless/marvell/libertas/tx.c:116:9: note: in expansion of macro 'BUILD_BUG_ON'
     116 |         BUILD_BUG_ON(sizeof(txpd->tx_dest_addr) != ETH_ALEN);
         |         ^~~~~~~~~~~~
Kees, can you take a look at this build error? You added the
BUILD_BUG_ON(), right?

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

Re: [linux-next:master 3615/4301] include/linux/compiler_types.h:335:45: error: call to '__compiletime_assert_314' declared with attribute error: BUILD_BUG_ON failed: sizeof(txpd->tx_dest_addr) != ETH_ALEN

From: Kees Cook <hidden>
Date: 2021-12-01 16:42:19

On Wed, Dec 01, 2021 at 09:43:01AM +0200, Kalle Valo wrote:
+ linux-wireless

kernel test robot [off-list ref] writes:
quoted
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   34f255a1e91ab44ff8926cf8294ff9144e62e861
commit: 5fd32ae0433a7af37eac27ace3aabae8cb7c2fc4 [3615/4301] libertas: Use struct_group() for memcpy() region
config: arm-randconfig-r011-20211129 (https://download.01.org/0day-ci/archive/20211130/202111302102.apaePz2J-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
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
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=5fd32ae0433a7af37eac27ace3aabae8cb7c2fc4
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout 5fd32ae0433a7af37eac27ace3aabae8cb7c2fc4
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash drivers/net/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <redacted>

All errors (new ones prefixed by >>):

   In file included from <command-line>:
   drivers/net/wireless/marvell/libertas/tx.c: In function 'lbs_hard_start_xmit':
quoted
quoted
include/linux/compiler_types.h:335:45: error: call to '__compiletime_assert_314' declared with attribute error: BUILD_BUG_ON failed: sizeof(txpd->tx_dest_addr) != ETH_ALEN
     335 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |                                             ^
   include/linux/compiler_types.h:316:25: note: in definition of macro '__compiletime_assert'
     316 |                         prefix ## suffix();                             \
         |                         ^~~~~~
   include/linux/compiler_types.h:335:9: note: in expansion of macro '_compiletime_assert'
     335 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |         ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
      39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
         |                                     ^~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
      50 |         BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
         |         ^~~~~~~~~~~~~~~~
   drivers/net/wireless/marvell/libertas/tx.c:116:9: note: in expansion of macro 'BUILD_BUG_ON'
     116 |         BUILD_BUG_ON(sizeof(txpd->tx_dest_addr) != ETH_ALEN);
         |         ^~~~~~~~~~~~
Kees, can you take a look at this build error? You added the
BUILD_BUG_ON(), right?
I will investigate! Given this doesn't happen on allmodconfig but
a randconfig trips it, this might be finding a legit issue, but I'll
report back more details.

Thanks for the heads-up!

-- 
Kees Cook

Re: [linux-next:master 3615/4301] include/linux/compiler_types.h:335:45: error: call to '__compiletime_assert_314' declared with attribute error: BUILD_BUG_ON failed: sizeof(txpd->tx_dest_addr) != ETH_ALEN

From: Johannes Berg <johannes@sipsolutions.net>
Date: 2021-12-01 17:30:24

On Wed, 2021-12-01 at 08:41 -0800, Kees Cook wrote:
quoted
quoted
   drivers/net/wireless/marvell/libertas/tx.c:116:9: note: in expansion of macro 'BUILD_BUG_ON'
     116 |         BUILD_BUG_ON(sizeof(txpd->tx_dest_addr) != ETH_ALEN);
         |         ^~~~~~~~~~~~
Kees, can you take a look at this build error? You added the
BUILD_BUG_ON(), right?
I will investigate! Given this doesn't happen on allmodconfig but
a randconfig trips it, this might be finding a legit issue, but I'll
report back more details.
It's probably some alignment thing - note it happened on a specific ARM
with a specific compiler?

But there's not really a good reason to even have the struct_group here,
we only use it as if it was

	u8 tx_dest_addr[ETH_ALEN];

anyway?

johannes

Re: [linux-next:master 3615/4301] include/linux/compiler_types.h:335:45: error: call to '__compiletime_assert_314' declared with attribute error: BUILD_BUG_ON failed: sizeof(txpd->tx_dest_addr) != ETH_ALEN

From: Kees Cook <hidden>
Date: 2021-12-01 19:04:49

On Wed, Dec 01, 2021 at 06:29:49PM +0100, Johannes Berg wrote:
On Wed, 2021-12-01 at 08:41 -0800, Kees Cook wrote:
quoted
quoted
quoted
   drivers/net/wireless/marvell/libertas/tx.c:116:9: note: in expansion of macro 'BUILD_BUG_ON'
     116 |         BUILD_BUG_ON(sizeof(txpd->tx_dest_addr) != ETH_ALEN);
         |         ^~~~~~~~~~~~
Kees, can you take a look at this build error? You added the
BUILD_BUG_ON(), right?
I will investigate! Given this doesn't happen on allmodconfig but
a randconfig trips it, this might be finding a legit issue, but I'll
report back more details.
It's probably some alignment thing - note it happened on a specific ARM
with a specific compiler?
Yup, that was it. It's an interesting bit of "accidentally correct"
problems that I think I've now fixed with this series:
https://lore.kernel.org/all/20211201173234.578124-1-keescook@chromium.org/

My pahole before/after testing appears to have been too limited and
missed this case. :( I'm currently reviewing all the others I've sent as
well.
But there's not really a good reason to even have the struct_group here,
we only use it as if it was

	u8 tx_dest_addr[ETH_ALEN];

anyway?
Ah yeah, nothing uses tx_dest_addr_high nor tx_dest_addr_low. Should I
send another patch to just rip out the struct_group entirely?

-- 
Kees Cook

Re: [linux-next:master 3615/4301] include/linux/compiler_types.h:335:45: error: call to '__compiletime_assert_314' declared with attribute error: BUILD_BUG_ON failed: sizeof(txpd->tx_dest_addr) != ETH_ALEN

From: Johannes Berg <johannes@sipsolutions.net>
Date: 2021-12-01 19:38:11

On Wed, 2021-12-01 at 11:04 -0800, Kees Cook wrote:
On Wed, Dec 01, 2021 at 06:29:49PM +0100, Johannes Berg wrote:
quoted
On Wed, 2021-12-01 at 08:41 -0800, Kees Cook wrote:
quoted
quoted
quoted
   drivers/net/wireless/marvell/libertas/tx.c:116:9: note: in expansion of macro 'BUILD_BUG_ON'
     116 |         BUILD_BUG_ON(sizeof(txpd->tx_dest_addr) != ETH_ALEN);
         |         ^~~~~~~~~~~~
Kees, can you take a look at this build error? You added the
BUILD_BUG_ON(), right?
I will investigate! Given this doesn't happen on allmodconfig but
a randconfig trips it, this might be finding a legit issue, but I'll
report back more details.
It's probably some alignment thing - note it happened on a specific ARM
with a specific compiler?
Yup, that was it. It's an interesting bit of "accidentally correct"
problems that I think I've now fixed with this series:
https://lore.kernel.org/all/20211201173234.578124-1-keescook@chromium.org/
Yeah, I saw that like the minute after I sent this response :)

quoted
But there's not really a good reason to even have the struct_group here,
we only use it as if it was

	u8 tx_dest_addr[ETH_ALEN];

anyway?
Ah yeah, nothing uses tx_dest_addr_high nor tx_dest_addr_low. Should I
send another patch to just rip out the struct_group entirely?
I have no strong feelings either way, it's a pretty old driver by now,
likely nobody will touch it :)

johannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help