scsi_debug: Convert to use root_device_register() and root_device_unregister()
PATCH v2 1/1 scsi_debug: Convert to use root_device_register() and root_device_unregister()
From: Nicholas Bellinger <[email protected]>
Hi Dough and Co,
This patch updates the scsi_debug virtual LLD to use root_device_register() and root_device_unregister() from include/linux/device.h instead of device_register() and device_unregister() respectively within scsi_debug_init() and scsi_debug_exit() This simply involved converting the static struct device pseudo_primary into a pointer that is setup by the call to root_device_register().
This patch also contains the correct IS_ERR() conditional check of root_device_register() from within scsi_debug_init().
Thanks to Richard Sharpe and Dmitry Torokhov for their help with this item.
--- drivers/scsi/scsi_debug.c | 27 +++++++++------------------ 1 files changed, 9 insertions(+), 18 deletions(-)
drivers/scsi/scsi_debug.c +9 -18
@@ -3207,23 +3207,14 @@ static void do_remove_driverfs_files(void)driver_remove_file (&sdebug_driverfs_driver, &driver_attr_add_host); } -static void pseudo_0_release (struct device *dev) -{ -if (SCSI_DEBUG_OPT_NOISE & scsi_debug_opts) -printk (KERN_INFO "scsi_debug: pseudo_0_release() called\n" ); -} - -static struct device pseudo_primary = { - .init_name ="pseudo_0" , - .release = pseudo_0_release, -}; +struct device *pseudo_primary;static int __init scsi_debug_init (void ) {unsigned long sz;int host_to_add;int k; -int ret; +int ret =0 ;switch (scsi_debug_sector_size) {case 512 :
@@ -3352,10 +3343,10 @@ static int __init scsi_debug_init(void)map_region (0 ,2 ); } - ret =device_register (&pseudo_primary); -if (ret <0 ) { -printk (KERN_WARNING "scsi_debug: device_register error: %d\n" , - ret); + pseudo_primary =root_device_register ("pseudo_0" ); +if (IS_ERR (pseudo_primary)) { +printk (KERN_WARNING "scsi_debug: root_device_register() error\n" ); + ret =PTR_ERR (pseudo_primary); goto free_vm; } ret =bus_register (&pseudo_lld_bus);
@@ -3402,7 +3393,7 @@ del_files: bus_unreg:bus_unregister (&pseudo_lld_bus); dev_unreg: -device_unregister (&pseudo_primary); +root_device_unregister (pseudo_primary); free_vm:if (map_storep)vfree (map_storep);
@@ -3423,7 +3414,7 @@ static void __exit scsi_debug_exit(void)do_remove_driverfs_files ();driver_unregister (&sdebug_driverfs_driver);bus_unregister (&pseudo_lld_bus); -device_unregister (&pseudo_primary); +root_device_unregister (pseudo_primary);if (dif_storep)vfree (dif_storep);
@@ -3474,7 +3465,7 @@ static int sdebug_add_adapter(void)spin_unlock (&sdebug_host_list_lock); sdbg_host->dev.bus = &pseudo_lld_bus; - sdbg_host->dev.parent = &pseudo_primary; + sdbg_host->dev.parent = pseudo_primary; sdbg_host->dev.release = &sdebug_release_adapter;dev_set_name (&sdbg_host->dev,"adapter%d" , scsi_debug_add_host);
Signature · 1 line
1.5.6.5
Quoted 37 lines · Nicholas A. Bellinger
From: Nicholas Bellinger <[email protected]>
Hi Dough and Co,
This patch updates the
scsi_debugvirtual LLD to useroot_device_register()androot_device_unregister()frominclude/linux/device.hinstead ofdevice_register()anddevice_unregister()respectively withinscsi_debug_init()andscsi_debug_exit()This simply involved converting the static struct devicepseudo_primaryinto a pointer that is setup by the call toroot_device_register().This patch also contains the correct
IS_ERR()conditional check ofroot_device_register()from withinscsi_debug_init().Thanks to Richard Sharpe and Dmitry Torokhov for their help with this item.
Signed-off-by Nicholas A. Bellinger <[email protected]>--- drivers/scsi/scsi_debug.c | 27 +++++++++------------------ 1 files changed, 9 insertions(+), 18 deletions(-)drivers/scsi/scsi_debug.c +0
-9@@ -3207,23 +3207,14 @@ static void do_remove_driverfs_files(void)driver_remove_file (&sdebug_driverfs_driver, &driver_attr_add_host); } -static void pseudo_0_release (struct device *dev) -{ -if (SCSI_DEBUG_OPT_NOISE & scsi_debug_opts) -printk (KERN_INFO "scsi_debug: pseudo_0_release() called\n" ); -} - -static struct device pseudo_primary = { - .init_name ="pseudo_0" , - .release = pseudo_0_release,
drivers/scsi/scsi_debug.c static void do_remove_driverfs_files(void) · line 3217
Quoted 10 lines
drivers/scsi/scsi_debug.c +2
-2-}; +struct device *pseudo_primary;static int __init scsi_debug_init (void ) {unsigned long sz;int host_to_add;int k; -int ret; +int ret =0 ;
Please drop this chunk, it is not needed and is dangerous WRT future changes to the file as I explained earlier.
Signature · 1 line
Dmitry
Quoted 41 lines · Dmitry Torokhov
Quoted 40 lines · Nicholas A. Bellinger
From: Nicholas Bellinger <[email protected]>
Hi Dough and Co,
This patch updates the
scsi_debugvirtual LLD to useroot_device_register()androot_device_unregister()frominclude/linux/device.hinstead ofdevice_register()anddevice_unregister()respectively withinscsi_debug_init()andscsi_debug_exit()This simply involved converting the static struct devicepseudo_primaryinto a pointer that is setup by the call toroot_device_register().This patch also contains the correct
IS_ERR()conditional check ofroot_device_register()from withinscsi_debug_init().Thanks to Richard Sharpe and Dmitry Torokhov for their help with this item.
Signed-off-by Nicholas A. Bellinger <[email protected]>--- drivers/scsi/scsi_debug.c | 27 +++++++++------------------ 1 files changed, 9 insertions(+), 18 deletions(-)drivers/scsi/scsi_debug.c +1
-10@@ -3207,23 +3207,14 @@ static void do_remove_driverfs_files(void)driver_remove_file (&sdebug_driverfs_driver, &driver_attr_add_host); } -static void pseudo_0_release (struct device *dev) -{ -if (SCSI_DEBUG_OPT_NOISE & scsi_debug_opts) -printk (KERN_INFO "scsi_debug: pseudo_0_release() called\n" ); -} - -static struct device pseudo_primary = { - .init_name ="pseudo_0" , - .release = pseudo_0_release, -}; +struct device *pseudo_primary;
Quoted 10 lines
drivers/scsi/scsi_debug.c static void do_remove_driverfs_files(void) · line 3217
Quoted 7 lines
drivers/scsi/scsi_debug.c +1
-1static int __init scsi_debug_init (void ) {unsigned long sz;int host_to_add;int k; -int ret; +int ret =0 ;Please drop this chunk, it is not needed and is dangerous WRT future changes to the file as I explained earlier.
As you wish..
Best,
--nab