riscv: Fix set_huge_pte_at() for NAPOT mapping
authorAlexandre Ghiti <alexghiti@rivosinc.com>
Wed, 17 Jan 2024 19:57:40 +0000 (20:57 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 16 Feb 2024 18:10:52 +0000 (19:10 +0100)
commit21dba4e4f071d038b7495da26fd1e9d96c9367ac
treec5bc3fb4458e5a86a656f3ab8279d2b11883b856
parentd37708448b132e0b38f6c6d6aa580e8c8d9ca715
riscv: Fix set_huge_pte_at() for NAPOT mapping

[ Upstream commit 1458eb2c9d88ad4b35eb6d6a4aa1d43d8fbf7f62 ]

As stated by the privileged specification, we must clear a NAPOT
mapping and emit a sfence.vma before setting a new translation.

Fixes: 82a1a1f3bfb6 ("riscv: mm: support Svnapot in hugetlb page")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20240117195741.1926459-2-alexghiti@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/riscv/mm/hugetlbpage.c