[PATCH] kni: error rollback with kni_dev_remove could cause a kernel crash
From: Ferruh Yigit <hidden>
Date: 2016-08-25 13:41:34
Subsystem:
library code, the rest · Maintainers:
Andrew Morton, Linus Torvalds
From: Ferruh Yigit <hidden>
Date: 2016-08-25 13:41:34
Subsystem:
library code, the rest · Maintainers:
Andrew Morton, Linus Torvalds
From: ZhouYates <redacted> Signed-off-by: ZhouYates <redacted> --- lib/librte_eal/linuxapp/kni/kni_misc.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/lib/librte_eal/linuxapp/kni/kni_misc.c b/lib/librte_eal/linuxapp/kni/kni_misc.c
index 59d15ca..7ef17f5 100644
--- a/lib/librte_eal/linuxapp/kni/kni_misc.c
+++ b/lib/librte_eal/linuxapp/kni/kni_misc.c@@ -448,7 +448,6 @@ kni_ioctl_create(struct net *net, kni = netdev_priv(net_dev); - kni->net_dev = net_dev; kni->group_id = dev_info.group_id; kni->core_id = dev_info.core_id; strncpy(kni->name, dev_info.name, RTE_KNI_NAMESIZE);
@@ -561,6 +560,9 @@ kni_ioctl_create(struct net *net, kni_dev_remove(kni); return -ENODEV; } + /*Set the kni->net_dev when the net_dev has registered success. + * Avoid unregistering unregistered net_dev by kni_dev_remove.*/ + kni->net_dev = net_dev; #ifdef RTE_KNI_VHOST kni_vhost_init(kni);
--
1.7.1