lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 28 Jan 2022 05:09:51 -0800 From: Michel Lespinasse <michel@...pinasse.org> To: Linux-MM <linux-mm@...ck.org>, linux-kernel@...r.kernel.org, Andrew Morton <akpm@...ux-foundation.org> Cc: kernel-team@...com, Laurent Dufour <ldufour@...ux.ibm.com>, Jerome Glisse <jglisse@...gle.com>, Peter Zijlstra <peterz@...radead.org>, Michal Hocko <mhocko@...e.com>, Vlastimil Babka <vbabka@...e.cz>, Davidlohr Bueso <dave@...olabs.net>, Matthew Wilcox <willy@...radead.org>, Liam Howlett <liam.howlett@...cle.com>, Rik van Riel <riel@...riel.com>, Paul McKenney <paulmck@...nel.org>, Song Liu <songliubraving@...com>, Suren Baghdasaryan <surenb@...gle.com>, Minchan Kim <minchan@...gle.com>, Joel Fernandes <joelaf@...gle.com>, David Rientjes <rientjes@...gle.com>, Axel Rasmussen <axelrasmussen@...gle.com>, Andy Lutomirski <luto@...nel.org>, Michel Lespinasse <michel@...pinasse.org> Subject: [PATCH v2 20/35] mm: implement speculative handling in do_numa_page() change do_numa_page() to use pte_spinlock() when locking the page table, so that the mmap sequence counter will be validated in the speculative case. Signed-off-by: Michel Lespinasse <michel@...pinasse.org> --- mm/memory.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index 74b51aae8166..083e015ff194 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4441,8 +4441,8 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) * validation through pte_unmap_same(). It's of NUMA type but * the pfn may be screwed if the read is non atomic. */ - vmf->ptl = pte_lockptr(vma->vm_mm, vmf->pmd); - spin_lock(vmf->ptl); + if (!pte_spinlock(vmf)) + return VM_FAULT_RETRY; if (unlikely(!pte_same(*vmf->pte, vmf->orig_pte))) { pte_unmap_unlock(vmf->pte, vmf->ptl); goto out; -- 2.20.1
Powered by blists - more mailing lists