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>
This commit is contained in:
@@ -123,12 +123,12 @@ static void sh4_flush_dcache_page(void *arg)
|
|||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
unsigned long phys = PHYSADDR(page_address(page));
|
unsigned long phys = page_to_phys(page);
|
||||||
unsigned long addr = CACHE_OC_ADDRESS_ARRAY;
|
unsigned long addr = CACHE_OC_ADDRESS_ARRAY;
|
||||||
int i, n;
|
int i, n;
|
||||||
|
|
||||||
/* Loop all the D-cache */
|
/* Loop all the D-cache */
|
||||||
n = boot_cpu_data.dcache.n_aliases;
|
n = boot_cpu_data.dcache.way_incr >> 12;
|
||||||
for (i = 0; i < n; i++, addr += 4096)
|
for (i = 0; i < n; i++, addr += 4096)
|
||||||
flush_cache_4096(addr, phys);
|
flush_cache_4096(addr, phys);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user