diff options
-rw-r--r-- | drivers/xen/balloon.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c index b7a506f2bb14..5c660c77f03b 100644 --- a/drivers/xen/balloon.c +++ b/drivers/xen/balloon.c | |||
@@ -426,20 +426,18 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp) | |||
426 | * p2m are consistent. | 426 | * p2m are consistent. |
427 | */ | 427 | */ |
428 | if (!xen_feature(XENFEAT_auto_translated_physmap)) { | 428 | if (!xen_feature(XENFEAT_auto_translated_physmap)) { |
429 | unsigned long p; | ||
430 | struct page *scratch_page = get_balloon_scratch_page(); | ||
431 | |||
432 | if (!PageHighMem(page)) { | 429 | if (!PageHighMem(page)) { |
430 | struct page *scratch_page = get_balloon_scratch_page(); | ||
431 | |||
433 | ret = HYPERVISOR_update_va_mapping( | 432 | ret = HYPERVISOR_update_va_mapping( |
434 | (unsigned long)__va(pfn << PAGE_SHIFT), | 433 | (unsigned long)__va(pfn << PAGE_SHIFT), |
435 | pfn_pte(page_to_pfn(scratch_page), | 434 | pfn_pte(page_to_pfn(scratch_page), |
436 | PAGE_KERNEL_RO), 0); | 435 | PAGE_KERNEL_RO), 0); |
437 | BUG_ON(ret); | 436 | BUG_ON(ret); |
438 | } | ||
439 | p = page_to_pfn(scratch_page); | ||
440 | __set_phys_to_machine(pfn, pfn_to_mfn(p)); | ||
441 | 437 | ||
442 | put_balloon_scratch_page(); | 438 | put_balloon_scratch_page(); |
439 | } | ||
440 | __set_phys_to_machine(pfn, INVALID_P2M_ENTRY); | ||
443 | } | 441 | } |
444 | #endif | 442 | #endif |
445 | 443 | ||