diff options
author | Ingo Molnar <mingo@kernel.org> | 2017-10-20 13:06:52 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-10-20 13:06:52 +0200 |
commit | 967535223f9a8d95c187a8728480b569164cd4f4 (patch) | |
tree | b68a403701555a747b25c903d8136d86a1a1c133 /mm/ksm.c | |
parent | 5b65c4677a57a1d4414212f9995aa0e46a21ff80 (diff) | |
parent | ce56a86e2ade45d052b3228cdfebe913a1ae7381 (diff) | |
download | linux-967535223f9a8d95c187a8728480b569164cd4f4.tar.gz linux-967535223f9a8d95c187a8728480b569164cd4f4.tar.bz2 linux-967535223f9a8d95c187a8728480b569164cd4f4.zip |
Merge branch 'x86/urgent' into x86/mm, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'mm/ksm.c')
-rw-r--r-- | mm/ksm.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -1990,6 +1990,7 @@ static void stable_tree_append(struct rmap_item *rmap_item, */ static void cmp_and_merge_page(struct page *page, struct rmap_item *rmap_item) { + struct mm_struct *mm = rmap_item->mm; struct rmap_item *tree_rmap_item; struct page *tree_page = NULL; struct stable_node *stable_node; @@ -2062,9 +2063,11 @@ static void cmp_and_merge_page(struct page *page, struct rmap_item *rmap_item) if (ksm_use_zero_pages && (checksum == zero_checksum)) { struct vm_area_struct *vma; - vma = find_mergeable_vma(rmap_item->mm, rmap_item->address); + down_read(&mm->mmap_sem); + vma = find_mergeable_vma(mm, rmap_item->address); err = try_to_merge_one_page(vma, page, ZERO_PAGE(rmap_item->address)); + up_read(&mm->mmap_sem); /* * In case of failure, the page was not really empty, so we * need to continue. Otherwise we're done. @@ -3043,7 +3046,7 @@ static struct attribute *ksm_attrs[] = { NULL, }; -static struct attribute_group ksm_attr_group = { +static const struct attribute_group ksm_attr_group = { .attrs = ksm_attrs, .name = "ksm", }; |