mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 05:02:12 +00:00
xen: fix scrub_page()
Impact: fix guest kernel crash with CONFIG_XEN_SCRUB_PAGES=y Jens noticed that scrub_page() has a buggy unmap of the wrong thing. (virtual address instead of page) Linus pointed out that the whole scrub_page() code is an unnecessary reimplementation of clear_highpage() to begin with. Just use clear_highpage() rather than reimplementing it poorly. Reported-by: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
d3c6aa1e69
commit
26a3e99160
@ -122,14 +122,7 @@ static struct timer_list balloon_timer;
|
|||||||
static void scrub_page(struct page *page)
|
static void scrub_page(struct page *page)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_XEN_SCRUB_PAGES
|
#ifdef CONFIG_XEN_SCRUB_PAGES
|
||||||
if (PageHighMem(page)) {
|
clear_highpage(page);
|
||||||
void *v = kmap(page);
|
|
||||||
clear_page(v);
|
|
||||||
kunmap(v);
|
|
||||||
} else {
|
|
||||||
void *v = page_address(page);
|
|
||||||
clear_page(v);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user