From: Felix Fietkau Date: Fri, 23 Mar 2018 19:09:23 +0000 (+0100) Subject: kernel: fix crash in flow offload when removing net devices X-Git-Tag: v18.06.0-rc1~557 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=db108cdf14129698cb0740efe72f37f816d40267;p=oweals%2Fopenwrt.git kernel: fix crash in flow offload when removing net devices Signed-off-by: Felix Fietkau --- diff --git a/target/linux/generic/hack-4.14/650-netfilter-add-xt_OFFLOAD-target.patch b/target/linux/generic/hack-4.14/650-netfilter-add-xt_OFFLOAD-target.patch index 5c40961c37..85826b8706 100644 --- a/target/linux/generic/hack-4.14/650-netfilter-add-xt_OFFLOAD-target.patch +++ b/target/linux/generic/hack-4.14/650-netfilter-add-xt_OFFLOAD-target.patch @@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o --- /dev/null +++ b/net/netfilter/xt_FLOWOFFLOAD.c -@@ -0,0 +1,338 @@ +@@ -0,0 +1,340 @@ +/* + * Copyright (C) 2018 Felix Fietkau + * @@ -121,6 +121,7 @@ Signed-off-by: Felix Fietkau +struct xt_flowoffload_hook { + struct hlist_node list; + struct nf_hook_ops ops; ++ struct net *net; + bool registered; + bool used; +}; @@ -201,8 +202,9 @@ Signed-off-by: Felix Fietkau + continue; + + hook->registered = true; ++ hook->net = dev_net(hook->ops.dev); + spin_unlock_bh(&hooks_lock); -+ nf_register_net_hook(dev_net(hook->ops.dev), &hook->ops); ++ nf_register_net_hook(hook->net, &hook->ops); + spin_lock_bh(&hooks_lock); + goto restart; + } @@ -221,7 +223,7 @@ Signed-off-by: Felix Fietkau + + hlist_del(&hook->list); + spin_unlock_bh(&hooks_lock); -+ nf_unregister_net_hook(dev_net(hook->ops.dev), &hook->ops); ++ nf_unregister_net_hook(hook->net, &hook->ops); + kfree(hook); + spin_lock_bh(&hooks_lock); + goto restart;