greybus: properly cleanup ida and idr structures when shutting down

idr and ida structures have internal memory allocated that needs to be
freed when modules are removed.  So call the proper idr_destroy() or
ida_destroy() functions on the module exit path to free the memory.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Reviewed-by: Alex Elder <elder@linaro.org>
This commit is contained in:
Greg Kroah-Hartman 2015-07-08 10:44:09 -07:00
parent 6ceb8fdeae
commit 5c1ac69455
3 changed files with 3 additions and 0 deletions

View File

@ -364,6 +364,7 @@ static void __exit raw_exit(void)
gb_protocol_deregister(&raw_protocol);
unregister_chrdev_region(MKDEV(raw_major, 0), NUM_MINORS);
class_destroy(raw_class);
ida_destroy(&minors);
}
module_exit(raw_exit);

View File

@ -761,6 +761,7 @@ static void gb_tty_exit(void)
{
tty_unregister_driver(gb_tty_driver);
put_tty_driver(gb_tty_driver);
idr_destroy(&tty_minors);
}
static struct gb_protocol uart_protocol = {

View File

@ -190,6 +190,7 @@ static __exit void protocol_exit(void)
{
gb_protocol_deregister(&vibrator_protocol);
class_unregister(&vibrator_class);
ida_destroy(&minors);
}
module_exit(protocol_exit);