vfio/pci: Don't remove irqchip notifier if not registered
authorPeter Xu <peterx@redhat.com>
Mon, 6 Jan 2020 20:34:45 +0000 (13:34 -0700)
committerAlex Williamson <alex.williamson@redhat.com>
Mon, 6 Jan 2020 21:19:42 +0000 (14:19 -0700)
commit0446f8121723b134ca1d1ed0b73e96d4a0a8689d
treef48948d75bdd6db710b95945a10c82e04974d025
parent48008198270e3ebcc9394401d676c54ed5ac139c
vfio/pci: Don't remove irqchip notifier if not registered

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 <ehabkost@redhat.com>
CC: David Gibson <david@gibson.dropbear.id.au>
CC: Alex Williamson <alex.williamson@redhat.com>
Cc: qemu-stable@nongnu.org # v4.2
Reported-by: yanghliu@redhat.com
Debugged-by: Eduardo Habkost <ehabkost@redhat.com>
Fixes: c5478fea27ac ("vfio/pci: Respond to KVM irqchip change notifier")
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1782678
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
hw/vfio/pci.c