File tree Expand file tree Collapse file tree 1 file changed +9
-5
lines changed Expand file tree Collapse file tree 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, struct device_driver *drv)
6666 driver_name = make_driver_name (drv );
6767 if (!driver_name ) {
6868 ret = - ENOMEM ;
69- goto out ;
69+ goto out_remove_kobj ;
7070 }
7171
7272 module_create_drivers_dir (mk );
7373 if (!mk -> drivers_dir ) {
7474 ret = - EINVAL ;
75- goto out ;
75+ goto out_free_driver_name ;
7676 }
7777
7878 ret = sysfs_create_link (mk -> drivers_dir , & drv -> p -> kobj , driver_name );
7979 if (ret )
80- goto out ;
80+ goto out_remove_drivers_dir ;
8181
8282 kfree (driver_name );
8383
8484 return 0 ;
85- out :
86- sysfs_remove_link ( & drv -> p -> kobj , "module" );
85+
86+ out_remove_drivers_dir :
8787 sysfs_remove_link (mk -> drivers_dir , driver_name );
88+
89+ out_free_driver_name :
8890 kfree (driver_name );
8991
92+ out_remove_kobj :
93+ sysfs_remove_link (& drv -> p -> kobj , "module" );
9094 return ret ;
9195}
9296
You can’t perform that action at this time.
0 commit comments