Skip to content

Commit

Permalink
xen/balloon: make sure we only include remaining extra ram
Browse files Browse the repository at this point in the history
If the user specifies mem= on the kernel command line, some or all
of the extra memory E820 region may be clipped away, so make sure
we don't try to add more extra memory than exists in E820.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
  • Loading branch information
Jeremy Fitzhardinge committed Nov 20, 2010
1 parent 2f70e0a commit 66946f6
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions drivers/xen/balloon.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
#include <asm/pgtable.h>
#include <asm/uaccess.h>
#include <asm/tlb.h>
#include <asm/e820.h>

#include <asm/xen/hypervisor.h>
#include <asm/xen/hypercall.h>
Expand Down Expand Up @@ -391,7 +392,7 @@ static struct notifier_block xenstore_notifier;

static int __init balloon_init(void)
{
unsigned long pfn;
unsigned long pfn, extra_pfn_end;
struct page *page;

if (!xen_pv_domain())
Expand All @@ -412,8 +413,10 @@ static int __init balloon_init(void)
register_balloon(&balloon_sysdev);

/* Initialise the balloon with excess memory space. */
extra_pfn_end = min(e820_end_of_ram_pfn(),
(unsigned long)PFN_DOWN(xen_extra_mem_start + xen_extra_mem_size));
for (pfn = PFN_UP(xen_extra_mem_start);
pfn < PFN_DOWN(xen_extra_mem_start + xen_extra_mem_size);
pfn < extra_pfn_end;
pfn++) {
page = pfn_to_page(pfn);
/* totalram_pages doesn't include the boot-time
Expand Down

0 comments on commit 66946f6

Please sign in to comment.