kernel: remove support for kernel 4.19
[openwrt/staging/dedeckeh.git] / target / linux / generic / backport-4.19 / 343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
diff --git a/target/linux/generic/backport-4.19/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch b/target/linux/generic/backport-4.19/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
deleted file mode 100644 (file)
index 577f2d3..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-From: Pablo Neira Ayuso <pablo@netfilter.org>
-Date: Thu, 25 Jan 2018 12:58:55 +0100
-Subject: [PATCH] netfilter: nft_flow_offload: handle netdevice events from
- nf_flow_table
-
-Move the code that deals with device events to the core.
-
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
-
---- a/net/netfilter/nf_flow_table_core.c
-+++ b/net/netfilter/nf_flow_table_core.c
-@@ -535,5 +535,35 @@ void nf_flow_table_free(struct nf_flowta
- }
- EXPORT_SYMBOL_GPL(nf_flow_table_free);
-+static int nf_flow_table_netdev_event(struct notifier_block *this,
-+                                    unsigned long event, void *ptr)
-+{
-+      struct net_device *dev = netdev_notifier_info_to_dev(ptr);
-+
-+      if (event != NETDEV_DOWN)
-+              return NOTIFY_DONE;
-+
-+      nf_flow_table_cleanup(dev_net(dev), dev);
-+
-+      return NOTIFY_DONE;
-+}
-+
-+static struct notifier_block flow_offload_netdev_notifier = {
-+      .notifier_call  = nf_flow_table_netdev_event,
-+};
-+
-+static int __init nf_flow_table_module_init(void)
-+{
-+      return register_netdevice_notifier(&flow_offload_netdev_notifier);
-+}
-+
-+static void __exit nf_flow_table_module_exit(void)
-+{
-+      unregister_netdevice_notifier(&flow_offload_netdev_notifier);
-+}
-+
-+module_init(nf_flow_table_module_init);
-+module_exit(nf_flow_table_module_exit);
-+
- MODULE_LICENSE("GPL");
- MODULE_AUTHOR("Pablo Neira Ayuso <pablo@netfilter.org>");
---- a/net/netfilter/nft_flow_offload.c
-+++ b/net/netfilter/nft_flow_offload.c
-@@ -216,47 +216,14 @@ static struct nft_expr_type nft_flow_off
-       .owner          = THIS_MODULE,
- };
--static int flow_offload_netdev_event(struct notifier_block *this,
--                                   unsigned long event, void *ptr)
--{
--      struct net_device *dev = netdev_notifier_info_to_dev(ptr);
--
--      if (event != NETDEV_DOWN)
--              return NOTIFY_DONE;
--
--      nf_flow_table_cleanup(dev_net(dev), dev);
--
--      return NOTIFY_DONE;
--}
--
--static struct notifier_block flow_offload_netdev_notifier = {
--      .notifier_call  = flow_offload_netdev_event,
--};
--
- static int __init nft_flow_offload_module_init(void)
- {
--      int err;
--
--      err = register_netdevice_notifier(&flow_offload_netdev_notifier);
--      if (err)
--              goto err;
--
--      err = nft_register_expr(&nft_flow_offload_type);
--      if (err < 0)
--              goto register_expr;
--
--      return 0;
--
--register_expr:
--      unregister_netdevice_notifier(&flow_offload_netdev_notifier);
--err:
--      return err;
-+      return nft_register_expr(&nft_flow_offload_type);
- }
- static void __exit nft_flow_offload_module_exit(void)
- {
-       nft_unregister_expr(&nft_flow_offload_type);
--      unregister_netdevice_notifier(&flow_offload_netdev_notifier);
- }
- module_init(nft_flow_offload_module_init);