| From 523d29d58e79a9640e62ef29838b033d1ef0920b Mon Sep 17 00:00:00 2001 |
| From: yangerkun <yangerkun@huawei.com> |
| Date: Wed, 26 Feb 2020 11:54:35 +0800 |
| Subject: [PATCH] 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 <yangerkun@huawei.com> |
| Reviewed-by: Oliver Hartkopp <socketcan@hartkopp.net> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/slip/slip.c b/drivers/net/slip/slip.c |
| index 61d7e0d1d77d..8e56a41dd758 100644 |
| --- a/drivers/net/slip/slip.c |
| +++ b/drivers/net/slip/slip.c |
| @@ -863,7 +863,10 @@ static int slip_open(struct tty_struct *tty) |
| tty->disc_data = NULL; |
| clear_bit(SLF_INUSE, &sl->flags); |
| sl_free_netdev(sl->dev); |
| + /* do not call free_netdev before rtnl_unlock */ |
| + rtnl_unlock(); |
| free_netdev(sl->dev); |
| + return err; |
| |
| err_exit: |
| rtnl_unlock(); |
| -- |
| 2.7.4 |
| |