• Pavel Shved's avatar
    gigaset: call module_put before restart of if_open() · 2f9381e9
    Pavel Shved authored
    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: default avatarPavel Shved <shved@ispras.ru>
    Signed-off-by: default avatarDavid S. Miller <davem@conan.davemloft.net>
    2f9381e9
interface.c 16.4 KB