diff options
author | Dean Nelson <dcn@sgi.com> | 2007-10-16 04:24:45 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:42:53 -0400 |
commit | 0da7e01f5f37f441cccd7c8c0586e06db0981907 (patch) | |
tree | 3d43edc4166667948415de84254bd60cfb457734 | |
parent | 2408c55037c3f7d51a8a100025c47595e71b838c (diff) |
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>
-rw-r--r-- | mm/memory.c | 2 |
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, | |||
2361 | int write_access, pte_t orig_pte) | 2361 | int write_access, pte_t orig_pte) |
2362 | { | 2362 | { |
2363 | pgoff_t pgoff = (((address & PAGE_MASK) | 2363 | pgoff_t pgoff = (((address & PAGE_MASK) |
2364 | - vma->vm_start) >> PAGE_CACHE_SHIFT) + vma->vm_pgoff; | 2364 | - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff; |
2365 | unsigned int flags = (write_access ? FAULT_FLAG_WRITE : 0); | 2365 | unsigned int flags = (write_access ? FAULT_FLAG_WRITE : 0); |
2366 | 2366 | ||
2367 | pte_unmap(page_table); | 2367 | pte_unmap(page_table); |