diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2025-04-04 23:04:35 -0700 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2025-04-04 23:04:35 -0700 |
| commit | 946661e3bef8efa11ba8079d4ebafe6fc3b0aaad (patch) | |
| tree | a90605abb7bb65503a2d3f93a79e19a01aaa5e89 /include/linux/pgtable.h | |
| parent | fd10709e28d2fa9015667aee56d92099fc97aa0d (diff) | |
| parent | 4d395cb071a343196ca524d3694790f06978fe91 (diff) | |
| download | lwn-946661e3bef8efa11ba8079d4ebafe6fc3b0aaad.tar.gz lwn-946661e3bef8efa11ba8079d4ebafe6fc3b0aaad.zip | |
Merge branch 'next' into for-linus
Prepare input updates for 6.15 merge window.
Diffstat (limited to 'include/linux/pgtable.h')
| -rw-r--r-- | include/linux/pgtable.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h index adef9d6e9b1b..94d267d02372 100644 --- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -533,7 +533,14 @@ static inline void clear_young_dirty_ptes(struct vm_area_struct *vma, static inline void ptep_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) { - ptep_get_and_clear(mm, addr, ptep); + pte_t pte = ptep_get(ptep); + + pte_clear(mm, addr, ptep); + /* + * No need for ptep_get_and_clear(): page table check doesn't care about + * any bits that could have been set by HW concurrently. + */ + page_table_check_pte_clear(mm, pte); } #ifdef CONFIG_GUP_GET_PXX_LOW_HIGH |
