Messages in this thread Patch in this message | | | From | Greg Kroah-Hartman <> | Subject | [PATCH 3/5] Staging: panel: fix oops on panel_cleanup_module | Date | Fri, 27 Feb 2009 14:49:20 -0800 |
| |
From: Costantino Leandro <lcostantino@gmail.com>
Check for null pardevice (not registered, ej: panel never attached, inexistent parport, etc. ) before calling parport_release, parport_unregister_device, and related funcs on module release.
Signed-off-by: Costantino Leandro <lcostantino@gmail.com> Acked-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- drivers/staging/panel/panel.c | 23 ++++++++++++----------- 1 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index ab69c1b..c2747bc 100644 --- a/drivers/staging/panel/panel.c +++ b/drivers/staging/panel/panel.c @@ -2164,19 +2164,20 @@ static void __exit panel_cleanup_module(void) if (scan_timer.function != NULL) del_timer(&scan_timer); - if (keypad_enabled) - misc_deregister(&keypad_dev); + if (pprt != NULL) { + if (keypad_enabled) + misc_deregister(&keypad_dev); + + if (lcd_enabled) { + panel_lcd_print("\x0cLCD driver " PANEL_VERSION + "\nunloaded.\x1b[Lc\x1b[Lb\x1b[L-"); + misc_deregister(&lcd_dev); + } - if (lcd_enabled) { - panel_lcd_print("\x0cLCD driver " PANEL_VERSION - "\nunloaded.\x1b[Lc\x1b[Lb\x1b[L-"); - misc_deregister(&lcd_dev); + /* TODO: free all input signals */ + parport_release(pprt); + parport_unregister_device(pprt); } - - /* TODO: free all input signals */ - - parport_release(pprt); - parport_unregister_device(pprt); parport_unregister_driver(&panel_driver); } -- 1.6.0.2
| |