kernel: mark source kernel for netfilter backports
[openwrt/openwrt.git] / target / linux / generic / backport-4.14 / 340-v4.16-netfilter-nft_flow_offload-no-need-to-flush-entries-.patch
diff --git a/target/linux/generic/backport-4.14/340-v4.16-netfilter-nft_flow_offload-no-need-to-flush-entries-.patch b/target/linux/generic/backport-4.14/340-v4.16-netfilter-nft_flow_offload-no-need-to-flush-entries-.patch
new file mode 100644 (file)
index 0000000..539550d
--- /dev/null
@@ -0,0 +1,29 @@
+From: Pablo Neira Ayuso <pablo@netfilter.org>
+Date: Thu, 1 Feb 2018 18:49:01 +0100
+Subject: [PATCH] netfilter: nft_flow_offload: no need to flush entries on
+ module removal
+
+nft_flow_offload module removal does not require to flush existing
+flowtables, it is valid to remove this module while keeping flowtables
+around.
+
+Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+---
+
+--- a/net/netfilter/nft_flow_offload.c
++++ b/net/netfilter/nft_flow_offload.c
+@@ -247,14 +247,8 @@ register_expr:
+ static void __exit nft_flow_offload_module_exit(void)
+ {
+-      struct net *net;
+-
+       nft_unregister_expr(&nft_flow_offload_type);
+       unregister_netdevice_notifier(&flow_offload_netdev_notifier);
+-      rtnl_lock();
+-      for_each_net(net)
+-              nft_flow_table_iterate(net, nft_flow_offload_iterate_cleanup, NULL);
+-      rtnl_unlock();
+ }
+ module_init(nft_flow_offload_module_init);