diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-09-09 01:10:28 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-09-09 01:10:28 -0400 |
commit | 31c9efde786252112cc3d04a1ed3513b6ec63a7b (patch) | |
tree | 5f59621974882f1cab719fff3b9db0764dbfef19 /arch/sh/mm/cache-sh4.c | |
parent | 654d364e26c797e8a5f9e2a1393607e6ca0106eb (diff) |
sh: Kill off broken PHYSADDR() usage in sh4_flush_dcache_page().
PHYSADDR() runs in to issues in 32-bit mode when we do not have the
legacy P1/P2 areas mapped, as such, we need to use page_to_phys()
directly, which also happens to do the right thing in legacy 29-bit mode.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/mm/cache-sh4.c')
-rw-r--r-- | arch/sh/mm/cache-sh4.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/sh/mm/cache-sh4.c b/arch/sh/mm/cache-sh4.c index a5c339bca8aa..f0999606686f 100644 --- a/arch/sh/mm/cache-sh4.c +++ b/arch/sh/mm/cache-sh4.c | |||
@@ -123,12 +123,12 @@ static void sh4_flush_dcache_page(void *arg) | |||
123 | else | 123 | else |
124 | #endif | 124 | #endif |
125 | { | 125 | { |
126 | unsigned long phys = PHYSADDR(page_address(page)); | 126 | unsigned long phys = page_to_phys(page); |
127 | unsigned long addr = CACHE_OC_ADDRESS_ARRAY; | 127 | unsigned long addr = CACHE_OC_ADDRESS_ARRAY; |
128 | int i, n; | 128 | int i, n; |
129 | 129 | ||
130 | /* Loop all the D-cache */ | 130 | /* Loop all the D-cache */ |
131 | n = boot_cpu_data.dcache.n_aliases; | 131 | n = boot_cpu_data.dcache.way_incr >> 12; |
132 | for (i = 0; i < n; i++, addr += 4096) | 132 | for (i = 0; i < n; i++, addr += 4096) |
133 | flush_cache_4096(addr, phys); | 133 | flush_cache_4096(addr, phys); |
134 | } | 134 | } |