File tree 1 file changed +9
-5
lines changed
1 file changed +9
-5
lines changed Original file line number Diff line number Diff line change @@ -66,27 +66,31 @@ int module_add_driver(struct module *mod, const struct device_driver *drv)
66
66
driver_name = make_driver_name (drv );
67
67
if (!driver_name ) {
68
68
ret = - ENOMEM ;
69
- goto out ;
69
+ goto out_remove_kobj ;
70
70
}
71
71
72
72
module_create_drivers_dir (mk );
73
73
if (!mk -> drivers_dir ) {
74
74
ret = - EINVAL ;
75
- goto out ;
75
+ goto out_free_driver_name ;
76
76
}
77
77
78
78
ret = sysfs_create_link (mk -> drivers_dir , & drv -> p -> kobj , driver_name );
79
79
if (ret )
80
- goto out ;
80
+ goto out_remove_drivers_dir ;
81
81
82
82
kfree (driver_name );
83
83
84
84
return 0 ;
85
- out :
86
- sysfs_remove_link ( & drv -> p -> kobj , "module" );
85
+
86
+ out_remove_drivers_dir :
87
87
sysfs_remove_link (mk -> drivers_dir , driver_name );
88
+
89
+ out_free_driver_name :
88
90
kfree (driver_name );
89
91
92
+ out_remove_kobj :
93
+ sysfs_remove_link (& drv -> p -> kobj , "module" );
90
94
return ret ;
91
95
}
92
96
You can’t perform that action at this time.
0 commit comments