diff options
Diffstat (limited to 'arch/sparc64/mm')
-rw-r--r-- | arch/sparc64/mm/fault.c | 4 | ||||
-rw-r--r-- | arch/sparc64/mm/init.c | 15 |
2 files changed, 7 insertions, 12 deletions
diff --git a/arch/sparc64/mm/fault.c b/arch/sparc64/mm/fault.c index 9ebe1f494..12006b58a 100644 --- a/arch/sparc64/mm/fault.c +++ b/arch/sparc64/mm/fault.c @@ -1,4 +1,4 @@ -/* $Id: fault.c,v 1.50 2000/08/11 03:00:13 davem Exp $ +/* $Id: fault.c,v 1.51 2000/09/14 06:22:32 anton Exp $ * arch/sparc64/mm/fault.c: Page fault handlers for the 64-bit Sparc. * * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) @@ -145,7 +145,7 @@ static void do_kernel_fault(struct pt_regs *regs, int si_code, int fault_code, if (!insn) { if (regs->tstate & TSTATE_PRIV) { - if (regs->tpc & 0x3) + if (!regs->tpc || (regs->tpc & 0x3)) goto cannot_handle; insn = *(unsigned int *)regs->tpc; } else { diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c index 7eef97836..d694e40f9 100644 --- a/arch/sparc64/mm/init.c +++ b/arch/sparc64/mm/init.c @@ -1,4 +1,4 @@ -/* $Id: init.c,v 1.154 2000/08/09 00:00:15 davem Exp $ +/* $Id: init.c,v 1.156 2000/09/21 06:34:48 anton Exp $ * arch/sparc64/mm/init.c * * Copyright (C) 1996-1999 David S. Miller (davem@caip.rutgers.edu) @@ -29,6 +29,7 @@ #include <asm/mmu_context.h> #include <asm/vaddrs.h> #include <asm/dma.h> +#include <asm/starfire.h> extern void device_scan(void); @@ -200,7 +201,7 @@ static void inherit_prom_mappings(void) for (i = 0; i < n; i++) { unsigned long vaddr; - + if (trans[i].virt >= 0xf0000000 && trans[i].virt < 0x100000000) { for (vaddr = trans[i].virt; vaddr < trans[i].virt + trans[i].size; @@ -808,7 +809,6 @@ unsigned long __init bootmem_init(unsigned long *pages_avail) unsigned long bootmap_pfn, bytes_avail, size; int i; - bytes_avail = 0UL; for (i = 0; sp_banks[i].num_bytes != 0; i++) { end_of_phys_memory = sp_banks[i].base_addr + @@ -999,12 +999,7 @@ void __init paging_init(void) */ { extern void setup_tba(int); - int is_starfire = prom_finddevice("/ssp-serial"); - if (is_starfire != 0 && is_starfire != -1) - is_starfire = 1; - else - is_starfire = 0; - setup_tba(is_starfire); + setup_tba(this_is_starfire); } inherit_locked_prom_mappings(1); @@ -1029,7 +1024,7 @@ void __init paging_init(void) zones_size[ZONE_DMA] = npages; zholes_size[ZONE_DMA] = npages - pages_avail; - free_area_init_node(0, NULL, zones_size, + free_area_init_node(0, NULL, NULL, zones_size, phys_base, zholes_size); } |