public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
@ 2026-04-10  9:25 kernel test robot
  2026-04-10 12:07 ` Bitterblue Smith
  0 siblings, 1 reply; 8+ messages in thread
From: kernel test robot @ 2026-04-10  9:25 UTC (permalink / raw)
  To: Bitterblue Smith; +Cc: oe-kbuild-all, linux-kernel, Ping-Ke Shih

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   9a9c8ce300cd3859cc87b408ef552cd697cc2ab7
commit: deb3ddeb18652118956fb581a39ac299e1ee5623 wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers
date:   1 year, 1 month ago
config: arm-randconfig-001-20260410 (https://download.01.org/0day-ci/archive/20260410/202604101721.fsv5XmCX-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260410/202604101721.fsv5XmCX-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Fixes: deb3ddeb1865 ("wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers")
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604101721.fsv5XmCX-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/linux/bitfield.h:10,
                    from include/linux/fortify-string.h:5,
                    from include/linux/string.h:389,
                    from include/linux/uuid.h:11,
                    from include/linux/mod_devicetable.h:14,
                    from include/linux/usb.h:5,
                    from drivers/net/wireless/realtek/rtw88/rtw8814a.c:5:
>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
    #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                            ^~~~~~~~~~~~~~
   include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
    #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                     ^~~~~~~~~~~~~~~
   drivers/net/wireless/realtek/rtw88/rtw8814a.h:58:1: note: in expansion of macro 'static_assert'
    static_assert(sizeof(struct rtw8814a_efuse) == 512);
    ^~~~~~~~~~~~~
>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw88xxa_efuse) == 512"
    #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                            ^~~~~~~~~~~~~~
   include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
    #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                     ^~~~~~~~~~~~~~~
   drivers/net/wireless/realtek/rtw88/rtw88xxa.h:64:1: note: in expansion of macro 'static_assert'
    static_assert(sizeof(struct rtw88xxa_efuse) == 512);
    ^~~~~~~~~~~~~
--
   In file included from include/linux/container_of.h:5,
                    from include/linux/list.h:5,
                    from include/linux/module.h:12,
                    from drivers/net/wireless/realtek/rtw88/rtw8814ae.c:5:
>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
    #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                            ^~~~~~~~~~~~~~
   include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
    #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                     ^~~~~~~~~~~~~~~
   drivers/net/wireless/realtek/rtw88/rtw8814a.h:58:1: note: in expansion of macro 'static_assert'
    static_assert(sizeof(struct rtw8814a_efuse) == 512);
    ^~~~~~~~~~~~~
--
   In file included from include/linux/bitfield.h:10,
                    from include/linux/fortify-string.h:5,
                    from include/linux/string.h:389,
                    from include/linux/uuid.h:11,
                    from include/linux/mod_devicetable.h:14,
                    from include/linux/usb.h:5,
                    from rtw8814a.c:5:
>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
    #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                            ^~~~~~~~~~~~~~
   include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
    #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                     ^~~~~~~~~~~~~~~
   rtw8814a.h:58:1: note: in expansion of macro 'static_assert'
    static_assert(sizeof(struct rtw8814a_efuse) == 512);
    ^~~~~~~~~~~~~
>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw88xxa_efuse) == 512"
    #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                            ^~~~~~~~~~~~~~
   include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
    #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                     ^~~~~~~~~~~~~~~
   rtw88xxa.h:64:1: note: in expansion of macro 'static_assert'
    static_assert(sizeof(struct rtw88xxa_efuse) == 512);
    ^~~~~~~~~~~~~
--
   In file included from include/linux/container_of.h:5,
                    from include/linux/list.h:5,
                    from include/linux/module.h:12,
                    from rtw8814ae.c:5:
>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
    #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                            ^~~~~~~~~~~~~~
   include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
    #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                     ^~~~~~~~~~~~~~~
   rtw8814a.h:58:1: note: in expansion of macro 'static_assert'
    static_assert(sizeof(struct rtw8814a_efuse) == 512);
    ^~~~~~~~~~~~~


vim +78 include/linux/build_bug.h

bc6245e5efd70c Ian Abbott       2017-07-10  60  
6bab69c65013be Rasmus Villemoes 2019-03-07  61  /**
6bab69c65013be Rasmus Villemoes 2019-03-07  62   * static_assert - check integer constant expression at build time
6bab69c65013be Rasmus Villemoes 2019-03-07  63   *
6bab69c65013be Rasmus Villemoes 2019-03-07  64   * static_assert() is a wrapper for the C11 _Static_assert, with a
6bab69c65013be Rasmus Villemoes 2019-03-07  65   * little macro magic to make the message optional (defaulting to the
6bab69c65013be Rasmus Villemoes 2019-03-07  66   * stringification of the tested expression).
6bab69c65013be Rasmus Villemoes 2019-03-07  67   *
6bab69c65013be Rasmus Villemoes 2019-03-07  68   * Contrary to BUILD_BUG_ON(), static_assert() can be used at global
6bab69c65013be Rasmus Villemoes 2019-03-07  69   * scope, but requires the expression to be an integer constant
6bab69c65013be Rasmus Villemoes 2019-03-07  70   * expression (i.e., it is not enough that __builtin_constant_p() is
6bab69c65013be Rasmus Villemoes 2019-03-07  71   * true for expr).
6bab69c65013be Rasmus Villemoes 2019-03-07  72   *
6bab69c65013be Rasmus Villemoes 2019-03-07  73   * Also note that BUILD_BUG_ON() fails the build if the condition is
6bab69c65013be Rasmus Villemoes 2019-03-07  74   * true, while static_assert() fails the build if the expression is
6bab69c65013be Rasmus Villemoes 2019-03-07  75   * false.
6bab69c65013be Rasmus Villemoes 2019-03-07  76   */
6bab69c65013be Rasmus Villemoes 2019-03-07  77  #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
6bab69c65013be Rasmus Villemoes 2019-03-07 @78  #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
6bab69c65013be Rasmus Villemoes 2019-03-07  79  
07a368b3f55a79 Maxim Levitsky   2022-10-25  80  

:::::: The code at line 78 was first introduced by commit
:::::: 6bab69c65013bed5fce9f101a64a84d0385b3946 build_bug.h: add wrapper for _Static_assert

:::::: TO: Rasmus Villemoes <linux@rasmusvillemoes.dk>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
  2026-04-10  9:25 include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512" kernel test robot
@ 2026-04-10 12:07 ` Bitterblue Smith
  2026-04-10 12:14   ` Ping-Ke Shih
  0 siblings, 1 reply; 8+ messages in thread
From: Bitterblue Smith @ 2026-04-10 12:07 UTC (permalink / raw)
  To: kernel test robot; +Cc: oe-kbuild-all, linux-kernel, Ping-Ke Shih

On 10/04/2026 12:25, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   9a9c8ce300cd3859cc87b408ef552cd697cc2ab7
> commit: deb3ddeb18652118956fb581a39ac299e1ee5623 wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers
> date:   1 year, 1 month ago
> config: arm-randconfig-001-20260410 (https://download.01.org/0day-ci/archive/20260410/202604101721.fsv5XmCX-lkp@intel.com/config)
> compiler: arm-linux-gnueabi-gcc (GCC) 8.5.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260410/202604101721.fsv5XmCX-lkp@intel.com/reproduce)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Fixes: deb3ddeb1865 ("wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers")
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202604101721.fsv5XmCX-lkp@intel.com/
> 
> All errors (new ones prefixed by >>):
> 
>    In file included from include/linux/bitfield.h:10,
>                     from include/linux/fortify-string.h:5,
>                     from include/linux/string.h:389,
>                     from include/linux/uuid.h:11,
>                     from include/linux/mod_devicetable.h:14,
>                     from include/linux/usb.h:5,
>                     from drivers/net/wireless/realtek/rtw88/rtw8814a.c:5:
>>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"

struct rtw_2g_txpwr_idx is missing __packed. Could that be the reason
for the error? I don't see what else could be causing it.

>     #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
>                                             ^~~~~~~~~~~~~~
>    include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
>     #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
>                                      ^~~~~~~~~~~~~~~
>    drivers/net/wireless/realtek/rtw88/rtw8814a.h:58:1: note: in expansion of macro 'static_assert'
>     static_assert(sizeof(struct rtw8814a_efuse) == 512);
>     ^~~~~~~~~~~~~
>>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw88xxa_efuse) == 512"
>     #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
>                                             ^~~~~~~~~~~~~~
>    include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
>     #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
>                                      ^~~~~~~~~~~~~~~
>    drivers/net/wireless/realtek/rtw88/rtw88xxa.h:64:1: note: in expansion of macro 'static_assert'
>     static_assert(sizeof(struct rtw88xxa_efuse) == 512);
>     ^~~~~~~~~~~~~
> --
>    In file included from include/linux/container_of.h:5,
>                     from include/linux/list.h:5,
>                     from include/linux/module.h:12,
>                     from drivers/net/wireless/realtek/rtw88/rtw8814ae.c:5:
>>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
>     #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
>                                             ^~~~~~~~~~~~~~
>    include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
>     #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
>                                      ^~~~~~~~~~~~~~~
>    drivers/net/wireless/realtek/rtw88/rtw8814a.h:58:1: note: in expansion of macro 'static_assert'
>     static_assert(sizeof(struct rtw8814a_efuse) == 512);
>     ^~~~~~~~~~~~~
> --
>    In file included from include/linux/bitfield.h:10,
>                     from include/linux/fortify-string.h:5,
>                     from include/linux/string.h:389,
>                     from include/linux/uuid.h:11,
>                     from include/linux/mod_devicetable.h:14,
>                     from include/linux/usb.h:5,
>                     from rtw8814a.c:5:
>>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
>     #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
>                                             ^~~~~~~~~~~~~~
>    include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
>     #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
>                                      ^~~~~~~~~~~~~~~
>    rtw8814a.h:58:1: note: in expansion of macro 'static_assert'
>     static_assert(sizeof(struct rtw8814a_efuse) == 512);
>     ^~~~~~~~~~~~~
>>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw88xxa_efuse) == 512"
>     #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
>                                             ^~~~~~~~~~~~~~
>    include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
>     #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
>                                      ^~~~~~~~~~~~~~~
>    rtw88xxa.h:64:1: note: in expansion of macro 'static_assert'
>     static_assert(sizeof(struct rtw88xxa_efuse) == 512);
>     ^~~~~~~~~~~~~
> --
>    In file included from include/linux/container_of.h:5,
>                     from include/linux/list.h:5,
>                     from include/linux/module.h:12,
>                     from rtw8814ae.c:5:
>>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
>     #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
>                                             ^~~~~~~~~~~~~~
>    include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
>     #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
>                                      ^~~~~~~~~~~~~~~
>    rtw8814a.h:58:1: note: in expansion of macro 'static_assert'
>     static_assert(sizeof(struct rtw8814a_efuse) == 512);
>     ^~~~~~~~~~~~~
> 
> 
> vim +78 include/linux/build_bug.h
> 
> bc6245e5efd70c Ian Abbott       2017-07-10  60  
> 6bab69c65013be Rasmus Villemoes 2019-03-07  61  /**
> 6bab69c65013be Rasmus Villemoes 2019-03-07  62   * static_assert - check integer constant expression at build time
> 6bab69c65013be Rasmus Villemoes 2019-03-07  63   *
> 6bab69c65013be Rasmus Villemoes 2019-03-07  64   * static_assert() is a wrapper for the C11 _Static_assert, with a
> 6bab69c65013be Rasmus Villemoes 2019-03-07  65   * little macro magic to make the message optional (defaulting to the
> 6bab69c65013be Rasmus Villemoes 2019-03-07  66   * stringification of the tested expression).
> 6bab69c65013be Rasmus Villemoes 2019-03-07  67   *
> 6bab69c65013be Rasmus Villemoes 2019-03-07  68   * Contrary to BUILD_BUG_ON(), static_assert() can be used at global
> 6bab69c65013be Rasmus Villemoes 2019-03-07  69   * scope, but requires the expression to be an integer constant
> 6bab69c65013be Rasmus Villemoes 2019-03-07  70   * expression (i.e., it is not enough that __builtin_constant_p() is
> 6bab69c65013be Rasmus Villemoes 2019-03-07  71   * true for expr).
> 6bab69c65013be Rasmus Villemoes 2019-03-07  72   *
> 6bab69c65013be Rasmus Villemoes 2019-03-07  73   * Also note that BUILD_BUG_ON() fails the build if the condition is
> 6bab69c65013be Rasmus Villemoes 2019-03-07  74   * true, while static_assert() fails the build if the expression is
> 6bab69c65013be Rasmus Villemoes 2019-03-07  75   * false.
> 6bab69c65013be Rasmus Villemoes 2019-03-07  76   */
> 6bab69c65013be Rasmus Villemoes 2019-03-07  77  #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
> 6bab69c65013be Rasmus Villemoes 2019-03-07 @78  #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
> 6bab69c65013be Rasmus Villemoes 2019-03-07  79  
> 07a368b3f55a79 Maxim Levitsky   2022-10-25  80  
> 
> :::::: The code at line 78 was first introduced by commit
> :::::: 6bab69c65013bed5fce9f101a64a84d0385b3946 build_bug.h: add wrapper for _Static_assert
> 
> :::::: TO: Rasmus Villemoes <linux@rasmusvillemoes.dk>
> :::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
> 


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
  2026-04-10 12:07 ` Bitterblue Smith
@ 2026-04-10 12:14   ` Ping-Ke Shih
  2026-04-11 15:29     ` Geert Uytterhoeven
  0 siblings, 1 reply; 8+ messages in thread
From: Ping-Ke Shih @ 2026-04-10 12:14 UTC (permalink / raw)
  To: Bitterblue Smith, kernel test robot
  Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org


Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:

> On 10/04/2026 12:25, kernel test robot wrote:
> > tree:    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > head:   9a9c8ce300cd3859cc87b408ef552cd697cc2ab7
> > commit: deb3ddeb18652118956fb581a39ac299e1ee5623 wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers
> > date:   1 year, 1 month ago
> > config: arm-randconfig-001-20260410 (https://download.01.org/0day-ci/archive/20260410/202604101721.fsv5XmCX-lkp@intel.com/config)
> > compiler: arm-linux-gnueabi-gcc (GCC) 8.5.0
> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260410/202604101721.fsv5XmCX-lkp@intel.com/reproduce)
> >
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Fixes: deb3ddeb1865 ("wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers")
> > | Reported-by: kernel test robot <lkp@intel.com>
> > | Closes:  https://lore.kernel.org/oe-kbuild-all/202604101721.fsv5XmCX-lkp@intel.com/
> >
> > All errors (new ones prefixed by >>):
> >
> >    In file included from include/linux/bitfield.h:10,
> >                     from include/linux/fortify-string.h:5,
> >                     from include/linux/string.h:389,
> >                     from include/linux/uuid.h:11,
> >                     from include/linux/mod_devicetable.h:14,
> >                     from include/linux/usb.h:5,
> >                     from drivers/net/wireless/realtek/rtw88/rtw8814a.c:5:
> >>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
> 
> struct rtw_2g_txpwr_idx is missing __packed. Could that be the reason
> for the error? I don't see what else could be causing it.
> 

I also found that flaw, but it isn't cause. I download cross compiler
to build arm on my x86, and address the cause is:

diff --git a/drivers/net/wireless/realtek/rtw88/rtw8814a.h b/drivers/net/wireless/realtek/rtw88/rtw8814a.h
index c57c7c8f915e..7f2260117487 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8814a.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.h
@@ -51,10 +51,15 @@ struct rtw8814a_efuse {
        union {
                struct rtw8814au_efuse u;
                struct rtw8814ae_efuse e;
-       };
+       } __packed;
        u8 res5[0x122];                 /* 0xde */
 } __packed;

I will send a patch soon.

Ping-Ke


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
  2026-04-10 12:14   ` Ping-Ke Shih
@ 2026-04-11 15:29     ` Geert Uytterhoeven
  2026-04-13  0:48       ` Ping-Ke Shih
  0 siblings, 1 reply; 8+ messages in thread
From: Geert Uytterhoeven @ 2026-04-11 15:29 UTC (permalink / raw)
  To: Ping-Ke Shih
  Cc: Bitterblue Smith, kernel test robot,
	oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org

Hi Ping-Ke,

On Fri, 10 Apr 2026 at 14:15, Ping-Ke Shih <pkshih@realtek.com> wrote:
> Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> > On 10/04/2026 12:25, kernel test robot wrote:
> > > tree:    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > > head:   9a9c8ce300cd3859cc87b408ef552cd697cc2ab7
> > > commit: deb3ddeb18652118956fb581a39ac299e1ee5623 wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers
> > > date:   1 year, 1 month ago
> > > config: arm-randconfig-001-20260410 (https://download.01.org/0day-ci/archive/20260410/202604101721.fsv5XmCX-lkp@intel.com/config)
> > > compiler: arm-linux-gnueabi-gcc (GCC) 8.5.0
> > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260410/202604101721.fsv5XmCX-lkp@intel.com/reproduce)
> > >
> > > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > > the same patch/commit), kindly add following tags
> > > | Fixes: deb3ddeb1865 ("wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers")
> > > | Reported-by: kernel test robot <lkp@intel.com>
> > > | Closes:  https://lore.kernel.org/oe-kbuild-all/202604101721.fsv5XmCX-lkp@intel.com/
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > >    In file included from include/linux/bitfield.h:10,
> > >                     from include/linux/fortify-string.h:5,
> > >                     from include/linux/string.h:389,
> > >                     from include/linux/uuid.h:11,
> > >                     from include/linux/mod_devicetable.h:14,
> > >                     from include/linux/usb.h:5,
> > >                     from drivers/net/wireless/realtek/rtw88/rtw8814a.c:5:
> > >>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
> >
> > struct rtw_2g_txpwr_idx is missing __packed. Could that be the reason
> > for the error? I don't see what else could be causing it.
> >
>
> I also found that flaw, but it isn't cause. I download cross compiler
> to build arm on my x86, and address the cause is:
>
> diff --git a/drivers/net/wireless/realtek/rtw88/rtw8814a.h b/drivers/net/wireless/realtek/rtw88/rtw8814a.h
> index c57c7c8f915e..7f2260117487 100644
> --- a/drivers/net/wireless/realtek/rtw88/rtw8814a.h
> +++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.h
> @@ -51,10 +51,15 @@ struct rtw8814a_efuse {
>         union {
>                 struct rtw8814au_efuse u;
>                 struct rtw8814ae_efuse e;
> -       };
> +       } __packed;

How can that make a difference?
Both rtw8814au_efuse and rtw8814ae_efuse contain just (the same number
of) bytes, so __packed on the union should not make any difference?
Moreover, rtw8814au_efuse and rtw8814ae_efuse are already tagged with
__packed, which should also not make any difference.  Someone's been
sprinkling too many __packed all over the place?

>         u8 res5[0x122];                 /* 0xde */
>  } __packed;
>
> I will send a patch soon.
>
> Ping-Ke

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
  2026-04-11 15:29     ` Geert Uytterhoeven
@ 2026-04-13  0:48       ` Ping-Ke Shih
  2026-04-13  9:15         ` Geert Uytterhoeven
  0 siblings, 1 reply; 8+ messages in thread
From: Ping-Ke Shih @ 2026-04-13  0:48 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Bitterblue Smith, kernel test robot,
	oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org

Hi Geert,
> Hi Ping-Ke,
> 
> On Fri, 10 Apr 2026 at 14:15, Ping-Ke Shih <pkshih@realtek.com> wrote:
> > Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> > > On 10/04/2026 12:25, kernel test robot wrote:
> > > > tree:    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > > > head:   9a9c8ce300cd3859cc87b408ef552cd697cc2ab7
> > > > commit: deb3ddeb18652118956fb581a39ac299e1ee5623 wifi: rtw88: Enable the new RTL8814AE/RTL8814AU
> drivers
> > > > date:   1 year, 1 month ago
> > > > config: arm-randconfig-001-20260410
> (https://download.01.org/0day-ci/archive/20260410/202604101721.fsv5XmCX-lkp@intel.com/config)
> > > > compiler: arm-linux-gnueabi-gcc (GCC) 8.5.0
> > > > reproduce (this is a W=1 build):
> (https://download.01.org/0day-ci/archive/20260410/202604101721.fsv5XmCX-lkp@intel.com/reproduce)
> > > >
> > > > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > > > the same patch/commit), kindly add following tags
> > > > | Fixes: deb3ddeb1865 ("wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers")
> > > > | Reported-by: kernel test robot <lkp@intel.com>
> > > > | Closes:  https://lore.kernel.org/oe-kbuild-all/202604101721.fsv5XmCX-lkp@intel.com/
> > > >
> > > > All errors (new ones prefixed by >>):
> > > >
> > > >    In file included from include/linux/bitfield.h:10,
> > > >                     from include/linux/fortify-string.h:5,
> > > >                     from include/linux/string.h:389,
> > > >                     from include/linux/uuid.h:11,
> > > >                     from include/linux/mod_devicetable.h:14,
> > > >                     from include/linux/usb.h:5,
> > > >                     from drivers/net/wireless/realtek/rtw88/rtw8814a.c:5:
> > > >>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse)
> == 512"
> > >
> > > struct rtw_2g_txpwr_idx is missing __packed. Could that be the reason
> > > for the error? I don't see what else could be causing it.
> > >
> >
> > I also found that flaw, but it isn't cause. I download cross compiler
> > to build arm on my x86, and address the cause is:
> >
> > diff --git a/drivers/net/wireless/realtek/rtw88/rtw8814a.h
> b/drivers/net/wireless/realtek/rtw88/rtw8814a.h
> > index c57c7c8f915e..7f2260117487 100644
> > --- a/drivers/net/wireless/realtek/rtw88/rtw8814a.h
> > +++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.h
> > @@ -51,10 +51,15 @@ struct rtw8814a_efuse {
> >         union {
> >                 struct rtw8814au_efuse u;
> >                 struct rtw8814ae_efuse e;
> > -       };
> > +       } __packed;
> 
> How can that make a difference?
> Both rtw8814au_efuse and rtw8814ae_efuse contain just (the same number
> of) bytes, so __packed on the union should not make any difference?
> Moreover, rtw8814au_efuse and rtw8814ae_efuse are already tagged with
> __packed, which should also not make any difference.  Someone's been
> sprinkling too many __packed all over the place?

I have similar thought as yours, but arm-linux-gnueabi-gcc compiler seems
have special treatment with union. For this case, without __packed
the offset of followed field res5 will become 0xe0.

When investing this error, I also found another waning [1].

I don't know why the compiler treats the union so special, and I fix
them by experimental results.

[1] https://lore.kernel.org/linux-wireless/20260411072509.1556635-1-pkshih@realtek.com/T/#u

> 
> >         u8 res5[0x122];                 /* 0xde */
> >  } __packed;
> >
> > I will send a patch soon.
> >
> > Ping-Ke
> 
> Gr{oetje,eeting}s,
> 
>                         Geert

Ping-Ke


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
  2026-04-13  0:48       ` Ping-Ke Shih
@ 2026-04-13  9:15         ` Geert Uytterhoeven
  2026-04-13  9:30           ` Arnd Bergmann
  0 siblings, 1 reply; 8+ messages in thread
From: Geert Uytterhoeven @ 2026-04-13  9:15 UTC (permalink / raw)
  To: Ping-Ke Shih
  Cc: Bitterblue Smith, kernel test robot,
	oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	Arnd Bergmann

Hi Ping-Ke,

CC Arnd

On Mon, 13 Apr 2026 at 02:48, Ping-Ke Shih <pkshih@realtek.com> wrote:
> > On Fri, 10 Apr 2026 at 14:15, Ping-Ke Shih <pkshih@realtek.com> wrote:
> > > Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote:
> > > > On 10/04/2026 12:25, kernel test robot wrote:
> > > > > tree:    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > > > > head:   9a9c8ce300cd3859cc87b408ef552cd697cc2ab7
> > > > > commit: deb3ddeb18652118956fb581a39ac299e1ee5623 wifi: rtw88: Enable the new RTL8814AE/RTL8814AU
> > drivers
> > > > > date:   1 year, 1 month ago
> > > > > config: arm-randconfig-001-20260410
> > (https://download.01.org/0day-ci/archive/20260410/202604101721.fsv5XmCX-lkp@intel.com/config)
> > > > > compiler: arm-linux-gnueabi-gcc (GCC) 8.5.0
> > > > > reproduce (this is a W=1 build):
> > (https://download.01.org/0day-ci/archive/20260410/202604101721.fsv5XmCX-lkp@intel.com/reproduce)
> > > > >
> > > > > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > > > > the same patch/commit), kindly add following tags
> > > > > | Fixes: deb3ddeb1865 ("wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers")
> > > > > | Reported-by: kernel test robot <lkp@intel.com>
> > > > > | Closes:  https://lore.kernel.org/oe-kbuild-all/202604101721.fsv5XmCX-lkp@intel.com/
> > > > >
> > > > > All errors (new ones prefixed by >>):
> > > > >
> > > > >    In file included from include/linux/bitfield.h:10,
> > > > >                     from include/linux/fortify-string.h:5,
> > > > >                     from include/linux/string.h:389,
> > > > >                     from include/linux/uuid.h:11,
> > > > >                     from include/linux/mod_devicetable.h:14,
> > > > >                     from include/linux/usb.h:5,
> > > > >                     from drivers/net/wireless/realtek/rtw88/rtw8814a.c:5:
> > > > >>> include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse)
> > == 512"
> > > >
> > > > struct rtw_2g_txpwr_idx is missing __packed. Could that be the reason
> > > > for the error? I don't see what else could be causing it.
> > > >
> > >
> > > I also found that flaw, but it isn't cause. I download cross compiler
> > > to build arm on my x86, and address the cause is:
> > >
> > > diff --git a/drivers/net/wireless/realtek/rtw88/rtw8814a.h
> > b/drivers/net/wireless/realtek/rtw88/rtw8814a.h
> > > index c57c7c8f915e..7f2260117487 100644
> > > --- a/drivers/net/wireless/realtek/rtw88/rtw8814a.h
> > > +++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.h
> > > @@ -51,10 +51,15 @@ struct rtw8814a_efuse {
> > >         union {
> > >                 struct rtw8814au_efuse u;
> > >                 struct rtw8814ae_efuse e;
> > > -       };
> > > +       } __packed;
> >
> > How can that make a difference?
> > Both rtw8814au_efuse and rtw8814ae_efuse contain just (the same number
> > of) bytes, so __packed on the union should not make any difference?
> > Moreover, rtw8814au_efuse and rtw8814ae_efuse are already tagged with
> > __packed, which should also not make any difference.  Someone's been
> > sprinkling too many __packed all over the place?
>
> I have similar thought as yours, but arm-linux-gnueabi-gcc compiler seems
> have special treatment with union. For this case, without __packed
> the offset of followed field res5 will become 0xe0.

Hmm, I can confirm the original issue, and that adding __packed does
have an impact (it reduces the size of rtw8814a_efuse from 522 to 520),
but the actual size is still wrong (should be 512).

drivers/net/wireless/realtek/rtw88/rtw88xxa.h has a similar issue, but
adding __packed does not make a difference there.

Removing the __packed from struct rtw8814au_efuse increases its size
from 14 to 16 bytes.  Looks like that ABI pads every structure to a
multiple of 4 bytes?

>
> When investing this error, I also found another waning [1].
>
> I don't know why the compiler treats the union so special, and I fix
> them by experimental results.
>
> [1] https://lore.kernel.org/linux-wireless/20260411072509.1556635-1-pkshih@realtek.com/T/#u
>
> >
> > >         u8 res5[0x122];                 /* 0xde */
> > >  } __packed;
> > >
> > > I will send a patch soon.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
  2026-04-13  9:15         ` Geert Uytterhoeven
@ 2026-04-13  9:30           ` Arnd Bergmann
  2026-04-13 10:02             ` Geert Uytterhoeven
  0 siblings, 1 reply; 8+ messages in thread
From: Arnd Bergmann @ 2026-04-13  9:30 UTC (permalink / raw)
  To: Geert Uytterhoeven, Ping-Ke Shih
  Cc: rtl8821cerfe2@gmail.com, kernel test robot,
	oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org

On Mon, Apr 13, 2026, at 11:15, Geert Uytterhoeven wrote:
> On Mon, 13 Apr 2026 at 02:48, Ping-Ke Shih <pkshih@realtek.com> wrote:
>> > On Fri, 10 Apr 2026 at 14:15, Ping-Ke Shih <pkshih@realtek.com> wrote:
>> > How can that make a difference?
>> > Both rtw8814au_efuse and rtw8814ae_efuse contain just (the same number
>> > of) bytes, so __packed on the union should not make any difference?
>> > Moreover, rtw8814au_efuse and rtw8814ae_efuse are already tagged with
>> > __packed, which should also not make any difference.  Someone's been
>> > sprinkling too many __packed all over the place?
>>
>> I have similar thought as yours, but arm-linux-gnueabi-gcc compiler seems
>> have special treatment with union. For this case, without __packed
>> the offset of followed field res5 will become 0xe0.
>
> Hmm, I can confirm the original issue, and that adding __packed does
> have an impact (it reduces the size of rtw8814a_efuse from 522 to 520),
> but the actual size is still wrong (should be 512).
>
> drivers/net/wireless/realtek/rtw88/rtw88xxa.h has a similar issue, but
> adding __packed does not make a difference there.
>
> Removing the __packed from struct rtw8814au_efuse increases its size
> from 14 to 16 bytes.  Looks like that ABI pads every structure to a
> multiple of 4 bytes?

Correct, that is a unique property of the ARM "OABI" legacy ABI,
triggered by this defconfig line:

# CONFIG_AEABI is not set

Nobody should be using ARM OABI any more, and I think we should
remove it from the kernel once support for the StrongARM
CPU gets removed (I have patches for that), as those CPUs were
the last ones that regularly used OABI.

Annotating the union as '__packed' is the correct fix for
the theoretical users of OABI, and does nothing on other
supported targets in Linux.

       Arnd

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512"
  2026-04-13  9:30           ` Arnd Bergmann
@ 2026-04-13 10:02             ` Geert Uytterhoeven
  0 siblings, 0 replies; 8+ messages in thread
From: Geert Uytterhoeven @ 2026-04-13 10:02 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Ping-Ke Shih, rtl8821cerfe2@gmail.com, kernel test robot,
	oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org

Hi Arnd,

On Mon, 13 Apr 2026 at 11:30, Arnd Bergmann <arnd@arndb.de> wrote:
> On Mon, Apr 13, 2026, at 11:15, Geert Uytterhoeven wrote:
> > On Mon, 13 Apr 2026 at 02:48, Ping-Ke Shih <pkshih@realtek.com> wrote:
> >> > On Fri, 10 Apr 2026 at 14:15, Ping-Ke Shih <pkshih@realtek.com> wrote:
> >> > How can that make a difference?
> >> > Both rtw8814au_efuse and rtw8814ae_efuse contain just (the same number
> >> > of) bytes, so __packed on the union should not make any difference?
> >> > Moreover, rtw8814au_efuse and rtw8814ae_efuse are already tagged with
> >> > __packed, which should also not make any difference.  Someone's been
> >> > sprinkling too many __packed all over the place?
> >>
> >> I have similar thought as yours, but arm-linux-gnueabi-gcc compiler seems
> >> have special treatment with union. For this case, without __packed
> >> the offset of followed field res5 will become 0xe0.
> >
> > Hmm, I can confirm the original issue, and that adding __packed does
> > have an impact (it reduces the size of rtw8814a_efuse from 522 to 520),
> > but the actual size is still wrong (should be 512).

Aha, rtw_2g_txpwr_idx also needs __packed.

> >
> > drivers/net/wireless/realtek/rtw88/rtw88xxa.h has a similar issue, but
> > adding __packed does not make a difference there.
> >
> > Removing the __packed from struct rtw8814au_efuse increases its size
> > from 14 to 16 bytes.  Looks like that ABI pads every structure to a
> > multiple of 4 bytes?
>
> Correct, that is a unique property of the ARM "OABI" legacy ABI,
> triggered by this defconfig line:
>
> # CONFIG_AEABI is not set
>
> Nobody should be using ARM OABI any more, and I think we should
> remove it from the kernel once support for the StrongARM
> CPU gets removed (I have patches for that), as those CPUs were
> the last ones that regularly used OABI.
>
> Annotating the union as '__packed' is the correct fix for
> the theoretical users of OABI, and does nothing on other
> supported targets in Linux.

OK, thanks!

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-04-13 10:02 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-10  9:25 include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(struct rtw8814a_efuse) == 512" kernel test robot
2026-04-10 12:07 ` Bitterblue Smith
2026-04-10 12:14   ` Ping-Ke Shih
2026-04-11 15:29     ` Geert Uytterhoeven
2026-04-13  0:48       ` Ping-Ke Shih
2026-04-13  9:15         ` Geert Uytterhoeven
2026-04-13  9:30           ` Arnd Bergmann
2026-04-13 10:02             ` Geert Uytterhoeven

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox