diff options
Diffstat (limited to 'drivers/scsi/qla4xxx/ql4_os.c')
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_os.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c index bb160409b7cb..9be829bb90db 100644 --- a/drivers/scsi/qla4xxx/ql4_os.c +++ b/drivers/scsi/qla4xxx/ql4_os.c | |||
@@ -4565,6 +4565,7 @@ static void qla4xxx_timer(struct scsi_qla_host *ha) | |||
4565 | test_bit(DPC_LINK_CHANGED, &ha->dpc_flags) || | 4565 | test_bit(DPC_LINK_CHANGED, &ha->dpc_flags) || |
4566 | test_bit(DPC_HA_UNRECOVERABLE, &ha->dpc_flags) || | 4566 | test_bit(DPC_HA_UNRECOVERABLE, &ha->dpc_flags) || |
4567 | test_bit(DPC_HA_NEED_QUIESCENT, &ha->dpc_flags) || | 4567 | test_bit(DPC_HA_NEED_QUIESCENT, &ha->dpc_flags) || |
4568 | test_bit(DPC_SYSFS_DDB_EXPORT, &ha->dpc_flags) || | ||
4568 | test_bit(DPC_AEN, &ha->dpc_flags)) { | 4569 | test_bit(DPC_AEN, &ha->dpc_flags)) { |
4569 | DEBUG2(printk("scsi%ld: %s: scheduling dpc routine" | 4570 | DEBUG2(printk("scsi%ld: %s: scheduling dpc routine" |
4570 | " - dpc flags = 0x%lx\n", | 4571 | " - dpc flags = 0x%lx\n", |
@@ -5429,6 +5430,11 @@ dpc_post_reset_ha: | |||
5429 | qla4xxx_relogin_all_devices(ha); | 5430 | qla4xxx_relogin_all_devices(ha); |
5430 | } | 5431 | } |
5431 | } | 5432 | } |
5433 | if (test_and_clear_bit(DPC_SYSFS_DDB_EXPORT, &ha->dpc_flags)) { | ||
5434 | if (qla4xxx_sysfs_ddb_export(ha)) | ||
5435 | ql4_printk(KERN_ERR, ha, "%s: Error exporting ddb to sysfs\n", | ||
5436 | __func__); | ||
5437 | } | ||
5432 | } | 5438 | } |
5433 | 5439 | ||
5434 | /** | 5440 | /** |
@@ -8406,7 +8412,7 @@ exit_ddb_del: | |||
8406 | * | 8412 | * |
8407 | * Export the firmware DDB for all send targets and normal targets to sysfs. | 8413 | * Export the firmware DDB for all send targets and normal targets to sysfs. |
8408 | **/ | 8414 | **/ |
8409 | static int qla4xxx_sysfs_ddb_export(struct scsi_qla_host *ha) | 8415 | int qla4xxx_sysfs_ddb_export(struct scsi_qla_host *ha) |
8410 | { | 8416 | { |
8411 | struct dev_db_entry *fw_ddb_entry = NULL; | 8417 | struct dev_db_entry *fw_ddb_entry = NULL; |
8412 | dma_addr_t fw_ddb_entry_dma; | 8418 | dma_addr_t fw_ddb_entry_dma; |
@@ -8844,11 +8850,8 @@ skip_retry_init: | |||
8844 | ql4_printk(KERN_ERR, ha, | 8850 | ql4_printk(KERN_ERR, ha, |
8845 | "%s: No iSCSI boot target configured\n", __func__); | 8851 | "%s: No iSCSI boot target configured\n", __func__); |
8846 | 8852 | ||
8847 | if (qla4xxx_sysfs_ddb_export(ha)) | 8853 | set_bit(DPC_SYSFS_DDB_EXPORT, &ha->dpc_flags); |
8848 | ql4_printk(KERN_ERR, ha, | 8854 | /* Perform the build ddb list and login to each */ |
8849 | "%s: Error exporting ddb to sysfs\n", __func__); | ||
8850 | |||
8851 | /* Perform the build ddb list and login to each */ | ||
8852 | qla4xxx_build_ddb_list(ha, INIT_ADAPTER); | 8855 | qla4xxx_build_ddb_list(ha, INIT_ADAPTER); |
8853 | iscsi_host_for_each_session(ha->host, qla4xxx_login_flash_ddb); | 8856 | iscsi_host_for_each_session(ha->host, qla4xxx_login_flash_ddb); |
8854 | qla4xxx_wait_login_resp_boot_tgt(ha); | 8857 | qla4xxx_wait_login_resp_boot_tgt(ha); |