diff options
Diffstat (limited to 'drivers/scsi/be2iscsi/be_main.c')
-rw-r--r-- | drivers/scsi/be2iscsi/be_main.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c index 3b54dc72371e..26ac049c0c85 100644 --- a/drivers/scsi/be2iscsi/be_main.c +++ b/drivers/scsi/be2iscsi/be_main.c | |||
@@ -3172,7 +3172,7 @@ static int hba_setup_cid_tbls(struct beiscsi_hba *phba) | |||
3172 | return 0; | 3172 | return 0; |
3173 | } | 3173 | } |
3174 | 3174 | ||
3175 | static unsigned char hwi_enable_intr(struct beiscsi_hba *phba) | 3175 | static void hwi_enable_intr(struct beiscsi_hba *phba) |
3176 | { | 3176 | { |
3177 | struct be_ctrl_info *ctrl = &phba->ctrl; | 3177 | struct be_ctrl_info *ctrl = &phba->ctrl; |
3178 | struct hwi_controller *phwi_ctrlr; | 3178 | struct hwi_controller *phwi_ctrlr; |
@@ -3207,7 +3207,6 @@ static unsigned char hwi_enable_intr(struct beiscsi_hba *phba) | |||
3207 | } | 3207 | } |
3208 | } | 3208 | } |
3209 | } | 3209 | } |
3210 | return true; | ||
3211 | } | 3210 | } |
3212 | 3211 | ||
3213 | static void hwi_disable_intr(struct beiscsi_hba *phba) | 3212 | static void hwi_disable_intr(struct beiscsi_hba *phba) |
@@ -3773,7 +3772,7 @@ static int __devinit beiscsi_dev_probe(struct pci_dev *pcidev, | |||
3773 | struct hwi_controller *phwi_ctrlr; | 3772 | struct hwi_controller *phwi_ctrlr; |
3774 | struct hwi_context_memory *phwi_context; | 3773 | struct hwi_context_memory *phwi_context; |
3775 | struct be_eq_obj *pbe_eq; | 3774 | struct be_eq_obj *pbe_eq; |
3776 | int ret, msix_vec, num_cpus, i; | 3775 | int ret, num_cpus, i; |
3777 | 3776 | ||
3778 | ret = beiscsi_enable_pci(pcidev); | 3777 | ret = beiscsi_enable_pci(pcidev); |
3779 | if (ret < 0) { | 3778 | if (ret < 0) { |
@@ -3874,25 +3873,10 @@ static int __devinit beiscsi_dev_probe(struct pci_dev *pcidev, | |||
3874 | "Failed to beiscsi_init_irqs\n"); | 3873 | "Failed to beiscsi_init_irqs\n"); |
3875 | goto free_blkenbld; | 3874 | goto free_blkenbld; |
3876 | } | 3875 | } |
3877 | ret = hwi_enable_intr(phba); | 3876 | hwi_enable_intr(phba); |
3878 | if (ret < 0) { | ||
3879 | shost_printk(KERN_ERR, phba->shost, "beiscsi_dev_probe-" | ||
3880 | "Failed to hwi_enable_intr\n"); | ||
3881 | goto free_ctrlr; | ||
3882 | } | ||
3883 | SE_DEBUG(DBG_LVL_8, "\n\n\n SUCCESS - DRIVER LOADED\n\n\n"); | 3877 | SE_DEBUG(DBG_LVL_8, "\n\n\n SUCCESS - DRIVER LOADED\n\n\n"); |
3884 | return 0; | 3878 | return 0; |
3885 | 3879 | ||
3886 | free_ctrlr: | ||
3887 | if (phba->msix_enabled) { | ||
3888 | for (i = 0; i <= phba->num_cpus; i++) { | ||
3889 | msix_vec = phba->msix_entries[i].vector; | ||
3890 | free_irq(msix_vec, &phwi_context->be_eq[i]); | ||
3891 | } | ||
3892 | } else | ||
3893 | if (phba->pcidev->irq) | ||
3894 | free_irq(phba->pcidev->irq, phba); | ||
3895 | pci_disable_msix(phba->pcidev); | ||
3896 | free_blkenbld: | 3880 | free_blkenbld: |
3897 | destroy_workqueue(phba->wq); | 3881 | destroy_workqueue(phba->wq); |
3898 | if (blk_iopoll_enabled) | 3882 | if (blk_iopoll_enabled) |
@@ -3910,6 +3894,8 @@ free_port: | |||
3910 | phba->ctrl.mbox_mem_alloced.dma); | 3894 | phba->ctrl.mbox_mem_alloced.dma); |
3911 | beiscsi_unmap_pci_function(phba); | 3895 | beiscsi_unmap_pci_function(phba); |
3912 | hba_free: | 3896 | hba_free: |
3897 | if (phba->msix_enabled) | ||
3898 | pci_disable_msix(phba->pcidev); | ||
3913 | iscsi_host_remove(phba->shost); | 3899 | iscsi_host_remove(phba->shost); |
3914 | pci_dev_put(phba->pcidev); | 3900 | pci_dev_put(phba->pcidev); |
3915 | iscsi_host_free(phba->shost); | 3901 | iscsi_host_free(phba->shost); |