From f82e7e96a00e964649c809cc7a57578121ad998d Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 14 Mar 2021 15:51:56 +0100 Subject: kernel: bump 5.4 to 5.4.105 Refreshed all patches. The following patches were applied upstream: * 755-v5.8-net-dsa-add-GRO-support-via-gro_cells.patch * 831-v5.9-usbip-tools-fix-build-error-for-multiple-definition.patch Compile-tested on: x86_64, ipq40xx, ath79 Runtime-tested on: x86_64, ipq40xx, ath79 Signed-off-by: Hauke Mehrtens --- ...-mips-vdso-fix-jalr-t9-crash-in-vdso-code.patch | 2 +- ...vide-an-option-for-drivers-to-always-rece.patch | 2 +- ...5.8-net-dsa-add-GRO-support-via-gro_cells.patch | 143 --------------------- ...s-fix-build-error-for-multiple-definition.patch | 33 ----- .../generic/hack-5.4/904-debloat_dma_buf.patch | 2 +- .../306-mips_mem_functions_performance.patch | 2 +- ...net-add-support-for-threaded-NAPI-polling.patch | 2 +- 7 files changed, 5 insertions(+), 181 deletions(-) delete mode 100644 target/linux/generic/backport-5.4/755-v5.8-net-dsa-add-GRO-support-via-gro_cells.patch delete mode 100644 target/linux/generic/backport-5.4/831-v5.9-usbip-tools-fix-build-error-for-multiple-definition.patch (limited to 'target/linux/generic') diff --git a/target/linux/generic/backport-5.4/310-v5.6-mips-vdso-fix-jalr-t9-crash-in-vdso-code.patch b/target/linux/generic/backport-5.4/310-v5.6-mips-vdso-fix-jalr-t9-crash-in-vdso-code.patch index 25c87a3263..51eef4b26b 100644 --- a/target/linux/generic/backport-5.4/310-v5.6-mips-vdso-fix-jalr-t9-crash-in-vdso-code.patch +++ b/target/linux/generic/backport-5.4/310-v5.6-mips-vdso-fix-jalr-t9-crash-in-vdso-code.patch @@ -44,7 +44,7 @@ Cc: richard.purdie@linuxfoundation.org --- a/arch/mips/vdso/Makefile +++ b/arch/mips/vdso/Makefile -@@ -29,6 +29,7 @@ endif +@@ -26,6 +26,7 @@ ccflags-vdso := \ cflags-vdso := $(ccflags-vdso) \ $(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \ -O3 -g -fPIC -fno-strict-aliasing -fno-common -fno-builtin -G 0 \ diff --git a/target/linux/generic/backport-5.4/752-v5.8-net-dsa-provide-an-option-for-drivers-to-always-rece.patch b/target/linux/generic/backport-5.4/752-v5.8-net-dsa-provide-an-option-for-drivers-to-always-rece.patch index 97ac6e2acd..921821a899 100644 --- a/target/linux/generic/backport-5.4/752-v5.8-net-dsa-provide-an-option-for-drivers-to-always-rece.patch +++ b/target/linux/generic/backport-5.4/752-v5.8-net-dsa-provide-an-option-for-drivers-to-always-rece.patch @@ -50,7 +50,7 @@ Signed-off-by: David S. Miller */ --- a/net/dsa/dsa_priv.h +++ b/net/dsa/dsa_priv.h -@@ -136,6 +136,7 @@ int dsa_port_bridge_join(struct dsa_port +@@ -139,6 +139,7 @@ int dsa_port_bridge_join(struct dsa_port void dsa_port_bridge_leave(struct dsa_port *dp, struct net_device *br); int dsa_port_vlan_filtering(struct dsa_port *dp, bool vlan_filtering, struct switchdev_trans *trans); diff --git a/target/linux/generic/backport-5.4/755-v5.8-net-dsa-add-GRO-support-via-gro_cells.patch b/target/linux/generic/backport-5.4/755-v5.8-net-dsa-add-GRO-support-via-gro_cells.patch deleted file mode 100644 index 6d50a40d61..0000000000 --- a/target/linux/generic/backport-5.4/755-v5.8-net-dsa-add-GRO-support-via-gro_cells.patch +++ /dev/null @@ -1,143 +0,0 @@ -From: Alexander Lobakin -Date: Tue, 21 Apr 2020 16:41:08 +0300 -Subject: [PATCH] net: dsa: add GRO support via gro_cells - -gro_cells lib is used by different encapsulating netdevices, such as -geneve, macsec, vxlan etc. to speed up decapsulated traffic processing. -CPU tag is a sort of "encapsulation", and we can use the same mechs to -greatly improve overall DSA performance. -skbs are passed to the GRO layer after removing CPU tags, so we don't -need any new packet offload types as it was firstly proposed by me in -the first GRO-over-DSA variant [1]. - -The size of struct gro_cells is sizeof(void *), so hot struct -dsa_slave_priv becomes only 4/8 bytes bigger, and all critical fields -remain in one 32-byte cacheline. -The other positive side effect is that drivers for network devices -that can be shipped as CPU ports of DSA-driven switches can now use -napi_gro_frags() to pass skbs to kernel. Packets built that way are -completely non-linear and are likely being dropped without GRO. - -This was tested on to-be-mainlined-soon Ethernet driver that uses -napi_gro_frags(), and the overall performance was on par with the -variant from [1], sometimes even better due to minimal overhead. -net.core.gro_normal_batch tuning may help to push it to the limit -on particular setups and platforms. - -iperf3 IPoE VLAN NAT TCP forwarding (port1.218 -> port0) setup -on 1.2 GHz MIPS board: - -5.7-rc2 baseline: - -[ID] Interval Transfer Bitrate Retr -[ 5] 0.00-120.01 sec 9.00 GBytes 644 Mbits/sec 413 sender -[ 5] 0.00-120.00 sec 8.99 GBytes 644 Mbits/sec receiver - -Iface RX packets TX packets -eth0 7097731 7097702 -port0 426050 6671829 -port1 6671681 425862 -port1.218 6671677 425851 - -With this patch: - -[ID] Interval Transfer Bitrate Retr -[ 5] 0.00-120.01 sec 12.2 GBytes 870 Mbits/sec 122 sender -[ 5] 0.00-120.00 sec 12.2 GBytes 870 Mbits/sec receiver - -Iface RX packets TX packets -eth0 9474792 9474777 -port0 455200 353288 -port1 9019592 455035 -port1.218 353144 455024 - -v2: - - Add some performance examples in the commit message; - - No functional changes. - -[1] https://lore.kernel.org/netdev/20191230143028.27313-1-alobakin@dlink.ru/ - -Signed-off-by: Alexander Lobakin -Signed-off-by: David S. Miller ---- - ---- a/net/dsa/Kconfig -+++ b/net/dsa/Kconfig -@@ -9,6 +9,7 @@ menuconfig NET_DSA - tristate "Distributed Switch Architecture" - depends on HAVE_NET_DSA - depends on BRIDGE || BRIDGE=n -+ select GRO_CELLS - select NET_SWITCHDEV - select PHYLINK - select NET_DEVLINK ---- a/net/dsa/dsa.c -+++ b/net/dsa/dsa.c -@@ -238,7 +238,7 @@ static int dsa_switch_rcv(struct sk_buff - if (dsa_skb_defer_rx_timestamp(p, skb)) - return 0; - -- netif_receive_skb(skb); -+ gro_cells_receive(&p->gcells, skb); - - return 0; - } ---- a/net/dsa/dsa_priv.h -+++ b/net/dsa/dsa_priv.h -@@ -11,6 +11,7 @@ - #include - #include - #include -+#include - - enum { - DSA_NOTIFIER_AGEING_TIME, -@@ -68,6 +69,8 @@ struct dsa_slave_priv { - - struct pcpu_sw_netstats *stats64; - -+ struct gro_cells gcells; -+ - /* DSA port data, such as switch, port index, etc. */ - struct dsa_port *dp; - ---- a/net/dsa/slave.c -+++ b/net/dsa/slave.c -@@ -1431,6 +1431,11 @@ int dsa_slave_create(struct dsa_port *po - free_netdev(slave_dev); - return -ENOMEM; - } -+ -+ ret = gro_cells_init(&p->gcells, slave_dev); -+ if (ret) -+ goto out_free; -+ - p->dp = port; - INIT_LIST_HEAD(&p->mall_tc_list); - INIT_WORK(&port->xmit_work, dsa_port_xmit_work); -@@ -1443,7 +1448,7 @@ int dsa_slave_create(struct dsa_port *po - ret = dsa_slave_phy_setup(slave_dev); - if (ret) { - netdev_err(master, "error %d setting up slave phy\n", ret); -- goto out_free; -+ goto out_gcells; - } - - dsa_slave_notify(slave_dev, DSA_PORT_REGISTER); -@@ -1462,6 +1467,8 @@ out_phy: - phylink_disconnect_phy(p->dp->pl); - rtnl_unlock(); - phylink_destroy(p->dp->pl); -+out_gcells: -+ gro_cells_destroy(&p->gcells); - out_free: - free_percpu(p->stats64); - free_netdev(slave_dev); -@@ -1482,6 +1489,7 @@ void dsa_slave_destroy(struct net_device - dsa_slave_notify(slave_dev, DSA_PORT_UNREGISTER); - unregister_netdev(slave_dev); - phylink_destroy(dp->pl); -+ gro_cells_destroy(&p->gcells); - free_percpu(p->stats64); - free_netdev(slave_dev); - } diff --git a/target/linux/generic/backport-5.4/831-v5.9-usbip-tools-fix-build-error-for-multiple-definition.patch b/target/linux/generic/backport-5.4/831-v5.9-usbip-tools-fix-build-error-for-multiple-definition.patch deleted file mode 100644 index 03f27fb528..0000000000 --- a/target/linux/generic/backport-5.4/831-v5.9-usbip-tools-fix-build-error-for-multiple-definition.patch +++ /dev/null @@ -1,33 +0,0 @@ -From d5efc2e6b98fe661dbd8dd0d5d5bfb961728e57a Mon Sep 17 00:00:00 2001 -From: Antonio Borneo -Date: Thu, 18 Jun 2020 02:08:44 +0200 -Subject: usbip: tools: fix build error for multiple definition - -With GCC 10, building usbip triggers error for multiple definition -of 'udev_context', in: -- libsrc/vhci_driver.c:18 and -- libsrc/usbip_host_common.c:27. - -Declare as extern the definition in libsrc/usbip_host_common.c. - -Signed-off-by: Antonio Borneo -Acked-by: Shuah Khan -Link: https://lore.kernel.org/r/20200618000844.1048309-1-borneo.antonio@gmail.com -Signed-off-by: Greg Kroah-Hartman ---- - tools/usb/usbip/libsrc/usbip_host_common.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -(limited to 'tools/usb/usbip') - ---- a/tools/usb/usbip/libsrc/usbip_host_common.c -+++ b/tools/usb/usbip/libsrc/usbip_host_common.c -@@ -23,7 +23,7 @@ - #include "list.h" - #include "sysfs_utils.h" - --struct udev *udev_context; -+extern struct udev *udev_context; - - static int32_t read_attr_usbip_status(struct usbip_usb_device *udev) - { diff --git a/target/linux/generic/hack-5.4/904-debloat_dma_buf.patch b/target/linux/generic/hack-5.4/904-debloat_dma_buf.patch index 7c67478fc0..92c230c511 100644 --- a/target/linux/generic/hack-5.4/904-debloat_dma_buf.patch +++ b/target/linux/generic/hack-5.4/904-debloat_dma_buf.patch @@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau +MODULE_LICENSE("GPL"); --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -2756,6 +2756,7 @@ int wake_up_state(struct task_struct *p, +@@ -2754,6 +2754,7 @@ int wake_up_state(struct task_struct *p, { return try_to_wake_up(p, state, 0); } diff --git a/target/linux/generic/pending-5.4/306-mips_mem_functions_performance.patch b/target/linux/generic/pending-5.4/306-mips_mem_functions_performance.patch index 4e6b7b5cd3..611aa0314f 100644 --- a/target/linux/generic/pending-5.4/306-mips_mem_functions_performance.patch +++ b/target/linux/generic/pending-5.4/306-mips_mem_functions_performance.patch @@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) \ --- a/arch/mips/include/asm/string.h +++ b/arch/mips/include/asm/string.h -@@ -140,4 +140,42 @@ extern void *memcpy(void *__to, __const_ +@@ -19,4 +19,42 @@ extern void *memcpy(void *__to, __const_ #define __HAVE_ARCH_MEMMOVE extern void *memmove(void *__dest, __const__ void *__src, size_t __n); diff --git a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch b/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch index a90bb2c285..6392b9d756 100644 --- a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch +++ b/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch @@ -280,7 +280,7 @@ Signed-off-by: Felix Fietkau /* Some drivers may have called napi_schedule * prior to exhausting their budget. -@@ -10271,6 +10332,10 @@ static int __init net_dev_init(void) +@@ -10313,6 +10374,10 @@ static int __init net_dev_init(void) sd->backlog.weight = weight_p; } -- cgit v1.2.3