diff options
-rw-r--r-- | drivers/xen/balloon.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c index a3dc75db135c..3101cf6daf56 100644 --- a/drivers/xen/balloon.c +++ b/drivers/xen/balloon.c | |||
@@ -430,8 +430,13 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp) | |||
430 | /* No more mappings: invalidate P2M and add to balloon. */ | 430 | /* No more mappings: invalidate P2M and add to balloon. */ |
431 | for (i = 0; i < nr_pages; i++) { | 431 | for (i = 0; i < nr_pages; i++) { |
432 | pfn = mfn_to_pfn(frame_list[i]); | 432 | pfn = mfn_to_pfn(frame_list[i]); |
433 | __set_phys_to_machine(pfn, | 433 | if (!xen_feature(XENFEAT_auto_translated_physmap)) { |
434 | pfn_to_mfn(page_to_pfn(__get_cpu_var(balloon_scratch_page)))); | 434 | unsigned long p; |
435 | struct page *pg; | ||
436 | pg = __get_cpu_var(balloon_scratch_page); | ||
437 | p = page_to_pfn(pg); | ||
438 | __set_phys_to_machine(pfn, pfn_to_mfn(p)); | ||
439 | } | ||
435 | balloon_append(pfn_to_page(pfn)); | 440 | balloon_append(pfn_to_page(pfn)); |
436 | } | 441 | } |
437 | 442 | ||