Browse Source

sh: Fix up uncached offset for legacy 29-bit mode.

The uncached_start was being set up properly for 32-bit but managed to
break 29-bit in the process, fix it up.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt 15 years ago
parent
commit
40d1f00482
1 changed files with 5 additions and 0 deletions
  1. 5 0
      arch/sh/mm/uncached.c

+ 5 - 0
arch/sh/mm/uncached.c

@@ -1,6 +1,7 @@
 #include <linux/init.h>
 #include <linux/init.h>
 #include <asm/sizes.h>
 #include <asm/sizes.h>
 #include <asm/page.h>
 #include <asm/page.h>
+#include <asm/addrspace.h>
 
 
 /*
 /*
  * This is the offset of the uncached section from its cached alias.
  * This is the offset of the uncached section from its cached alias.
@@ -23,7 +24,11 @@ int virt_addr_uncached(unsigned long kaddr)
 
 
 void __init uncached_init(void)
 void __init uncached_init(void)
 {
 {
+#ifdef CONFIG_29BIT
+	uncached_start = P2SEG;
+#else
 	uncached_start = memory_end;
 	uncached_start = memory_end;
+#endif
 	uncached_end = uncached_start + uncached_size;
 	uncached_end = uncached_start + uncached_size;
 }
 }