lkml.org 
[lkml]   [2013]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 057/222] can: Do not call dev_put if restart timer is running upon close
    Date
    3.5.7.3 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Alexander Stein <alexander.stein@systec-electronic.com>

    commit ab48b03ec9ae1840a1e427e2375bd0d9d554b4ed upstream.

    If the restart timer is running due to BUS-OFF and the device is
    disconnected an dev_put will decrease the usage counter to -1 thus
    blocking the interface removal, resulting in the following dmesg
    lines repeating every 10s:
    can: notifier: receive list not found for dev can0
    can: notifier: receive list not found for dev can0
    can: notifier: receive list not found for dev can0
    unregister_netdevice: waiting for can0 to become free. Usage count = -1

    Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    ---
    drivers/net/can/dev.c | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
    index f03d7a4..4972609 100644
    --- a/drivers/net/can/dev.c
    +++ b/drivers/net/can/dev.c
    @@ -576,8 +576,7 @@ void close_candev(struct net_device *dev)
    {
    struct can_priv *priv = netdev_priv(dev);

    - if (del_timer_sync(&priv->restart_timer))
    - dev_put(dev);
    + del_timer_sync(&priv->restart_timer);
    can_flush_echo_skb(dev);
    }
    EXPORT_SYMBOL_GPL(close_candev);
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2013-01-16 17:45    [W:4.098 / U:0.280 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site