tcm_loop: Convert to using root_device_register() and root_device_unregister()
Subsystems (2)
PATCH 1/1 tcm_loop: Convert to using root_device_register() and root_device_unregister()
From: Nicholas Bellinger <[email protected]>
This patch updates TCM_Loop to use root_device_register() and root_device_unregister() from include/linux/device.h instead of device_register() and device_unregister() respectively within tcm_loop_alloc_core_bus() and tcm_loop_release_core_bus(). This simply involved converting the static struct device tcm_loop_primary into a pointer that is setup by the call to root_device_register().
Thanks to Richard Sharpe and Dmitry Torokhov for their help with this item.
Signed-off-by Nicholas A. Bellinger <[email protected]>
--- drivers/target/tcm_loop/tcm_loop_fabric_scsi.c | 29 +++++++++-------------- 1 files changed, 11 insertions(+), 18 deletions(-)
drivers/target/tcm_loop/tcm_loop_fabric_scsi.c +11 -18
@@ -257,16 +257,10 @@ static struct device_driver tcm_loop_driverfs = { .name = "tcm_loop", .bus = &tcm_loop_lld_bus, }; - -static void tcm_loop_primary_release (struct device *dev) -{ -return ; -} - -static struct device tcm_loop_primary = { - .init_name ="tcm_loop_0" , - .release = tcm_loop_primary_release, -}; +/* +* Used with root_device_register() in tcm_loop_alloc_core_bus() below +*/ +struct device *tcm_loop_primary;/* * Copied from drivers/scsi/libfc/fc_fcp.c:fc_change_queue_depth() and
@@ -555,7 +549,7 @@ int tcm_loop_setup_hba_bus(struct tcm_loop_hba *tl_hba, int tcm_loop_host_id)int ret; tl_hba->dev.bus = &tcm_loop_lld_bus; - tl_hba->dev.parent = &tcm_loop_primary; + tl_hba->dev.parent = tcm_loop_primary; tl_hba->dev.release = &tcm_loop_release_adapter;dev_set_name (&tl_hba->dev,"tcm_loop_adapter_%d" , tcm_loop_host_id);
@@ -577,11 +571,10 @@ int tcm_loop_alloc_core_bus(void) {int ret; - ret =device_register (&tcm_loop_primary); -if (ret) { -printk (KERN_ERR "device_register() failed for" -" tcm_loop_primary\n" ); -return ret; + tcm_loop_primary =root_device_register ("tcm_loop_0" ); +if (!(tcm_loop_primary)) { +printk (KERN_ERR "Unable to allocate tcm_loop_primary\n" ); +return -ENOMEM ; } ret =bus_register (&tcm_loop_lld_bus);
@@ -603,7 +596,7 @@ int tcm_loop_alloc_core_bus(void) bus_unreg:bus_unregister (&tcm_loop_lld_bus); dev_unreg: -device_unregister (&tcm_loop_primary); +root_device_unregister (tcm_loop_primary);return ret; }
@@ -611,7 +604,7 @@ void tcm_loop_release_core_bus(void) {driver_unregister (&tcm_loop_driverfs);bus_unregister (&tcm_loop_lld_bus); -device_unregister (&tcm_loop_primary); +root_device_unregister (tcm_loop_primary);printk (KERN_INFO "Releasing TCM Loop Core BUS\n" ); }
Signature · 1 line
1.5.6.5