Re: [PATCH] MIPS: loongson64: fix bug when PAGE_SIZE > 16KB
From: "Jiaxun Yang" <jiaxun.yang@flygoat.com>
Date: 2021-03-25 00:52:09
Also in:
linux-mips
From: "Jiaxun Yang" <jiaxun.yang@flygoat.com>
Date: 2021-03-25 00:52:09
Also in:
linux-mips
On Wed, Mar 24, 2021, at 11:24 AM, Huang Pei wrote:
When page size larger than 16KB, arguments "vaddr + size(16KB)" in
"ioremap_page_range(vaddr, vaddr + size,...)" called by
"add_legacy_isa_io" is not page-aligned.
As loongson64 needs at least page size 16KB to get rid of cache alias,
and "vaddr" is 64KB-aligned, and 64KB is largest page size supported,
rounding "size" up to PAGE_SIZE is enough for all page size supported.
Fixes: 6d0068ad15e4 ("MIPS: Loongson64: Process ISA Node in DeviceTree")
Signed-off-by: Huang Pei <redacted>Acked-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
--- arch/mips/loongson64/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/arch/mips/loongson64/init.c b/arch/mips/loongson64/init.c index ed75f7971261..052cce6a8a99 100644 --- a/arch/mips/loongson64/init.c +++ b/arch/mips/loongson64/init.c@@ -82,7 +82,7 @@ static int __init add_legacy_isa_io(structfwnode_handle *fwnode, resource_size_ return -ENOMEM; range->fwnode = fwnode; - range->size = size; + range->size = size = round_up(size, PAGE_SIZE); range->hw_start = hw_start; range->flags = LOGIC_PIO_CPU_MMIO; -- 2.17.1
-- - Jiaxun