mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
kernel: bump 5.10 to 5.10.56 (#7635)
* kernel: bump 5.10 to 5.10.52 Add the new CONFIG_BATTERY_RT5033 to the generic configuration, as reported by Paul Blazejowski. Resort the kconfig while at it. No deleted or manually refreshed patches. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> * kernel/generic: add a missing symbol to the 5.10 kconfig Add CONFIG_HAVE_ARM_ARCH_TIMER (disabled). A make kernel_oldconfig on cortexa9 will otherwise prompt for its selection. The 5.4 configuration already contains the same symbol. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> * kernel/generic: sort the 5.10 kconfig symbols Sort the kernel configuration using scripts/kconfig.pl. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> * kernel: bump 5.10 to 5.10.53 No deleted or manually refreshed patches. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> * kernel: bump 5.10 to 5.10.54 Deleted (upstreamed) patches: mediatek/patches-5.10/000-spi-fix-fifo.patch Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> * kernel: bump 5.10 to 5.10.55 No deleted or manually refreshed patches. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> * kernel: bump 5.10 to 5.10.56 No patches needed refreshing Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> Co-authored-by: Rui Salvaterra <rsalvaterra@gmail.com>
This commit is contained in:
parent
e0f5decd3c
commit
e35805c6ea
@ -7,10 +7,10 @@ ifdef CONFIG_TESTING_KERNEL
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
LINUX_VERSION-5.4 = .132
|
LINUX_VERSION-5.4 = .132
|
||||||
LINUX_VERSION-5.10 = .51
|
LINUX_VERSION-5.10 = .56
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-5.4.132 = 8466adbfb3579e751ede683496df7bb20f258b5f882250f3dd82be63736d00ef
|
LINUX_KERNEL_HASH-5.4.132 = 8466adbfb3579e751ede683496df7bb20f258b5f882250f3dd82be63736d00ef
|
||||||
LINUX_KERNEL_HASH-5.10.51 = 95bae893c274ccc3a8a6271f377bcc7fd3badcb7990ecd41b05b2731f1d67ae2
|
LINUX_KERNEL_HASH-5.10.56 = 4d6a0d5f9c50fa44890e0b61e1fb63f6efe6be448ceddfe1ad7c0cbd2890ec6b
|
||||||
|
|
||||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||||
|
@ -43,7 +43,7 @@ produce a noisy warning.
|
|||||||
hcd->msi_enabled = 1;
|
hcd->msi_enabled = 1;
|
||||||
--- a/drivers/usb/host/xhci.h
|
--- a/drivers/usb/host/xhci.h
|
||||||
+++ b/drivers/usb/host/xhci.h
|
+++ b/drivers/usb/host/xhci.h
|
||||||
@@ -1887,6 +1887,7 @@ struct xhci_hcd {
|
@@ -1888,6 +1888,7 @@ struct xhci_hcd {
|
||||||
struct xhci_hub usb2_rhub;
|
struct xhci_hub usb2_rhub;
|
||||||
struct xhci_hub usb3_rhub;
|
struct xhci_hub usb3_rhub;
|
||||||
/* support xHCI 1.0 spec USB2 hardware LPM */
|
/* support xHCI 1.0 spec USB2 hardware LPM */
|
||||||
|
@ -214,7 +214,7 @@
|
|||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
#include <linux/ipv6.h>
|
#include <linux/ipv6.h>
|
||||||
#include <linux/icmpv6.h>
|
#include <linux/icmpv6.h>
|
||||||
@@ -909,10 +910,10 @@ static void tcp_v6_send_response(const s
|
@@ -924,10 +925,10 @@ static void tcp_v6_send_response(const s
|
||||||
topt = (__be32 *)(t1 + 1);
|
topt = (__be32 *)(t1 + 1);
|
||||||
|
|
||||||
if (tsecr) {
|
if (tsecr) {
|
||||||
|
@ -0,0 +1,137 @@
|
|||||||
|
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||||
|
Date: Sat, 1 Oct 2016 22:54:48 +0200
|
||||||
|
Subject: [PATCH] usb: xhci: add support for performing fake doorbell
|
||||||
|
|
||||||
|
Broadcom's Northstar XHCI controllers seem to need a special start
|
||||||
|
procedure to work correctly. There isn't any official documentation of
|
||||||
|
this, the problem is that controller doesn't detect any connected
|
||||||
|
devices with default setup. Moreover connecting USB device to controller
|
||||||
|
that doesn't run properly can cause SoC's watchdog issues.
|
||||||
|
|
||||||
|
A workaround that was successfully tested on multiple devices is to
|
||||||
|
perform a fake doorbell. This patch adds code for doing this and enables
|
||||||
|
it on BCM4708 family.
|
||||||
|
---
|
||||||
|
drivers/usb/host/xhci-plat.c | 6 +++++
|
||||||
|
drivers/usb/host/xhci.c | 63 +++++++++++++++++++++++++++++++++++++++++---
|
||||||
|
drivers/usb/host/xhci.h | 1 +
|
||||||
|
3 files changed, 67 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/usb/host/xhci-plat.c
|
||||||
|
+++ b/drivers/usb/host/xhci-plat.c
|
||||||
|
@@ -87,6 +87,8 @@ static int xhci_priv_resume_quirk(struct
|
||||||
|
static void xhci_plat_quirks(struct device *dev, struct xhci_hcd *xhci)
|
||||||
|
{
|
||||||
|
struct xhci_plat_priv *priv = xhci_to_priv(xhci);
|
||||||
|
+ struct platform_device*pdev = to_platform_device(dev);
|
||||||
|
+ struct device_node *node = pdev->dev.of_node;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* As of now platform drivers don't provide MSI support so we ensure
|
||||||
|
@@ -94,6 +96,9 @@ static void xhci_plat_quirks(struct devi
|
||||||
|
* dev struct in order to setup MSI
|
||||||
|
*/
|
||||||
|
xhci->quirks |= XHCI_PLAT | priv->quirks;
|
||||||
|
+
|
||||||
|
+ if (node && of_machine_is_compatible("brcm,bcm4708"))
|
||||||
|
+ xhci->quirks |= XHCI_FAKE_DOORBELL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* called during probe() after chip reset completes */
|
||||||
|
--- a/drivers/usb/host/xhci.c
|
||||||
|
+++ b/drivers/usb/host/xhci.c
|
||||||
|
@@ -156,6 +156,49 @@ int xhci_start(struct xhci_hcd *xhci)
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ * xhci_fake_doorbell - Perform a fake doorbell on a specified slot
|
||||||
|
+ *
|
||||||
|
+ * Some controllers require a fake doorbell to start correctly. Without that
|
||||||
|
+ * they simply don't detect any devices.
|
||||||
|
+ */
|
||||||
|
+static int xhci_fake_doorbell(struct xhci_hcd *xhci, int slot_id)
|
||||||
|
+{
|
||||||
|
+ u32 temp;
|
||||||
|
+
|
||||||
|
+ /* Alloc a virt device for that slot */
|
||||||
|
+ if (!xhci_alloc_virt_device(xhci, slot_id, NULL, GFP_NOIO)) {
|
||||||
|
+ xhci_warn(xhci, "Could not allocate xHCI USB device data structures\n");
|
||||||
|
+ return -ENOMEM;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* Ring fake doorbell for slot_id ep 0 */
|
||||||
|
+ xhci_ring_ep_doorbell(xhci, slot_id, 0, 0);
|
||||||
|
+ usleep_range(1000, 1500);
|
||||||
|
+
|
||||||
|
+ /* Read the status to check if HSE is set or not */
|
||||||
|
+ temp = readl(&xhci->op_regs->status);
|
||||||
|
+
|
||||||
|
+ /* Clear HSE if set */
|
||||||
|
+ if (temp & STS_FATAL) {
|
||||||
|
+ xhci_dbg(xhci, "HSE problem detected, status: 0x%08x\n", temp);
|
||||||
|
+ temp &= ~0x1fff;
|
||||||
|
+ temp |= STS_FATAL;
|
||||||
|
+ writel(temp, &xhci->op_regs->status);
|
||||||
|
+ usleep_range(1000, 1500);
|
||||||
|
+ readl(&xhci->op_regs->status);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* Free virt device */
|
||||||
|
+ xhci_free_virt_device(xhci, slot_id);
|
||||||
|
+
|
||||||
|
+ /* We're done if controller is already running */
|
||||||
|
+ if (readl(&xhci->op_regs->command) & CMD_RUN)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ return xhci_start(xhci);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Reset a halted HC.
|
||||||
|
*
|
||||||
|
@@ -608,10 +651,20 @@ static int xhci_init(struct usb_hcd *hcd
|
||||||
|
|
||||||
|
static int xhci_run_finished(struct xhci_hcd *xhci)
|
||||||
|
{
|
||||||
|
- if (xhci_start(xhci)) {
|
||||||
|
- xhci_halt(xhci);
|
||||||
|
- return -ENODEV;
|
||||||
|
+ int err;
|
||||||
|
+
|
||||||
|
+ err = xhci_start(xhci);
|
||||||
|
+ if (err) {
|
||||||
|
+ err = -ENODEV;
|
||||||
|
+ goto err_halt;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ if (xhci->quirks & XHCI_FAKE_DOORBELL) {
|
||||||
|
+ err = xhci_fake_doorbell(xhci, 1);
|
||||||
|
+ if (err)
|
||||||
|
+ goto err_halt;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
xhci->shared_hcd->state = HC_STATE_RUNNING;
|
||||||
|
xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
|
||||||
|
|
||||||
|
@@ -621,6 +674,10 @@ static int xhci_run_finished(struct xhci
|
||||||
|
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
|
||||||
|
"Finished xhci_run for USB3 roothub");
|
||||||
|
return 0;
|
||||||
|
+
|
||||||
|
+err_halt:
|
||||||
|
+ xhci_halt(xhci);
|
||||||
|
+ return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
--- a/drivers/usb/host/xhci.h
|
||||||
|
+++ b/drivers/usb/host/xhci.h
|
||||||
|
@@ -1881,6 +1881,7 @@ struct xhci_hcd {
|
||||||
|
#define XHCI_DISABLE_SPARSE BIT_ULL(38)
|
||||||
|
#define XHCI_SG_TRB_CACHE_SIZE_QUIRK BIT_ULL(39)
|
||||||
|
#define XHCI_NO_SOFT_RETRY BIT_ULL(40)
|
||||||
|
+#define XHCI_FAKE_DOORBELL BIT_ULL(41)
|
||||||
|
|
||||||
|
unsigned int num_active_eps;
|
||||||
|
unsigned int limit_active_eps;
|
@ -0,0 +1,64 @@
|
|||||||
|
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
|
||||||
|
Subject: [PATCH] ARM: BCM5301X: Add DT for Netgear R7900
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/arch/arm/boot/dts/Makefile
|
||||||
|
+++ b/arch/arm/boot/dts/Makefile
|
||||||
|
@@ -116,6 +116,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
|
||||||
|
bcm4709-buffalo-wxr-1900dhp.dtb \
|
||||||
|
bcm4709-linksys-ea9200.dtb \
|
||||||
|
bcm4709-netgear-r7000.dtb \
|
||||||
|
+ bcm4709-netgear-r7900.dtb \
|
||||||
|
bcm4709-netgear-r8000.dtb \
|
||||||
|
bcm4709-tplink-archer-c9-v1.dtb \
|
||||||
|
bcm47094-dlink-dir-885l.dtb \
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/arch/arm/boot/dts/bcm4709-netgear-r7900.dts
|
||||||
|
@@ -0,0 +1,42 @@
|
||||||
|
+/*
|
||||||
|
+ * Broadcom BCM470X / BCM5301X ARM platform code.
|
||||||
|
+ * DTS for Netgear R7900
|
||||||
|
+ *
|
||||||
|
+ * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com>
|
||||||
|
+ *
|
||||||
|
+ * Licensed under the GNU/GPL. See COPYING for details.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/dts-v1/;
|
||||||
|
+
|
||||||
|
+#include "bcm4709.dtsi"
|
||||||
|
+#include "bcm5301x-nand-cs0-bch8.dtsi"
|
||||||
|
+
|
||||||
|
+/ {
|
||||||
|
+ compatible = "netgear,r7900", "brcm,bcm4709", "brcm,bcm4708";
|
||||||
|
+ model = "Netgear R7900";
|
||||||
|
+
|
||||||
|
+ chosen {
|
||||||
|
+ bootargs = "console=ttyS0,115200";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ memory {
|
||||||
|
+ reg = <0x00000000 0x08000000
|
||||||
|
+ 0x88000000 0x08000000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ axi@18000000 {
|
||||||
|
+ usb3@23000 {
|
||||||
|
+ reg = <0x00023000 0x1000>;
|
||||||
|
+
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <1>;
|
||||||
|
+
|
||||||
|
+ vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&uart0 {
|
||||||
|
+ status = "okay";
|
||||||
|
+};
|
@ -0,0 +1,59 @@
|
|||||||
|
From 2a2af518266a29323cf30c3f9ba9ef2ceb1dd84b Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
|
||||||
|
Date: Thu, 16 Oct 2014 20:52:16 +0200
|
||||||
|
Subject: [PATCH] UBI: Detect EOF mark and erase all remaining blocks
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
||||||
|
---
|
||||||
|
drivers/mtd/ubi/attach.c | 5 +++++
|
||||||
|
drivers/mtd/ubi/io.c | 4 ++++
|
||||||
|
drivers/mtd/ubi/ubi.h | 1 +
|
||||||
|
3 files changed, 10 insertions(+)
|
||||||
|
|
||||||
|
--- a/drivers/mtd/ubi/attach.c
|
||||||
|
+++ b/drivers/mtd/ubi/attach.c
|
||||||
|
@@ -82,6 +82,9 @@ static int self_check_ai(struct ubi_devi
|
||||||
|
#define AV_ADD BIT(1)
|
||||||
|
#define AV_FIND_OR_ADD (AV_FIND | AV_ADD)
|
||||||
|
|
||||||
|
+/* Set on finding block with 0xdeadc0de, indicates erasing all blocks behind */
|
||||||
|
+bool erase_all_next;
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* find_or_add_av - internal function to find a volume, add a volume or do
|
||||||
|
* both (find and add if missing).
|
||||||
|
@@ -1580,6 +1583,8 @@ int ubi_attach(struct ubi_device *ubi, i
|
||||||
|
if (!ai)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
+ erase_all_next = false;
|
||||||
|
+
|
||||||
|
#ifdef CONFIG_MTD_UBI_FASTMAP
|
||||||
|
/* On small flash devices we disable fastmap in any case. */
|
||||||
|
if ((int)mtd_div_by_eb(ubi->mtd->size, ubi->mtd) <= UBI_FM_MAX_START) {
|
||||||
|
--- a/drivers/mtd/ubi/io.c
|
||||||
|
+++ b/drivers/mtd/ubi/io.c
|
||||||
|
@@ -710,6 +710,10 @@ int ubi_io_read_ec_hdr(struct ubi_device
|
||||||
|
}
|
||||||
|
|
||||||
|
magic = be32_to_cpu(ec_hdr->magic);
|
||||||
|
+ if (magic == 0xdeadc0de)
|
||||||
|
+ erase_all_next = true;
|
||||||
|
+ if (erase_all_next)
|
||||||
|
+ return read_err ? UBI_IO_FF_BITFLIPS : UBI_IO_FF;
|
||||||
|
if (magic != UBI_EC_HDR_MAGIC) {
|
||||||
|
if (mtd_is_eccerr(read_err))
|
||||||
|
return UBI_IO_BAD_HDR_EBADMSG;
|
||||||
|
--- a/drivers/mtd/ubi/ubi.h
|
||||||
|
+++ b/drivers/mtd/ubi/ubi.h
|
||||||
|
@@ -824,6 +824,7 @@ extern struct mutex ubi_devices_mutex;
|
||||||
|
extern struct blocking_notifier_head ubi_notifiers;
|
||||||
|
|
||||||
|
/* attach.c */
|
||||||
|
+extern bool erase_all_next;
|
||||||
|
struct ubi_ainf_peb *ubi_alloc_aeb(struct ubi_attach_info *ai, int pnum,
|
||||||
|
int ec);
|
||||||
|
void ubi_free_aeb(struct ubi_attach_info *ai, struct ubi_ainf_peb *aeb);
|
@ -0,0 +1,80 @@
|
|||||||
|
From 6f1c62440eb6846cb8045d7a5480ec7bbe47c96f Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||||
|
Date: Mon, 15 Aug 2016 10:30:41 +0200
|
||||||
|
Subject: [PATCH] BCM53573 minor hacks
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/arch/arm/boot/dts/bcm53573.dtsi
|
||||||
|
+++ b/arch/arm/boot/dts/bcm53573.dtsi
|
||||||
|
@@ -54,6 +54,7 @@
|
||||||
|
<GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
|
||||||
|
<GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
|
||||||
|
<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
+ clocks = <&ilp>;
|
||||||
|
};
|
||||||
|
|
||||||
|
clocks {
|
||||||
|
--- a/drivers/bcma/main.c
|
||||||
|
+++ b/drivers/bcma/main.c
|
||||||
|
@@ -330,14 +330,6 @@ static int bcma_register_devices(struct
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#ifdef CONFIG_BCMA_SFLASH
|
||||||
|
- if (bus->drv_cc.sflash.present) {
|
||||||
|
- err = platform_device_register(&bcma_sflash_dev);
|
||||||
|
- if (err)
|
||||||
|
- bcma_err(bus, "Error registering serial flash\n");
|
||||||
|
- }
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
#ifdef CONFIG_BCMA_NFLASH
|
||||||
|
if (bus->drv_cc.nflash.present) {
|
||||||
|
err = platform_device_register(&bcma_nflash_dev);
|
||||||
|
@@ -415,6 +407,14 @@ int bcma_bus_register(struct bcma_bus *b
|
||||||
|
bcma_register_core(bus, core);
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef CONFIG_BCMA_SFLASH
|
||||||
|
+ if (bus->drv_cc.sflash.present) {
|
||||||
|
+ err = platform_device_register(&bcma_sflash_dev);
|
||||||
|
+ if (err)
|
||||||
|
+ bcma_err(bus, "Error registering serial flash\n");
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* Try to get SPROM */
|
||||||
|
err = bcma_sprom_get(bus);
|
||||||
|
if (err == -ENOENT) {
|
||||||
|
--- a/drivers/clocksource/arm_arch_timer.c
|
||||||
|
+++ b/drivers/clocksource/arm_arch_timer.c
|
||||||
|
@@ -14,6 +14,7 @@
|
||||||
|
#include <linux/smp.h>
|
||||||
|
#include <linux/cpu.h>
|
||||||
|
#include <linux/cpu_pm.h>
|
||||||
|
+#include <linux/clk.h>
|
||||||
|
#include <linux/clockchips.h>
|
||||||
|
#include <linux/clocksource.h>
|
||||||
|
#include <linux/interrupt.h>
|
||||||
|
@@ -934,6 +935,16 @@ static void arch_timer_of_configure_rate
|
||||||
|
if (of_property_read_u32(np, "clock-frequency", &arch_timer_rate))
|
||||||
|
arch_timer_rate = rate;
|
||||||
|
|
||||||
|
+ /* Get clk rate through clk driver if present */
|
||||||
|
+ if (!arch_timer_rate) {
|
||||||
|
+ struct clk *clk = of_clk_get(np, 0);
|
||||||
|
+
|
||||||
|
+ if (!IS_ERR(clk)) {
|
||||||
|
+ if (!clk_prepare_enable(clk))
|
||||||
|
+ arch_timer_rate = clk_get_rate(clk);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Check the timer frequency. */
|
||||||
|
if (validate_timer_rate())
|
||||||
|
pr_warn("frequency not available\n");
|
@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -6779,15 +6779,10 @@ void __netif_napi_del(struct napi_struct
|
@@ -6793,15 +6793,10 @@ void __netif_napi_del(struct napi_struct
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(__netif_napi_del);
|
EXPORT_SYMBOL(__netif_napi_del);
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
weight = n->weight;
|
weight = n->weight;
|
||||||
|
|
||||||
/* This NAPI_STATE_SCHED test is for avoiding a race
|
/* This NAPI_STATE_SCHED test is for avoiding a race
|
||||||
@@ -6807,7 +6802,7 @@ static int napi_poll(struct napi_struct
|
@@ -6821,7 +6816,7 @@ static int napi_poll(struct napi_struct
|
||||||
n->poll, work, weight);
|
n->poll, work, weight);
|
||||||
|
|
||||||
if (likely(work < weight))
|
if (likely(work < weight))
|
||||||
@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
/* Drivers must not modify the NAPI state if they
|
/* Drivers must not modify the NAPI state if they
|
||||||
* consume the entire weight. In such cases this code
|
* consume the entire weight. In such cases this code
|
||||||
@@ -6816,7 +6811,7 @@ static int napi_poll(struct napi_struct
|
@@ -6830,7 +6825,7 @@ static int napi_poll(struct napi_struct
|
||||||
*/
|
*/
|
||||||
if (unlikely(napi_disable_pending(n))) {
|
if (unlikely(napi_disable_pending(n))) {
|
||||||
napi_complete(n);
|
napi_complete(n);
|
||||||
@ -53,7 +53,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (n->gro_bitmask) {
|
if (n->gro_bitmask) {
|
||||||
@@ -6834,12 +6829,29 @@ static int napi_poll(struct napi_struct
|
@@ -6848,12 +6843,29 @@ static int napi_poll(struct napi_struct
|
||||||
if (unlikely(!list_empty(&n->poll_list))) {
|
if (unlikely(!list_empty(&n->poll_list))) {
|
||||||
pr_warn_once("%s: Budget exhausted after napi rescheduled\n",
|
pr_warn_once("%s: Budget exhausted after napi rescheduled\n",
|
||||||
n->dev ? n->dev->name : "backlog");
|
n->dev ? n->dev->name : "backlog");
|
||||||
|
@ -153,7 +153,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
list_add_tail(&napi->poll_list, &sd->poll_list);
|
list_add_tail(&napi->poll_list, &sd->poll_list);
|
||||||
__raise_softirq_irqoff(NET_RX_SOFTIRQ);
|
__raise_softirq_irqoff(NET_RX_SOFTIRQ);
|
||||||
}
|
}
|
||||||
@@ -6732,6 +6769,12 @@ void netif_napi_add(struct net_device *d
|
@@ -6746,6 +6783,12 @@ void netif_napi_add(struct net_device *d
|
||||||
set_bit(NAPI_STATE_NPSVC, &napi->state);
|
set_bit(NAPI_STATE_NPSVC, &napi->state);
|
||||||
list_add_rcu(&napi->dev_list, &dev->napi_list);
|
list_add_rcu(&napi->dev_list, &dev->napi_list);
|
||||||
napi_hash_add(napi);
|
napi_hash_add(napi);
|
||||||
@ -166,7 +166,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(netif_napi_add);
|
EXPORT_SYMBOL(netif_napi_add);
|
||||||
|
|
||||||
@@ -6748,9 +6791,28 @@ void napi_disable(struct napi_struct *n)
|
@@ -6762,9 +6805,28 @@ void napi_disable(struct napi_struct *n)
|
||||||
hrtimer_cancel(&n->timer);
|
hrtimer_cancel(&n->timer);
|
||||||
|
|
||||||
clear_bit(NAPI_STATE_DISABLE, &n->state);
|
clear_bit(NAPI_STATE_DISABLE, &n->state);
|
||||||
@ -195,7 +195,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
static void flush_gro_hash(struct napi_struct *napi)
|
static void flush_gro_hash(struct napi_struct *napi)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -6776,6 +6838,11 @@ void __netif_napi_del(struct napi_struct
|
@@ -6790,6 +6852,11 @@ void __netif_napi_del(struct napi_struct
|
||||||
|
|
||||||
flush_gro_hash(napi);
|
flush_gro_hash(napi);
|
||||||
napi->gro_bitmask = 0;
|
napi->gro_bitmask = 0;
|
||||||
@ -207,7 +207,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(__netif_napi_del);
|
EXPORT_SYMBOL(__netif_napi_del);
|
||||||
|
|
||||||
@@ -6857,6 +6924,51 @@ static int napi_poll(struct napi_struct
|
@@ -6871,6 +6938,51 @@ static int napi_poll(struct napi_struct
|
||||||
return work;
|
return work;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
* wake_up_process() when it's not NULL.
|
* wake_up_process() when it's not NULL.
|
||||||
*/
|
*/
|
||||||
thread = READ_ONCE(napi->thread);
|
thread = READ_ONCE(napi->thread);
|
||||||
@@ -6742,6 +6743,49 @@ static void init_gro_hash(struct napi_st
|
@@ -6756,6 +6757,49 @@ static void init_gro_hash(struct napi_st
|
||||||
napi->gro_bitmask = 0;
|
napi->gro_bitmask = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
|
|||||||
wake_up_process(thread);
|
wake_up_process(thread);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -6534,7 +6536,8 @@ bool napi_complete_done(struct napi_stru
|
@@ -6548,7 +6550,8 @@ bool napi_complete_done(struct napi_stru
|
||||||
|
|
||||||
WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));
|
WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
|
|||||||
|
|
||||||
/* If STATE_MISSED was set, leave STATE_SCHED set,
|
/* If STATE_MISSED was set, leave STATE_SCHED set,
|
||||||
* because we will call napi->poll() one more time.
|
* because we will call napi->poll() one more time.
|
||||||
@@ -6970,16 +6973,25 @@ static int napi_poll(struct napi_struct
|
@@ -6984,16 +6987,25 @@ static int napi_poll(struct napi_struct
|
||||||
|
|
||||||
static int napi_thread_wait(struct napi_struct *napi)
|
static int napi_thread_wait(struct napi_struct *napi)
|
||||||
{
|
{
|
||||||
|
@ -34,7 +34,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|||||||
|
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -6977,7 +6977,7 @@ static int napi_thread_wait(struct napi_
|
@@ -6991,7 +6991,7 @@ static int napi_thread_wait(struct napi_
|
||||||
|
|
||||||
set_current_state(TASK_INTERRUPTIBLE);
|
set_current_state(TASK_INTERRUPTIBLE);
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|||||||
/* Testing SCHED_THREADED bit here to make sure the current
|
/* Testing SCHED_THREADED bit here to make sure the current
|
||||||
* kthread owns this napi and could poll on this napi.
|
* kthread owns this napi and could poll on this napi.
|
||||||
* Testing SCHED bit is not enough because SCHED bit might be
|
* Testing SCHED bit is not enough because SCHED bit might be
|
||||||
@@ -6995,6 +6995,7 @@ static int napi_thread_wait(struct napi_
|
@@ -7009,6 +7009,7 @@ static int napi_thread_wait(struct napi_
|
||||||
set_current_state(TASK_INTERRUPTIBLE);
|
set_current_state(TASK_INTERRUPTIBLE);
|
||||||
}
|
}
|
||||||
__set_current_state(TASK_RUNNING);
|
__set_current_state(TASK_RUNNING);
|
||||||
|
@ -533,6 +533,7 @@ CONFIG_BASE_SMALL=0
|
|||||||
# CONFIG_BATTERY_MAX17040 is not set
|
# CONFIG_BATTERY_MAX17040 is not set
|
||||||
# CONFIG_BATTERY_MAX17042 is not set
|
# CONFIG_BATTERY_MAX17042 is not set
|
||||||
# CONFIG_BATTERY_MAX1721X is not set
|
# CONFIG_BATTERY_MAX1721X is not set
|
||||||
|
# CONFIG_BATTERY_RT5033 is not set
|
||||||
# CONFIG_BATTERY_SBS is not set
|
# CONFIG_BATTERY_SBS is not set
|
||||||
# CONFIG_BAYCOM_EPP is not set
|
# CONFIG_BAYCOM_EPP is not set
|
||||||
# CONFIG_BAYCOM_PAR is not set
|
# CONFIG_BAYCOM_PAR is not set
|
||||||
@ -1004,8 +1005,8 @@ CONFIG_CROSS_COMPILE=""
|
|||||||
# CONFIG_CROSS_MEMORY_ATTACH is not set
|
# CONFIG_CROSS_MEMORY_ATTACH is not set
|
||||||
CONFIG_CRYPTO=y
|
CONFIG_CRYPTO=y
|
||||||
# CONFIG_CRYPTO_842 is not set
|
# CONFIG_CRYPTO_842 is not set
|
||||||
# CONFIG_CRYPTO_ADIANTUM is not set
|
|
||||||
CONFIG_CRYPTO_ACOMP2=y
|
CONFIG_CRYPTO_ACOMP2=y
|
||||||
|
# CONFIG_CRYPTO_ADIANTUM is not set
|
||||||
CONFIG_CRYPTO_AEAD=y
|
CONFIG_CRYPTO_AEAD=y
|
||||||
CONFIG_CRYPTO_AEAD2=y
|
CONFIG_CRYPTO_AEAD2=y
|
||||||
# CONFIG_CRYPTO_AEGIS128 is not set
|
# CONFIG_CRYPTO_AEGIS128 is not set
|
||||||
@ -1123,9 +1124,9 @@ CONFIG_CRYPTO_HASH2=y
|
|||||||
# CONFIG_CRYPTO_HW is not set
|
# CONFIG_CRYPTO_HW is not set
|
||||||
# CONFIG_CRYPTO_JITTERENTROPY is not set
|
# CONFIG_CRYPTO_JITTERENTROPY is not set
|
||||||
# CONFIG_CRYPTO_KEYWRAP is not set
|
# CONFIG_CRYPTO_KEYWRAP is not set
|
||||||
|
# CONFIG_CRYPTO_KHAZAD is not set
|
||||||
CONFIG_CRYPTO_KPP=y
|
CONFIG_CRYPTO_KPP=y
|
||||||
CONFIG_CRYPTO_KPP2=y
|
CONFIG_CRYPTO_KPP2=y
|
||||||
# CONFIG_CRYPTO_KHAZAD is not set
|
|
||||||
CONFIG_CRYPTO_LIB_AES=y
|
CONFIG_CRYPTO_LIB_AES=y
|
||||||
CONFIG_CRYPTO_LIB_ARC4=y
|
CONFIG_CRYPTO_LIB_ARC4=y
|
||||||
# CONFIG_CRYPTO_LIB_BLAKE2S is not set
|
# CONFIG_CRYPTO_LIB_BLAKE2S is not set
|
||||||
@ -2120,6 +2121,7 @@ CONFIG_HARDENED_USERCOPY=y
|
|||||||
# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
|
# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
|
||||||
CONFIG_HARDEN_EL2_VECTORS=y
|
CONFIG_HARDEN_EL2_VECTORS=y
|
||||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||||
|
# CONFIG_HAVE_ARM_ARCH_TIMER is not set
|
||||||
# CONFIG_HCALL_STATS is not set
|
# CONFIG_HCALL_STATS is not set
|
||||||
# CONFIG_HDC100X is not set
|
# CONFIG_HDC100X is not set
|
||||||
# CONFIG_HDC2010 is not set
|
# CONFIG_HDC2010 is not set
|
||||||
@ -3561,8 +3563,8 @@ CONFIG_MTD_NAND_IDS=y
|
|||||||
# CONFIG_MTD_NAND_PLATFORM is not set
|
# CONFIG_MTD_NAND_PLATFORM is not set
|
||||||
# CONFIG_MTD_NAND_PXA3xx is not set
|
# CONFIG_MTD_NAND_PXA3xx is not set
|
||||||
# CONFIG_MTD_NAND_RB4XX is not set
|
# CONFIG_MTD_NAND_RB4XX is not set
|
||||||
# CONFIG_MTD_NAND_RB91X is not set
|
|
||||||
# CONFIG_MTD_NAND_RB750 is not set
|
# CONFIG_MTD_NAND_RB750 is not set
|
||||||
|
# CONFIG_MTD_NAND_RB91X is not set
|
||||||
# CONFIG_MTD_NAND_RICOH is not set
|
# CONFIG_MTD_NAND_RICOH is not set
|
||||||
# CONFIG_MTD_NAND_S3C2410 is not set
|
# CONFIG_MTD_NAND_S3C2410 is not set
|
||||||
# CONFIG_MTD_NAND_SHARPSL is not set
|
# CONFIG_MTD_NAND_SHARPSL is not set
|
||||||
|
@ -217,3 +217,39 @@
|
|||||||
|
|
||||||
set_capacity(gd, ((u64)new->size * tr->blksize) >> 9);
|
set_capacity(gd, ((u64)new->size * tr->blksize) >> 9);
|
||||||
|
|
||||||
|
--- a/block/partitions/msdos.c
|
||||||
|
+++ b/block/partitions/msdos.c
|
||||||
|
@@ -563,6 +563,15 @@ static void parse_minix(struct parsed_pa
|
||||||
|
#endif /* CONFIG_MINIX_SUBPARTITION */
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void parse_fit_mbr(struct parsed_partitions *state,
|
||||||
|
+ sector_t offset, sector_t size, int origin)
|
||||||
|
+{
|
||||||
|
+#ifdef CONFIG_FIT_PARTITION
|
||||||
|
+ u32 extra_slot = 64;
|
||||||
|
+ (void) parse_fit_partitions(state, offset, size, &extra_slot, 1);
|
||||||
|
+#endif /* CONFIG_FIT_PARTITION */
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static struct {
|
||||||
|
unsigned char id;
|
||||||
|
void (*parse)(struct parsed_partitions *, sector_t, sector_t, int);
|
||||||
|
@@ -574,6 +583,7 @@ static struct {
|
||||||
|
{UNIXWARE_PARTITION, parse_unixware},
|
||||||
|
{SOLARIS_X86_PARTITION, parse_solaris_x86},
|
||||||
|
{NEW_SOLARIS_X86_PARTITION, parse_solaris_x86},
|
||||||
|
+ {FIT_PARTITION, parse_fit_mbr},
|
||||||
|
{0, NULL},
|
||||||
|
};
|
||||||
|
|
||||||
|
--- a/include/linux/msdos_partition.h
|
||||||
|
+++ b/include/linux/msdos_partition.h
|
||||||
|
@@ -31,6 +31,7 @@ enum msdos_sys_ind {
|
||||||
|
LINUX_LVM_PARTITION = 0x8e,
|
||||||
|
LINUX_RAID_PARTITION = 0xfd, /* autodetect RAID partition */
|
||||||
|
|
||||||
|
+ FIT_PARTITION = 0x2e, /* U-Boot uImage.FIT */
|
||||||
|
SOLARIS_X86_PARTITION = 0x82, /* also Linux swap partitions */
|
||||||
|
NEW_SOLARIS_X86_PARTITION = 0xbf,
|
||||||
|
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
From c94b2cfd25c282e2974accc1b07da98ae7139b47 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ansuel Smith <ansuelsmth@gmail.com>
|
||||||
|
Date: Fri, 23 Jul 2021 12:14:33 +0200
|
||||||
|
Subject: [PATCH 1/2] drivers: net: mediatek: register of_platform for every
|
||||||
|
port
|
||||||
|
|
||||||
|
Currently the nvmem framework require the devicenode to be registred on
|
||||||
|
the of_platform or of_get_mac_address fail to get the macaddress if
|
||||||
|
defined using an nvmem cell. Fix this by registrering these special node
|
||||||
|
so they can be found by of_find_device_by_node.
|
||||||
|
|
||||||
|
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||||
|
---
|
||||||
|
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
|
@@ -3005,6 +3005,8 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||||
|
eth->netdev[id]->dev.of_node = np;
|
||||||
|
|
||||||
|
eth->netdev[id]->max_mtu = MTK_MAX_RX_LENGTH - MTK_RX_ETH_HLEN;
|
||||||
|
+
|
||||||
|
+ of_platform_device_create(np, NULL, NULL);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
@ -0,0 +1,35 @@
|
|||||||
|
From 8bab551f44204fc5d43977063cd704112c17c750 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ansuel Smith <ansuelsmth@gmail.com>
|
||||||
|
Date: Fri, 23 Jul 2021 12:17:27 +0200
|
||||||
|
Subject: [PATCH 2/2] dsa: register every port with of_platform
|
||||||
|
|
||||||
|
The declaration of a different mac-addr using the nvmem framework is
|
||||||
|
currently broken. The dsa code use the generic of_get_mac_address where
|
||||||
|
the nvmem function require the device node to be registred in the
|
||||||
|
of_platform to be found by of_find_device_by_node. Register every port
|
||||||
|
in the of_platform so they can corrently found and a custom mac-addr can
|
||||||
|
correctly be declared using a nvmem-cell declared in the dts.
|
||||||
|
|
||||||
|
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||||
|
---
|
||||||
|
net/dsa/dsa2.c | 2 +
|
||||||
|
1 file changed, 2 insertion(+)
|
||||||
|
|
||||||
|
--- a/net/dsa/dsa2.c
|
||||||
|
+++ b/net/dsa/dsa2.c
|
||||||
|
@@ -14,6 +14,7 @@
|
||||||
|
#include <linux/rtnetlink.h>
|
||||||
|
#include <linux/of.h>
|
||||||
|
#include <linux/of_net.h>
|
||||||
|
+#include <linux/of_platform.h>
|
||||||
|
#include <net/devlink.h>
|
||||||
|
|
||||||
|
#include "dsa_priv.h"
|
||||||
|
@@ -288,6 +289,7 @@ static int dsa_port_setup(struct dsa_por
|
||||||
|
|
||||||
|
break;
|
||||||
|
case DSA_PORT_TYPE_USER:
|
||||||
|
+ of_platform_device_create(dp->dn, NULL, NULL);
|
||||||
|
dp->mac = of_get_mac_address(dp->dn);
|
||||||
|
err = dsa_slave_create(dp);
|
||||||
|
if (err)
|
@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
|
|||||||
|
|
||||||
--- a/mm/page_alloc.c
|
--- a/mm/page_alloc.c
|
||||||
+++ b/mm/page_alloc.c
|
+++ b/mm/page_alloc.c
|
||||||
@@ -7027,7 +7027,7 @@ static void __ref alloc_node_mem_map(str
|
@@ -7053,7 +7053,7 @@ static void __ref alloc_node_mem_map(str
|
||||||
if (pgdat == NODE_DATA(0)) {
|
if (pgdat == NODE_DATA(0)) {
|
||||||
mem_map = NODE_DATA(0)->node_mem_map;
|
mem_map = NODE_DATA(0)->node_mem_map;
|
||||||
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
|
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -734,11 +734,11 @@ KBUILD_CFLAGS += $(call cc-disable-warni
|
@@ -735,11 +735,11 @@ KBUILD_CFLAGS += $(call cc-disable-warni
|
||||||
KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
|
KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
|
||||||
|
|
||||||
ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
|
ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
|
||||||
|
@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
__u16 tc_index; /* traffic control index */
|
__u16 tc_index; /* traffic control index */
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -6037,6 +6037,9 @@ static enum gro_result dev_gro_receive(s
|
@@ -6050,6 +6050,9 @@ static enum gro_result dev_gro_receive(s
|
||||||
int same_flow;
|
int same_flow;
|
||||||
int grow;
|
int grow;
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (netif_elide_gro(skb->dev))
|
if (netif_elide_gro(skb->dev))
|
||||||
goto normal;
|
goto normal;
|
||||||
|
|
||||||
@@ -8013,6 +8016,48 @@ static void __netdev_adjacent_dev_unlink
|
@@ -8027,6 +8030,48 @@ static void __netdev_adjacent_dev_unlink
|
||||||
&upper_dev->adj_list.lower);
|
&upper_dev->adj_list.lower);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
static int __netdev_upper_dev_link(struct net_device *dev,
|
static int __netdev_upper_dev_link(struct net_device *dev,
|
||||||
struct net_device *upper_dev, bool master,
|
struct net_device *upper_dev, bool master,
|
||||||
void *upper_priv, void *upper_info,
|
void *upper_priv, void *upper_info,
|
||||||
@@ -8064,6 +8109,7 @@ static int __netdev_upper_dev_link(struc
|
@@ -8078,6 +8123,7 @@ static int __netdev_upper_dev_link(struc
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
||||||
&changeupper_info.info);
|
&changeupper_info.info);
|
||||||
ret = notifier_to_errno(ret);
|
ret = notifier_to_errno(ret);
|
||||||
@@ -8160,6 +8206,7 @@ static void __netdev_upper_dev_unlink(st
|
@@ -8174,6 +8220,7 @@ static void __netdev_upper_dev_unlink(st
|
||||||
|
|
||||||
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
|
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
||||||
&changeupper_info.info);
|
&changeupper_info.info);
|
||||||
|
|
||||||
@@ -8946,6 +8993,7 @@ int dev_set_mac_address(struct net_devic
|
@@ -8960,6 +9007,7 @@ int dev_set_mac_address(struct net_devic
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
dev->addr_assign_type = NET_ADDR_SET;
|
dev->addr_assign_type = NET_ADDR_SET;
|
||||||
|
@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
|||||||
|
|
||||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||||
@@ -5401,6 +5401,7 @@ static int mv88e6xxx_register_switch(str
|
@@ -5419,6 +5419,7 @@ static int mv88e6xxx_register_switch(str
|
||||||
ds->ops = &mv88e6xxx_switch_ops;
|
ds->ops = &mv88e6xxx_switch_ops;
|
||||||
ds->ageing_time_min = chip->info->age_time_coeff;
|
ds->ageing_time_min = chip->info->age_time_coeff;
|
||||||
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
|
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
|
||||||
|
@ -5481,7 +5481,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
(transaction layer end-to-end CRC checking).
|
(transaction layer end-to-end CRC checking).
|
||||||
--- a/include/linux/pci.h
|
--- a/include/linux/pci.h
|
||||||
+++ b/include/linux/pci.h
|
+++ b/include/linux/pci.h
|
||||||
@@ -1416,6 +1416,8 @@ void pci_walk_bus(struct pci_bus *top, i
|
@@ -1417,6 +1417,8 @@ void pci_walk_bus(struct pci_bus *top, i
|
||||||
void *userdata);
|
void *userdata);
|
||||||
int pci_cfg_space_size(struct pci_dev *dev);
|
int pci_cfg_space_size(struct pci_dev *dev);
|
||||||
unsigned char pci_bus_max_busnr(struct pci_bus *bus);
|
unsigned char pci_bus_max_busnr(struct pci_bus *bus);
|
||||||
|
@ -22,9 +22,9 @@ Signed-off-by: René van Dorst <opensource@vdorst.com>
|
|||||||
const __be32 *_id = of_get_property(np, "reg", NULL);
|
const __be32 *_id = of_get_property(np, "reg", NULL);
|
||||||
phy_interface_t phy_mode;
|
phy_interface_t phy_mode;
|
||||||
struct phylink *phylink;
|
struct phylink *phylink;
|
||||||
@@ -3006,6 +3007,9 @@ static int mtk_add_mac(struct mtk_eth *e
|
@@ -3008,6 +3009,9 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||||
|
|
||||||
eth->netdev[id]->max_mtu = MTK_MAX_RX_LENGTH - MTK_RX_ETH_HLEN;
|
of_platform_device_create(np, NULL, NULL);
|
||||||
|
|
||||||
+ if (name)
|
+ if (name)
|
||||||
+ strlcpy(eth->netdev[id]->name, name, IFNAMSIZ);
|
+ strlcpy(eth->netdev[id]->name, name, IFNAMSIZ);
|
||||||
|
Loading…
Reference in New Issue
Block a user