[Apologies for the resend. I got both mailing list addresses wrong!] Patch 2 changes the container_of() macro to improve the compatibility checking when the member has array type. As a bonus (?), if the pointer neither points to a type compatible with the member nor points to a type compatible with void, compiler errors are produced instead of warnings. Patch 1 is a prerequisite to avoid a lot of warnings when <linux/bug.h> is included by <linux/kernel.h>. 1) asm-generic/bug.h: declare struct pt_regs; before function prototype 2) kernel.h: handle pointers to arrays better in container_of() include/asm-generic/bug.h | 1 + include/linux/kernel.h | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-)