kernel: fix crash in flow offload when removing net devices
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
2c7b0e9f31
commit
db108cdf14
1 changed files with 5 additions and 3 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue