File tree Expand file tree Collapse file tree 2 files changed +18
-12
lines changed Expand file tree Collapse file tree 2 files changed +18
-12
lines changed Original file line number Diff line number Diff line change @@ -230,8 +230,9 @@ static struct kobj_type ktype_device_ctrl = {
230
230
*/
231
231
int edac_device_register_sysfs_main_kobj (struct edac_device_ctl_info * edac_dev )
232
232
{
233
+ struct device * dev_root ;
233
234
struct bus_type * edac_subsys ;
234
- int err ;
235
+ int err = - ENODEV ;
235
236
236
237
edac_dbg (1 , "\n" );
237
238
@@ -249,15 +250,16 @@ int edac_device_register_sysfs_main_kobj(struct edac_device_ctl_info *edac_dev)
249
250
*/
250
251
edac_dev -> owner = THIS_MODULE ;
251
252
252
- if (!try_module_get (edac_dev -> owner )) {
253
- err = - ENODEV ;
253
+ if (!try_module_get (edac_dev -> owner ))
254
254
goto err_out ;
255
- }
256
255
257
256
/* register */
258
- err = kobject_init_and_add (& edac_dev -> kobj , & ktype_device_ctrl ,
259
- & edac_subsys -> dev_root -> kobj ,
260
- "%s" , edac_dev -> name );
257
+ dev_root = bus_get_dev_root (edac_subsys );
258
+ if (dev_root ) {
259
+ err = kobject_init_and_add (& edac_dev -> kobj , & ktype_device_ctrl ,
260
+ & dev_root -> kobj , "%s" , edac_dev -> name );
261
+ put_device (dev_root );
262
+ }
261
263
if (err ) {
262
264
edac_dbg (1 , "Failed to register '.../edac/%s'\n" ,
263
265
edac_dev -> name );
Original file line number Diff line number Diff line change @@ -335,8 +335,9 @@ static struct kobj_type ktype_edac_pci_main_kobj = {
335
335
*/
336
336
static int edac_pci_main_kobj_setup (void )
337
337
{
338
- int err ;
338
+ int err = - ENODEV ;
339
339
struct bus_type * edac_subsys ;
340
+ struct device * dev_root ;
340
341
341
342
edac_dbg (0 , "\n" );
342
343
@@ -355,7 +356,6 @@ static int edac_pci_main_kobj_setup(void)
355
356
*/
356
357
if (!try_module_get (THIS_MODULE )) {
357
358
edac_dbg (1 , "try_module_get() failed\n" );
358
- err = - ENODEV ;
359
359
goto decrement_count_fail ;
360
360
}
361
361
@@ -367,9 +367,13 @@ static int edac_pci_main_kobj_setup(void)
367
367
}
368
368
369
369
/* Instanstiate the pci object */
370
- err = kobject_init_and_add (edac_pci_top_main_kobj ,
371
- & ktype_edac_pci_main_kobj ,
372
- & edac_subsys -> dev_root -> kobj , "pci" );
370
+ dev_root = bus_get_dev_root (edac_subsys );
371
+ if (dev_root ) {
372
+ err = kobject_init_and_add (edac_pci_top_main_kobj ,
373
+ & ktype_edac_pci_main_kobj ,
374
+ & dev_root -> kobj , "pci" );
375
+ put_device (dev_root );
376
+ }
373
377
if (err ) {
374
378
edac_dbg (1 , "Failed to register '.../edac/pci'\n" );
375
379
goto kobject_init_and_add_fail ;
You can’t perform that action at this time.
0 commit comments