diff options
author | Alexander Gordeev <agordeev@redhat.com> | 2014-07-16 14:05:22 -0400 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-07-30 07:49:35 -0400 |
commit | b4d511e5c7c3d063c6cb1110797eb8221c5b2c09 (patch) | |
tree | 43d5fca10cae27d0edb0952545d2a470f8233311 /drivers/scsi/pm8001 | |
parent | db1924d08dd4be3274771486664e7952439ee956 (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.c | 39 |
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 |