aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla4xxx/ql4_init.c
diff options
context:
space:
mode:
authorNilesh Javali <nilesh.javali@qlogic.com>2013-12-16 06:49:31 -0500
committerJames Bottomley <JBottomley@Parallels.com>2014-03-15 13:19:11 -0400
commit37418cc61d0d71fc576bb49694d978c8e94e6e23 (patch)
tree4961b97feadfbc093e287d8b5acb898935c348ad /drivers/scsi/qla4xxx/ql4_init.c
parent864cb48d1a91e2e4fa3260514f5a19c3356fb8fe (diff)
[SCSI] qla4xxx: ISP8xxx: Correct retry of adapter initialization
Issue: For ISP8xxx, adapter initialization is not retried if qla4xxx_initialize_adapter fails. Fix: If qla4xxx_initialize_adapter fails, first check if failure is due to IRQs not attached in order to skip retrial, then free the IRQs and then retry initializing the adapter. Signed-off-by: Nilesh Javali <nilesh.javali@qlogic.com> Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com> Reviewed-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/qla4xxx/ql4_init.c')
-rw-r--r--drivers/scsi/qla4xxx/ql4_init.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_init.c b/drivers/scsi/qla4xxx/ql4_init.c
index 7456eeb2e58a..28fbece7e08f 100644
--- a/drivers/scsi/qla4xxx/ql4_init.c
+++ b/drivers/scsi/qla4xxx/ql4_init.c
@@ -959,13 +959,8 @@ int qla4xxx_initialize_adapter(struct scsi_qla_host *ha, int is_reset)
959 qla4xxx_build_ddb_list(ha, is_reset); 959 qla4xxx_build_ddb_list(ha, is_reset);
960 960
961 set_bit(AF_ONLINE, &ha->flags); 961 set_bit(AF_ONLINE, &ha->flags);
962exit_init_hba:
963 if (is_qla80XX(ha) && (status == QLA_ERROR)) {
964 /* Since interrupts are registered in start_firmware for
965 * 80XX, release them here if initialize_adapter fails */
966 qla4xxx_free_irqs(ha);
967 }
968 962
963exit_init_hba:
969 DEBUG2(printk("scsi%ld: initialize adapter: %s\n", ha->host_no, 964 DEBUG2(printk("scsi%ld: initialize adapter: %s\n", ha->host_no,
970 status == QLA_ERROR ? "FAILED" : "SUCCEEDED")); 965 status == QLA_ERROR ? "FAILED" : "SUCCEEDED"));
971 return status; 966 return status;