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 @@ -228,8 +228,9 @@ static struct kobj_type ktype_device_ctrl = {
228
228
*/
229
229
int edac_device_register_sysfs_main_kobj (struct edac_device_ctl_info * edac_dev )
230
230
{
231
+ struct device * dev_root ;
231
232
struct bus_type * edac_subsys ;
232
- int err ;
233
+ int err = - ENODEV ;
233
234
234
235
edac_dbg (1 , "\n" );
235
236
@@ -247,15 +248,16 @@ int edac_device_register_sysfs_main_kobj(struct edac_device_ctl_info *edac_dev)
247
248
*/
248
249
edac_dev -> owner = THIS_MODULE ;
249
250
250
- if (!try_module_get (edac_dev -> owner )) {
251
- err = - ENODEV ;
251
+ if (!try_module_get (edac_dev -> owner ))
252
252
goto err_out ;
253
- }
254
253
255
254
/* register */
256
- err = kobject_init_and_add (& edac_dev -> kobj , & ktype_device_ctrl ,
257
- & edac_subsys -> dev_root -> kobj ,
258
- "%s" , edac_dev -> name );
255
+ dev_root = bus_get_dev_root (edac_subsys );
256
+ if (dev_root ) {
257
+ err = kobject_init_and_add (& edac_dev -> kobj , & ktype_device_ctrl ,
258
+ & dev_root -> kobj , "%s" , edac_dev -> name );
259
+ put_device (dev_root );
260
+ }
259
261
if (err ) {
260
262
edac_dbg (1 , "Failed to register '.../edac/%s'\n" ,
261
263
edac_dev -> name );
Original file line number Diff line number Diff line change @@ -337,8 +337,9 @@ static struct kobj_type ktype_edac_pci_main_kobj = {
337
337
*/
338
338
static int edac_pci_main_kobj_setup (void )
339
339
{
340
- int err ;
340
+ int err = - ENODEV ;
341
341
struct bus_type * edac_subsys ;
342
+ struct device * dev_root ;
342
343
343
344
edac_dbg (0 , "\n" );
344
345
@@ -357,7 +358,6 @@ static int edac_pci_main_kobj_setup(void)
357
358
*/
358
359
if (!try_module_get (THIS_MODULE )) {
359
360
edac_dbg (1 , "try_module_get() failed\n" );
360
- err = - ENODEV ;
361
361
goto decrement_count_fail ;
362
362
}
363
363
@@ -369,9 +369,13 @@ static int edac_pci_main_kobj_setup(void)
369
369
}
370
370
371
371
/* Instanstiate the pci object */
372
- err = kobject_init_and_add (edac_pci_top_main_kobj ,
373
- & ktype_edac_pci_main_kobj ,
374
- & edac_subsys -> dev_root -> kobj , "pci" );
372
+ dev_root = bus_get_dev_root (edac_subsys );
373
+ if (dev_root ) {
374
+ err = kobject_init_and_add (edac_pci_top_main_kobj ,
375
+ & ktype_edac_pci_main_kobj ,
376
+ & dev_root -> kobj , "pci" );
377
+ put_device (dev_root );
378
+ }
375
379
if (err ) {
376
380
edac_dbg (1 , "Failed to register '.../edac/pci'\n" );
377
381
goto kobject_init_and_add_fail ;
You can’t perform that action at this time.
0 commit comments