isci: bypass scic_controller_get_handler_methods()

The indirection is unecessary and broken in the current case that assigns the
handlers based on a not up-to-date pdev->msix_enabled value.

Route the handlers directly to the requisite core routines.

Todo: hook up error interrupt handling

Reported-by: Jeff Garzik <jeff@garzik.org>
Cc: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
Dan Williams
2011-02-18 09:25:05 -08:00
parent 11c8898629
commit c7ef4031f0
5 changed files with 43 additions and 144 deletions

View File

@@ -334,7 +334,7 @@ static int isci_setup_interrupts(struct pci_dev *pdev)
BUG_ON(!isci_host);
/* @todo: need to handle error case. */
err = devm_request_irq(&pdev->dev, msix->vector, isci_isr, 0,
err = devm_request_irq(&pdev->dev, msix->vector, isci_msix_isr, 0,
DRV_NAME"-msix", isci_host);
if (!err)
continue;
@@ -353,7 +353,7 @@ static int isci_setup_interrupts(struct pci_dev *pdev)
return 0;
intx:
err = devm_request_irq(&pdev->dev, pdev->irq, isci_legacy_isr,
err = devm_request_irq(&pdev->dev, pdev->irq, isci_intx_isr,
IRQF_SHARED, DRV_NAME"-intx", pdev);
return err;