diff options
| -rw-r--r-- | arch/x86/xen/setup.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index 664dffc29b6b..feb6d86fa0a0 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c | |||
| @@ -366,7 +366,7 @@ static void __init xen_do_set_identity_and_remap_chunk( | |||
| 366 | static unsigned long __init xen_set_identity_and_remap_chunk( | 366 | static unsigned long __init xen_set_identity_and_remap_chunk( |
| 367 | const struct e820entry *list, size_t map_size, unsigned long start_pfn, | 367 | const struct e820entry *list, size_t map_size, unsigned long start_pfn, |
| 368 | unsigned long end_pfn, unsigned long nr_pages, unsigned long remap_pfn, | 368 | unsigned long end_pfn, unsigned long nr_pages, unsigned long remap_pfn, |
| 369 | unsigned long *released) | 369 | unsigned long *released, unsigned long *remapped) |
| 370 | { | 370 | { |
| 371 | unsigned long pfn; | 371 | unsigned long pfn; |
| 372 | unsigned long i = 0; | 372 | unsigned long i = 0; |
| @@ -404,6 +404,7 @@ static unsigned long __init xen_set_identity_and_remap_chunk( | |||
| 404 | /* Update variables to reflect new mappings. */ | 404 | /* Update variables to reflect new mappings. */ |
| 405 | i += size; | 405 | i += size; |
| 406 | remap_pfn += size; | 406 | remap_pfn += size; |
| 407 | *remapped += size; | ||
| 407 | } | 408 | } |
| 408 | 409 | ||
| 409 | /* | 410 | /* |
| @@ -420,12 +421,13 @@ static unsigned long __init xen_set_identity_and_remap_chunk( | |||
| 420 | 421 | ||
| 421 | static void __init xen_set_identity_and_remap( | 422 | static void __init xen_set_identity_and_remap( |
| 422 | const struct e820entry *list, size_t map_size, unsigned long nr_pages, | 423 | const struct e820entry *list, size_t map_size, unsigned long nr_pages, |
| 423 | unsigned long *released) | 424 | unsigned long *released, unsigned long *remapped) |
| 424 | { | 425 | { |
| 425 | phys_addr_t start = 0; | 426 | phys_addr_t start = 0; |
| 426 | unsigned long last_pfn = nr_pages; | 427 | unsigned long last_pfn = nr_pages; |
| 427 | const struct e820entry *entry; | 428 | const struct e820entry *entry; |
| 428 | unsigned long num_released = 0; | 429 | unsigned long num_released = 0; |
| 430 | unsigned long num_remapped = 0; | ||
| 429 | int i; | 431 | int i; |
| 430 | 432 | ||
| 431 | /* | 433 | /* |
| @@ -452,12 +454,13 @@ static void __init xen_set_identity_and_remap( | |||
| 452 | last_pfn = xen_set_identity_and_remap_chunk( | 454 | last_pfn = xen_set_identity_and_remap_chunk( |
| 453 | list, map_size, start_pfn, | 455 | list, map_size, start_pfn, |
| 454 | end_pfn, nr_pages, last_pfn, | 456 | end_pfn, nr_pages, last_pfn, |
| 455 | &num_released); | 457 | &num_released, &num_remapped); |
| 456 | start = end; | 458 | start = end; |
| 457 | } | 459 | } |
| 458 | } | 460 | } |
| 459 | 461 | ||
| 460 | *released = num_released; | 462 | *released = num_released; |
| 463 | *remapped = num_remapped; | ||
| 461 | 464 | ||
| 462 | pr_info("Released %ld page(s)\n", num_released); | 465 | pr_info("Released %ld page(s)\n", num_released); |
| 463 | } | 466 | } |
| @@ -577,6 +580,7 @@ char * __init xen_memory_setup(void) | |||
| 577 | struct xen_memory_map memmap; | 580 | struct xen_memory_map memmap; |
| 578 | unsigned long max_pages; | 581 | unsigned long max_pages; |
| 579 | unsigned long extra_pages = 0; | 582 | unsigned long extra_pages = 0; |
| 583 | unsigned long remapped_pages; | ||
| 580 | int i; | 584 | int i; |
| 581 | int op; | 585 | int op; |
| 582 | 586 | ||
| @@ -626,9 +630,10 @@ char * __init xen_memory_setup(void) | |||
| 626 | * underlying RAM. | 630 | * underlying RAM. |
| 627 | */ | 631 | */ |
| 628 | xen_set_identity_and_remap(map, memmap.nr_entries, max_pfn, | 632 | xen_set_identity_and_remap(map, memmap.nr_entries, max_pfn, |
| 629 | &xen_released_pages); | 633 | &xen_released_pages, &remapped_pages); |
| 630 | 634 | ||
| 631 | extra_pages += xen_released_pages; | 635 | extra_pages += xen_released_pages; |
| 636 | extra_pages += remapped_pages; | ||
| 632 | 637 | ||
| 633 | /* | 638 | /* |
| 634 | * Clamp the amount of extra memory to a EXTRA_MEM_RATIO | 639 | * Clamp the amount of extra memory to a EXTRA_MEM_RATIO |
