diff options
author | Felix Fietkau <nbd@nbd.name> | 2018-03-23 20:09:23 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2018-03-23 20:56:34 +0100 |
commit | db108cdf14129698cb0740efe72f37f816d40267 (patch) | |
tree | 3d70d15fd0a10c5b3695462abf9268cc35403435 /target/linux | |
parent | 2c7b0e9f31630c97f4864ee729be64a2b7ba98e4 (diff) | |
download | upstream-db108cdf14129698cb0740efe72f37f816d40267.tar.gz upstream-db108cdf14129698cb0740efe72f37f816d40267.tar.bz2 upstream-db108cdf14129698cb0740efe72f37f816d40267.zip |
kernel: fix crash in flow offload when removing net devices
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux')
-rw-r--r-- | target/linux/generic/hack-4.14/650-netfilter-add-xt_OFFLOAD-target.patch | 8 |
1 files changed, 5 insertions, 3 deletions
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 <nbd@nbd.name> 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 <nbd@nbd.name> + * @@ -121,6 +121,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> +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 <nbd@nbd.name> + 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 <nbd@nbd.name> + + 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; |