Commit ff17a29d authored by Christof Schmitt's avatar Christof Schmitt Committed by James Bottomley

[SCSI] zfcp: Enable debug feature before setting adapter online

Already register the debug feature before the zfcp adapter is
set online. This allows to use the debug feature to investigate
the online/offline sequence.
Signed-off-by: default avatarChristof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: default avatarSwen Schillig <swen@vnet.ibm.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 52ef11a7
...@@ -1038,6 +1038,10 @@ zfcp_adapter_enqueue(struct ccw_device *ccw_device) ...@@ -1038,6 +1038,10 @@ zfcp_adapter_enqueue(struct ccw_device *ccw_device)
spin_lock_init(&adapter->san_dbf_lock); spin_lock_init(&adapter->san_dbf_lock);
spin_lock_init(&adapter->scsi_dbf_lock); spin_lock_init(&adapter->scsi_dbf_lock);
retval = zfcp_adapter_debug_register(adapter);
if (retval)
goto debug_register_failed;
/* initialize error recovery stuff */ /* initialize error recovery stuff */
rwlock_init(&adapter->erp_lock); rwlock_init(&adapter->erp_lock);
...@@ -1084,6 +1088,8 @@ zfcp_adapter_enqueue(struct ccw_device *ccw_device) ...@@ -1084,6 +1088,8 @@ zfcp_adapter_enqueue(struct ccw_device *ccw_device)
generic_services_failed: generic_services_failed:
zfcp_sysfs_adapter_remove_files(&adapter->ccw_device->dev); zfcp_sysfs_adapter_remove_files(&adapter->ccw_device->dev);
sysfs_failed: sysfs_failed:
zfcp_adapter_debug_unregister(adapter);
debug_register_failed:
dev_set_drvdata(&ccw_device->dev, NULL); dev_set_drvdata(&ccw_device->dev, NULL);
zfcp_reqlist_free(adapter); zfcp_reqlist_free(adapter);
failed_low_mem_buffers: failed_low_mem_buffers:
...@@ -1129,6 +1135,8 @@ zfcp_adapter_dequeue(struct zfcp_adapter *adapter) ...@@ -1129,6 +1135,8 @@ zfcp_adapter_dequeue(struct zfcp_adapter *adapter)
goto out; goto out;
} }
zfcp_adapter_debug_unregister(adapter);
/* remove specified adapter data structure from list */ /* remove specified adapter data structure from list */
write_lock_irq(&zfcp_data.config_lock); write_lock_irq(&zfcp_data.config_lock);
list_del(&adapter->list); list_del(&adapter->list);
......
...@@ -150,15 +150,12 @@ zfcp_ccw_set_online(struct ccw_device *ccw_device) ...@@ -150,15 +150,12 @@ zfcp_ccw_set_online(struct ccw_device *ccw_device)
down(&zfcp_data.config_sema); down(&zfcp_data.config_sema);
adapter = dev_get_drvdata(&ccw_device->dev); adapter = dev_get_drvdata(&ccw_device->dev);
retval = zfcp_adapter_debug_register(adapter);
if (retval)
goto out;
retval = zfcp_erp_thread_setup(adapter); retval = zfcp_erp_thread_setup(adapter);
if (retval) { if (retval) {
ZFCP_LOG_INFO("error: start of error recovery thread for " ZFCP_LOG_INFO("error: start of error recovery thread for "
"adapter %s failed\n", "adapter %s failed\n",
zfcp_get_busid_by_adapter(adapter)); zfcp_get_busid_by_adapter(adapter));
goto out_erp_thread; goto out;
} }
retval = zfcp_adapter_scsi_register(adapter); retval = zfcp_adapter_scsi_register(adapter);
...@@ -177,8 +174,6 @@ zfcp_ccw_set_online(struct ccw_device *ccw_device) ...@@ -177,8 +174,6 @@ zfcp_ccw_set_online(struct ccw_device *ccw_device)
out_scsi_register: out_scsi_register:
zfcp_erp_thread_kill(adapter); zfcp_erp_thread_kill(adapter);
out_erp_thread:
zfcp_adapter_debug_unregister(adapter);
out: out:
up(&zfcp_data.config_sema); up(&zfcp_data.config_sema);
return retval; return retval;
...@@ -201,7 +196,6 @@ zfcp_ccw_set_offline(struct ccw_device *ccw_device) ...@@ -201,7 +196,6 @@ zfcp_ccw_set_offline(struct ccw_device *ccw_device)
zfcp_erp_adapter_shutdown(adapter, 0); zfcp_erp_adapter_shutdown(adapter, 0);
zfcp_erp_wait(adapter); zfcp_erp_wait(adapter);
zfcp_erp_thread_kill(adapter); zfcp_erp_thread_kill(adapter);
zfcp_adapter_debug_unregister(adapter);
up(&zfcp_data.config_sema); up(&zfcp_data.config_sema);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment