staging: panel: fix stackdump
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Tue, 12 May 2015 12:06:08 +0000 (17:36 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 24 May 2015 20:35:25 +0000 (13:35 -0700)
commit3c57e4c4f0a7b3ea8ac18d667f2ce9ed0152bc12
treea102978bf582a57e23ce7f5f07a8dff4c9af3705
parent9c7f20c528b6d274d2193efddbc9572dea52c438
staging: panel: fix stackdump

if we load the module, unload and then again try to load the module, we
will get a stackdump. In the module_exit function we are unregistering
the device and releasing the parport. So when we reach the detach
function parport is already null and the unregister_reboot_notifier()
is never called. When we again try to load the module it again tries
register_reboot_notifier() and gives us a stackdump as its earlier
registration is still not removed. It was caused by the
commit 9cf587072604 ('staging: panel: register reboot')
Fix this by moving all the unregistering and releasing in the detach
function, which should be the ideal case as the detach will be called if
we try to unregister the driver or if the parport is removed.

Fixes: 9cf587072604 ('staging: panel: register reboot')
Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/panel/panel.c