ARRAY_SIZE uses BUILD_BUG_ON_ZERO, which is undefined is you don't include linux/bug.h first, which just happened to me.
Is there any reason this include isn't here? A quick grep found 595 other files using a define from bug.h without ever including it. If this is a simple mistake and was forgotten, I can send an actual patchset to fix this, but it feels like it was left out on purpose. Cheers, Eric Engestrom PS: If this is a cleanup that needs to be done, I might to it for other headers as well. --- include/linux/compiler-gcc.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index eeae401..01e6869 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h @@ -2,6 +2,8 @@ #error "Please don't include <linux/compiler-gcc.h> directly, include <linux/compiler.h> instead." #endif +#include <linux/bug.h> + /* * Common definitions for all gcc versions go here. */ -- 2.8.1

