On Tue, 2019-07-16 at 08:06 +0200, Christoph Hellwig wrote: > > > /* > > diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c > > index 54b35ea4af88..ab2358137419 100644 > > --- a/drivers/nvme/host/pci.c > > +++ b/drivers/nvme/host/pci.c > > @@ -2080,6 +2080,9 @@ static int nvme_setup_irqs(struct nvme_dev *dev, > > unsigned int nr_io_queues) > > dev->io_queues[HCTX_TYPE_DEFAULT] = 1; > > dev->io_queues[HCTX_TYPE_READ] = 0; > > > > + if (dev->ctrl.quirks & NVME_QUIRK_SINGLE_VECTOR) > > + irq_queues = 1; > > + > > return pci_alloc_irq_vectors_affinity(pdev, 1, irq_queues, > > PCI_IRQ_ALL_TYPES | PCI_IRQ_AFFINITY, &affd); > > Callin pci_alloc_irq_vectors_affinity in this case seems a bit > pointless, but if this works for you I'd rather keep it as-is for now > if this works for you.
It seems to work and it's simpler that way. The original patch was grabbing all the interrupts then hacking the queues to all use vector 0 (well there's only one IO queue). The above is a bit cleaner imho. Cheers, Ben.