SCSI fixes on 20190813
Single lpfc fix, for a single cpu corner case. Signed-off-by: James E.J. Bottomley <jejb@linux.ibm.com> -----BEGIN PGP SIGNATURE----- iJwEABMIAEQWIQTnYEDbdso9F2cI+arnQslM7pishQUCXVKNpSYcamFtZXMuYm90 dG9tbGV5QGhhbnNlbnBhcnRuZXJzaGlwLmNvbQAKCRDnQslM7pishcBWAQDV2FTB Day/5EVD/hwtXNNaA2ygzy/Vi8QgNV0xqQOzRQD/cVoh8fMCqlV1yVqrvMikJRp4 Zrbnvhe0k4cGhdD8Dcg= =Jpj2 -----END PGP SIGNATURE----- Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fix from James Bottomley: "Single lpfc fix, for a single-cpu corner case" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: lpfc: Fix crash when cpu count is 1 and null irq affinity mask
This commit is contained in:
commit
60a8db7902
|
@ -10776,12 +10776,31 @@ lpfc_cpu_affinity_check(struct lpfc_hba *phba, int vectors)
|
|||
/* This loop sets up all CPUs that are affinitized with a
|
||||
* irq vector assigned to the driver. All affinitized CPUs
|
||||
* will get a link to that vectors IRQ and EQ.
|
||||
*
|
||||
* NULL affinity mask handling:
|
||||
* If irq count is greater than one, log an error message.
|
||||
* If the null mask is received for the first irq, find the
|
||||
* first present cpu, and assign the eq index to ensure at
|
||||
* least one EQ is assigned.
|
||||
*/
|
||||
for (idx = 0; idx < phba->cfg_irq_chann; idx++) {
|
||||
/* Get a CPU mask for all CPUs affinitized to this vector */
|
||||
maskp = pci_irq_get_affinity(phba->pcidev, idx);
|
||||
if (!maskp)
|
||||
continue;
|
||||
if (!maskp) {
|
||||
if (phba->cfg_irq_chann > 1)
|
||||
lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
|
||||
"3329 No affinity mask found "
|
||||
"for vector %d (%d)\n",
|
||||
idx, phba->cfg_irq_chann);
|
||||
if (!idx) {
|
||||
cpu = cpumask_first(cpu_present_mask);
|
||||
cpup = &phba->sli4_hba.cpu_map[cpu];
|
||||
cpup->eq = idx;
|
||||
cpup->irq = pci_irq_vector(phba->pcidev, idx);
|
||||
cpup->flag |= LPFC_CPU_FIRST_IRQ;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
/* Loop through all CPUs associated with vector idx */
|
||||
|
|
Loading…
Reference in New Issue