mirror of https://gitee.com/openkylin/linux.git
scsi: pm80xx: Tie the interrupt name to the module instance
With MSI-x enabled, the interrupt instances are <prefix><index> where the prefix is fixed for all module instances, making it a little harder to track down what's what. Link: https://lore.kernel.org/r/20191114100910.6153-13-deepak.ukey@microchip.com Acked-by: Jack Wang <jinpu.wang@cloud.ionos.com> Signed-off-by: Vikram Auradkar <auradkar@google.com> Signed-off-by: Deepak Ukey <deepak.ukey@microchip.com> Signed-off-by: Viswas G <Viswas.G@microchip.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
e2773c67e2
commit
7295493682
|
@ -894,7 +894,6 @@ static u32 pm8001_setup_msix(struct pm8001_hba_info *pm8001_ha)
|
|||
u32 number_of_intr;
|
||||
int flag = 0;
|
||||
int rc;
|
||||
static char intr_drvname[PM8001_MAX_MSIX_VEC][sizeof(DRV_NAME)+3];
|
||||
|
||||
/* SPCv controllers supports 64 msi-x */
|
||||
if (pm8001_ha->chip_id == chip_8001) {
|
||||
|
@ -915,14 +914,16 @@ static u32 pm8001_setup_msix(struct pm8001_hba_info *pm8001_ha)
|
|||
rc, pm8001_ha->number_of_intr));
|
||||
|
||||
for (i = 0; i < number_of_intr; i++) {
|
||||
snprintf(intr_drvname[i], sizeof(intr_drvname[0]),
|
||||
DRV_NAME"%d", i);
|
||||
snprintf(pm8001_ha->intr_drvname[i],
|
||||
sizeof(pm8001_ha->intr_drvname[0]),
|
||||
"%s-%d", pm8001_ha->name, i);
|
||||
pm8001_ha->irq_vector[i].irq_id = i;
|
||||
pm8001_ha->irq_vector[i].drv_inst = pm8001_ha;
|
||||
|
||||
rc = request_irq(pci_irq_vector(pm8001_ha->pdev, i),
|
||||
pm8001_interrupt_handler_msix, flag,
|
||||
intr_drvname[i], &(pm8001_ha->irq_vector[i]));
|
||||
pm8001_ha->intr_drvname[i],
|
||||
&(pm8001_ha->irq_vector[i]));
|
||||
if (rc) {
|
||||
for (j = 0; j < i; j++) {
|
||||
free_irq(pci_irq_vector(pm8001_ha->pdev, i),
|
||||
|
@ -963,7 +964,7 @@ static u32 pm8001_request_irq(struct pm8001_hba_info *pm8001_ha)
|
|||
pm8001_ha->irq_vector[0].irq_id = 0;
|
||||
pm8001_ha->irq_vector[0].drv_inst = pm8001_ha;
|
||||
rc = request_irq(pdev->irq, pm8001_interrupt_handler_intx, IRQF_SHARED,
|
||||
DRV_NAME, SHOST_TO_SAS_HA(pm8001_ha->shost));
|
||||
pm8001_ha->name, SHOST_TO_SAS_HA(pm8001_ha->shost));
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
|
@ -541,6 +541,8 @@ struct pm8001_hba_info {
|
|||
struct pm8001_ccb_info *ccb_info;
|
||||
#ifdef PM8001_USE_MSIX
|
||||
int number_of_intr;/*will be used in remove()*/
|
||||
char intr_drvname[PM8001_MAX_MSIX_VEC]
|
||||
[PM8001_NAME_LENGTH+1+3+1];
|
||||
#endif
|
||||
#ifdef PM8001_USE_TASKLET
|
||||
struct tasklet_struct tasklet[PM8001_MAX_MSIX_VEC];
|
||||
|
|
Loading…
Reference in New Issue