Messages in this thread | | | From | Arnd Bergmann <> | Date | Wed, 15 Jun 2022 16:11:17 +0200 | Subject | Re: drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h:1174:29: error: enumerator value for 'i40e_static_assert_i40e_aqc_cloud_filters_element_data' is not an integer constant |
| |
On Thu, Jun 9, 2022 at 12:25 PM kernel test robot <lkp@intel.com> wrote: > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master > head: 6bfb56e93bcef41859c2d5ab234ffd80b691be35 > commit: 250c1a694ff304e5d69e74ab32755eddcc2b8f65 ARM: pxa: convert to multiplatform
This is not really related to my commit but it does disappear before this one when bisecting.
> In file included from drivers/net/ethernet/intel/i40e/i40e_adminq.h:9, > from drivers/net/ethernet/intel/i40e/i40e_type.h:10, > from drivers/net/ethernet/intel/i40e/i40e.h:40, > from drivers/net/ethernet/intel/i40e/i40e_main.c:12: > >> drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h:301:39: warning: division by zero [-Wdiv-by-zero] > 301 | { i40e_static_assert_##X = (n)/((sizeof(struct X) == (n)) ? 1 : 0) } > | ^ > drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h:1174:1: note: in expansion of macro 'I40E_CHECK_STRUCT_LEN' > 1174 | I40E_CHECK_STRUCT_LEN(0x40, i40e_aqc_cloud_filters_element_data); > | ^~~~~~~~~~~~~~~~~~~~~
The bug is that 'i40e_aqc_cloud_filters_element_data' and some other structures in the same file are broken when building an ARM kernel without CONFIG_AEABI, which has unusual struct packing rules and triggers the static assertion.
It's clearly a bug, but nobody is going to run this driver on an OABI kernel, so I think the options are:
- add "__packed __aligned(4)" to each of these structure definitions - make the driver depend on !(ARM && AEABI) in Kconfig - ask lkp to stop testing CONFIG_AEABI=n kernels in randconfig builds and ignore the problem along with others like it
Arnd
| |