Messages in this thread Patch in this message | | | From | Laurent Dufour <> | Subject | [RFC v3 16/17] mm: protect madvise vs speculative pf | Date | Thu, 27 Apr 2017 17:52:55 +0200 |
| |
This is an attempt to protect madvise's effect against the speculative page fault handler.
Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com> --- mm/madvise.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/mm/madvise.c b/mm/madvise.c index 0e3828eae9f8..f91b64564571 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -132,8 +132,9 @@ static long madvise_behavior(struct vm_area_struct *vma, /* * vm_flags is protected by the mmap_sem held in write mode. */ + write_seqcount_begin(&vma->vm_sequence); vma->vm_flags = new_flags; - + write_seqcount_end(&vma->vm_sequence); out: if (error == -ENOMEM) error = -EAGAIN; @@ -403,9 +404,11 @@ static void madvise_free_page_range(struct mmu_gather *tlb, .private = tlb, }; + write_seqcount_begin(&vma->vm_sequence); tlb_start_vma(tlb, vma); walk_page_range(addr, end, &free_walk); tlb_end_vma(tlb, vma); + write_seqcount_end(&vma->vm_sequence); } static int madvise_free_single_vma(struct vm_area_struct *vma, -- 2.7.4
| |