mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
FROMLIST: 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@lespinasse.org> Link: https://lore.kernel.org/all/20220128131006.67712-21-michel@lespinasse.org/ Bug: 161210518 Signed-off-by: Suren Baghdasaryan <surenb@google.com> Change-Id: If252547faf2a8a6cbba4c0a7ff929071a5f6a657
This commit is contained in:
committed by
Todd Kjos
parent
c2b2abe724
commit
fedc4d513e
@@ -4443,8 +4443,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;
|
||||
|
||||
Reference in New Issue
Block a user