kernel: bump 5.4 to 5.4.64
Remove upstreamed patches: generic-backport 701-v5.5-net-core-use-listified-Rx-for-GRO_NORMAL-in-napi_gro.patch Manually merged: mediatek/patches-5.4 0603-net-dsa-mt7530-Extend-device-data-ready-for-adding-a.patch All other modifications made by update_kernel.sh Build-tested: ipq806x, lantiq/xrx200, mvebu, x86/64 Run-tested: ipq806x (R7800), mvebu (mamba, rango), lantiq/xrx200 (Easybox 904 xDSL), x86/64 No dmesg regressions, everything functional Signed-off-by: John Audia <graysky@archlinux.us> [add community build/run tests to commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
committed by
Adrian Schmutzler
parent
c4110a524e
commit
bee76f1bfa
@@ -1,51 +0,0 @@
|
||||
From: Alexander Lobakin <alobakin@dlink.ru>
|
||||
Date: Mon, 14 Oct 2019 11:00:33 +0300
|
||||
Subject: [PATCH] net: core: use listified Rx for GRO_NORMAL in
|
||||
napi_gro_receive()
|
||||
|
||||
Commit 323ebb61e32b4 ("net: use listified RX for handling GRO_NORMAL
|
||||
skbs") made use of listified skb processing for the users of
|
||||
napi_gro_frags().
|
||||
The same technique can be used in a way more common napi_gro_receive()
|
||||
to speed up non-merged (GRO_NORMAL) skbs for a wide range of drivers
|
||||
including gro_cells and mac80211 users.
|
||||
This slightly changes the return value in cases where skb is being
|
||||
dropped by the core stack, but it seems to have no impact on related
|
||||
drivers' functionality.
|
||||
gro_normal_batch is left untouched as it's very individual for every
|
||||
single system configuration and might be tuned in manual order to
|
||||
achieve an optimal performance.
|
||||
|
||||
Signed-off-by: Alexander Lobakin <alobakin@dlink.ru>
|
||||
Acked-by: Edward Cree <ecree@solarflare.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -5601,12 +5601,13 @@ static void napi_skb_free_stolen_head(st
|
||||
kmem_cache_free(skbuff_head_cache, skb);
|
||||
}
|
||||
|
||||
-static gro_result_t napi_skb_finish(gro_result_t ret, struct sk_buff *skb)
|
||||
+static gro_result_t napi_skb_finish(struct napi_struct *napi,
|
||||
+ struct sk_buff *skb,
|
||||
+ gro_result_t ret)
|
||||
{
|
||||
switch (ret) {
|
||||
case GRO_NORMAL:
|
||||
- if (netif_receive_skb_internal(skb))
|
||||
- ret = GRO_DROP;
|
||||
+ gro_normal_one(napi, skb);
|
||||
break;
|
||||
|
||||
case GRO_DROP:
|
||||
@@ -5638,7 +5639,7 @@ gro_result_t napi_gro_receive(struct nap
|
||||
|
||||
skb_gro_reset_offset(skb);
|
||||
|
||||
- ret = napi_skb_finish(dev_gro_receive(napi, skb), skb);
|
||||
+ ret = napi_skb_finish(napi, skb, dev_gro_receive(napi, skb));
|
||||
trace_napi_gro_receive_exit(ret);
|
||||
|
||||
return ret;
|
||||
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
goto drop;
|
||||
|
||||
@@ -2184,12 +2186,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||
@@ -2185,12 +2187,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
|
||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
|
||||
|
||||
@@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
goto drop;
|
||||
|
||||
@@ -3284,6 +3286,7 @@ static int packet_create(struct net *net
|
||||
@@ -3289,6 +3291,7 @@ static int packet_create(struct net *net
|
||||
mutex_init(&po->pg_vec_lock);
|
||||
po->rollover = NULL;
|
||||
po->prot_hook.func = packet_rcv;
|
||||
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
if (sock->type == SOCK_PACKET)
|
||||
po->prot_hook.func = packet_rcv_spkt;
|
||||
@@ -3917,6 +3920,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
@@ -3922,6 +3925,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
|
||||
return 0;
|
||||
}
|
||||
@@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
default:
|
||||
return -ENOPROTOOPT;
|
||||
}
|
||||
@@ -3973,6 +3986,13 @@ static int packet_getsockopt(struct sock
|
||||
@@ -3978,6 +3991,13 @@ static int packet_getsockopt(struct sock
|
||||
case PACKET_VNET_HDR:
|
||||
val = po->has_vnet_hdr;
|
||||
break;
|
||||
|
||||
@@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
+MODULE_ALIAS("nf-flow-table-hw");
|
||||
--- a/net/netfilter/nf_tables_api.c
|
||||
+++ b/net/netfilter/nf_tables_api.c
|
||||
@@ -5745,6 +5745,13 @@ static int nf_tables_flowtable_parse_hoo
|
||||
@@ -5741,6 +5741,13 @@ static int nf_tables_flowtable_parse_hoo
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
@@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
|
||||
if (!ops)
|
||||
return -ENOMEM;
|
||||
@@ -5875,10 +5882,19 @@ static int nf_tables_newflowtable(struct
|
||||
@@ -5871,10 +5878,19 @@ static int nf_tables_newflowtable(struct
|
||||
}
|
||||
|
||||
flowtable->data.type = type;
|
||||
@@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
|
||||
flowtable);
|
||||
if (err < 0)
|
||||
@@ -6004,7 +6020,8 @@ static int nf_tables_fill_flowtable_info
|
||||
@@ -6000,7 +6016,8 @@ static int nf_tables_fill_flowtable_info
|
||||
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
|
||||
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
|
||||
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
|
||||
|
||||
@@ -41,7 +41,7 @@ ChangeLog v1->v2:
|
||||
|
||||
#include "libata.h"
|
||||
#include "libata-transport.h"
|
||||
@@ -4573,6 +4574,34 @@ int ata_scsi_add_hosts(struct ata_host *
|
||||
@@ -4579,6 +4580,34 @@ int ata_scsi_add_hosts(struct ata_host *
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ ChangeLog v1->v2:
|
||||
void ata_scsi_scan_host(struct ata_port *ap, int sync)
|
||||
{
|
||||
int tries = 5;
|
||||
@@ -4598,6 +4627,7 @@ void ata_scsi_scan_host(struct ata_port
|
||||
@@ -4604,6 +4633,7 @@ void ata_scsi_scan_host(struct ata_port
|
||||
NULL);
|
||||
if (!IS_ERR(sdev)) {
|
||||
dev->sdev = sdev;
|
||||
|
||||
@@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
/**
|
||||
* ata_build_rw_tf - Build ATA taskfile for given read/write request
|
||||
* @tf: Target ATA taskfile
|
||||
@@ -5115,6 +5128,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
@@ -5114,6 +5127,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
if (tag < 0)
|
||||
return NULL;
|
||||
}
|
||||
@@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
qc = __ata_qc_from_tag(ap, tag);
|
||||
qc->tag = qc->hw_tag = tag;
|
||||
@@ -6049,6 +6065,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
@@ -6048,6 +6064,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
ap->stats.unhandled_irq = 1;
|
||||
ap->stats.idle_irq = 1;
|
||||
#endif
|
||||
@@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
ata_sff_port_init(ap);
|
||||
|
||||
return ap;
|
||||
@@ -6084,6 +6103,12 @@ static void ata_host_release(struct kref
|
||||
@@ -6083,6 +6102,12 @@ static void ata_host_release(struct kref
|
||||
|
||||
kfree(ap->pmp_link);
|
||||
kfree(ap->slave_link);
|
||||
@@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
kfree(ap);
|
||||
host->ports[i] = NULL;
|
||||
}
|
||||
@@ -6547,7 +6572,23 @@ int ata_host_register(struct ata_host *h
|
||||
@@ -6546,7 +6571,23 @@ int ata_host_register(struct ata_host *h
|
||||
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
|
||||
host->ports[i]->local_port_no = i + 1;
|
||||
}
|
||||
@@ -134,7 +134,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
/*
|
||||
* Define if arch has non-standard setup. This is a _PCI_ standard
|
||||
@@ -879,6 +882,12 @@ struct ata_port {
|
||||
@@ -880,6 +883,12 @@ struct ata_port {
|
||||
#ifdef CONFIG_ATA_ACPI
|
||||
struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user