]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
parisc: Define and use set_pte_at()
authorJohn David Anglin <dave.anglin@bell.net>
Mon, 21 Jul 2025 20:06:21 +0000 (16:06 -0400)
committerHelge Deller <deller@gmx.de>
Fri, 25 Jul 2025 20:45:23 +0000 (22:45 +0200)
When a PTE is changed, we need to flush the PTE. set_pte_at()
was lost in the folio update. PA-RISC version is the same as
the generic version.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
Cc: stable@vger.kernel.org # v5.12+
arch/parisc/include/asm/pgtable.h

index 1a86a4370b298af1c6904c2f8b37d327b3438076..2c139a4dbf4b861e4df8b730e6d21d2858a82be3 100644 (file)
@@ -276,7 +276,7 @@ extern unsigned long *empty_zero_page;
 #define pte_none(x)     (pte_val(x) == 0)
 #define pte_present(x) (pte_val(x) & _PAGE_PRESENT)
 #define pte_user(x)    (pte_val(x) & _PAGE_USER)
-#define pte_clear(mm, addr, xp)  set_pte(xp, __pte(0))
+#define pte_clear(mm, addr, xp) set_pte_at((mm), (addr), (xp), __pte(0))
 
 #define pmd_flag(x)    (pmd_val(x) & PxD_FLAG_MASK)
 #define pmd_address(x) ((unsigned long)(pmd_val(x) &~ PxD_FLAG_MASK) << PxD_VALUE_SHIFT)
@@ -392,6 +392,7 @@ static inline void set_ptes(struct mm_struct *mm, unsigned long addr,
        }
 }
 #define set_ptes set_ptes
+#define set_pte_at(mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1)
 
 /* Used for deferring calls to flush_dcache_page() */
 
@@ -456,7 +457,7 @@ static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned
        if (!pte_young(pte)) {
                return 0;
        }
-       set_pte(ptep, pte_mkold(pte));
+       set_pte_at(vma->vm_mm, addr, ptep, pte_mkold(pte));
        return 1;
 }
 
@@ -466,7 +467,7 @@ pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long addr, pte_t *pt
 struct mm_struct;
 static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
 {
-       set_pte(ptep, pte_wrprotect(*ptep));
+       set_pte_at(mm, addr, ptep, pte_wrprotect(*ptep));
 }
 
 #define pte_same(A,B)  (pte_val(A) == pte_val(B))