Loading drivers/scsi/isci/host.h +0 −1 Original line number Diff line number Diff line Loading @@ -295,7 +295,6 @@ enum sci_controller_states { #define SCI_MAX_MSIX_INT (SCI_NUM_MSI_X_INT*SCI_MAX_CONTROLLERS) struct isci_pci_info { struct msix_entry msix_entries[SCI_MAX_MSIX_INT]; struct isci_host *hosts[SCI_MAX_CONTROLLERS]; struct isci_orom *orom; }; Loading drivers/scsi/isci/init.c +10 −13 Original line number Diff line number Diff line Loading @@ -350,16 +350,12 @@ static int isci_setup_interrupts(struct pci_dev *pdev) */ num_msix = num_controllers(pdev) * SCI_NUM_MSI_X_INT; for (i = 0; i < num_msix; i++) pci_info->msix_entries[i].entry = i; err = pci_enable_msix_exact(pdev, pci_info->msix_entries, num_msix); if (err) err = pci_alloc_irq_vectors(pdev, num_msix, num_msix, PCI_IRQ_MSIX); if (err < 0) goto intx; for (i = 0; i < num_msix; i++) { int id = i / SCI_NUM_MSI_X_INT; struct msix_entry *msix = &pci_info->msix_entries[i]; irq_handler_t isr; ihost = pci_info->hosts[id]; Loading @@ -369,8 +365,8 @@ static int isci_setup_interrupts(struct pci_dev *pdev) else isr = isci_msix_isr; err = devm_request_irq(&pdev->dev, msix->vector, isr, 0, DRV_NAME"-msix", ihost); err = devm_request_irq(&pdev->dev, pci_irq_vector(pdev, i), isr, 0, DRV_NAME"-msix", ihost); if (!err) continue; Loading @@ -378,18 +374,19 @@ static int isci_setup_interrupts(struct pci_dev *pdev) while (i--) { id = i / SCI_NUM_MSI_X_INT; ihost = pci_info->hosts[id]; msix = &pci_info->msix_entries[i]; devm_free_irq(&pdev->dev, msix->vector, ihost); devm_free_irq(&pdev->dev, pci_irq_vector(pdev, i), ihost); } pci_disable_msix(pdev); pci_free_irq_vectors(pdev); goto intx; } return 0; intx: for_each_isci_host(i, ihost, pdev) { err = devm_request_irq(&pdev->dev, pdev->irq, isci_intx_isr, IRQF_SHARED, DRV_NAME"-intx", ihost); err = devm_request_irq(&pdev->dev, pci_irq_vector(pdev, 0), isci_intx_isr, IRQF_SHARED, DRV_NAME"-intx", ihost); if (err) break; } Loading Loading
drivers/scsi/isci/host.h +0 −1 Original line number Diff line number Diff line Loading @@ -295,7 +295,6 @@ enum sci_controller_states { #define SCI_MAX_MSIX_INT (SCI_NUM_MSI_X_INT*SCI_MAX_CONTROLLERS) struct isci_pci_info { struct msix_entry msix_entries[SCI_MAX_MSIX_INT]; struct isci_host *hosts[SCI_MAX_CONTROLLERS]; struct isci_orom *orom; }; Loading
drivers/scsi/isci/init.c +10 −13 Original line number Diff line number Diff line Loading @@ -350,16 +350,12 @@ static int isci_setup_interrupts(struct pci_dev *pdev) */ num_msix = num_controllers(pdev) * SCI_NUM_MSI_X_INT; for (i = 0; i < num_msix; i++) pci_info->msix_entries[i].entry = i; err = pci_enable_msix_exact(pdev, pci_info->msix_entries, num_msix); if (err) err = pci_alloc_irq_vectors(pdev, num_msix, num_msix, PCI_IRQ_MSIX); if (err < 0) goto intx; for (i = 0; i < num_msix; i++) { int id = i / SCI_NUM_MSI_X_INT; struct msix_entry *msix = &pci_info->msix_entries[i]; irq_handler_t isr; ihost = pci_info->hosts[id]; Loading @@ -369,8 +365,8 @@ static int isci_setup_interrupts(struct pci_dev *pdev) else isr = isci_msix_isr; err = devm_request_irq(&pdev->dev, msix->vector, isr, 0, DRV_NAME"-msix", ihost); err = devm_request_irq(&pdev->dev, pci_irq_vector(pdev, i), isr, 0, DRV_NAME"-msix", ihost); if (!err) continue; Loading @@ -378,18 +374,19 @@ static int isci_setup_interrupts(struct pci_dev *pdev) while (i--) { id = i / SCI_NUM_MSI_X_INT; ihost = pci_info->hosts[id]; msix = &pci_info->msix_entries[i]; devm_free_irq(&pdev->dev, msix->vector, ihost); devm_free_irq(&pdev->dev, pci_irq_vector(pdev, i), ihost); } pci_disable_msix(pdev); pci_free_irq_vectors(pdev); goto intx; } return 0; intx: for_each_isci_host(i, ihost, pdev) { err = devm_request_irq(&pdev->dev, pdev->irq, isci_intx_isr, IRQF_SHARED, DRV_NAME"-intx", ihost); err = devm_request_irq(&pdev->dev, pci_irq_vector(pdev, 0), isci_intx_isr, IRQF_SHARED, DRV_NAME"-intx", ihost); if (err) break; } Loading