On Mon, Jan 06, 2020 at 03:13:24PM -0700, Alex Williamson wrote: > On Tue, 31 Dec 2019 08:39:15 -0500 > Peter Xu <pet...@redhat.com> wrote: > > > The kvm irqchip notifier is only registered if the device supports > > INTx, however it's unconditionally removed. If the assigned device > > does not support INTx, this will cause QEMU to crash when unplugging > > the device from the system. Change it to conditionally remove the > > notifier only if the notify hook is setup. > > > > CC: Eduardo Habkost <ehabk...@redhat.com> > > CC: David Gibson <da...@gibson.dropbear.id.au> > > CC: Alex Williamson <alex.william...@redhat.com> > > Reported-by: yangh...@redhat.com > > Fixes: c5478fea27 ("vfio/pci: Respond to KVM irqchip change notifier", > > 2019-11-26) > > Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1782678 > > Signed-off-by: Peter Xu <pet...@redhat.com> > > --- > > hw/vfio/pci.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c > > index 2d40b396f2..337a173ce7 100644 > > --- a/hw/vfio/pci.c > > +++ b/hw/vfio/pci.c > > @@ -3076,7 +3076,9 @@ static void vfio_exitfn(PCIDevice *pdev) > > vfio_unregister_req_notifier(vdev); > > vfio_unregister_err_notifier(vdev); > > pci_device_set_intx_routing_notifier(&vdev->pdev, NULL); > > - kvm_irqchip_remove_change_notifier(&vdev->irqchip_change_notifier); > > + if (vdev->irqchip_change_notifier.notify) { > > + kvm_irqchip_remove_change_notifier(&vdev->irqchip_change_notifier); > > + } > > vfio_disable_interrupts(vdev); > > if (vdev->intx.mmap_timer) { > > timer_free(vdev->intx.mmap_timer); > > > Thanks, Peter! Sent a pull request with David and Greg's R-b, stable > tag, and debug credit to Eduardo as I think he spotted the issue first. > Thanks,
Yes thanks! I wished Eduardo had even updated the bz when he debugged so I won't be needinfo-ed and did it twice without notice :) -- Peter Xu