Hi Bart, thanks for the analysis. I think the main issue here is that we shouldn't try to assign affinity masks if there are not affinity vectors left to assign. Does the patch below fix the issue for you? diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index 50c5003..96c0713 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c @@ -1206,6 +1206,11 @@ int pci_alloc_irq_vectors_affinity(struct pci_dev *dev, unsigned int min_vecs, if (flags & PCI_IRQ_AFFINITY) { if (!affd) affd = &msi_default_affd; + + if (affd->pre_vectors + affd->post_vectors > min_vecs) + return -EINVAL; + if (affd->pre_vectors + affd->post_vectors == min_vecs) + flags &=~ PCI_IRQ_AFFINITY; } else { if (WARN_ON(affd)) affd = NULL; -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html