From cef1e66ef92e7821e58e7dc32a2b764541a74ff4 Mon Sep 17 00:00:00 2001 From: Willem de Bruijn Date: Tue, 22 Oct 2013 10:59:18 -0400 Subject: [PATCH] sit: amend "allow to use rtnl ops on fb tunnel" Amend backport to 3.11.y of [ Upstream commit 205983c43700ac3a81e7625273a3fa83cd2759b5 ] The discussion thread in the upstream commit mentions that in backports to stable-* branches, the line - unregister_netdevice_queue(sitn->fb_tunnel_dev, &list); must be omitted if that branch does not have commit 5e6700b3bf98 ("sit: add support of x-netns"). This line has correctly been omitted in the backport to 3.10, which indeed does not have that commit. It was also removed in the backport to 3.11.y, which does have that commit. This causes the following steps to hit a BUG at net/core/dev.c:5039: `modprobe sit; rmmod sit` The bug demonstrates that it causes a device to be unregistered twice. The simple fix is to apply the one line in the upstream commit that was dropped in the backport to 3.11 (3783100374653e2e7fbdf68c710f5). This brings the logic in line with upstream linux, net and net-next branches. Signed-off-by: Willem de Bruijn Acked-by: Nicolas Dichtel Reviewed-by: Veaceslav Falico Signed-off-by: Greg Kroah-Hartman --- net/ipv6/sit.c | 1 - 1 file changed, 1 deletion(-) diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c index 86f639ba5407e..a51ad079ee588 100644 --- a/net/ipv6/sit.c +++ b/net/ipv6/sit.c @@ -1708,7 +1708,6 @@ static void __net_exit sit_exit_net(struct net *net) rtnl_lock(); sit_destroy_tunnels(sitn, &list); - unregister_netdevice_queue(sitn->fb_tunnel_dev, &list); unregister_netdevice_many(&list); rtnl_unlock(); } -- 2.47.2