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>
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);
{
tty_unregister_driver(gb_tty_driver);
put_tty_driver(gb_tty_driver);
+ idr_destroy(&tty_minors);
}
static struct gb_protocol uart_protocol = {
{
gb_protocol_deregister(&vibrator_protocol);
class_unregister(&vibrator_class);
+ ida_destroy(&minors);
}
module_exit(protocol_exit);