From: yangerkun Date: Wed, 26 Feb 2020 03:54:35 +0000 (+0800) Subject: slip: not call free_netdev before rtnl_unlock in slip_open X-Git-Tag: v3.16.85~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78c31fa288ee2f58f84c792cc75d93efd073f4cf;p=thirdparty%2Fkernel%2Fstable.git slip: not call free_netdev before rtnl_unlock in slip_open commit f596c87005f7b1baeb7d62d9a9e25d68c3dfae10 upstream. As the description before netdev_run_todo, we cannot call free_netdev before rtnl_unlock, fix it by reorder the code. Signed-off-by: yangerkun Reviewed-by: Oliver Hartkopp Signed-off-by: David S. Miller [bwh: Backported to 3.16: adjust context] Signed-off-by: Ben Hutchings --- diff --git a/drivers/net/slip/slip.c b/drivers/net/slip/slip.c index a29e8c8c44b06..812fe19986e21 100644 --- a/drivers/net/slip/slip.c +++ b/drivers/net/slip/slip.c @@ -867,7 +867,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(); sl_free_netdev(sl->dev); + return err; err_exit: rtnl_unlock();