Bump linux-libre kernel to 4.14.143
authorRISCi_ATOM <bob@bobcall.me>
Sat, 14 Sep 2019 14:56:47 +0000 (10:56 -0400)
committerRISCi_ATOM <bob@bobcall.me>
Sat, 14 Sep 2019 14:56:47 +0000 (10:56 -0400)
include/kernel-version.mk
target/linux/ath79/patches-4.14/0027-MIPS-ath79-drop-legacy-IRQ-code.patch
target/linux/generic/backport-4.14/390-v5.3-net-sched-fix-action-ipt-crash.patch [deleted file]

index 592a7513cad3d43ccc0345ca39ac282693961f84..b0d863286777f3e967af10a8e233b92ad47d8aba 100644 (file)
@@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
 endif
 
-LINUX_VERSION-4.14 = .141
+LINUX_VERSION-4.14 = .143
 
-LINUX_KERNEL_HASH-4.14.141 = dd0113acab0acbe70b27f891d4f772ee405706db8082b60b9d21a06e7f1fa730
+LINUX_KERNEL_HASH-4.14.143 = 85f8e19c250a3e125625705b4a182bfabf76319fb268107b189349cfee96e95e
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
index 6586f084314145968c31768451ef2337a6a8d4d6..2471628be993da89927115ee6f71cfd701ca7754 100644 (file)
@@ -9,14 +9,15 @@ All IRQs are now handled via the new irqchip drivers.
 Signed-off-by: John Crispin <john@phrozen.org>
 ---
  arch/mips/ath79/Makefile                 |   2 +-
- arch/mips/ath79/irq.c                    | 169 -------------------------------
  arch/mips/ath79/setup.c                  |   6 ++
  arch/mips/include/asm/mach-ath79/ath79.h |   4 -
  4 files changed, 7 insertions(+), 174 deletions(-)
  delete mode 100644 arch/mips/ath79/irq.c
 
---- a/arch/mips/ath79/Makefile
-+++ b/arch/mips/ath79/Makefile
+Index: linux-4.14.143/arch/mips/ath79/Makefile
+===================================================================
+--- linux-4.14.143.orig/arch/mips/ath79/Makefile
++++ linux-4.14.143/arch/mips/ath79/Makefile
 @@ -8,7 +8,7 @@
  # under the terms of the GNU General Public License version 2 as published
  # by the Free Software Foundation.
@@ -26,9 +27,48 @@ Signed-off-by: John Crispin <john@phrozen.org>
  
  obj-$(CONFIG_EARLY_PRINTK)            += early_printk.o
  obj-$(CONFIG_PCI)                     += pci.o
---- a/arch/mips/ath79/irq.c
+Index: linux-4.14.143/arch/mips/ath79/setup.c
+===================================================================
+--- linux-4.14.143.orig/arch/mips/ath79/setup.c
++++ linux-4.14.143/arch/mips/ath79/setup.c
+@@ -19,6 +19,7 @@
+ #include <linux/clk.h>
+ #include <linux/clk-provider.h>
+ #include <linux/of_fdt.h>
++#include <linux/irqchip.h>
+ #include <asm/bootinfo.h>
+ #include <asm/idle.h>
+@@ -305,6 +306,11 @@ void __init plat_time_init(void)
+       mips_hpt_frequency = cpu_clk_rate / 2;
+ }
++void __init arch_init_irq(void)
++{
++      irqchip_init();
++}
++
+ static int __init ath79_setup(void)
+ {
+       if  (mips_machtype == ATH79_MACH_GENERIC_OF)
+Index: linux-4.14.143/arch/mips/include/asm/mach-ath79/ath79.h
+===================================================================
+--- linux-4.14.143.orig/arch/mips/include/asm/mach-ath79/ath79.h
++++ linux-4.14.143/arch/mips/include/asm/mach-ath79/ath79.h
+@@ -178,8 +178,4 @@ static inline u32 ath79_reset_rr(unsigne
+ void ath79_device_reset_set(u32 mask);
+ void ath79_device_reset_clear(u32 mask);
+-void ath79_cpu_irq_init(unsigned irq_wb_chan2, unsigned irq_wb_chan3);
+-void ath79_misc_irq_init(void __iomem *regs, int irq,
+-                      int irq_base, bool is_ar71xx);
+-
+ #endif /* __ASM_MACH_ATH79_H */
+Index: linux-4.14.143/arch/mips/ath79/irq.c
+===================================================================
+--- linux-4.14.143.orig/arch/mips/ath79/irq.c
 +++ /dev/null
-@@ -1,169 +0,0 @@
+@@ -1,175 +0,0 @@
 -/*
 - *  Atheros AR71xx/AR724x/AR913x specific interrupt handling
 - *
@@ -63,15 +103,21 @@ Signed-off-by: John Crispin <john@phrozen.org>
 -      u32 status;
 -
 -      status = ath79_reset_rr(AR934X_RESET_REG_PCIE_WMAC_INT_STATUS);
+-      status &= AR934X_PCIE_WMAC_INT_PCIE_ALL | AR934X_PCIE_WMAC_INT_WMAC_ALL;
+-
+-      if (status == 0) {
+-              spurious_interrupt();
+-              return;
+-      }
 -
 -      if (status & AR934X_PCIE_WMAC_INT_PCIE_ALL) {
 -              ath79_ddr_wb_flush(3);
 -              generic_handle_irq(ATH79_IP2_IRQ(0));
--      } else if (status & AR934X_PCIE_WMAC_INT_WMAC_ALL) {
+-      }
+-
+-      if (status & AR934X_PCIE_WMAC_INT_WMAC_ALL) {
 -              ath79_ddr_wb_flush(4);
 -              generic_handle_irq(ATH79_IP2_IRQ(1));
--      } else {
--              spurious_interrupt();
 -      }
 -}
 -
@@ -198,36 +244,3 @@ Signed-off-by: John Crispin <john@phrozen.org>
 -      else if (soc_is_qca955x())
 -              qca955x_irq_init();
 -}
---- a/arch/mips/ath79/setup.c
-+++ b/arch/mips/ath79/setup.c
-@@ -19,6 +19,7 @@
- #include <linux/clk.h>
- #include <linux/clk-provider.h>
- #include <linux/of_fdt.h>
-+#include <linux/irqchip.h>
- #include <asm/bootinfo.h>
- #include <asm/idle.h>
-@@ -305,6 +306,11 @@ void __init plat_time_init(void)
-       mips_hpt_frequency = cpu_clk_rate / 2;
- }
-+void __init arch_init_irq(void)
-+{
-+      irqchip_init();
-+}
-+
- static int __init ath79_setup(void)
- {
-       if  (mips_machtype == ATH79_MACH_GENERIC_OF)
---- a/arch/mips/include/asm/mach-ath79/ath79.h
-+++ b/arch/mips/include/asm/mach-ath79/ath79.h
-@@ -178,8 +178,4 @@ static inline u32 ath79_reset_rr(unsigne
- void ath79_device_reset_set(u32 mask);
- void ath79_device_reset_clear(u32 mask);
--void ath79_cpu_irq_init(unsigned irq_wb_chan2, unsigned irq_wb_chan3);
--void ath79_misc_irq_init(void __iomem *regs, int irq,
--                      int irq_base, bool is_ar71xx);
--
- #endif /* __ASM_MACH_ATH79_H */
diff --git a/target/linux/generic/backport-4.14/390-v5.3-net-sched-fix-action-ipt-crash.patch b/target/linux/generic/backport-4.14/390-v5.3-net-sched-fix-action-ipt-crash.patch
deleted file mode 100644 (file)
index ff1f9c0..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.14]
-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
-@@ -14,6 +14,7 @@
- struct tcf_idrinfo {
-       spinlock_t      lock;
-       struct idr      action_idr;
-+      struct net      *net;
- };
- struct tc_action_ops;
-@@ -104,7 +105,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;
-@@ -113,6 +114,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
-@@ -402,7 +402,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 net *net)
---- a/net/sched/act_connmark.c
-+++ b/net/sched/act_connmark.c
-@@ -206,7 +206,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 net *net)
---- a/net/sched/act_csum.c
-+++ b/net/sched/act_csum.c
-@@ -632,7 +632,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 net *net)
---- a/net/sched/act_gact.c
-+++ b/net/sched/act_gact.c
-@@ -232,7 +232,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 net *net)
---- a/net/sched/act_ife.c
-+++ b/net/sched/act_ife.c
-@@ -837,7 +837,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 net *net)
---- 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);
-@@ -172,7 +173,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);
-       }
-@@ -337,7 +338,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 net *net)
-@@ -387,7 +388,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 net *net)
---- a/net/sched/act_mirred.c
-+++ b/net/sched/act_mirred.c
-@@ -343,7 +343,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 net *net)
---- a/net/sched/act_nat.c
-+++ b/net/sched/act_nat.c
-@@ -307,7 +307,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 net *net)
---- a/net/sched/act_pedit.c
-+++ b/net/sched/act_pedit.c
-@@ -458,7 +458,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 net *net)
---- a/net/sched/act_police.c
-+++ b/net/sched/act_police.c
-@@ -331,7 +331,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 net *net)
---- a/net/sched/act_sample.c
-+++ b/net/sched/act_sample.c
-@@ -249,7 +249,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 net *net)
---- a/net/sched/act_simple.c
-+++ b/net/sched/act_simple.c
-@@ -198,7 +198,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 net *net)
---- a/net/sched/act_skbedit.c
-+++ b/net/sched/act_skbedit.c
-@@ -239,7 +239,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 net *net)
---- a/net/sched/act_skbmod.c
-+++ b/net/sched/act_skbmod.c
-@@ -267,7 +267,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 net *net)
---- a/net/sched/act_tunnel_key.c
-+++ b/net/sched/act_tunnel_key.c
-@@ -324,7 +324,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 net *net)
---- a/net/sched/act_vlan.c
-+++ b/net/sched/act_vlan.c
-@@ -271,7 +271,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 net *net)