aboutsummaryrefslogtreecommitdiffstats
path: root/mm/madvise.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-03-23 07:59:38 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-03-23 07:59:38 +0100
commitbaca54d956f77be9abc487bcdddf7a2a1fbbda1b (patch)
tree4dbd646d7f533c2c741ecb428563a84f5af8ceec /mm/madvise.c
parent217fb361167d4e108b9076e826a6d9624252696a (diff)
parent16fbf79b0f83bc752cee8589279f1ebfe57b3b6e (diff)
downloadkernel_replicant_linux-baca54d956f77be9abc487bcdddf7a2a1fbbda1b.tar.gz
kernel_replicant_linux-baca54d956f77be9abc487bcdddf7a2a1fbbda1b.tar.bz2
kernel_replicant_linux-baca54d956f77be9abc487bcdddf7a2a1fbbda1b.zip
Merge 5.6-rc7 into char-misc-next
We need the char/misc driver fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm/madvise.c')
-rw-r--r--mm/madvise.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/mm/madvise.c b/mm/madvise.c
index 43b47d3fae02..4bb30ed6c8d2 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -335,12 +335,14 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
}
page = pmd_page(orig_pmd);
+
+ /* Do not interfere with other mappings of this page */
+ if (page_mapcount(page) != 1)
+ goto huge_unlock;
+
if (next - addr != HPAGE_PMD_SIZE) {
int err;
- if (page_mapcount(page) != 1)
- goto huge_unlock;
-
get_page(page);
spin_unlock(ptl);
lock_page(page);
@@ -426,6 +428,10 @@ regular_page:
continue;
}
+ /* Do not interfere with other mappings of this page */
+ if (page_mapcount(page) != 1)
+ continue;
+
VM_BUG_ON_PAGE(PageTransCompound(page), page);
if (pte_young(ptent)) {