diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-08-08 19:25:53 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-08-08 19:25:53 +0000 |
commit | 57445428488a2862840c4d7c96d7746c11031aaf (patch) | |
tree | 60b88b3a21896a33ee4dccc727d88b745a9ff731 /arch/sparc64 | |
parent | 2e837819b1563679b55363d469239fdf4f17fbbb (diff) |
Merge with Linu 2.4.0-test6-pre6.
Diffstat (limited to 'arch/sparc64')
-rw-r--r-- | arch/sparc64/kernel/irq.c | 2 | ||||
-rw-r--r-- | arch/sparc64/kernel/signal32.c | 6 | ||||
-rw-r--r-- | arch/sparc64/kernel/smp.c | 4 | ||||
-rw-r--r-- | arch/sparc64/kernel/sparc64_ksyms.c | 6 | ||||
-rw-r--r-- | arch/sparc64/mm/init.c | 4 | ||||
-rw-r--r-- | arch/sparc64/mm/ultra.S | 26 |
6 files changed, 36 insertions, 12 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index c7f4905b8..7f2e21a51 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c @@ -1,4 +1,4 @@ -/* $Id: irq.c,v 1.90 2000/08/01 00:28:33 davem Exp $ +/* $Id: irq.c,v 1.91 2000/08/05 10:48:40 davem Exp $ * irq.c: UltraSparc IRQ handling/init/registry. * * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) diff --git a/arch/sparc64/kernel/signal32.c b/arch/sparc64/kernel/signal32.c index aabde84c2..efad55a1c 100644 --- a/arch/sparc64/kernel/signal32.c +++ b/arch/sparc64/kernel/signal32.c @@ -1,4 +1,4 @@ -/* $Id: signal32.c,v 1.65 2000/07/07 04:25:17 davem Exp $ +/* $Id: signal32.c,v 1.66 2000/07/27 01:05:15 davem Exp $ * arch/sparc64/kernel/signal32.c * * Copyright (C) 1991, 1992 Linus Torvalds @@ -750,7 +750,7 @@ static inline void new_setup_frame32(struct k_sigaction *ka, struct pt_regs *reg goto sigsegv; if(pte_present(*ptep)) { - unsigned long page = page_address(pte_page(*ptep)); + unsigned long page = (unsigned long) page_address(pte_page(*ptep)); __asm__ __volatile__(" membar #StoreStore @@ -1175,7 +1175,7 @@ static inline void setup_rt_frame32(struct k_sigaction *ka, struct pt_regs *regs goto sigsegv; if(pte_present(*ptep)) { - unsigned long page = page_address(pte_page(*ptep)); + unsigned long page = (unsigned long) page_address(pte_page(*ptep)); __asm__ __volatile__(" membar #StoreStore diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c index 96f8624ca..dbcb1f09e 100644 --- a/arch/sparc64/kernel/smp.c +++ b/arch/sparc64/kernel/smp.c @@ -817,14 +817,14 @@ static inline unsigned long find_flush_base(unsigned long size) size = PAGE_ALIGN(size); found = size; - base = page_address(p); + base = (unsigned long) page_address(p); while(found != 0) { /* Failure. */ if(p >= (mem_map + max_mapnr)) return 0UL; if(PageReserved(p)) { found = size; - base = page_address(p); + base = (unsigned long) page_address(p); } else { found -= PAGE_SIZE; } diff --git a/arch/sparc64/kernel/sparc64_ksyms.c b/arch/sparc64/kernel/sparc64_ksyms.c index 4a79b76bf..5bb4c8839 100644 --- a/arch/sparc64/kernel/sparc64_ksyms.c +++ b/arch/sparc64/kernel/sparc64_ksyms.c @@ -1,4 +1,4 @@ -/* $Id: sparc64_ksyms.c,v 1.89 2000/07/28 12:15:02 davem Exp $ +/* $Id: sparc64_ksyms.c,v 1.91 2000/08/05 13:30:33 davem Exp $ * arch/sparc64/kernel/sparc64_ksyms.c: Sparc64 specific ksyms support. * * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) @@ -83,7 +83,7 @@ extern long sparc32_open(const char * filename, int flags, int mode); extern int register_ioctl32_conversion(unsigned int cmd, int (*handler)(unsigned int, unsigned int, unsigned long, struct file *)); extern int unregister_ioctl32_conversion(unsigned int cmd); extern int io_remap_page_range(unsigned long from, unsigned long offset, unsigned long size, pgprot_t prot, int space); -extern void flush_dcache_page(void *addr); +extern void __flush_dcache_page(void *addr); extern int __ashrdi3(int, int); @@ -180,7 +180,7 @@ EXPORT_SYMBOL(disable_irq); EXPORT_SYMBOL_PRIVATE(flushw_user); -EXPORT_SYMBOL(flush_dcache_page); +EXPORT_SYMBOL(__flush_dcache_page); EXPORT_SYMBOL(mstk48t02_regs); EXPORT_SYMBOL(request_fast_irq); diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c index 88ac93103..d3c9e5036 100644 --- a/arch/sparc64/mm/init.c +++ b/arch/sparc64/mm/init.c @@ -1,4 +1,4 @@ -/* $Id: init.c,v 1.152 2000/05/09 17:40:14 davem Exp $ +/* $Id: init.c,v 1.153 2000/07/27 01:05:15 davem Exp $ * arch/sparc64/mm/init.c * * Copyright (C) 1996-1999 David S. Miller (davem@caip.rutgers.edu) @@ -746,7 +746,7 @@ pte_t *get_pte_slow(pmd_t *pmd, unsigned long offset, unsigned long color) pte_t *pte; set_page_count((page + 1), 1); - paddr = page_address(page); + paddr = (unsigned long) page_address(page); memset((char *)paddr, 0, (PAGE_SIZE << 1)); if (!color) { diff --git a/arch/sparc64/mm/ultra.S b/arch/sparc64/mm/ultra.S index 85e62ad25..7940218d2 100644 --- a/arch/sparc64/mm/ultra.S +++ b/arch/sparc64/mm/ultra.S @@ -1,4 +1,4 @@ -/* $Id: ultra.S,v 1.44 2000/07/10 20:57:35 davem Exp $ +/* $Id: ultra.S,v 1.46 2000/08/05 13:30:33 davem Exp $ * ultra.S: Don't expand these all over the place... * * Copyright (C) 1997, 2000 David S. Miller (davem@redhat.com) @@ -206,6 +206,30 @@ iflush2:sub %o1, 0x20, %g3 flush %g6 ba,a,pt %xcc, 3b + .align 64 + .globl __flush_dcache_page +__flush_dcache_page: + sub %o0, %g4, %o0 + clr %o1 + srlx %o0, 11, %o0 + sethi %hi(1 << 14), %o2 +1: ldxa [%o1] ASI_DCACHE_TAG, %o3 + andn %o3, 0x3, %o3 + cmp %o0, %o3 + bne,pt %xcc, 2f + nop + stxa %g0, [%o1] ASI_DCACHE_TAG + membar #Sync +2: add %o1, (1 << 5), %o1 + cmp %o1, %o2 + bne,pt %xcc, 1b + nop + /* The I-cache does not snoop local stores so we + * better flush that too. + */ + ba,pt %xcc, __flush_icache_page + sllx %o0, 11, %o0 + .align 32 __prefill_dtlb: rdpr %pstate, %g7 |