nvme: fix bug with PCI IRQ pins on teardown
authorLogan Gunthorpe <logang@deltatee.com>
Wed, 21 Nov 2018 18:10:13 +0000 (11:10 -0700)
committerKevin Wolf <kwolf@redhat.com>
Thu, 22 Nov 2018 18:37:31 +0000 (19:37 +0100)
commitad3a7e4555bc50036a5257a6c1ed652ab0d1b650
treecc7df71df3099b461daae00b23668c54d6117478
parent71a86ddece548860f040d565204cf1bf59d74663
nvme: fix bug with PCI IRQ pins on teardown

When the submission and completion queues are being torn down
the IRQ will be asserted for the completion queue when the
submsission queue is deleted. Then when the completion queue
is deleted it stays asserted. Thus, on systems that do
not use MSI, no further interrupts can be triggered on the host.

Linux sees this as a long delay when unbinding the nvme device.
Eventually the interrupt timeout occurs and it continues.

To fix this we ensure we deassert the IRQ for a CQ when it is
deleted.

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
hw/block/nvme.c