linux/drivers/isdn/gigaset
Tilman Schmidt 5d49c101a1 gigaset: fix Oops on module unload regression
The card state mutex was only initialized when a device was connected,
but used during unload unconditionally, leading to an Oops if a driver
was loaded and unloaded again without ever connecting a device.

Fix this by initializing the mutex as soon as the structure is allocated.
Also add a missing mutex unlock revealed in the same execution path.

This fixes a possible Oops in 2.6.25-rc that was introduced by commit
e468c04894 ("Gigaset: permit module
unload").

Thanks to Roland Kletzing for reporting this problem.

Signed-off-by: Tilman Schmidt <tilman@imap.cc>
Tested-by: Roland Kletzing <devzero@web.de>
Cc: Hansjoerg Lipp <hjlipp@web.de>
Cc: Karsten Keil <kkeil@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-03-07 11:06:08 -08:00
..
asyncdata.c gigaset: atomic cleanup 2008-02-06 10:41:12 -08:00
bas-gigaset.c Gigaset: permit module unload 2008-02-06 10:41:12 -08:00
common.c gigaset: fix Oops on module unload regression 2008-03-07 11:06:08 -08:00
ev-layer.c gigaset: atomic cleanup 2008-02-06 10:41:12 -08:00
gigaset.h Gigaset: permit module unload 2008-02-06 10:41:12 -08:00
i4l.c gigaset: remove pointless locking 2007-10-16 09:43:10 -07:00
interface.c Gigaset: permit module unload 2008-02-06 10:41:12 -08:00
isocdata.c gigaset: atomic cleanup 2008-02-06 10:41:12 -08:00
Kconfig Use menuconfig objects: ISDN/Gigaset 2007-07-21 17:49:17 -07:00
Makefile [PATCH] drivers/isdn/gigaset: build asyncdata.o into the gigaset module (fix) 2007-03-01 14:53:38 -08:00
proc.c gigaset: remove pointless locking 2007-10-16 09:43:10 -07:00
ser-gigaset.c ser_gigaset: convert mutex to completion 2008-02-06 10:41:12 -08:00
usb-gigaset.c Gigaset: permit module unload 2008-02-06 10:41:12 -08:00