[add Jason, linux-cxl] Heads up for a new __uapi_uuid_t patch.
kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue.git > dev-queue > head: 41ab790c342f99d9eb891807b2ff00caa56804b9 > commit: a4bf8e3b34147889963e4c46d1e7916f7157b784 [2/12] fwctl/cxl: Fix uuid_t > usage in uapi > config: arm-randconfig-003-20250405 > (https://download.01.org/0day-ci/archive/20250405/202504050434.eb4vugh5-...@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/20250405/202504050434.eb4vugh5-...@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 > | Reported-by: kernel test robot <l...@intel.com> > | Closes: > https://lore.kernel.org/oe-kbuild-all/202504050434.eb4vugh5-...@intel.com/ > > All errors (new ones prefixed by >>): > > In file included from include/linux/bits.h:22, > from include/linux/ratelimit_types.h:5, > from include/linux/ratelimit.h:5, > from include/linux/dev_printk.h:16, > from include/linux/device.h:15, > from drivers/cxl/port.c:3: > >> include/linux/build_bug.h:78:41: error: static assertion failed: > >> "sizeof(__uapi_uuid_t) == sizeof(uuid_t) && __alignof__(__uapi_uuid_t) == > >> __alignof__(uuid_t)" > #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) > ^~~~~~~~~~~~~~~ > include/uapi/cxl/features.h:16:1: note: in expansion of macro > 'static_assert' > static_assert(sizeof(__uapi_uuid_t) == sizeof(uuid_t) && > ^~~~~~~~~~~~~ It turns out that on ARM the alignment of __uapi_uuid_t is 1 and the alignment of uuid_t is 4. However, this check is not actually concerned with the base alignment of the type, but whether it changes the size and alignment of a structure that contains the type. The following fixes the warning for me. I will send out a revised patch with that tomorrow if it looks good. diff --git a/include/uapi/cxl/features.h b/include/uapi/cxl/features.h index dd8874860cec..06a1ae3f3fd0 100644 --- a/include/uapi/cxl/features.h +++ b/include/uapi/cxl/features.h @@ -14,7 +14,8 @@ typedef unsigned char __uapi_uuid_t[16]; #ifdef __KERNEL__ #include <linux/uuid.h> static_assert(sizeof(__uapi_uuid_t) == sizeof(uuid_t) && - __alignof__(__uapi_uuid_t) == __alignof__(uuid_t)); + __alignof__(struct { __uapi_uuid_t uuid; }) == + __alignof__(struct { uuid_t uuid; })); #define __uapi_uuid_t uuid_t #endif