HI David and Arnd, This patch is breaking microblaze kernel compilation commit 96f951edb1f1bdbbc99b0cd458f9808bb83d58ae Author: David Howells <dhowells@xxxxxxxxxx> Date: Wed Mar 28 18:30:03 2012 +0100 Add #includes needed to permit the removal of asm/system.h Warning log: CC kernel/irq_work.o In file included from include/linux/irq_work.h:4, from kernel/irq_work.c:11: include/linux/llist.h: In function 'llist_add': include/linux/llist.h:185: error: implicit declaration of function 'cmpxchg_local' include/linux/llist.h:185: warning: assignment makes pointer from integer without a cast make[1]: *** [kernel/irq_work.o] Error 1 make: *** [kernel] Error 2 make: *** Waiting for unfinished jobs.... It is because microblaze uses cmpxchg_local which is defined asm-generic/atomic.h file. Arnds patch has added it to atomic.h asm-generic: add generic atomic.h and io.h (sha1: 3f7e212df82ca0459d44c91d9e019efd1b5f936c) What about to move cmpxchg_local and cmpxchg64_local from atomic.h to cmpxchg-local.h? If this should be separate step after your patch then please squash the patch below to your one. Thanks, Michal diff --git a/arch/microblaze/include/asm/cmpxchg.h b/arch/microblaze/include/asm/cmpxchg.h index 538afc0..cd10925 100644 --- a/arch/microblaze/include/asm/cmpxchg.h +++ b/arch/microblaze/include/asm/cmpxchg.h @@ -38,5 +38,6 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, #include <asm-generic/cmpxchg.h> #include <asm-generic/cmpxchg-local.h> +#include <asm-generic/atomic.h> #endif /* _ASM_MICROBLAZE_CMPXCHG_H */ -- Michal Simek, Ing. (M.Eng) w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/ Maintainer of Linux kernel - Xilinx Zynq ARM architecture Microblaze U-BOOT custodian -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html