On 07/31/2018 05:07 PM, Varun Prakash wrote: > If number of interrupt vectors are more than num_online_cpus() > then pci_alloc_irq_vectors_affinity() assigns cpumask based > on num_possible_cpus() to the remaining vectors because of > this interrupt does not generate for these vectors. > > This patch fixes this issue by using pci_alloc_irq_vectors() > instead of pci_alloc_irq_vectors_affinity(). > > Signed-off-by: Varun Prakash <varun@xxxxxxxxxxx> > --- > drivers/scsi/csiostor/csio_isr.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/scsi/csiostor/csio_isr.c b/drivers/scsi/csiostor/csio_isr.c > index 7c88147..8b92c59 100644 > --- a/drivers/scsi/csiostor/csio_isr.c > +++ b/drivers/scsi/csiostor/csio_isr.c > @@ -480,7 +480,6 @@ csio_enable_msix(struct csio_hw *hw) > int i, j, k, n, min, cnt; > int extra = CSIO_EXTRA_VECS; > struct csio_scsi_cpu_info *info; > - struct irq_affinity desc = { .pre_vectors = 2 }; > > min = hw->num_pports + extra; > cnt = hw->num_sqsets + extra; > @@ -491,8 +490,7 @@ csio_enable_msix(struct csio_hw *hw) > > csio_dbg(hw, "FW supp #niq:%d, trying %d msix's\n", hw->cfg_niq, cnt); > > - cnt = pci_alloc_irq_vectors_affinity(hw->pdev, min, cnt, > - PCI_IRQ_MSIX | PCI_IRQ_AFFINITY, &desc); > + cnt = pci_alloc_irq_vectors(hw->pdev, min, cnt, PCI_IRQ_MSIX); > if (cnt < 0) > return cnt; > > Hmm. That patch (and the reasoning leading up to it) really sound dodgy. I'd rather fix the interrupt affinity code to handle this case correctly. Thomas, can you help here? Cheers, Hannes -- Dr. Hannes Reinecke Teamlead Storage & Networking hare@xxxxxxx +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg)