On Wed, 8 May 2019 19:19:44 +0200 Cédric Le Goater <c...@kaod.org> wrote:
> 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 <c...@kaod.org> > --- Reviewed-by: Greg Kurz <gr...@kaod.org> > hw/intc/spapr_xive.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/hw/intc/spapr_xive.c b/hw/intc/spapr_xive.c > index 097f88d4608d..666e24e9b447 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, 1ul << 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);