Message ID | 20240301201837.2826172-1-samuel.holland@sifive.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 674bc0168e6b68070c75df22e97ab63b6eb60d89 |
Headers | show |
Series | riscv: mm: Fix prototype to avoid discarding const | expand |
On Fri, Mar 01, 2024 at 12:18:32PM -0800, Samuel Holland wrote: > __flush_tlb_range() does not modify the provided cpumask, so its cmask > parameter can be pointer-to-const. This avoids the unsafe cast of > cpu_online_mask. > > Fixes: 54d7431af73e ("riscv: Add support for BATCHED_UNMAP_TLB_FLUSH") > Signed-off-by: Samuel Holland <samuel.holland@sifive.com> > --- > > arch/riscv/mm/tlbflush.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/riscv/mm/tlbflush.c b/arch/riscv/mm/tlbflush.c > index 893566e004b7..07d743f87b3f 100644 > --- a/arch/riscv/mm/tlbflush.c > +++ b/arch/riscv/mm/tlbflush.c > @@ -99,7 +99,7 @@ static void __ipi_flush_tlb_range_asid(void *info) > local_flush_tlb_range_asid(d->start, d->size, d->stride, d->asid); > } > > -static void __flush_tlb_range(struct cpumask *cmask, unsigned long asid, > +static void __flush_tlb_range(const struct cpumask *cmask, unsigned long asid, > unsigned long start, unsigned long size, > unsigned long stride) > { > @@ -200,7 +200,7 @@ void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, > > void flush_tlb_kernel_range(unsigned long start, unsigned long end) > { > - __flush_tlb_range((struct cpumask *)cpu_online_mask, FLUSH_TLB_NO_ASID, > + __flush_tlb_range(cpu_online_mask, FLUSH_TLB_NO_ASID, > start, end - start, PAGE_SIZE); > } > > -- > 2.43.1 > Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Hi Samuel, On 01/03/2024 21:18, Samuel Holland wrote: > __flush_tlb_range() does not modify the provided cpumask, so its cmask > parameter can be pointer-to-const. This avoids the unsafe cast of > cpu_online_mask. > > Fixes: 54d7431af73e ("riscv: Add support for BATCHED_UNMAP_TLB_FLUSH") > Signed-off-by: Samuel Holland <samuel.holland@sifive.com> > --- > > arch/riscv/mm/tlbflush.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/riscv/mm/tlbflush.c b/arch/riscv/mm/tlbflush.c > index 893566e004b7..07d743f87b3f 100644 > --- a/arch/riscv/mm/tlbflush.c > +++ b/arch/riscv/mm/tlbflush.c > @@ -99,7 +99,7 @@ static void __ipi_flush_tlb_range_asid(void *info) > local_flush_tlb_range_asid(d->start, d->size, d->stride, d->asid); > } > > -static void __flush_tlb_range(struct cpumask *cmask, unsigned long asid, > +static void __flush_tlb_range(const struct cpumask *cmask, unsigned long asid, > unsigned long start, unsigned long size, > unsigned long stride) > { > @@ -200,7 +200,7 @@ void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, > > void flush_tlb_kernel_range(unsigned long start, unsigned long end) > { > - __flush_tlb_range((struct cpumask *)cpu_online_mask, FLUSH_TLB_NO_ASID, > + __flush_tlb_range(cpu_online_mask, FLUSH_TLB_NO_ASID, > start, end - start, PAGE_SIZE); > } > Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com> Thanks, Alex
Hello: This patch was applied to riscv/linux.git (fixes) by Palmer Dabbelt <palmer@rivosinc.com>: On Fri, 1 Mar 2024 12:18:32 -0800 you wrote: > __flush_tlb_range() does not modify the provided cpumask, so its cmask > parameter can be pointer-to-const. This avoids the unsafe cast of > cpu_online_mask. > > Fixes: 54d7431af73e ("riscv: Add support for BATCHED_UNMAP_TLB_FLUSH") > Signed-off-by: Samuel Holland <samuel.holland@sifive.com> > > [...] Here is the summary with links: - riscv: mm: Fix prototype to avoid discarding const https://git.kernel.org/riscv/c/674bc0168e6b You are awesome, thank you!
diff --git a/arch/riscv/mm/tlbflush.c b/arch/riscv/mm/tlbflush.c index 893566e004b7..07d743f87b3f 100644 --- a/arch/riscv/mm/tlbflush.c +++ b/arch/riscv/mm/tlbflush.c @@ -99,7 +99,7 @@ static void __ipi_flush_tlb_range_asid(void *info) local_flush_tlb_range_asid(d->start, d->size, d->stride, d->asid); } -static void __flush_tlb_range(struct cpumask *cmask, unsigned long asid, +static void __flush_tlb_range(const struct cpumask *cmask, unsigned long asid, unsigned long start, unsigned long size, unsigned long stride) { @@ -200,7 +200,7 @@ void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, void flush_tlb_kernel_range(unsigned long start, unsigned long end) { - __flush_tlb_range((struct cpumask *)cpu_online_mask, FLUSH_TLB_NO_ASID, + __flush_tlb_range(cpu_online_mask, FLUSH_TLB_NO_ASID, start, end - start, PAGE_SIZE); }
__flush_tlb_range() does not modify the provided cpumask, so its cmask parameter can be pointer-to-const. This avoids the unsafe cast of cpu_online_mask. Fixes: 54d7431af73e ("riscv: Add support for BATCHED_UNMAP_TLB_FLUSH") Signed-off-by: Samuel Holland <samuel.holland@sifive.com> --- arch/riscv/mm/tlbflush.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)