xen/balloon: Fix crash when ballooning on x86 32 bit PAE
authorRoss Lagerwall <ross.lagerwall@citrix.com>
Thu, 17 Mar 2016 16:52:00 +0000 (16:52 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 May 2016 09:21:15 +0000 (11:21 +0200)
commit58d378b24b7f615b779ec20e7b7eebed8a3d8011
tree36f0f2936791cc14529278d64cf20277a5fce986
parent0f7ea0699ac02fb7c5d67e8eac8f8581912f4988
xen/balloon: Fix crash when ballooning on x86 32 bit PAE

commit dfd74a1edfaba5864276a2859190a8d242d18952 upstream.

Commit 55b3da98a40dbb3776f7454daf0d95dde25c33d2 (xen/balloon: find
non-conflicting regions to place hotplugged memory) caused a
regression in 4.4.

When ballooning on an x86 32 bit PAE system with close to 64 GiB of
memory, the address returned by allocate_resource may be above 64 GiB.
When using CONFIG_SPARSEMEM, this setup is limited to using physical
addresses < 64 GiB.  When adding memory at this address, it runs off
the end of the mem_section array and causes a crash.  Instead, fail
the ballooning request.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/xen/balloon.c