From: Cédric Le Goater Date: Wed, 8 May 2019 17:19:44 +0000 (+0200) Subject: spapr/xive: EQ page should be naturally aligned X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=7f9136f90dd2675c4cee29eed447f9213f94f3e6;p=qemu.git spapr/xive: EQ page should be naturally aligned When the OS configures the EQ page in which to receive event notifications from the XIVE interrupt controller, the page should be naturally aligned. Add this check. Signed-off-by: Cédric Le Goater Message-Id: <20190508171946.657-2-clg@kaod.org> Reviewed-by: Greg Kurz [dwg: Minor change for printf warning on some platforms] Signed-off-by: David Gibson --- diff --git a/hw/intc/spapr_xive.c b/hw/intc/spapr_xive.c index 097f88d460..33da1a52c6 100644 --- a/hw/intc/spapr_xive.c +++ b/hw/intc/spapr_xive.c @@ -993,6 +993,12 @@ static target_ulong h_int_set_queue_config(PowerPCCPU *cpu, case 16: case 21: case 24: + if (!QEMU_IS_ALIGNED(qpage, 1ul << qsize)) { + qemu_log_mask(LOG_GUEST_ERROR, "XIVE: EQ @0x%" HWADDR_PRIx + " is not naturally aligned with %" HWADDR_PRIx "\n", + qpage, (hwaddr)1 << qsize); + return H_P4; + } end.w2 = cpu_to_be32((qpage >> 32) & 0x0fffffff); end.w3 = cpu_to_be32(qpage & 0xffffffff); end.w0 |= cpu_to_be32(END_W0_ENQUEUE);