Seeing this error on SPARC while compiling qrwlock.c. CC kernel/locking/qrwlock.o In file included from ./include/asm-generic/qrwlock_types.h:5, from ./arch/sparc/include/asm/qrwlock.h:4, from kernel/locking/qrwlock.c:24: ./arch/sparc/include/asm/spinlock_types.h:5:3: error: #error "please don't include this file directly" Re-arrange the includes in qrwlock_types.h and also include spinlock.h in qrwlock.c to fix it. This should also help other architectures when queued rwlock is enabled. Signed-off-by: Babu Moger <babu.moger@xxxxxxxxxx> Reviewed-by: Håkon Bugge <haakon.bugge@xxxxxxxxxx> Reviewed-by: Jane Chu <jane.chu@xxxxxxxxxx> Reviewed-by: Shannon Nelson <shannon.nelson@xxxxxxxxxx> Reviewed-by: Vijay Kumar <vijay.ac.kumar@xxxxxxxxxx> --- include/asm-generic/qrwlock_types.h | 6 +++--- kernel/locking/qrwlock.c | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/include/asm-generic/qrwlock_types.h b/include/asm-generic/qrwlock_types.h index 0abc6b6..3988c7d 100644 --- a/include/asm-generic/qrwlock_types.h +++ b/include/asm-generic/qrwlock_types.h @@ -1,9 +1,6 @@ #ifndef __ASM_GENERIC_QRWLOCK_TYPES_H #define __ASM_GENERIC_QRWLOCK_TYPES_H -#include <linux/types.h> -#include <asm/spinlock_types.h> - /* * The queue read/write lock data structure */ @@ -18,4 +15,7 @@ .wait_lock = __ARCH_SPIN_LOCK_UNLOCKED, \ } +#include <linux/types.h> +#include <linux/spinlock_types.h> + #endif /* __ASM_GENERIC_QRWLOCK_TYPES_H */ diff --git a/kernel/locking/qrwlock.c b/kernel/locking/qrwlock.c index cc3ed0c..2655f26 100644 --- a/kernel/locking/qrwlock.c +++ b/kernel/locking/qrwlock.c @@ -20,6 +20,7 @@ #include <linux/cpumask.h> #include <linux/percpu.h> #include <linux/hardirq.h> +#include <linux/spinlock.h> #include <asm/qrwlock.h> /* -- 1.7.1