diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-05-17 14:02:08 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-05-17 14:02:08 +0200 |
commit | e6a62f955681c58f49b1ce74222d6670fb55bb33 (patch) | |
tree | b7122202e22b1bbd8bd0e9b762e1675de8d2ea42 /arch/riscv/mm/pageattr.c | |
parent | 7e55399235e88fa56bc2763d1d900e75e582d114 (diff) | |
parent | 170014a900a54d2c44ba6aacd3acda1733018c69 (diff) | |
download | linux-stable-linux-rolling-stable.tar.gz |
Merge v6.3.3linux-rolling-stable
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/riscv/mm/pageattr.c')
-rw-r--r-- | arch/riscv/mm/pageattr.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/riscv/mm/pageattr.c b/arch/riscv/mm/pageattr.c index 86c56616e5de..ea3d61de065b 100644 --- a/arch/riscv/mm/pageattr.c +++ b/arch/riscv/mm/pageattr.c @@ -217,18 +217,26 @@ bool kernel_page_present(struct page *page) pgd = pgd_offset_k(addr); if (!pgd_present(*pgd)) return false; + if (pgd_leaf(*pgd)) + return true; p4d = p4d_offset(pgd, addr); if (!p4d_present(*p4d)) return false; + if (p4d_leaf(*p4d)) + return true; pud = pud_offset(p4d, addr); if (!pud_present(*pud)) return false; + if (pud_leaf(*pud)) + return true; pmd = pmd_offset(pud, addr); if (!pmd_present(*pmd)) return false; + if (pmd_leaf(*pmd)) + return true; pte = pte_offset_kernel(pmd, addr); return pte_present(*pte); |