diff options
Diffstat (limited to 'drivers/scsi/qla4xxx/ql4_nx.c')
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_nx.c | 21 |
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) | |||
3836 | msix_out: | 3836 | msix_out: |
3837 | return ret; | 3837 | return ret; |
3838 | } | 3838 | } |
3839 | |||
3840 | int 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 | |||
3857 | exit_init_adapter_failure: | ||
3858 | return status; | ||
3859 | } | ||