2.6.37-stable review patch. If anyone has any objections, please let us know.
------------------ From: Alan Stern <[email protected]> commit d5aa475180d03d45c5dc6134aa833f1b3e89c45e upstream. This patch (as1441) fixes a bug in g_printer. The gadget driver, char device number, and class device should be unregistered in reverse order of registration. As it is now, when the module is unloaded the class device gets unregistered first, causing a crash when the unbind method tries to access it. This fixes Bugzilla #25882. Signed-off-by: Alan Stern <[email protected]> CC: Roland Kletzing <[email protected]> CC: Craig W. Nadler <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> --- drivers/usb/gadget/printer.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) --- a/drivers/usb/gadget/printer.c +++ b/drivers/usb/gadget/printer.c @@ -1596,13 +1596,12 @@ cleanup(void) int status; mutex_lock(&usb_printer_gadget.lock_printer_io); - class_destroy(usb_gadget_class); - unregister_chrdev_region(g_printer_devno, 2); - status = usb_gadget_unregister_driver(&printer_driver); if (status) ERROR(dev, "usb_gadget_unregister_driver %x\n", status); + unregister_chrdev_region(g_printer_devno, 2); + class_destroy(usb_gadget_class); mutex_unlock(&usb_printer_gadget.lock_printer_io); } module_exit(cleanup); _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
