diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-12-15 22:52:40 +0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-12-15 22:52:40 +0400 |
commit | 42ebfc61cfcb13af3e638db1c497dcbde7abfed8 (patch) | |
tree | a347967678d8f8a8a8ade7f37796ab62fb487308 /arch | |
parent | 55b02d2f4445ad625213817a1736bf2884d32547 (diff) | |
parent | 63a741757d15320a25ebf5778f8651cce2ed0611 (diff) | |
download | linux-42ebfc61cfcb13af3e638db1c497dcbde7abfed8.tar.xz |
Merge branch 'stable/for-linus-fixes-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
* 'stable/for-linus-fixes-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
xen/swiotlb: Use page alignment for early buffer allocation.
xen: only limit memory map to maximum reservation for domain 0.
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/xen/setup.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index 1093f80c162d..b2c7179fa263 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c @@ -173,9 +173,21 @@ static unsigned long __init xen_get_max_pages(void) domid_t domid = DOMID_SELF; int ret; - ret = HYPERVISOR_memory_op(XENMEM_maximum_reservation, &domid); - if (ret > 0) - max_pages = ret; + /* + * For the initial domain we use the maximum reservation as + * the maximum page. + * + * For guest domains the current maximum reservation reflects + * the current maximum rather than the static maximum. In this + * case the e820 map provided to us will cover the static + * maximum region. + */ + if (xen_initial_domain()) { + ret = HYPERVISOR_memory_op(XENMEM_maximum_reservation, &domid); + if (ret > 0) + max_pages = ret; + } + return min(max_pages, MAX_DOMAIN_PAGES); } |