riscv: Fix huge_ptep_set_wrprotect when PTE is a NAPOT
authorAlexandre Ghiti <alexghiti@rivosinc.com>
Fri, 28 Apr 2023 12:01:19 +0000 (14:01 +0200)
committerPalmer Dabbelt <palmer@rivosinc.com>
Fri, 2 Jun 2023 01:15:20 +0000 (18:15 -0700)
commit835e5ac3f98e78eca5c512bd48bd1880b90c4eb1
tree1074e1782e58ec6c59ed4650dbcae769a4ba799b
parent9a7e8ec0d4cc64870ea449b4fce5779b77496cbb
riscv: Fix huge_ptep_set_wrprotect when PTE is a NAPOT

We need to avoid inconsistencies across the PTEs that form a NAPOT
region, so when we write protect such a region, we should clear and flush
all the PTEs to make sure that any of those PTEs is not cached which would
result in such inconsistencies (arm64 does the same).

Fixes: 82a1a1f3bfb6 ("riscv: mm: support Svnapot in hugetlb page")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Link: https://lore.kernel.org/r/20230428120120.21620-1-alexghiti@rivosinc.com
Cc: stable@vger.kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/mm/hugetlbpage.c