mirror of https://gitee.com/openkylin/linux.git
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:
parent
6ceb8fdeae
commit
5c1ac69455
|
@ -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);
|
||||
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue