From 30eaf295b4145394d051e6cbb02767f942641b15 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Tue, 26 Nov 2002 04:30:01 -0800 Subject: [SPARC]: NR_IRQS is off by one. --- include/asm-sparc/irq.h | 2 +- include/asm-sparc64/irq.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'include') 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-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); -- cgit v1.2.3 From fd7d8c5d3371fe08743a24107218d101abcf5892 Mon Sep 17 00:00:00 2001 From: Rob Radez Date: Sun, 1 Dec 2002 08:20:18 -0800 Subject: [SPARC]: Fix ELF_CORE_COPY_TASK_REGS define. --- include/asm-sparc/elf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') 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. -- cgit v1.2.3 From bd4498b58dd7dd0fe0f16c1aadf45a101cd08fbf Mon Sep 17 00:00:00 2001 From: Rob Radez Date: Sun, 1 Dec 2002 08:21:36 -0800 Subject: [SPARC]: asm/hardirq.h wants linux/cache.h --- include/asm-sparc/hardirq.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') 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 #include #include +#include /* entry.S is sensitive to the offsets of these fields */ /* XXX P3 Is it? */ typedef struct { -- cgit v1.2.3 From f7a4f91ea1724d98dbee8f11e5b35140f8cafeb6 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Sun, 1 Dec 2002 08:24:05 -0800 Subject: [SPARC]: Move virt_to_phys/phy_to_virt into page.h --- include/asm-sparc/io.h | 3 --- include/asm-sparc/page.h | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'include') 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/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)) -- cgit v1.2.3 From 24d9b8f5b7aaa4b43c8fc28002f36adfe7069680 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Sun, 1 Dec 2002 10:58:36 -0800 Subject: [SPARC64]: Add missing cc clobber to rwsem_atomic_update. --- include/asm-sparc64/rwsem.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') 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; } -- cgit v1.2.3 From 167f66d328d58b10a4978b176cb64207b0e0411b Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Sun, 1 Dec 2002 18:11:22 -0800 Subject: [SPARC64]: Clobber register l1 in switch_to if gcc >= 3.0 --- include/asm-sparc64/system.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'include') 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); \ -- cgit v1.2.3