2f9381e984
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> |
||
---|---|---|
.. | ||
asyncdata.c | ||
bas-gigaset.c | ||
capi.c | ||
common.c | ||
dummyll.c | ||
ev-layer.c | ||
gigaset.h | ||
i4l.c | ||
interface.c | ||
isocdata.c | ||
Kconfig | ||
Makefile | ||
proc.c | ||
ser-gigaset.c | ||
usb-gigaset.c |