Re: [PATCH] riscv: Fix wrong size passed to local_flush_tlb_range_asid()

From: Palmer Dabbelt
Date: Wed Jan 31 2024 - 15:34:48 EST


On Mon, 29 Jan 2024 01:01:00 PST (-0800), dennis@xxxxxxxxxx wrote:
Hi Alexandre,

On Tue, Jan 23, 2024 at 02:27:30PM +0100, Alexandre Ghiti wrote:
local_flush_tlb_range_asid() takes the size as argument, not the end of
the range to flush, so fix this by computing the size from the end and
the start of the range.

Fixes: 7a92fc8b4d20 ("mm: Introduce flush_cache_vmap_early()")
Signed-off-by: Alexandre Ghiti <alexghiti@xxxxxxxxxxxx>
---
arch/riscv/mm/tlbflush.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/riscv/mm/tlbflush.c b/arch/riscv/mm/tlbflush.c
index 8d12b26f5ac3..9619965f6501 100644
--- a/arch/riscv/mm/tlbflush.c
+++ b/arch/riscv/mm/tlbflush.c
@@ -68,7 +68,7 @@ static inline void local_flush_tlb_range_asid(unsigned long start,

void local_flush_tlb_kernel_range(unsigned long start, unsigned long end)
{
- local_flush_tlb_range_asid(start, end, PAGE_SIZE, FLUSH_TLB_NO_ASID);
+ local_flush_tlb_range_asid(start, end - start, PAGE_SIZE, FLUSH_TLB_NO_ASID);
}

static void __ipi_flush_tlb_all(void *info)
--
2.39.2


Sorry for the delay, I just pulled this into percpu#for-6.8-fixes. I'll
send it to Linus this week.

Do you mind if we do a shared tag or something? It's going to conflict with https://lore.kernel.org/all/20240117140333.2479667-1-vincent.chen@xxxxxxxxxx/ No big deal as it's a pretty trivial conflict, but they'll both need stable backports.


Thanks,
Dennis