From 9fa0fc1b249b48f15ef1948937b3453f1bfe26a0 Mon Sep 17 00:00:00 2001 From: Izik Eidus <ieidus@redhat.com> Date: Wed, 15 Apr 2009 18:15:29 +0300 Subject: [PATCH 03/15] KSM: fix bug 495912 change get_user_pages() return value check. Signed-off-by: Izik Eidus <ieidus@redhat.com> Message-Id: <1239808529-22398-7-git-send-email-ieidus@redhat.com> Message-Id: <1239808529-22398-7-git-send-email-ieidus@redhat.com> Message-Id: <1240106904-21687-7-git-send-email-ieidus@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com RH-Upstream-status: pending Acked-by: Andrea Arcangeli <aarcange@redhat.com> Acked-by: "Michael S. Tsirkin" <mst@redhat.com> Acked-by: john cooper <john.cooper@redhat.com> Bugzilla: 500263 --- kernel/ksm/ksm_main.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/ksm/ksm_main.c b/kernel/ksm/ksm_main.c index f620f42..818711e 100644 --- a/kernel/ksm/ksm_main.c +++ b/kernel/ksm/ksm_main.c @@ -618,7 +618,7 @@ static int try_to_merge_two_pages_alloc(struct mm_struct *mm1, struct page *tmppage[1]; down_read(&mm1->mmap_sem); if (get_user_pages(current, mm1, addr1, 1, 1, 0, - tmppage, NULL)) { + tmppage, NULL) == 1) { put_page(tmppage[0]); } up_read(&mm1->mmap_sem); @@ -681,7 +681,7 @@ static int is_zapped_item(struct rmap_item *rmap_item, up_read(&rmap_item->mm->mmap_sem); } - if (!ret) + if (ret != 1) return 1; if (unlikely(!PageKsm(page[0]))) { @@ -834,7 +834,7 @@ static struct tree_item *unstable_tree_search_insert(struct page *page, ret = get_user_pages(current, rmap_item->mm, rmap_item->address, 1, 0, 0, page2, NULL); up_read(&rmap_item->mm->mmap_sem); - if (!ret) + if (ret != 1) return NULL; ret = memcmp_pages(page, page2[0]); -- 1.6.3.rc4.29.g8146