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)
committerDavid Vrabel <david.vrabel@citrix.com>
Wed, 6 Apr 2016 10:29:18 +0000 (11:29 +0100)
commitdfd74a1edfaba5864276a2859190a8d242d18952
treee5c6287363a3b7e75b34c0b84e1ffa422894a0e2
parent60901df3aed230d4565dca003f11b6a95fbf30d9
xen/balloon: Fix crash when ballooning on x86 32 bit PAE

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>
Cc: <stable@vger.kernel.org> # 4.4+
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
drivers/xen/balloon.c