summaryrefslogtreecommitdiffstats
path: root/hw/ppc
diff options
context:
space:
mode:
authorGreg Kurz2020-10-29 16:33:56 +0100
committerDavid Gibson2020-11-05 02:18:48 +0100
commitf29b959dc6871c9d8df781d1bedcfaebc76d5565 (patch)
treec2b01481c307229b61288d88f9daefb87fb2f688 /hw/ppc
parentspapr: Drop dead code in spapr_reallocate_hpt() (diff)
downloadqemu-f29b959dc6871c9d8df781d1bedcfaebc76d5565.tar.gz
qemu-f29b959dc6871c9d8df781d1bedcfaebc76d5565.tar.xz
qemu-f29b959dc6871c9d8df781d1bedcfaebc76d5565.zip
spapr: Convert hpt_prepare_thread() to use qemu_try_memalign()
HPT resizing is asynchronous: the guest first kicks off the creation of a new HPT, then it waits for that new HPT to be actually created and finally it asks the current HPT to be replaced by the new one. In the case of a userland allocated HPT, this currently relies on calling qemu_memalign() which aborts on OOM and never returns NULL. Since we seem to have path to report the failure to the guest with an H_NO_MEM return value, use qemu_try_memalign() instead of qemu_memalign(). Signed-off-by: Greg Kurz <groug@kaod.org> Message-Id: <160398563636.32380.1747166034877173994.stgit@bahia.lan> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw/ppc')
-rw-r--r--hw/ppc/spapr_hcall.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
index 607740150f..1d8e8e6a88 100644
--- a/hw/ppc/spapr_hcall.c
+++ b/hw/ppc/spapr_hcall.c
@@ -360,7 +360,7 @@ static void *hpt_prepare_thread(void *opaque)
SpaprPendingHpt *pending = opaque;
size_t size = 1ULL << pending->shift;
- pending->hpt = qemu_memalign(size, size);
+ pending->hpt = qemu_try_memalign(size, size);
if (pending->hpt) {
memset(pending->hpt, 0, size);
pending->ret = H_SUCCESS;