--- /dev/null
+From 6a6c708469c9e10fd87adcc3abff164270538d62 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@openwrt.org>
+Date: Tue, 14 Apr 2015 12:07:58 +0200
+Subject: bgmac: add check for oversized packets
+
+From: Felix Fietkau <nbd@openwrt.org>
+
+commit 6a6c708469c9e10fd87adcc3abff164270538d62 upstream.
+
+In very rare cases, the MAC can catch an internal buffer that is bigger
+than it's supposed to be. Instead of crashing the kernel, simply pass
+the buffer back to the hardware
+
+Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/broadcom/bgmac.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/net/ethernet/broadcom/bgmac.c
++++ b/drivers/net/ethernet/broadcom/bgmac.c
+@@ -373,6 +373,13 @@ static int bgmac_dma_rx_read(struct bgma
+ break;
+ }
+
++ if (len > BGMAC_RX_ALLOC_SIZE) {
++ bgmac_err(bgmac, "Found oversized packet at slot %d, DMA issue!\n",
++ ring->start);
++ put_page(virt_to_head_page(buf));
++ break;
++ }
++
+ /* Omit CRC. */
+ len -= ETH_FCS_LEN;
+
--- /dev/null
+From 21697336d46b71dd031f29e426dda0b1e7f06cc0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
+Date: Wed, 11 Feb 2015 18:06:34 +0100
+Subject: bgmac: fix device initialization on Northstar SoCs (condition typo)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Rafał Miłecki <zajec5@gmail.com>
+
+commit 21697336d46b71dd031f29e426dda0b1e7f06cc0 upstream.
+
+On Northstar (Broadcom's ARM architecture) we need to manually enable
+all cores. Code for that is already in place, but the condition for it
+was wrong.
+
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/broadcom/bgmac.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/bgmac.c
++++ b/drivers/net/ethernet/broadcom/bgmac.c
+@@ -1412,6 +1412,7 @@ static void bgmac_mii_unregister(struct
+ /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipattach */
+ static int bgmac_probe(struct bcma_device *core)
+ {
++ struct bcma_chipinfo *ci = &core->bus->chipinfo;
+ struct net_device *net_dev;
+ struct bgmac *bgmac;
+ struct ssb_sprom *sprom = &core->bus->sprom;
+@@ -1474,8 +1475,8 @@ static int bgmac_probe(struct bcma_devic
+ bgmac_chip_reset(bgmac);
+
+ /* For Northstar, we have to take all GMAC core out of reset */
+- if (core->id.id == BCMA_CHIP_ID_BCM4707 ||
+- core->id.id == BCMA_CHIP_ID_BCM53018) {
++ if (ci->id == BCMA_CHIP_ID_BCM4707 ||
++ ci->id == BCMA_CHIP_ID_BCM53018) {
+ struct bcma_device *ns_core;
+ int ns_gmac;
+
--- /dev/null
+From b4dfd8e92956b396d3438212bc9a0be6267b8b34 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
+Date: Tue, 12 Apr 2016 13:30:45 +0200
+Subject: bgmac: reset & enable Ethernet core before using it
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Rafał Miłecki <zajec5@gmail.com>
+
+commit b4dfd8e92956b396d3438212bc9a0be6267b8b34 upstream.
+
+This fixes Ethernet on D-Link DIR-885L with BCM47094 SoC. Felix reported
+similar fix was needed for his BCM4709 device (Buffalo WXR-1900DHP?).
+I tested this for regressions on BCM4706, BCM4708A0 and BCM47081A0.
+
+Cc: Felix Fietkau <nbd@openwrt.org>
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/broadcom/bgmac.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/net/ethernet/broadcom/bgmac.c
++++ b/drivers/net/ethernet/broadcom/bgmac.c
+@@ -1438,6 +1438,11 @@ static int bgmac_probe(struct bcma_devic
+ dev_warn(&core->dev, "Using random MAC: %pM\n", mac);
+ }
+
++ /* This (reset &) enable is not preset in specs or reference driver but
++ * Broadcom does it in arch PCI code when enabling fake PCI device.
++ */
++ bcma_core_enable(core, 0);
++
+ /* Allocation and references */
+ net_dev = alloc_etherdev(sizeof(*bgmac));
+ if (!net_dev)
--- /dev/null
+From 71a0a72456b48de972d7ed613b06a22a3aa9057f Mon Sep 17 00:00:00 2001
+From: Yousong Zhou <yszhou4tech@gmail.com>
+Date: Sat, 26 Sep 2015 13:41:43 +0800
+Subject: MIPS: UAPI: Ignore __arch_swab{16,32,64} when using MIPS16
+
+From: Yousong Zhou <yszhou4tech@gmail.com>
+
+commit 71a0a72456b48de972d7ed613b06a22a3aa9057f upstream.
+
+Some GCC versions (e.g. 4.8.3) can incorrectly inline a function with
+MIPS32 instructions into another function with MIPS16 code [1], causing
+the assembler to genereate incorrect binary code or fail right away
+complaining about unrecognized opcode.
+
+In the case of __arch_swab{16,32}, when inlined by the compiler with
+flags `-mips32r2 -mips16 -Os', the assembler can fail with the following
+error.
+
+ {standard input}:79: Error: unrecognized opcode `wsbh $2,$2'
+
+For performance concerns and to workaround the issue already existing in
+older compilers, just ignore these 2 functions when compiling with
+mips16 enabled.
+
+ [1] Inlining nomips16 function into mips16 function can result in
+ undefined builtins, https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55777
+
+Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
+Cc: Maciej W. Rozycki <macro@linux-mips.org>
+Cc: linux-mips@linux-mips.org
+Patchwork: https://patchwork.linux-mips.org/patch/11241/
+Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
+Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/mips/include/uapi/asm/swab.h | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- a/arch/mips/include/uapi/asm/swab.h
++++ b/arch/mips/include/uapi/asm/swab.h
+@@ -13,8 +13,9 @@
+
+ #define __SWAB_64_THRU_32__
+
+-#if (defined(__mips_isa_rev) && (__mips_isa_rev >= 2)) || \
+- defined(_MIPS_ARCH_LOONGSON3A)
++#if !defined(__mips16) && \
++ ((defined(__mips_isa_rev) && (__mips_isa_rev >= 2)) || \
++ defined(_MIPS_ARCH_LOONGSON3A))
+
+ static inline __attribute_const__ __u16 __arch_swab16(__u16 x)
+ {
+@@ -65,5 +66,5 @@ static inline __attribute_const__ __u64
+ }
+ #define __arch_swab64 __arch_swab64
+ #endif /* __mips64 */
+-#endif /* MIPS R2 or newer or Loongson 3A */
++#endif /* (not __mips16) and (MIPS R2 or newer or Loongson 3A) */
+ #endif /* _ASM_SWAB_H */
driver-core-platform-fix-race-condition-with-driver_override.patch
+mips-uapi-ignore-__arch_swab-16-32-64-when-using-mips16.patch
+bgmac-fix-device-initialization-on-northstar-socs-condition-typo.patch
+bgmac-add-check-for-oversized-packets.patch
+bgmac-reset-enable-ethernet-core-before-using-it.patch
+usb-ehci-orion-fix-probe-for-generic_phy.patch
+tracing-kprobes-allow-to-create-probe-with-a-module-name-starting-with-a-digit.patch
--- /dev/null
+From 9e52b32567126fe146f198971364f68d3bc5233f Mon Sep 17 00:00:00 2001
+From: Sabrina Dubroca <sd@queasysnail.net>
+Date: Thu, 22 Jun 2017 11:24:42 +0200
+Subject: tracing/kprobes: Allow to create probe with a module name starting with a digit
+
+From: Sabrina Dubroca <sd@queasysnail.net>
+
+commit 9e52b32567126fe146f198971364f68d3bc5233f upstream.
+
+Always try to parse an address, since kstrtoul() will safely fail when
+given a symbol as input. If that fails (which will be the case for a
+symbol), try to parse a symbol instead.
+
+This allows creating a probe such as:
+
+ p:probe/vlan_gro_receive 8021q:vlan_gro_receive+0
+
+Which is necessary for this command to work:
+
+ perf probe -m 8021q -a vlan_gro_receive
+
+Link: http://lkml.kernel.org/r/fd72d666f45b114e2c5b9cf7e27b91de1ec966f1.1498122881.git.sd@queasysnail.net
+
+Fixes: 413d37d1e ("tracing: Add kprobe-based event tracer")
+Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
+Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/trace/trace_kprobe.c | 21 ++++++++-------------
+ 1 file changed, 8 insertions(+), 13 deletions(-)
+
+--- a/kernel/trace/trace_kprobe.c
++++ b/kernel/trace/trace_kprobe.c
+@@ -671,30 +671,25 @@ static int create_trace_kprobe(int argc,
+ pr_info("Probe point is not specified.\n");
+ return -EINVAL;
+ }
+- if (isdigit(argv[1][0])) {
+- if (is_return) {
+- pr_info("Return probe point must be a symbol.\n");
+- return -EINVAL;
+- }
+- /* an address specified */
+- ret = kstrtoul(&argv[1][0], 0, (unsigned long *)&addr);
+- if (ret) {
+- pr_info("Failed to parse address.\n");
+- return ret;
+- }
+- } else {
++
++ /* try to parse an address. if that fails, try to read the
++ * input as a symbol. */
++ if (kstrtoul(argv[1], 0, (unsigned long *)&addr)) {
+ /* a symbol specified */
+ symbol = argv[1];
+ /* TODO: support .init module functions */
+ ret = traceprobe_split_symbol_offset(symbol, &offset);
+ if (ret) {
+- pr_info("Failed to parse symbol.\n");
++ pr_info("Failed to parse either an address or a symbol.\n");
+ return ret;
+ }
+ if (offset && is_return) {
+ pr_info("Return probe must be used without offset.\n");
+ return -EINVAL;
+ }
++ } else if (is_return) {
++ pr_info("Return probe point must be a symbol.\n");
++ return -EINVAL;
+ }
+ argc -= 2; argv += 2;
+
--- /dev/null
+From db1319e166c5e872c4be54eac4e47454133708cf Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jogo@openwrt.org>
+Date: Sun, 23 Aug 2015 15:01:08 +0200
+Subject: usb: ehci-orion: fix probe for !GENERIC_PHY
+
+From: Jonas Gorski <jogo@openwrt.org>
+
+commit db1319e166c5e872c4be54eac4e47454133708cf upstream.
+
+Commit d445913ce0ab7f ("usb: ehci-orion: add optional PHY support")
+added support for optional phys, but devm_phy_optional_get returns
+-ENOSYS if GENERIC_PHY is not enabled.
+
+This causes probe failures, even when there are no phys specified:
+
+[ 1.443365] orion-ehci f1058000.usb: init f1058000.usb fail, -38
+[ 1.449403] orion-ehci: probe of f1058000.usb failed with error -38
+
+Similar to dwc3, treat -ENOSYS as no phy.
+
+Fixes: d445913ce0ab7f ("usb: ehci-orion: add optional PHY support")
+
+Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+Acked-by: Alan Stern <stern@rowland.harvard.edu>
+Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/host/ehci-orion.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/host/ehci-orion.c
++++ b/drivers/usb/host/ehci-orion.c
+@@ -226,7 +226,8 @@ static int ehci_orion_drv_probe(struct p
+ priv->phy = devm_phy_optional_get(&pdev->dev, "usb");
+ if (IS_ERR(priv->phy)) {
+ err = PTR_ERR(priv->phy);
+- goto err_phy_get;
++ if (err != -ENOSYS)
++ goto err_phy_get;
+ } else {
+ err = phy_init(priv->phy);
+ if (err)