Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@pizda.ninka.net>2002-02-09 12:58:07 -0800
committerDavid S. Miller <davem@redhat.com>2002-02-09 12:58:07 -0800
commit6421563d92679a65b629714d19c818ec4258668d (patch)
treee46e11a79f65dfb59989492cf22bdbd0babcda4b
parent1588b7ef1a50d4a99364b24554746fcb5fc9641a (diff)
Clean up sparc64 build
-rw-r--r--arch/sparc64/kernel/etrap.S4
-rw-r--r--arch/sparc64/kernel/sys_sparc32.c1
-rw-r--r--arch/sparc64/lib/dec_and_lock.S11
-rw-r--r--include/asm-sparc64/hardirq.h2
-rw-r--r--include/asm-sparc64/thread_info.h1
5 files changed, 17 insertions, 2 deletions
diff --git a/arch/sparc64/kernel/etrap.S b/arch/sparc64/kernel/etrap.S
index b576ff91b86c..60a94bd4247d 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 000d61b22720..d472d4dc31eb 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 b7c2631dd111..575f25e57883 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 @@ out:
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 @@ loop2: cas [%o0], %g5, %g7 /* ASSERT(g7 == 0) */
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 62bfae557ad0..d55bd01d7363 100644
--- a/include/asm-sparc64/hardirq.h
+++ b/include/asm-sparc64/hardirq.h
@@ -56,6 +56,8 @@ typedef struct {
#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 a1e23aab871e..30224a298d91 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;