Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1038,6 +1038,10 @@ zfcp_adapter_enqueue(struct ccw_device *ccw_device)
	spin_lock_init(&adapter->san_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 */

	rwlock_init(&adapter->erp_lock);
@@ -1084,6 +1088,8 @@ zfcp_adapter_enqueue(struct ccw_device *ccw_device)
 generic_services_failed:
	zfcp_sysfs_adapter_remove_files(&adapter->ccw_device->dev);
 sysfs_failed:
	zfcp_adapter_debug_unregister(adapter);
 debug_register_failed:
	dev_set_drvdata(&ccw_device->dev, NULL);
	zfcp_reqlist_free(adapter);
 failed_low_mem_buffers:
@@ -1129,6 +1135,8 @@ zfcp_adapter_dequeue(struct zfcp_adapter *adapter)
		goto out;
	}

	zfcp_adapter_debug_unregister(adapter);

	/* remove specified adapter data structure from list */
	write_lock_irq(&zfcp_data.config_lock);
	list_del(&adapter->list);
+1 −7
Original line number Diff line number Diff line
@@ -150,15 +150,12 @@ zfcp_ccw_set_online(struct ccw_device *ccw_device)
	down(&zfcp_data.config_sema);
	adapter = dev_get_drvdata(&ccw_device->dev);

	retval = zfcp_adapter_debug_register(adapter);
	if (retval)
		goto out;
	retval = zfcp_erp_thread_setup(adapter);
	if (retval) {
		ZFCP_LOG_INFO("error: start of error recovery thread for "
			      "adapter %s failed\n",
			      zfcp_get_busid_by_adapter(adapter));
		goto out_erp_thread;
		goto out;
	}

	retval = zfcp_adapter_scsi_register(adapter);
@@ -177,8 +174,6 @@ zfcp_ccw_set_online(struct ccw_device *ccw_device)

 out_scsi_register:
	zfcp_erp_thread_kill(adapter);
 out_erp_thread:
	zfcp_adapter_debug_unregister(adapter);
 out:
	up(&zfcp_data.config_sema);
	return retval;
@@ -201,7 +196,6 @@ zfcp_ccw_set_offline(struct ccw_device *ccw_device)
	zfcp_erp_adapter_shutdown(adapter, 0);
	zfcp_erp_wait(adapter);
	zfcp_erp_thread_kill(adapter);
	zfcp_adapter_debug_unregister(adapter);
	up(&zfcp_data.config_sema);
	return 0;
}