diff options
author | Nilesh Javali <nilesh.javali@qlogic.com> | 2013-12-16 06:49:31 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2014-03-15 13:19:11 -0400 |
commit | 37418cc61d0d71fc576bb49694d978c8e94e6e23 (patch) | |
tree | 4961b97feadfbc093e287d8b5acb898935c348ad /drivers/scsi/qla4xxx/ql4_init.c | |
parent | 864cb48d1a91e2e4fa3260514f5a19c3356fb8fe (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.c | 7 |
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); |
962 | exit_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 | ||
963 | exit_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; |