diff options
author | Vikas Chaudhary <vikas.chaudhary@qlogic.com> | 2010-10-07 01:49:08 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-10-25 15:50:08 -0400 |
commit | 3710c60c09f555df69d12b0232702d062fe3bcd6 (patch) | |
tree | ae846194fe781fd557273c08da5887a1cec5877a /drivers/scsi/qla4xxx | |
parent | 735e41543c12c245290cf652727893a66cbd8ab6 (diff) |
[SCSI] qla4xxx: free_irqs on failed initialize_adapter
Since interrupts are registered in start_firmware(load_risc) for 82xx,
free them if init_firmware fails.
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Signed-off-by: Karen Higgins <karen.higgins@qlogic.com>
Signed-off-by: Ravi Anand <ravi.anand@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla4xxx')
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_init.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_init.c b/drivers/scsi/qla4xxx/ql4_init.c index b6046afe370c..dc01fa3da5d1 100644 --- a/drivers/scsi/qla4xxx/ql4_init.c +++ b/drivers/scsi/qla4xxx/ql4_init.c | |||
@@ -1459,6 +1459,12 @@ int qla4xxx_initialize_adapter(struct scsi_qla_host *ha, | |||
1459 | exit_init_online: | 1459 | exit_init_online: |
1460 | set_bit(AF_ONLINE, &ha->flags); | 1460 | set_bit(AF_ONLINE, &ha->flags); |
1461 | exit_init_hba: | 1461 | exit_init_hba: |
1462 | if (is_qla8022(ha) && (status == QLA_ERROR)) { | ||
1463 | /* Since interrupts are registered in start_firmware for | ||
1464 | * 82xx, release them here if initialize_adapter fails */ | ||
1465 | qla4xxx_free_irqs(ha); | ||
1466 | } | ||
1467 | |||
1462 | DEBUG2(printk("scsi%ld: initialize adapter: %s\n", ha->host_no, | 1468 | DEBUG2(printk("scsi%ld: initialize adapter: %s\n", ha->host_no, |
1463 | status == QLA_ERROR ? "FAILED" : "SUCCEDED")); | 1469 | status == QLA_ERROR ? "FAILED" : "SUCCEDED")); |
1464 | return status; | 1470 | return status; |