summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPatrick Mochel <mochel@osdl.org>2002-12-02 03:18:07 -0600
committerPatrick Mochel <mochel@osdl.org>2002-12-02 03:18:07 -0600
commit94d24994e77e724d8e27e44c36e3d0877cf7222d (patch)
tree39a51f4dc1c4c5aeaa8d220057966140a01a469a /include
parentc445065596bb32adc9bf3f31b50657de41496b1c (diff)
parent467578b996aca77ad96b13d0c475227cf7ee753a (diff)
Merge osdl.org:/home/mochel/src/kernel/devel/linux-2.5-virgin
into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-core
Diffstat (limited to 'include')
-rw-r--r--include/asm-sparc/elf.h2
-rw-r--r--include/asm-sparc/hardirq.h1
-rw-r--r--include/asm-sparc/io.h3
-rw-r--r--include/asm-sparc/irq.h2
-rw-r--r--include/asm-sparc/page.h3
-rw-r--r--include/asm-sparc64/irq.h2
-rw-r--r--include/asm-sparc64/rwsem.h2
-rw-r--r--include/asm-sparc64/system.h12
8 files changed, 17 insertions, 10 deletions
diff --git a/include/asm-sparc/elf.h b/include/asm-sparc/elf.h
index 59d2f8e11964..239d2da0a6c0 100644
--- a/include/asm-sparc/elf.h
+++ b/include/asm-sparc/elf.h
@@ -56,7 +56,7 @@ typedef struct {
} elf_fpregset_t;
#define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \
- ({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread_info->kregs); 1; })
+ ({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread.kregs); 1; })
/*
* This is used to ensure we don't load something for the wrong architecture.
diff --git a/include/asm-sparc/hardirq.h b/include/asm-sparc/hardirq.h
index 8057289e0f3e..822ec6f1062d 100644
--- a/include/asm-sparc/hardirq.h
+++ b/include/asm-sparc/hardirq.h
@@ -11,6 +11,7 @@
#include <linux/threads.h>
#include <linux/brlock.h>
#include <linux/spinlock.h>
+#include <linux/cache.h>
/* entry.S is sensitive to the offsets of these fields */ /* XXX P3 Is it? */
typedef struct {
diff --git a/include/asm-sparc/io.h b/include/asm-sparc/io.h
index 848111d7980b..f3fdacf95ba5 100644
--- a/include/asm-sparc/io.h
+++ b/include/asm-sparc/io.h
@@ -187,9 +187,6 @@ extern unsigned long sbus_ioremap(struct resource *res, unsigned long offset,
extern void sbus_iounmap(unsigned long vaddr, unsigned long size);
-#define virt_to_phys(x) __pa((unsigned long)(x))
-#define phys_to_virt(x) __va((unsigned long)(x))
-
/*
* At the moment, we do not use CMOS_READ anywhere outside of rtc.c,
* so rtc_port is static in it. This should not change unless a new
diff --git a/include/asm-sparc/irq.h b/include/asm-sparc/irq.h
index d3f935afaf87..fb99a8c81f81 100644
--- a/include/asm-sparc/irq.h
+++ b/include/asm-sparc/irq.h
@@ -19,7 +19,7 @@
BTFIXUPDEF_CALL(char *, __irq_itoa, unsigned int)
#define __irq_itoa(irq) BTFIXUP_CALL(__irq_itoa)(irq)
-#define NR_IRQS 15
+#define NR_IRQS 16
#define irq_cannonicalize(irq) (irq)
diff --git a/include/asm-sparc/page.h b/include/asm-sparc/page.h
index a08100e59c69..7e521e0c31f4 100644
--- a/include/asm-sparc/page.h
+++ b/include/asm-sparc/page.h
@@ -174,6 +174,9 @@ extern __inline__ int get_order(unsigned long size)
#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET))
+#define virt_to_phys(x) __pa((unsigned long)(x))
+#define phys_to_virt(x) __va((unsigned long)(x))
+
#define pfn_to_page(pfn) (mem_map + (pfn))
#define page_to_pfn(page) ((unsigned long)((page) - mem_map))
#define virt_to_page(kaddr) (mem_map + (__pa(kaddr) >> PAGE_SHIFT))
diff --git a/include/asm-sparc64/irq.h b/include/asm-sparc64/irq.h
index 397744bb33d7..5fbe174012cc 100644
--- a/include/asm-sparc64/irq.h
+++ b/include/asm-sparc64/irq.h
@@ -110,7 +110,7 @@ static __inline__ char *__irq_itoa(unsigned int irq)
return buff;
}
-#define NR_IRQS 15
+#define NR_IRQS 16
#define irq_cannonicalize(irq) (irq)
extern void disable_irq(unsigned int);
diff --git a/include/asm-sparc64/rwsem.h b/include/asm-sparc64/rwsem.h
index a559e183a1dd..fb100f981554 100644
--- a/include/asm-sparc64/rwsem.h
+++ b/include/asm-sparc64/rwsem.h
@@ -279,7 +279,7 @@ static __inline__ int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
"mov %%g7, %0\n\t"
: "=&r" (tmp)
: "0" (tmp), "r" (sem)
- : "g5", "g7", "memory");
+ : "g5", "g7", "memory", "cc");
return tmp + delta;
}
diff --git a/include/asm-sparc64/system.h b/include/asm-sparc64/system.h
index 9f7710f5a589..98c738d70a06 100644
--- a/include/asm-sparc64/system.h
+++ b/include/asm-sparc64/system.h
@@ -164,6 +164,11 @@ do { spin_unlock_irq(&(prev)->switch_lock); \
* not preserve it's value. Hairy, but it lets us remove 2 loads
* and 2 stores in this critical code path. -DaveM
*/
+#if __GNUC__ >= 3
+#define EXTRA_CLOBBER ,"%l1"
+#else
+#define EXTRA_CLOBBER
+#endif
#define switch_to(prev, next, last) \
do { if (test_thread_flag(TIF_PERFCTR)) { \
unsigned long __tmp; \
@@ -209,10 +214,11 @@ do { if (test_thread_flag(TIF_PERFCTR)) { \
: "0" (next->thread_info), \
"i" (TI_WSTATE), "i" (TI_KSP), "i" (TI_FLAGS), "i" (TI_CWP), \
"i" (_TIF_NEWCHILD), "i" (TI_TASK) \
- : "cc", "g1", "g2", "g3", "g5", "g7", \
- "l2", "l3", "l4", "l5", "l6", "l7", \
+ : "cc", \
+ "g1", "g2", "g3", "g5", "g7", \
+ "l2", "l3", "l4", "l5", "l6", "l7", \
"i0", "i1", "i2", "i3", "i4", "i5", \
- "o0", "o1", "o2", "o3", "o4", "o5", "o7"); \
+ "o0", "o1", "o2", "o3", "o4", "o5", "o7" EXTRA_CLOBBER);\
/* If you fuck with this, update ret_from_syscall code too. */ \
if (test_thread_flag(TIF_PERFCTR)) { \
write_pcr(current_thread_info()->pcr_reg); \