Patch "thp: fix MADV_DONTNEED vs clear soft dirty race" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
thp: fix MADV_DONTNEED vs clear soft dirty race
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
thp-fix-madv_dontneed-vs-clear-soft-dirty-race.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
5b7abeae3af8c08c577e599dd0578b9e3ee6687bMon Sep 17 00:00:00 2001
From: "Kirill A. Shutemov" <[email protected]>
Date: Thu, 13 Apr 2017 14:56:28 -0700
Subject: thp: fix MADV_DONTNEED vs clear soft dirty race
From: Kirill A. Shutemov <[email protected]>
commit 5b7abeae3af8c08c577e599dd0578b9e3ee6687b upstream.
Yet another instance of the same race.
Fix is identical to change_huge_pmd().
See "thp: fix MADV_DONTNEED vs. numa balancing race" for more details.
--- fs/proc/task_mmu.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
fs/proc/task_mmu.c +8 -1
@@ -803,7 +803,14 @@ static inline void clear_soft_dirty(strustatic inline void clear_soft_dirty_pmd (struct vm_area_struct *vma,unsigned long addr,pmd_t *pmdp) { -pmd_t pmd =pmdp_huge_get_and_clear (vma->vm_mm, addr, pmdp); +pmd_t pmd = *pmdp; + +/* See comment in change_huge_pmd() */ +pmdp_invalidate (vma, addr, pmdp); +if (pmd_dirty (*pmdp)) + pmd =pmd_mkdirty (pmd); +if (pmd_young (*pmdp)) + pmd =pmd_mkyoung (pmd); pmd =pmd_wrprotect (pmd); pmd =pmd_clear_soft_dirty (pmd);
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/thp-fix-madv_dontneed-vs-clear-soft-dirty-race.patch