aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla4xxx/ql4_nx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/qla4xxx/ql4_nx.c')
-rw-r--r--drivers/scsi/qla4xxx/ql4_nx.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_nx.c b/drivers/scsi/qla4xxx/ql4_nx.c
index d001202d3565..bbe836146837 100644
--- a/drivers/scsi/qla4xxx/ql4_nx.c
+++ b/drivers/scsi/qla4xxx/ql4_nx.c
@@ -3836,3 +3836,24 @@ qla4_8xxx_enable_msix(struct scsi_qla_host *ha)
3836msix_out: 3836msix_out:
3837 return ret; 3837 return ret;
3838} 3838}
3839
3840int qla4_8xxx_check_init_adapter_retry(struct scsi_qla_host *ha)
3841{
3842 int status = QLA_SUCCESS;
3843
3844 /* Dont retry adapter initialization if IRQ allocation failed */
3845 if (!test_bit(AF_IRQ_ATTACHED, &ha->flags)) {
3846 ql4_printk(KERN_WARNING, ha, "%s: Skipping retry of adapter initialization as IRQs are not attached\n",
3847 __func__);
3848 status = QLA_ERROR;
3849 goto exit_init_adapter_failure;
3850 }
3851
3852 /* Since interrupts are registered in start_firmware for
3853 * 8xxx, release them here if initialize_adapter fails
3854 * and retry adapter initialization */
3855 qla4xxx_free_irqs(ha);
3856
3857exit_init_adapter_failure:
3858 return status;
3859}