UPSTREAM: mm, thp: Do not make page table dirty unconditionally in touch_p[mu]d()
commit a8f97366452ed491d13cf1e44241bc0b5740b1f0 upstream.
Currently, we unconditionally make page table dirty in touch_pmd().
It may result in false-positive can_follow_write_pmd().
We may avoid the situation, if we would only make the page table entry
dirty if caller asks for write access -- FOLL_WRITE.
The patch also changes touch_pud() in the same way.
Signed-off-by: Kirill A. Shutemov <email@example.com>
Cc: Michal Hocko <firstname.lastname@example.org>
Cc: Hugh Dickins <email@example.com>
Signed-off-by: Linus Torvalds <firstname.lastname@example.org>
[Salvatore Bonaccorso: backport for 3.16:
- Adjust context
- Drop specific part for PUD-sized transparent hugepages. Support
for PUD-sized transparent hugepages was added in v4.11-rc1
Signed-off-by: Ben Hutchings <email@example.com>
Signed-off-by: Greg Kroah-Hartman <firstname.lastname@example.org>
(cherry picked from commit 2b7ef6bdd28610f2907cd766362cf95d0d023801)
Signed-off-by: Daniel Wang <email@example.com>
Reviewed-by: Guenter Roeck <firstname.lastname@example.org>
Commit-Queue: Daniel Wang <email@example.com>
Tested-by: Daniel Wang <firstname.lastname@example.org>
1 file changed