[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: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
52ef11a717
commit
ff17a29d3c
@ -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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
|
|
||||||
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)
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user