aboutsummaryrefslogtreecommitdiff
path: root/mm/memory.c
diff options
context:
space:
mode:
authorGravatar Dean Nelson <dcn@sgi.com> 2007-10-16 01:24:45 -0700
committerGravatar Linus Torvalds <torvalds@woody.linux-foundation.org> 2007-10-16 09:42:53 -0700
commit0da7e01f5f37f441cccd7c8c0586e06db0981907 (patch)
tree3d43edc4166667948415de84254bd60cfb457734 /mm/memory.c
parent{slub, slob}: use unlikely() for kfree(ZERO_OR_NULL_PTR) check (diff)
downloadlinux-0da7e01f5f37f441cccd7c8c0586e06db0981907.tar.gz
linux-0da7e01f5f37f441cccd7c8c0586e06db0981907.tar.bz2
linux-0da7e01f5f37f441cccd7c8c0586e06db0981907.zip
calculation of pgoff in do_linear_fault() uses mixed units
The calculation of pgoff in do_linear_fault() should use PAGE_SHIFT and not PAGE_CACHE_SHIFT since vma->vm_pgoff is in units of PAGE_SIZE and not PAGE_CACHE_SIZE. At the moment linux/pagemap.h has PAGE_CACHE_SHIFT defined as PAGE_SHIFT, but should that ever change this calculation would break. Signed-off-by: Dean Nelson <dcn@sgi.com> Acked-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/memory.c')
-rw-r--r--mm/memory.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/memory.c b/mm/memory.c
index 2a8430844b6d..b3c42f0f65c2 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -2361,7 +2361,7 @@ static int do_linear_fault(struct mm_struct *mm, struct vm_area_struct *vma,
int write_access, pte_t orig_pte)
{
pgoff_t pgoff = (((address & PAGE_MASK)
- - vma->vm_start) >> PAGE_CACHE_SHIFT) + vma->vm_pgoff;
+ - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff;
unsigned int flags = (write_access ? FAULT_FLAG_WRITE : 0);
pte_unmap(page_table);