spapr: Work around spurious warnings from vfio INTx initialization
commitb14848f5d757cbe89dfd1ee68ce701a8277c2f17
authorDavid Gibson <david@gibson.dropbear.id.au>
Wed, 2 Oct 2019 01:53:57 +0000 (2 11:53 +1000)
committerDavid Gibson <david@gibson.dropbear.id.au>
Mon, 25 Nov 2019 23:11:30 +0000 (26 10:11 +1100)
treef9ae8876968f2843aaf9fb95be50bb67417fd5e0
parente532e1d93c4bd869b11db6ee0de2057e7d288889
spapr: Work around spurious warnings from vfio INTx initialization

Traditional PCI INTx for vfio devices can only perform well if using
an in-kernel irqchip.  Therefore, vfio_intx_update() issues a warning
if an in kernel irqchip is not available.

We usually do have an in-kernel irqchip available for pseries machines
on POWER hosts.  However, because the platform allows feature
negotiation of what interrupt controller model to use, we don't
currently initialize it until machine reset.  vfio_intx_update() is
called (first) from vfio_realize() before that, so it can issue a
spurious warning, even if we will have an in kernel irqchip by the
time we need it.

To workaround this, make a call to spapr_irq_update_active_intc() from
spapr_irq_init() which is called at machine realize time, before the
vfio realize.  This call will be pretty much obsoleted by the later
call at reset time, but it serves to suppress the spurious warning
from VFIO.

Cc: Alex Williamson <alex.williamson@redhat.com>
Cc: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Tested-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
hw/ppc/spapr_irq.c