kernel: bump 4.19 to 4.19.72
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Wed, 11 Sep 2019 09:35:24 +0000 (11:35 +0200)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Fri, 13 Sep 2019 14:40:29 +0000 (16:40 +0200)
Refreshed all patches.

Remove upstreamed:
- 390-v5.3-net-sched-fix-action-ipt-crash.patch

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
include/kernel-version.mk
target/linux/generic/backport-4.19/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
target/linux/generic/backport-4.19/390-v5.3-net-sched-fix-action-ipt-crash.patch [deleted file]
target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch

index 8a44b633cac655c449fbf4b66ebafcbbda688827..bad76ca645d80640230684df32bc99d88b7d0bbe 100644 (file)
@@ -8,11 +8,11 @@ endif
 
 LINUX_VERSION-4.9 = .192
 LINUX_VERSION-4.14 = .143
-LINUX_VERSION-4.19 = .71
+LINUX_VERSION-4.19 = .72
 
 LINUX_KERNEL_HASH-4.9.192 = 7a1a300cce70a4fd0d49b7fff7b1673159b61c4040c5a7c08ea333a7cb328d54
 LINUX_KERNEL_HASH-4.14.143 = 2534f2f03cb937700a03dd85dcf1cb6e6f46fdd29d489580cc3183d6c0643d93
-LINUX_KERNEL_HASH-4.19.71 = 1f53ebffd4842099db429172f6bac6a23e6f355f1278efb321860a34cf9a5cae
+LINUX_KERNEL_HASH-4.19.72 = f9fcb6b3bd29115ac55fc154e300c3dce2044502732f6842ad6c25e6f9f51f6d
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
index 0ef2f488046ee93e9574821d3bc2ef6619b17e06..fc668dca10e419bb460db80f59a81a922aafd361 100644 (file)
@@ -48,7 +48,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  MODULE_AUTHOR("Pablo Neira Ayuso <pablo@netfilter.org>");
 --- a/net/netfilter/nft_flow_offload.c
 +++ b/net/netfilter/nft_flow_offload.c
-@@ -208,47 +208,14 @@ static struct nft_expr_type nft_flow_off
+@@ -211,47 +211,14 @@ static struct nft_expr_type nft_flow_off
        .owner          = THIS_MODULE,
  };
  
diff --git a/target/linux/generic/backport-4.19/390-v5.3-net-sched-fix-action-ipt-crash.patch b/target/linux/generic/backport-4.19/390-v5.3-net-sched-fix-action-ipt-crash.patch
deleted file mode 100644 (file)
index 3b81d0e..0000000
+++ /dev/null
@@ -1,290 +0,0 @@
-From: Cong Wang <xiyou.wangcong@gmail.com>
-To: netdev@vger.kernel.org
-Cc: Cong Wang <xiyou.wangcong@gmail.com>,
-       Tony Ambardar <itugrok@yahoo.com>,
-       Jamal Hadi Salim <jhs@mojatatu.com>,
-       Jiri Pirko <jiri@resnulli.us>
-Subject: [Patch net] net_sched: fix a NULL pointer deref in ipt action
-Date: Sun, 25 Aug 2019 10:01:32 -0700
-
-The net pointer in struct xt_tgdtor_param is not explicitly
-initialized therefore is still NULL when dereferencing it.
-So we have to find a way to pass the correct net pointer to
-ipt_destroy_target().
-
-The best way I find is just saving the net pointer inside the per
-netns struct tcf_idrinfo, which could make this patch smaller.
-
-Fixes: 0c66dc1ea3f0 ("netfilter: conntrack: register hooks in netns when needed by ruleset")
-Reported-and-tested-by: Tony Ambardar <itugrok@yahoo.com>
-Cc: Jamal Hadi Salim <jhs@mojatatu.com>
-Cc: Jiri Pirko <jiri@resnulli.us>
-Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
-
-[Backported for kernel v4.19]
-Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
----
- include/net/act_api.h      |  4 +++-
- net/sched/act_bpf.c        |  2 +-
- net/sched/act_connmark.c   |  2 +-
- net/sched/act_csum.c       |  2 +-
- net/sched/act_gact.c       |  2 +-
- net/sched/act_ife.c        |  2 +-
- net/sched/act_ipt.c        | 11 ++++++-----
- net/sched/act_mirred.c     |  2 +-
- net/sched/act_nat.c        |  2 +-
- net/sched/act_pedit.c      |  2 +-
- net/sched/act_police.c     |  2 +-
- net/sched/act_sample.c     |  2 +-
- net/sched/act_simple.c     |  2 +-
- net/sched/act_skbedit.c    |  2 +-
- net/sched/act_skbmod.c     |  2 +-
- net/sched/act_tunnel_key.c |  2 +-
- net/sched/act_vlan.c       |  2 +-
- 17 files changed, 24 insertions(+), 21 deletions(-)
-
---- a/include/net/act_api.h
-+++ b/include/net/act_api.h
-@@ -15,6 +15,7 @@
- struct tcf_idrinfo {
-       spinlock_t      lock;
-       struct idr      action_idr;
-+      struct net      *net;
- };
- struct tc_action_ops;
-@@ -107,7 +108,7 @@ struct tc_action_net {
- };
- static inline
--int tc_action_net_init(struct tc_action_net *tn,
-+int tc_action_net_init(struct net *net, struct tc_action_net *tn,
-                      const struct tc_action_ops *ops)
- {
-       int err = 0;
-@@ -116,6 +117,7 @@ int tc_action_net_init(struct tc_action_
-       if (!tn->idrinfo)
-               return -ENOMEM;
-       tn->ops = ops;
-+      tn->idrinfo->net = net;
-       spin_lock_init(&tn->idrinfo->lock);
-       idr_init(&tn->idrinfo->action_idr);
-       return err;
---- a/net/sched/act_bpf.c
-+++ b/net/sched/act_bpf.c
-@@ -413,7 +413,7 @@ static __net_init int bpf_init_net(struc
- {
-       struct tc_action_net *tn = net_generic(net, bpf_net_id);
--      return tc_action_net_init(tn, &act_bpf_ops);
-+      return tc_action_net_init(net, tn, &act_bpf_ops);
- }
- static void __net_exit bpf_exit_net(struct list_head *net_list)
---- a/net/sched/act_connmark.c
-+++ b/net/sched/act_connmark.c
-@@ -215,7 +215,7 @@ static __net_init int connmark_init_net(
- {
-       struct tc_action_net *tn = net_generic(net, connmark_net_id);
--      return tc_action_net_init(tn, &act_connmark_ops);
-+      return tc_action_net_init(net, tn, &act_connmark_ops);
- }
- static void __net_exit connmark_exit_net(struct list_head *net_list)
---- a/net/sched/act_csum.c
-+++ b/net/sched/act_csum.c
-@@ -678,7 +678,7 @@ static __net_init int csum_init_net(stru
- {
-       struct tc_action_net *tn = net_generic(net, csum_net_id);
--      return tc_action_net_init(tn, &act_csum_ops);
-+      return tc_action_net_init(net, tn, &act_csum_ops);
- }
- static void __net_exit csum_exit_net(struct list_head *net_list)
---- a/net/sched/act_gact.c
-+++ b/net/sched/act_gact.c
-@@ -263,7 +263,7 @@ static __net_init int gact_init_net(stru
- {
-       struct tc_action_net *tn = net_generic(net, gact_net_id);
--      return tc_action_net_init(tn, &act_gact_ops);
-+      return tc_action_net_init(net, tn, &act_gact_ops);
- }
- static void __net_exit gact_exit_net(struct list_head *net_list)
---- a/net/sched/act_ife.c
-+++ b/net/sched/act_ife.c
-@@ -887,7 +887,7 @@ static __net_init int ife_init_net(struc
- {
-       struct tc_action_net *tn = net_generic(net, ife_net_id);
--      return tc_action_net_init(tn, &act_ife_ops);
-+      return tc_action_net_init(net, tn, &act_ife_ops);
- }
- static void __net_exit ife_exit_net(struct list_head *net_list)
---- a/net/sched/act_ipt.c
-+++ b/net/sched/act_ipt.c
-@@ -65,12 +65,13 @@ static int ipt_init_target(struct net *n
-       return 0;
- }
--static void ipt_destroy_target(struct xt_entry_target *t)
-+static void ipt_destroy_target(struct xt_entry_target *t, struct net *net)
- {
-       struct xt_tgdtor_param par = {
-               .target   = t->u.kernel.target,
-               .targinfo = t->data,
-               .family   = NFPROTO_IPV4,
-+              .net      = net,
-       };
-       if (par.target->destroy != NULL)
-               par.target->destroy(&par);
-@@ -82,7 +83,7 @@ static void tcf_ipt_release(struct tc_ac
-       struct tcf_ipt *ipt = to_ipt(a);
-       if (ipt->tcfi_t) {
--              ipt_destroy_target(ipt->tcfi_t);
-+              ipt_destroy_target(ipt->tcfi_t, a->idrinfo->net);
-               kfree(ipt->tcfi_t);
-       }
-       kfree(ipt->tcfi_tname);
-@@ -182,7 +183,7 @@ static int __tcf_ipt_init(struct net *ne
-       spin_lock_bh(&ipt->tcf_lock);
-       if (ret != ACT_P_CREATED) {
--              ipt_destroy_target(ipt->tcfi_t);
-+              ipt_destroy_target(ipt->tcfi_t, net);
-               kfree(ipt->tcfi_tname);
-               kfree(ipt->tcfi_t);
-       }
-@@ -353,7 +354,7 @@ static __net_init int ipt_init_net(struc
- {
-       struct tc_action_net *tn = net_generic(net, ipt_net_id);
--      return tc_action_net_init(tn, &act_ipt_ops);
-+      return tc_action_net_init(net, tn, &act_ipt_ops);
- }
- static void __net_exit ipt_exit_net(struct list_head *net_list)
-@@ -403,7 +404,7 @@ static __net_init int xt_init_net(struct
- {
-       struct tc_action_net *tn = net_generic(net, xt_net_id);
--      return tc_action_net_init(tn, &act_xt_ops);
-+      return tc_action_net_init(net, tn, &act_xt_ops);
- }
- static void __net_exit xt_exit_net(struct list_head *net_list)
---- a/net/sched/act_mirred.c
-+++ b/net/sched/act_mirred.c
-@@ -419,7 +419,7 @@ static __net_init int mirred_init_net(st
- {
-       struct tc_action_net *tn = net_generic(net, mirred_net_id);
--      return tc_action_net_init(tn, &act_mirred_ops);
-+      return tc_action_net_init(net, tn, &act_mirred_ops);
- }
- static void __net_exit mirred_exit_net(struct list_head *net_list)
---- a/net/sched/act_nat.c
-+++ b/net/sched/act_nat.c
-@@ -317,7 +317,7 @@ static __net_init int nat_init_net(struc
- {
-       struct tc_action_net *tn = net_generic(net, nat_net_id);
--      return tc_action_net_init(tn, &act_nat_ops);
-+      return tc_action_net_init(net, tn, &act_nat_ops);
- }
- static void __net_exit nat_exit_net(struct list_head *net_list)
---- a/net/sched/act_pedit.c
-+++ b/net/sched/act_pedit.c
-@@ -488,7 +488,7 @@ static __net_init int pedit_init_net(str
- {
-       struct tc_action_net *tn = net_generic(net, pedit_net_id);
--      return tc_action_net_init(tn, &act_pedit_ops);
-+      return tc_action_net_init(net, tn, &act_pedit_ops);
- }
- static void __net_exit pedit_exit_net(struct list_head *net_list)
---- a/net/sched/act_police.c
-+++ b/net/sched/act_police.c
-@@ -342,7 +342,7 @@ static __net_init int police_init_net(st
- {
-       struct tc_action_net *tn = net_generic(net, police_net_id);
--      return tc_action_net_init(tn, &act_police_ops);
-+      return tc_action_net_init(net, tn, &act_police_ops);
- }
- static void __net_exit police_exit_net(struct list_head *net_list)
---- a/net/sched/act_sample.c
-+++ b/net/sched/act_sample.c
-@@ -255,7 +255,7 @@ static __net_init int sample_init_net(st
- {
-       struct tc_action_net *tn = net_generic(net, sample_net_id);
--      return tc_action_net_init(tn, &act_sample_ops);
-+      return tc_action_net_init(net, tn, &act_sample_ops);
- }
- static void __net_exit sample_exit_net(struct list_head *net_list)
---- a/net/sched/act_simple.c
-+++ b/net/sched/act_simple.c
-@@ -215,7 +215,7 @@ static __net_init int simp_init_net(stru
- {
-       struct tc_action_net *tn = net_generic(net, simp_net_id);
--      return tc_action_net_init(tn, &act_simp_ops);
-+      return tc_action_net_init(net, tn, &act_simp_ops);
- }
- static void __net_exit simp_exit_net(struct list_head *net_list)
---- a/net/sched/act_skbedit.c
-+++ b/net/sched/act_skbedit.c
-@@ -316,7 +316,7 @@ static __net_init int skbedit_init_net(s
- {
-       struct tc_action_net *tn = net_generic(net, skbedit_net_id);
--      return tc_action_net_init(tn, &act_skbedit_ops);
-+      return tc_action_net_init(net, tn, &act_skbedit_ops);
- }
- static void __net_exit skbedit_exit_net(struct list_head *net_list)
---- a/net/sched/act_skbmod.c
-+++ b/net/sched/act_skbmod.c
-@@ -277,7 +277,7 @@ static __net_init int skbmod_init_net(st
- {
-       struct tc_action_net *tn = net_generic(net, skbmod_net_id);
--      return tc_action_net_init(tn, &act_skbmod_ops);
-+      return tc_action_net_init(net, tn, &act_skbmod_ops);
- }
- static void __net_exit skbmod_exit_net(struct list_head *net_list)
---- a/net/sched/act_tunnel_key.c
-+++ b/net/sched/act_tunnel_key.c
-@@ -579,7 +579,7 @@ static __net_init int tunnel_key_init_ne
- {
-       struct tc_action_net *tn = net_generic(net, tunnel_key_net_id);
--      return tc_action_net_init(tn, &act_tunnel_key_ops);
-+      return tc_action_net_init(net, tn, &act_tunnel_key_ops);
- }
- static void __net_exit tunnel_key_exit_net(struct list_head *net_list)
---- a/net/sched/act_vlan.c
-+++ b/net/sched/act_vlan.c
-@@ -324,7 +324,7 @@ static __net_init int vlan_init_net(stru
- {
-       struct tc_action_net *tn = net_generic(net, vlan_net_id);
--      return tc_action_net_init(tn, &act_vlan_ops);
-+      return tc_action_net_init(net, tn, &act_vlan_ops);
- }
- static void __net_exit vlan_exit_net(struct list_head *net_list)
index 6932214826d5aff6085f18f8be476081a5d3a91a..f85e7523c252ced37aafa29f9804ffbb141ffff7 100644 (file)
@@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 +MODULE_ALIAS("nf-flow-table-hw");
 --- a/net/netfilter/nf_tables_api.c
 +++ b/net/netfilter/nf_tables_api.c
-@@ -5463,6 +5463,13 @@ static int nf_tables_flowtable_parse_hoo
+@@ -5468,6 +5468,13 @@ static int nf_tables_flowtable_parse_hoo
        if (err < 0)
                return err;
  
@@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
        if (!ops)
                return -ENOMEM;
-@@ -5594,10 +5601,19 @@ static int nf_tables_newflowtable(struct
+@@ -5599,10 +5606,19 @@ static int nf_tables_newflowtable(struct
        }
  
        flowtable->data.type = type;
@@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
                                             flowtable);
        if (err < 0)
-@@ -5723,7 +5739,8 @@ static int nf_tables_fill_flowtable_info
+@@ -5728,7 +5744,8 @@ static int nf_tables_fill_flowtable_info
            nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
            nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
            nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
@@ -552,7 +552,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        nest = nla_nest_start(skb, NFTA_FLOWTABLE_HOOK);
 --- a/net/netfilter/nft_flow_offload.c
 +++ b/net/netfilter/nft_flow_offload.c
-@@ -135,6 +135,9 @@ static void nft_flow_offload_eval(const
+@@ -138,6 +138,9 @@ static void nft_flow_offload_eval(const
        if (ret < 0)
                goto err_flow_add;