Refreshed all patches.
Remove upstreamed:
- 049-v4.20-mips-remove-superfluous-check-for-linux.patch
- 303-MIPS-Fix-bounds-check-virt_addr_valid.patch
Fixes:
- CVE-2019-3846
- CVE-2019-3900
Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
endif
LINUX_VERSION-4.9 = .186
-LINUX_VERSION-4.14 = .132
+LINUX_VERSION-4.14 = .134
LINUX_VERSION-4.19 = .57
LINUX_KERNEL_HASH-4.9.186 = 242484430d0729791d8efd92181b7d34b4021050646c6e00cf459866eab94b6a
-LINUX_KERNEL_HASH-4.14.132 = da86f39a722da656fce4e2685223093b5d5f4db94046fcd79e492428a82ff330
+LINUX_KERNEL_HASH-4.14.134 = 0b21e7b5effd92303a551b5be2380c9703d6fb87cfe5189fe0d795cc73903d2d
LINUX_KERNEL_HASH-4.19.57 = 327c5759d5888361d6c9d6adb0c8ad7e3c624eb05bb9e5869d9f3078dd0d3f87
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
--- a/drivers/net/can/spi/mcp251x.c
+++ b/drivers/net/can/spi/mcp251x.c
-@@ -952,6 +952,9 @@ static int mcp251x_open(struct net_devic
+@@ -951,6 +951,9 @@ static int mcp251x_open(struct net_devic
priv->tx_skb = NULL;
priv->tx_len = 0;
--- a/drivers/usb/gadget/function/u_ether.c
+++ b/drivers/usb/gadget/function/u_ether.c
-@@ -848,6 +848,10 @@ struct net_device *gether_setup_name_def
+@@ -850,6 +850,10 @@ struct net_device *gether_setup_name_def
net->ethtool_ops = &ops;
SET_NETDEV_DEVTYPE(net, &gadget_type);
/*
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
-@@ -971,6 +971,9 @@ void build_get_pgde32(u32 **p, unsigned
+@@ -976,6 +976,9 @@ void build_get_pgde32(u32 **p, unsigned
uasm_i_srl(p, ptr, ptr, SMP_CPUID_PTRSHIFT);
uasm_i_addu(p, ptr, tmp, ptr);
#else
UASM_i_LA_mostly(p, ptr, pgdc);
#endif
uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */
-@@ -1331,6 +1334,9 @@ static void build_r4000_tlb_refill_handl
+@@ -1337,6 +1340,9 @@ static void build_r4000_tlb_refill_handl
#ifdef CONFIG_64BIT
build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */
#else
build_get_pgde32(&p, K0, K1); /* get pgd in K1 */
#endif
-@@ -1342,6 +1348,9 @@ static void build_r4000_tlb_refill_handl
+@@ -1348,6 +1354,9 @@ static void build_r4000_tlb_refill_handl
build_update_entries(&p, K0, K1);
build_tlb_write_entry(&p, &l, &r, tlb_random);
uasm_l_leave(&l, p);
uasm_i_eret(&p); /* return from trap */
}
#ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT
-@@ -2046,6 +2055,9 @@ build_r4000_tlbchange_handler_head(u32 *
+@@ -2057,6 +2066,9 @@ build_r4000_tlbchange_handler_head(u32 *
#ifdef CONFIG_64BIT
build_get_pmde64(p, l, r, wr.r1, wr.r2); /* get pmd in ptr */
#else
build_get_pgde32(p, wr.r1, wr.r2); /* get pgd in ptr */
#endif
-@@ -2092,6 +2104,9 @@ build_r4000_tlbchange_handler_tail(u32 *
+@@ -2103,6 +2115,9 @@ build_r4000_tlbchange_handler_tail(u32 *
build_tlb_write_entry(p, l, r, tlb_indexed);
uasm_l_leave(l, *p);
build_restore_work_registers(p);
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
-@@ -1947,7 +1947,8 @@ static const struct usb_device_id option
+@@ -1948,7 +1948,8 @@ static const struct usb_device_id option
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
+++ /dev/null
-From 1287533d3d95d5ad8b02773733044500b1be06bc Mon Sep 17 00:00:00 2001
-From: Sean Young <sean@mess.org>
-Date: Fri, 16 Nov 2018 16:09:39 +0000
-Subject: MIPS: Remove superfluous check for __linux__
-
-When building BPF code using "clang -target bpf -c", clang does not
-define __linux__.
-
-To build BPF IR decoders the include linux/lirc.h is needed which
-includes linux/types.h. Currently this workaround is needed:
-
-https://git.linuxtv.org/v4l-utils.git/commit/?id=dd3ff81f58c4e1e6f33765dc61ad33c48ae6bb07
-
-This check might otherwise be useful to stop users from using a non-linux
-compiler, but if you're doing that you are going to have a lot more
-trouble anyway.
-
-Signed-off-by: Sean Young <sean@mess.org>
-Signed-off-by: Paul Burton <paul.burton@mips.com>
-Patchwork: https://patchwork.linux-mips.org/patch/21149/
-Cc: Ralf Baechle <ralf@linux-mips.org>
-Cc: James Hogan <jhogan@kernel.org>
-Cc: linux-mips@linux-mips.org
-Cc: linux-kernel@vger.kernel.org
----
- arch/mips/include/uapi/asm/sgidefs.h | 8 --------
- 1 file changed, 8 deletions(-)
-
-(limited to 'arch/mips/include/uapi/asm/sgidefs.h')
-
---- a/arch/mips/include/uapi/asm/sgidefs.h
-+++ b/arch/mips/include/uapi/asm/sgidefs.h
-@@ -12,14 +12,6 @@
- #define __ASM_SGIDEFS_H
-
- /*
-- * Using a Linux compiler for building Linux seems logic but not to
-- * everybody.
-- */
--#ifndef __linux__
--#error Use a Linux compiler or give up.
--#endif
--
--/*
- * Definitions for the ISA levels
- *
- * With the introduction of MIPS32 / MIPS64 instruction sets definitions
net/netfilter/xt_connmark.c | 21 ++++++++++++++++++++-
2 files changed, 22 insertions(+), 2 deletions(-)
-diff --git a/include/uapi/linux/netfilter/xt_connmark.h b/include/uapi/linux/netfilter/xt_connmark.h
-index 408a9654f05c..e63ad3c89b92 100644
--- a/include/uapi/linux/netfilter/xt_connmark.h
+++ b/include/uapi/linux/netfilter/xt_connmark.h
@@ -16,7 +16,8 @@
};
struct xt_connmark_tginfo1 {
-diff --git a/net/netfilter/xt_connmark.c b/net/netfilter/xt_connmark.c
-index ec377cc6a369..aa5bcea8f9ba 100644
--- a/net/netfilter/xt_connmark.c
+++ b/net/netfilter/xt_connmark.c
-@@ -42,6 +42,7 @@ connmark_tg(struct sk_buff *skb, const struct xt_action_param *par)
+@@ -42,6 +42,7 @@ connmark_tg(struct sk_buff *skb, const s
enum ip_conntrack_info ctinfo;
struct nf_conn *ct;
u_int32_t newmark;
ct = nf_ct_get(skb, &ctinfo);
if (ct == NULL)
-@@ -57,7 +58,25 @@ connmark_tg(struct sk_buff *skb, const struct xt_action_param *par)
+@@ -57,7 +58,25 @@ connmark_tg(struct sk_buff *skb, const s
break;
case XT_CONNMARK_SAVE:
newmark = (ct->mark & ~info->ctmask) ^
if (ct->mark != newmark) {
ct->mark = newmark;
nf_conntrack_event_cache(IPCT_MARK, ct);
---
-2.20.1 (Apple Git-117)
-
+++ /dev/null
-From 415e0feec4f927af0059f72a6831f6c5a104f0fc Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Mon, 17 Jun 2019 00:13:08 +0200
-Subject: [PATCH] MIPS: Fix bounds check virt_addr_valid
-
-The bounds check used the uninitialized variable vaddr, it should use
-the given parameter kaddr instead. When using the uninitialized value
-the compiler assumed it to be 0 and optimized this function to just
-return 0 in all cases.
-
-This should make the function check the range of the given address and
-only do the page map check in case it is in the expected range of
-virtual addresses.
-
-Fixes: 074a1e1167af ("MIPS: Bounds check virt_addr_valid")
-Cc: stable@vger.kernel.org # v4.12+
-Cc: Paul Burton <paul.burton@mips.com>
-Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
----
- arch/mips/mm/mmap.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/mips/mm/mmap.c
-+++ b/arch/mips/mm/mmap.c
-@@ -203,7 +203,7 @@ unsigned long arch_randomize_brk(struct
-
- int __virt_addr_valid(const volatile void *kaddr)
- {
-- unsigned long vaddr = (unsigned long)vaddr;
-+ unsigned long vaddr = (unsigned long)kaddr;
-
- if ((vaddr < PAGE_OFFSET) || (vaddr >= MAP_BASE))
- return 0;