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

yunhui cui cuiyunhui at bytedance.com
Tue Jan 23 18:44:12 PST 2024


Hi Alexandre,

On Tue, Jan 23, 2024 at 9:31 PM Alexandre Ghiti <alexghiti at rivosinc.com> 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 at rivosinc.com>
> ---
>  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);
>  }

What makes me curious is that this patch has not been tested?
BTW, It is best to keep the parameter order of all functions in
tlbflush.c consistent: cpumask, start, size, stride, asid.

Thanks,
Yunhui



More information about the linux-riscv mailing list