Our include/linux/byteorder.h uses the system <asm/byteorder.h>
because we don't provide our own in include/asm. This then pulls in
system <linux/stddef.h> which defines __struct_group. That definition
collides with the unconditional #define __struct_group in our local
include/linux/kernel.h, provoking preprocessor warnings.

Signed-off-by: Chris Webb <[email protected]>
---
 include/linux/kernel.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 6315e53..6f56748 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -99,11 +99,14 @@
        (type *)((char *)__mptr - offsetof(type, member)); })
 #endif
 
+#ifndef __struct_group
 #define __struct_group(TAG, NAME, ATTRS, MEMBERS...) \
        union { \
                struct { MEMBERS } ATTRS; \
                struct TAG { MEMBERS } ATTRS NAME; \
        }
+#endif
+
 #define struct_group(NAME, MEMBERS...) \
        __struct_group(/* no tag */, NAME, /* no attrs */, MEMBERS)
 

Reply via email to