Clean up sparc64 build
diff --git a/arch/sparc64/kernel/etrap.S b/arch/sparc64/kernel/etrap.S index b576ff9..60a94bd 100644 --- a/arch/sparc64/kernel/etrap.S +++ b/arch/sparc64/kernel/etrap.S
@@ -30,12 +30,12 @@ #ifdef CONFIG_PREEMPT etrap_irq: ldsw [%g6 + TI_PRE_COUNT], %g1 add %g1, 1, %g1 - ba,pt etrap_irq2 + ba,pt %xcc, etrap_irq2 stw %g1, [%g6 + TI_PRE_COUNT] #endif etrap: rdpr %pil, %g2 ! Single Group #ifndef CONFIG_PREEMPT -etrap_irq +etrap_irq: #endif etrap_irq2: rdpr %tstate, %g1 ! Single Group sllx %g2, 20, %g3 ! IEU0 Group
diff --git a/arch/sparc64/kernel/sys_sparc32.c b/arch/sparc64/kernel/sys_sparc32.c index 000d61b..d472d4d 100644 --- a/arch/sparc64/kernel/sys_sparc32.c +++ b/arch/sparc64/kernel/sys_sparc32.c
@@ -49,6 +49,7 @@ #include <linux/in.h> #include <linux/icmpv6.h> #include <linux/sysctl.h> +#include <linux/binfmts.h> #include <asm/types.h> #include <asm/ipc.h>
diff --git a/arch/sparc64/lib/dec_and_lock.S b/arch/sparc64/lib/dec_and_lock.S index b7c2631..575f25e 100644 --- a/arch/sparc64/lib/dec_and_lock.S +++ b/arch/sparc64/lib/dec_and_lock.S
@@ -5,6 +5,7 @@ * Copyright (C) 2000 David S. Miller (davem@redhat.com) */ #include <linux/config.h> +#include <asm/thread_info.h> #ifndef CONFIG_DEBUG_SPINLOCK .text @@ -40,6 +41,11 @@ membar #StoreLoad | #StoreStore retl mov %g1, %o0 +#ifdef CONFIG_PREEMPT + ldsw [%g6 + TI_PRE_COUNT], %g3 + add %g3, 1, %g3 + stw %g3, [%g6 + TI_PRE_COUNT] +#endif to_zero: ldstub [%o1], %g3 brnz,pn %g3, spin_on_lock @@ -55,6 +61,11 @@ nop membar #StoreStore | #LoadStore stb %g0, [%o1] +#ifdef CONFIG_PREEMPT + ldsw [%g6 + TI_PRE_COUNT], %g3 + sub %g3, 1, %g3 + stw %g3, [%g6 + TI_PRE_COUNT] +#endif b,pt %xcc, nzero nop
diff --git a/include/asm-sparc64/hardirq.h b/include/asm-sparc64/hardirq.h index 62bfae5..d55bd01 100644 --- a/include/asm-sparc64/hardirq.h +++ b/include/asm-sparc64/hardirq.h
@@ -56,6 +56,8 @@ #define synchronize_irq() barrier() +#define release_irqlock(cpu) do { } while (0) + #else /* (CONFIG_SMP) */ static __inline__ int irqs_running(void)
diff --git a/include/asm-sparc64/thread_info.h b/include/asm-sparc64/thread_info.h index a1e23aa..30224a2 100644 --- a/include/asm-sparc64/thread_info.h +++ b/include/asm-sparc64/thread_info.h
@@ -27,6 +27,7 @@ #ifndef __ASSEMBLY__ #include <asm/ptrace.h> +#include <asm/types.h> struct task_struct; struct exec_domain;