diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2007-10-01 01:20:10 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-01 07:52:23 -0700 |
commit | 281e0e3b34acb76a157576d27abc85c09fcf78e3 (patch) | |
tree | 136dc7376976685539c132690ff74aea79642737 /mm/hugetlb.c | |
parent | 8814842fbb6d8907cd23711cc4cbc3a6a191080f (diff) | |
download | lwn-281e0e3b34acb76a157576d27abc85c09fcf78e3.tar.gz lwn-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.c | 2 |
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); } } |