Andrew Morton wrote: > On Wed, 06 Jun 2007 13:51:41 -0700 James Ketrenos <jketreno@xxxxxxxxxxxxxxx> wrote: > >>>> * make C=2 CF=-Wall will complain if you use ARRAY_SIZE on global data >>>> */ >>>> #define GLOBAL_ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) >>> This is identical to ARRAY_SIZE. >>> >>> And if there's some problem with ARRAY_SIZE then fix ARRAY_SIZE! Don't go >>> off and create some private thing and leave everyone else twisting in the >>> wind. >> The code was resolving the sparse warnings. > ... > Your GLOBAL_ARRAY_SIZE() is, afaict, identical to ARRAY_SIZE(). >From include/linux/kernel.h #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) >From drivers/net/wireless/mac80211/iwlwifi/iwl-helpers.h #define GLOBAL_ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) The '+ __must_be_array(arr)' part of ARRAY_SIZE was causing sparse to complain with: drivers/net/wireless/mac80211/iwlwifi/base.c:4646:22: error: cannot size expression ... When I had run my builds, I had restricted the sparse checks to just iwlwifi (vs. checking the rest of the kernel). I just ran it C=2 CF=-Wall against the rest of the kernel and do see other code with the same problem, eg: sound/core/memalloc.c:521:14: error: cannot size expression ... I had erroneously thought it was just a problem with iwlwifi... Thanks, James - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html