summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/pm8001
diff options
context:
space:
mode:
authorAlexander Gordeev <agordeev@redhat.com>2014-07-16 14:05:22 -0400
committerChristoph Hellwig <hch@lst.de>2014-07-30 07:49:35 -0400
commitb4d511e5c7c3d063c6cb1110797eb8221c5b2c09 (patch)
tree43d5fca10cae27d0edb0952545d2a470f8233311 /drivers/scsi/pm8001
parentdb1924d08dd4be3274771486664e7952439ee956 (diff)
pm8001: Use pci_enable_msix_exact() instead of pci_enable_msix()
As result of deprecation of MSI-X/MSI enablement functions pci_enable_msix() and pci_enable_msi_block() all drivers using these two interfaces need to be updated to use the new pci_enable_msi_range() or pci_enable_msi_exact() and pci_enable_msix_range() or pci_enable_msix_exact() interfaces. Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Reviewed-by: Jack Wang <xjtuwjp@gmail.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/scsi/pm8001')
-rw-r--r--drivers/scsi/pm8001/pm8001_init.c39
1 files changed, 20 insertions, 19 deletions
diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c
index e49623a897a7..666bf5af06e2 100644
--- a/drivers/scsi/pm8001/pm8001_init.c
+++ b/drivers/scsi/pm8001/pm8001_init.c
@@ -748,34 +748,35 @@ static u32 pm8001_setup_msix(struct pm8001_hba_info *pm8001_ha)
748 sizeof(pm8001_ha->msix_entries[0]); 748 sizeof(pm8001_ha->msix_entries[0]);
749 for (i = 0; i < max_entry ; i++) 749 for (i = 0; i < max_entry ; i++)
750 pm8001_ha->msix_entries[i].entry = i; 750 pm8001_ha->msix_entries[i].entry = i;
751 rc = pci_enable_msix(pm8001_ha->pdev, pm8001_ha->msix_entries, 751 rc = pci_enable_msix_exact(pm8001_ha->pdev, pm8001_ha->msix_entries,
752 number_of_intr); 752 number_of_intr);
753 pm8001_ha->number_of_intr = number_of_intr; 753 pm8001_ha->number_of_intr = number_of_intr;
754 if (!rc) { 754 if (rc)
755 PM8001_INIT_DBG(pm8001_ha, pm8001_printk( 755 return rc;
756 "pci_enable_msix request ret:%d no of intr %d\n",
757 rc, pm8001_ha->number_of_intr));
758 756
757 PM8001_INIT_DBG(pm8001_ha, pm8001_printk(
758 "pci_enable_msix_exact request ret:%d no of intr %d\n",
759 rc, pm8001_ha->number_of_intr));
759 760
760 for (i = 0; i < number_of_intr; i++) { 761 for (i = 0; i < number_of_intr; i++) {
761 snprintf(intr_drvname[i], sizeof(intr_drvname[0]), 762 snprintf(intr_drvname[i], sizeof(intr_drvname[0]),
762 DRV_NAME"%d", i); 763 DRV_NAME"%d", i);
763 pm8001_ha->irq_vector[i].irq_id = i; 764 pm8001_ha->irq_vector[i].irq_id = i;
764 pm8001_ha->irq_vector[i].drv_inst = pm8001_ha; 765 pm8001_ha->irq_vector[i].drv_inst = pm8001_ha;
765 766
766 rc = request_irq(pm8001_ha->msix_entries[i].vector, 767 rc = request_irq(pm8001_ha->msix_entries[i].vector,
767 pm8001_interrupt_handler_msix, flag, 768 pm8001_interrupt_handler_msix, flag,
768 intr_drvname[i], &(pm8001_ha->irq_vector[i])); 769 intr_drvname[i], &(pm8001_ha->irq_vector[i]));
769 if (rc) { 770 if (rc) {
770 for (j = 0; j < i; j++) 771 for (j = 0; j < i; j++) {
771 free_irq( 772 free_irq(pm8001_ha->msix_entries[j].vector,
772 pm8001_ha->msix_entries[j].vector,
773 &(pm8001_ha->irq_vector[i])); 773 &(pm8001_ha->irq_vector[i]));
774 pci_disable_msix(pm8001_ha->pdev);
775 break;
776 } 774 }
775 pci_disable_msix(pm8001_ha->pdev);
776 break;
777 } 777 }
778 } 778 }
779
779 return rc; 780 return rc;
780} 781}
781#endif 782#endif