From d12fee9e3079576e74b39f7148a43f72aaea4c88 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Mon, 28 Jul 2008 17:54:21 -0700 Subject: [PATCH] --- yaml --- r: 106940 b: refs/heads/master c: 9b79022ca909b66e2cd0cfd9248f832fc165f77f h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/x86/mm/gup.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index bd2677faae3c..cbb7e7edc05c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 34ee55014283a60efa3534c06e010579ffdd3756 +refs/heads/master: 9b79022ca909b66e2cd0cfd9248f832fc165f77f diff --git a/trunk/arch/x86/mm/gup.c b/trunk/arch/x86/mm/gup.c index 3085f25b4355..007bb06c7504 100644 --- a/trunk/arch/x86/mm/gup.c +++ b/trunk/arch/x86/mm/gup.c @@ -223,14 +223,17 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write, struct page **pages) { struct mm_struct *mm = current->mm; - unsigned long end = start + (nr_pages << PAGE_SHIFT); - unsigned long addr = start; + unsigned long addr, len, end; unsigned long next; pgd_t *pgdp; int nr = 0; + start &= PAGE_MASK; + addr = start; + len = (unsigned long) nr_pages << PAGE_SHIFT; + end = start + len; if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ, - start, nr_pages*PAGE_SIZE))) + start, len))) goto slow_irqon; /*