From 1b7ca44c7114e98c299c94899ed6fd1ab2280ea0 Mon Sep 17 00:00:00 2001 From: Vinayak Menon Date: Tue, 16 Mar 2021 17:32:45 +0530 Subject: [PATCH] mm: fix non-anon COW fault Speculative page fault should skip non-anon COW faults. But the check uses flags from vmf which is not initialized at that point. Fix that. Fixes: eed0466ffa ("mm: skip speculative path for non-anonymous COW faults") Change-Id: I86c3032680461b1369650d97a06616fd14472632 Signed-off-by: Vinayak Menon --- mm/memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/memory.c b/mm/memory.c index d11962ec85fb..f5c249507933 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4263,7 +4263,7 @@ int __handle_speculative_fault(struct mm_struct *mm, unsigned long address, if (unlikely((vma_is_anonymous(vmf.vma) && !vmf.vma->anon_vma) || (!vma_is_anonymous(vmf.vma) && !(vmf.vma->vm_flags & VM_SHARED) && - (vmf.flags & FAULT_FLAG_WRITE) && + (flags & FAULT_FLAG_WRITE) && !vmf.vma->anon_vma))) return VM_FAULT_RETRY;