Skip to content

Commit

Permalink
driver core: refcounting fix
Browse files Browse the repository at this point in the history
Fix a reference counting bug exposed by commit
725522b.  If driver.mod_name exists, we
take a reference in module_add_driver(), and never release it.  Undo that
reference in module_remove_driver().

Signed-off-by: Mike Galbraith <efault@gmx.de>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Mike Galbraith authored and Greg Kroah-Hartman committed Feb 23, 2007
1 parent 40cf67c commit 63ce18c
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions kernel/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -2425,6 +2425,12 @@ void module_remove_driver(struct device_driver *drv)
kfree(driver_name);
}
}
/*
* Undo the additional reference we added in module_add_driver()
* via kset_find_obj()
*/
if (drv->mod_name)
kobject_put(&drv->kobj);
}
EXPORT_SYMBOL(module_remove_driver);
#endif
Expand Down

0 comments on commit 63ce18c

Please sign in to comment.