linux-sg2042/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 isdn/gigaset: remove EXPERIMENTAL tag from GIGASET_CAPI 2010-07-07 16:57:56 -07:00
Makefile gigaset: add Kernel CAPI interface (v3) 2009-10-06 22:43:53 -07:00
asyncdata.c isdn/gigaset: honor CAPI application's buffer size request 2010-06-25 21:16:59 -07:00
bas-gigaset.c isdn: gigaset: Fix set-but-unused variable. 2011-04-17 16:22:33 -07:00
capi.c ISDN, Gigaset: Fix memory leak in do_disconnect_req() 2010-12-31 11:17:10 -08:00
common.c isdn/gigaset: drop obsolete debug option 2010-10-01 00:33:34 -07:00
dummyll.c gigaset: fix build failure 2010-03-17 14:22:07 -07:00
ev-layer.c kstrtox: convert drivers/isdn/ 2011-03-30 21:39:22 -07:00
gigaset.h isdn/gigaset: drop obsolete debug option 2010-10-01 00:33:34 -07:00
i4l.c isdn/gigaset: drop obsolete debug option 2010-10-01 00:33:34 -07:00
interface.c gigaset: call module_put before restart of if_open() 2011-06-17 15:27:32 -04:00
isocdata.c isdn/gigaset: correct bas_gigaset rx buffer handling 2010-10-01 00:33:33 -07:00
proc.c gigaset: include cleanup cleanup 2010-04-18 02:33:29 -07:00
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 tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00