summaryrefslogtreecommitdiffstats
path: root/mm/hugetlb.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2007-10-01 10:20:10 +0200
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-01 16:52:23 +0200
commit281e0e3b34acb76a157576d27abc85c09fcf78e3 (patch)
tree136dc7376976685539c132690ff74aea79642737 /mm/hugetlb.c
parentAdd /dev/oldmem to devices.txt documentation (diff)
downloadlinux-281e0e3b34acb76a157576d27abc85c09fcf78e3.tar.xz
linux-281e0e3b34acb76a157576d27abc85c09fcf78e3.zip
hugetlb: fix clear_user_highpage arguments
The virtual address space argument of clear_user_highpage is supposed to be the virtual address where the page being cleared will eventually be mapped. This allows architectures with virtually indexed caches a few clever tricks. That sort of trick falls over in painful ways if the virtual address argument is wrong. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/hugetlb.c')
-rw-r--r--mm/hugetlb.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 84c795ee2d65..eab8c428cc93 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -42,7 +42,7 @@ static void clear_huge_page(struct page *page, unsigned long addr)
might_sleep();
for (i = 0; i < (HPAGE_SIZE/PAGE_SIZE); i++) {
cond_resched();
- clear_user_highpage(page + i, addr);
+ clear_user_highpage(page + i, addr + i * PAGE_SIZE);
}
}