On Fri, May 19, 2017 at 5:46 AM, Christoph Hellwig <hch@xxxxxx> wrote: > > diff --git a/include/linux/pci.h b/include/linux/pci.h > index 33c2b0b77429..5a7fd3b6a7b9 100644 > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -1342,7 +1342,7 @@ pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs, > unsigned int max_vecs, unsigned int flags, > const struct irq_affinity *aff_desc) > { > - if (min_vecs > 1) > + if (min_vecs > 1 || !(flags & PCI_IRQ_LEGACY)) > return -EINVAL; > return 1; > } Side note: why is it doing that " > 1" check, when any value _other_ than 1 is wrong? Also, to match the non-MSI implementation, wouldn't it be nicer to just write it that same way (and also verify "dev->irq"): if (flags & PCI_IRQ_LEGACY) { if (min_vecs == 1 && dev->irq) return 1; } return -ENOSPC; (the exact error value probably doesn't matter in practice, but the CONFIG_MSI case returns ENOSPC by default and that's what Documentation/PCI/MSI-HOWTO.txt says too). Hmm? Linus -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html