aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-05-12 10:28:37 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-05-12 10:28:37 -0400
commit59b1c82500bb5d658891bc8e8a2308b76d58a4de (patch)
tree493aeea552ba7590b3652614b9caf2a5df11c69c /arch
parent454aa3899f0bebb5aa7f8788690668d106f9a34f (diff)
parenta94a172d6c826232e623160ae134abbce181a41f (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sparc64: Work around memory probing bug in openfirmware. sparc32: fix rtrap.S typo sparc32: Fix build.
Diffstat (limited to 'arch')
-rw-r--r--arch/sparc/kernel/rtrap.S2
-rw-r--r--arch/sparc64/mm/init.c16
2 files changed, 12 insertions, 6 deletions
diff --git a/arch/sparc/kernel/rtrap.S b/arch/sparc/kernel/rtrap.S
index b27b5b56f77a..ab818cdc4cc0 100644
--- a/arch/sparc/kernel/rtrap.S
+++ b/arch/sparc/kernel/rtrap.S
@@ -139,7 +139,7 @@ ret_trap_userwins_ok:
139 LOAD_PT_PRIV(sp, t_psr, t_pc, t_npc) 139 LOAD_PT_PRIV(sp, t_psr, t_pc, t_npc)
140 or %t_pc, %t_npc, %g2 140 or %t_pc, %t_npc, %g2
141 andcc %g2, 0x3, %g0 141 andcc %g2, 0x3, %g0
142 sethi %hi(PSR_SYCALL), %g2 142 sethi %hi(PSR_SYSCALL), %g2
143 be 1f 143 be 1f
144 andn %t_psr, %g2, %t_psr 144 andn %t_psr, %g2, %t_psr
145 145
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index ec3e2c72302a..a9828d748e2c 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -610,8 +610,6 @@ static void __init remap_kernel(void)
610 610
611static void __init inherit_prom_mappings(void) 611static void __init inherit_prom_mappings(void)
612{ 612{
613 read_obp_translations();
614
615 /* Now fixup OBP's idea about where we really are mapped. */ 613 /* Now fixup OBP's idea about where we really are mapped. */
616 printk("Remapping the kernel... "); 614 printk("Remapping the kernel... ");
617 remap_kernel(); 615 remap_kernel();
@@ -1747,7 +1745,17 @@ void __init paging_init(void)
1747 1745
1748 lmb_init(); 1746 lmb_init();
1749 1747
1750 /* Find available physical memory... */ 1748 /* Find available physical memory...
1749 *
1750 * Read it twice in order to work around a bug in openfirmware.
1751 * The call to grab this table itself can cause openfirmware to
1752 * allocate memory, which in turn can take away some space from
1753 * the list of available memory. Reading it twice makes sure
1754 * we really do get the final value.
1755 */
1756 read_obp_translations();
1757 read_obp_memory("reg", &pall[0], &pall_ents);
1758 read_obp_memory("available", &pavail[0], &pavail_ents);
1751 read_obp_memory("available", &pavail[0], &pavail_ents); 1759 read_obp_memory("available", &pavail[0], &pavail_ents);
1752 1760
1753 phys_base = 0xffffffffffffffffUL; 1761 phys_base = 0xffffffffffffffffUL;
@@ -1788,8 +1796,6 @@ void __init paging_init(void)
1788 1796
1789 inherit_prom_mappings(); 1797 inherit_prom_mappings();
1790 1798
1791 read_obp_memory("reg", &pall[0], &pall_ents);
1792
1793 init_kpte_bitmap(); 1799 init_kpte_bitmap();
1794 1800
1795 /* Ok, we can use our TLB miss and window trap handlers safely. */ 1801 /* Ok, we can use our TLB miss and window trap handlers safely. */