kernel: bump 5.4 to 5.4.133

Manually rebased:
  pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
This commit is contained in:
John Audia
2021-07-19 05:17:10 -04:00
committed by Hauke Mehrtens
parent 2b2ac841e0
commit 5408e811b2
26 changed files with 66 additions and 87 deletions

View File

@@ -18,7 +18,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
--- a/drivers/of/of_net.c
+++ b/drivers/of/of_net.c
@@ -61,6 +61,7 @@ static void *of_get_mac_addr_nvmem(struc
@@ -55,6 +55,7 @@ static void *of_get_mac_addr_nvmem(struc
void *mac;
u8 nvmem_mac[ETH_ALEN];
struct platform_device *pdev = of_find_device_by_node(np);
@@ -26,7 +26,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
if (!pdev) {
*err = -ENODEV;
@@ -78,10 +79,29 @@ static void *of_get_mac_addr_nvmem(struc
@@ -72,10 +73,29 @@ static void *of_get_mac_addr_nvmem(struc
put_device(&pdev->dev);
if (!mac) {
*err = -ENOMEM;

View File

@@ -14,11 +14,9 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index ed4eacef17ce..666803817540 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -3015,6 +3015,8 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
@@ -3034,6 +3034,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;
@@ -27,6 +25,3 @@ index ed4eacef17ce..666803817540 100644
return 0;
--
2.31.1

View File

@@ -15,8 +15,6 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
net/dsa/dsa2.c | 2 +
1 file changed, 2 insertion(+)
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index b71e87909f0e..55bbc1a769ca 100644
--- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c
@@ -14,6 +14,7 @@
@@ -27,7 +25,7 @@ index b71e87909f0e..55bbc1a769ca 100644
#include <net/devlink.h>
#include "dsa_priv.h"
@@ -392,6 +392,7 @@ static int dsa_port_setup(struct dsa_port *dp)
@@ -318,6 +319,7 @@ static int dsa_port_setup(struct dsa_por
break;
devlink_port_registered = true;
@@ -35,6 +33,3 @@ index b71e87909f0e..55bbc1a769ca 100644
dp->mac = of_get_mac_address(dp->dn);
err = dsa_slave_create(dp);
if (err)
--
2.31.1

View File

@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (netif_elide_gro(skb->dev))
goto normal;
@@ -7284,6 +7287,48 @@ static void __netdev_adjacent_dev_unlink
@@ -7291,6 +7294,48 @@ static void __netdev_adjacent_dev_unlink
&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,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info,
@@ -7334,6 +7379,7 @@ static int __netdev_upper_dev_link(struc
@@ -7341,6 +7386,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
@@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
ret = notifier_to_errno(ret);
@@ -7427,6 +7473,7 @@ void netdev_upper_dev_unlink(struct net_
@@ -7434,6 +7480,7 @@ void netdev_upper_dev_unlink(struct net_
__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,
&changeupper_info.info);
@@ -8157,6 +8204,7 @@ int dev_set_mac_address(struct net_devic
@@ -8164,6 +8211,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;

View File

@@ -15,8 +15,6 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
drivers/of/of_net.c | 75 ++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 74 insertions(+), 1 deletion(-)
diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c
index 6e411821583e..f072e2509cc9 100644
--- a/drivers/of/of_net.c
+++ b/drivers/of/of_net.c
@@ -11,6 +11,7 @@
@@ -27,7 +25,7 @@ index 6e411821583e..f072e2509cc9 100644
/**
* of_get_phy_mode - Get phy mode for given device_node
@@ -45,7 +46,7 @@ int of_get_phy_mode(struct device_node *np, phy_interface_t *interface)
@@ -39,7 +40,7 @@ int of_get_phy_mode(struct device_node *
}
EXPORT_SYMBOL_GPL(of_get_phy_mode);
@@ -36,7 +34,7 @@ index 6e411821583e..f072e2509cc9 100644
{
struct property *pp = of_find_property(np, name, NULL);
@@ -78,6 +79,70 @@ static const void *of_get_mac_addr_nvmem(struct device_node *np)
@@ -72,6 +73,70 @@ static const void *of_get_mac_addr_nvmem
return mac;
}
@@ -107,7 +105,7 @@ index 6e411821583e..f072e2509cc9 100644
/**
* Search the device tree for the best MAC address to use. 'mac-address' is
* checked first, because that is supposed to contain to "most recent" MAC
@@ -98,6 +163,10 @@ static const void *of_get_mac_addr_nvmem(struct device_node *np)
@@ -92,6 +157,10 @@ static const void *of_get_mac_addr_nvmem
* this case, the real MAC is in 'local-mac-address', and 'mac-address' exists
* but is all zeros.
*
@@ -118,7 +116,7 @@ index 6e411821583e..f072e2509cc9 100644
* Return: Will be a valid pointer on success and ERR_PTR in case of error.
*/
const void *of_get_mac_address(struct device_node *np)
@@ -116,6 +185,10 @@ const void *of_get_mac_address(struct device_node *np)
@@ -110,6 +179,10 @@ const void *of_get_mac_address(struct de
if (addr)
return addr;
@@ -129,6 +127,3 @@ index 6e411821583e..f072e2509cc9 100644
return of_get_mac_addr_nvmem(np);
}
EXPORT_SYMBOL(of_get_mac_address);
--
2.30.2

View File

@@ -18,11 +18,9 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
drivers/of/of_net.c | 59 ++++++++++++++++++++++++++++++++++-----------
1 file changed, 45 insertions(+), 14 deletions(-)
diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c
index f072e2509cc9..0dbd1f7ef396 100644
--- a/drivers/of/of_net.c
+++ b/drivers/of/of_net.c
@@ -55,31 +55,36 @@ static void *of_get_mac_addr(struct device_node *np, const char *name)
@@ -49,31 +49,36 @@ static void *of_get_mac_addr(struct devi
return NULL;
}
@@ -67,7 +65,7 @@ index f072e2509cc9..0dbd1f7ef396 100644
{
#ifdef CONFIG_MTD
struct device_node *mtd_np = NULL;
@@ -167,28 +172,54 @@ static const void *of_get_mac_address_mtd(struct device_node *np)
@@ -161,28 +166,54 @@ free:
* If a mtd-mac-address property exists, try to fetch the MAC address from the
* specified mtd device, and store it as a 'mac-address' property
*
@@ -128,6 +126,3 @@ index f072e2509cc9..0dbd1f7ef396 100644
+ return addr;
}
EXPORT_SYMBOL(of_get_mac_address);
--
2.30.2

View File

@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
local_irq_save(flags);
____napi_schedule(this_cpu_ptr(&softnet_data), n);
local_irq_restore(flags);
@@ -5978,6 +5984,11 @@ EXPORT_SYMBOL(napi_schedule_prep);
@@ -5982,6 +5988,10 @@ EXPORT_SYMBOL(napi_schedule_prep);
*/
void __napi_schedule_irqoff(struct napi_struct *n)
{
@@ -115,11 +115,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ queue_work(napi_workq, &n->work);
+ return;
+ }
+
____napi_schedule(this_cpu_ptr(&softnet_data), n);
}
EXPORT_SYMBOL(__napi_schedule_irqoff);
@@ -6239,9 +6250,89 @@ static void init_gro_hash(struct napi_st
if (!IS_ENABLED(CONFIG_PREEMPT_RT))
____napi_schedule(this_cpu_ptr(&softnet_data), n);
else
@@ -6246,9 +6256,89 @@ static void init_gro_hash(struct napi_st
napi->gro_bitmask = 0;
}
@@ -209,7 +208,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
INIT_LIST_HEAD(&napi->poll_list);
hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED);
napi->timer.function = napi_watchdog;
@@ -6258,6 +6349,7 @@ void netif_napi_add(struct net_device *d
@@ -6265,6 +6355,7 @@ void netif_napi_add(struct net_device *d
#ifdef CONFIG_NETPOLL
napi->poll_owner = -1;
#endif
@@ -217,7 +216,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
set_bit(NAPI_STATE_SCHED, &napi->state);
set_bit(NAPI_STATE_NPSVC, &napi->state);
list_add_rcu(&napi->dev_list, &dev->napi_list);
@@ -6298,6 +6390,7 @@ static void flush_gro_hash(struct napi_s
@@ -6305,6 +6396,7 @@ static void flush_gro_hash(struct napi_s
void netif_napi_del(struct napi_struct *napi)
{
might_sleep();
@@ -225,7 +224,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (napi_hash_del(napi))
synchronize_net();
list_del_init(&napi->dev_list);
@@ -6310,50 +6403,18 @@ EXPORT_SYMBOL(netif_napi_del);
@@ -6317,50 +6409,18 @@ EXPORT_SYMBOL(netif_napi_del);
static int napi_poll(struct napi_struct *n, struct list_head *repoll)
{
@@ -239,8 +238,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
have = netpoll_poll_lock(n);
- weight = n->weight;
+ work = __napi_poll(n, &do_repoll);
-
- /* This NAPI_STATE_SCHED test is for avoiding a race
- * with netpoll's poll_napi(). Only the entity which
- * obtains the lock and sees NAPI_STATE_SCHED set will
@@ -254,7 +252,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
- }
-
- WARN_ON_ONCE(work > weight);
-
+ work = __napi_poll(n, &do_repoll);
- if (likely(work < weight))
- goto out_unlock;
-
@@ -280,7 +279,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* Some drivers may have called napi_schedule
* prior to exhausting their budget.
@@ -10333,6 +10394,10 @@ static int __init net_dev_init(void)
@@ -10340,6 +10400,10 @@ static int __init net_dev_init(void)
sd->backlog.weight = weight_p;
}

View File

@@ -25,7 +25,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -205,6 +205,7 @@ static void quirk_mmio_always_on(struct
@@ -206,6 +206,7 @@ static void quirk_mmio_always_on(struct
DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
@@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/*
* The Mellanox Tavor device gives false positive parity errors. Mark this
* device with a broken_parity_status to allow PCI scanning code to "skip"
@@ -3320,6 +3321,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
@@ -3321,6 +3322,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
@@ -42,7 +42,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/*
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.
* To work around this, query the size it should be configured to by the
@@ -3345,6 +3348,8 @@ static void quirk_intel_ntb(struct pci_d
@@ -3346,6 +3349,8 @@ static void quirk_intel_ntb(struct pci_d
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
@@ -51,7 +51,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/*
* Some BIOS implementations leave the Intel GPU interrupts enabled, even
* though no one is handling them (e.g., if the i915 driver is never
@@ -3383,6 +3388,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
@@ -3384,6 +3389,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);