linux/drivers/isdn/gigaset
Pavel Shved 2f9381e984 gigaset: call module_put before restart of if_open()
if_open() calls try_module_get(), and after an attempt to lock a mutex
the if_open() function may return -ERESTARTSYS without
putting the module.  Then, when if_open() is executed again,
try_module_get() is called making the reference counter of THIS_MODULE
greater than one at successful exit from if_open().  The if_close()
function puts the module only once, and as a result it can't be
unloaded.

This patch adds module_put call before the return from if_open().

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Pavel Shved <shved@ispras.ru>
Signed-off-by: David S. Miller <davem@conan.davemloft.net>
2011-06-17 15:27:32 -04:00
..
Kconfig
Makefile
asyncdata.c
bas-gigaset.c isdn: gigaset: Fix set-but-unused variable. 2011-04-17 16:22:33 -07:00
capi.c
common.c
dummyll.c
ev-layer.c kstrtox: convert drivers/isdn/ 2011-03-30 21:39:22 -07:00
gigaset.h
i4l.c
interface.c gigaset: call module_put before restart of if_open() 2011-06-17 15:27:32 -04:00
isocdata.c
proc.c
ser-gigaset.c Revert "tty: make receive_buf() return the amout of bytes received" 2011-06-04 06:33:24 +09:00
usb-gigaset.c