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: > > > > > > 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@xxxxxxxxxxxx/ 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