Add #includes needed to permit the removal of asm/system.h - sha1 96f951edb1f1bdbbc99b0cd458f9808bb83d58ae

From: Michal Simek
Date: Thu Jan 03 2013 - 07:32:31 EST

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
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

If this should be separate step after your patch then please squash
the patch below to your one.


diff --git a/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>


Michal Simek, Ing. (M.Eng)
w: p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu -
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at