]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
slcan: not call free_netdev before rtnl_unlock in slcan_open
authorOliver Hartkopp <socketcan@hartkopp.net>
Sat, 21 Mar 2020 13:08:29 +0000 (14:08 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 11 Jun 2020 18:05:35 +0000 (19:05 +0100)
commit 2091a3d42b4f339eaeed11228e0cbe9d4f92f558 upstream.

As the description before netdev_run_todo, we cannot call free_netdev
before rtnl_unlock, fix it by reorder the code.

This patch is a 1:1 copy of upstream slip.c commit f596c87005f7
("slip: not call free_netdev before rtnl_unlock in slip_open").

Reported-by: yangerkun <yangerkun@huawei.com>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/can/slcan.c

index 02ea23c221266678a5b4e53ef65d4700ab49a234..772fe3bfc348ab0ac7d00f4a9b2206c24c09b07e 100644 (file)
@@ -620,7 +620,10 @@ err_free_chan:
        sl->tty = NULL;
        tty->disc_data = NULL;
        clear_bit(SLF_INUSE, &sl->flags);
+       /* do not call free_netdev before rtnl_unlock */
+       rtnl_unlock();
        slc_free_netdev(sl->dev);
+       return err;
 
 err_exit:
        rtnl_unlock();