From a24df045db87875e914bbefa4ead2af868e92eeb Mon Sep 17 00:00:00 2001 From: David Bauer Date: Tue, 16 Feb 2021 22:51:18 +0100 Subject: [PATCH 1/7] generic: ar8216: fix kernel 5.10 compile error Signed-off-by: David Bauer --- target/linux/generic/files/drivers/net/phy/ar8216.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c index acfa0ebecd..d48a415d50 100644 --- a/target/linux/generic/files/drivers/net/phy/ar8216.c +++ b/target/linux/generic/files/drivers/net/phy/ar8216.c @@ -891,7 +891,11 @@ ar8216_phy_write(struct ar8xxx_priv *priv, int addr, int regnum, u16 val) static int ar8229_hw_init(struct ar8xxx_priv *priv) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) + phy_interface_t phy_if_mode; +#else int phy_if_mode; +#endif if (priv->initialized) return 0; @@ -899,7 +903,11 @@ ar8229_hw_init(struct ar8xxx_priv *priv) ar8xxx_write(priv, AR8216_REG_CTRL, AR8216_CTRL_RESET); ar8xxx_reg_wait(priv, AR8216_REG_CTRL, AR8216_CTRL_RESET, 0, 1000); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) + of_get_phy_mode(priv->pdev->of_node, &phy_if_mode); +#else phy_if_mode = of_get_phy_mode(priv->pdev->of_node); +#endif if (phy_if_mode == PHY_INTERFACE_MODE_GMII) { ar8xxx_write(priv, AR8229_REG_OPER_MODE0, From 0e407dfe8bac1475f8f963dff699e434bbbeb4d5 Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Tue, 16 Feb 2021 22:56:06 +0100 Subject: [PATCH 2/7] generic: ar8216: update version switch for of_get_phy_mode fix Kernel has changed the of_get_phy_mode API in commit 0c65b2b90d13 ("net: of_get_phy_mode: Change API to solve int/unit warnings"). This is already included in kernel 5.5, so fix the version switch (though this will not actually matter for the versions we support). Similar driver adjustments to account for the API change will probably be necessary to various other local drivers. Signed-off-by: Adrian Schmutzler --- target/linux/generic/files/drivers/net/phy/ar8216.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c index d48a415d50..ef0fc54949 100644 --- a/target/linux/generic/files/drivers/net/phy/ar8216.c +++ b/target/linux/generic/files/drivers/net/phy/ar8216.c @@ -891,7 +891,7 @@ ar8216_phy_write(struct ar8xxx_priv *priv, int addr, int regnum, u16 val) static int ar8229_hw_init(struct ar8xxx_priv *priv) { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 5, 0) phy_interface_t phy_if_mode; #else int phy_if_mode; @@ -903,7 +903,7 @@ ar8229_hw_init(struct ar8xxx_priv *priv) ar8xxx_write(priv, AR8216_REG_CTRL, AR8216_CTRL_RESET); ar8xxx_reg_wait(priv, AR8216_REG_CTRL, AR8216_CTRL_RESET, 0, 1000); -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 5, 0) of_get_phy_mode(priv->pdev->of_node, &phy_if_mode); #else phy_if_mode = of_get_phy_mode(priv->pdev->of_node); From 99f2b464b4e550865c2a3288fa0b88db2869f798 Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Tue, 16 Feb 2021 23:16:00 +0100 Subject: [PATCH 3/7] kernel: 5.10: fix busy wait loop in mediatek PPE code Reapply changes added to 5.4 but not copied to 5.10: 3da4acaa7bba ("kernel: fix busy wait loop in mediatek PPE code") The intention is for the loop to timeout if the body does not succeed. The current logic calls time_is_before_jiffies(timeout) which is false until after the timeout, so the loop body never executes. time_is_after_jiffies(timeout) will return true until timeout is less than jiffies, which is the intended behavior here. Signed-off-by: Adrian Schmutzler --- ...5-net-ethernet-mtk_eth_soc-add-support-for-initializin.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/generic/pending-5.10/770-15-net-ethernet-mtk_eth_soc-add-support-for-initializin.patch b/target/linux/generic/pending-5.10/770-15-net-ethernet-mtk_eth_soc-add-support-for-initializin.patch index fa4803211a..09282175b0 100644 --- a/target/linux/generic/pending-5.10/770-15-net-ethernet-mtk_eth_soc-add-support-for-initializin.patch +++ b/target/linux/generic/pending-5.10/770-15-net-ethernet-mtk_eth_soc-add-support-for-initializin.patch @@ -185,7 +185,7 @@ Signed-off-by: Felix Fietkau +{ + unsigned long timeout = jiffies + HZ; + -+ while (time_is_before_jiffies(timeout)) { ++ while (time_is_after_jiffies(timeout)) { + if (!(ppe_r32(ppe, MTK_PPE_GLO_CFG) & MTK_PPE_GLO_CFG_BUSY)) + return 0; + From 487b7ae5ebbbc76e0b2952658432d28eee07f7a2 Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Tue, 16 Feb 2021 23:20:18 +0100 Subject: [PATCH 4/7] kernel: 5.4: fix .patch file extension File extension was truncated for pending-5.4/770-11-net-ethernet-mtk_eth_soc-avoid-rearming-interrupt-if.pa Signed-off-by: Adrian Schmutzler --- ...11-net-ethernet-mtk_eth_soc-avoid-rearming-interrupt-if.patch} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename target/linux/generic/pending-5.4/{770-11-net-ethernet-mtk_eth_soc-avoid-rearming-interrupt-if.pa => 770-11-net-ethernet-mtk_eth_soc-avoid-rearming-interrupt-if.patch} (100%) diff --git a/target/linux/generic/pending-5.4/770-11-net-ethernet-mtk_eth_soc-avoid-rearming-interrupt-if.pa b/target/linux/generic/pending-5.4/770-11-net-ethernet-mtk_eth_soc-avoid-rearming-interrupt-if.patch similarity index 100% rename from target/linux/generic/pending-5.4/770-11-net-ethernet-mtk_eth_soc-avoid-rearming-interrupt-if.pa rename to target/linux/generic/pending-5.4/770-11-net-ethernet-mtk_eth_soc-avoid-rearming-interrupt-if.patch From 1013bf433bb8241230e0b73820a600578fcaadab Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Tue, 16 Feb 2021 23:25:00 +0100 Subject: [PATCH 5/7] kernel: hack-5.10: make UDP tunneling user-selectable This applies another patch from 5.4 to 5.10 as well: de09355f74c3 ("kernel/hack-5.4: make UDP tunneling user-selectable") UDP tunneling support isn't user-selectable, but it's required by WireGuard which is, for the time being, an out-of-tree module. We currently work around this issue by selecting an unrelated module which depends on UDP tunnelling (VXLAN). This is inconvenient, as it implies this unrelated module needs to be built-in when doing a monolithic build. Fix this inconvenience by making UDP tunneling user-selectable in the kernel configuration. Signed-off-by: Adrian Schmutzler --- .../generic/hack-5.10/249-udp-tunnel-selection.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 target/linux/generic/hack-5.10/249-udp-tunnel-selection.patch diff --git a/target/linux/generic/hack-5.10/249-udp-tunnel-selection.patch b/target/linux/generic/hack-5.10/249-udp-tunnel-selection.patch new file mode 100644 index 0000000000..2c74298dfe --- /dev/null +++ b/target/linux/generic/hack-5.10/249-udp-tunnel-selection.patch @@ -0,0 +1,11 @@ +--- a/net/ipv4/Kconfig ++++ b/net/ipv4/Kconfig +@@ -315,7 +315,7 @@ config NET_IPVTI + on top. + + config NET_UDP_TUNNEL +- tristate ++ tristate "IP: UDP tunneling support" + select NET_IP_TUNNEL + default n + From 0c7340f0a2027856af8b87d3f9b5295922c2e37d Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Tue, 16 Feb 2021 23:31:40 +0100 Subject: [PATCH 6/7] kernel: 5.10: add missing partitions doc syntax commit This patch has been added to 5.4, but not been copied to 5.10: 7495acb55573 ("kernel: backport mtd commit converting partitions doc syntax") Signed-off-by: Adrian Schmutzler --- ...convert-fixed-partitions-to-the-json.patch | 324 ++++++++++++++++++ 1 file changed, 324 insertions(+) create mode 100644 target/linux/generic/backport-5.10/401-v5.11-dt-bindings-mtd-convert-fixed-partitions-to-the-json.patch diff --git a/target/linux/generic/backport-5.10/401-v5.11-dt-bindings-mtd-convert-fixed-partitions-to-the-json.patch b/target/linux/generic/backport-5.10/401-v5.11-dt-bindings-mtd-convert-fixed-partitions-to-the-json.patch new file mode 100644 index 0000000000..8aded43526 --- /dev/null +++ b/target/linux/generic/backport-5.10/401-v5.11-dt-bindings-mtd-convert-fixed-partitions-to-the-json.patch @@ -0,0 +1,324 @@ +From 04e9ab75267489224364fa510a88ada83e11c325 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Thu, 10 Dec 2020 18:23:52 +0100 +Subject: [PATCH] dt-bindings: mtd: convert "fixed-partitions" to the + json-schema +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This standardizes its documentation, allows validating with Makefile +checks and helps writing DTS files. + +Noticeable changes: +1. Dropped "Partitions can be represented by sub-nodes of a flash + device." as we also support subpartitions (don't have to be part of + flash device node) +2. Dropped "to Linux" as bindings are meant to be os agnostic. + +Signed-off-by: Rafał Miłecki +Link: https://lore.kernel.org/r/20201210172352.31632-1-zajec5@gmail.com +Signed-off-by: Rob Herring +--- + .../devicetree/bindings/mtd/partition.txt | 131 +-------------- + .../mtd/partitions/fixed-partitions.yaml | 152 ++++++++++++++++++ + 2 files changed, 154 insertions(+), 129 deletions(-) + create mode 100644 Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml + +--- a/Documentation/devicetree/bindings/mtd/partition.txt ++++ b/Documentation/devicetree/bindings/mtd/partition.txt +@@ -24,137 +24,10 @@ another partitioning method. + Available bindings are listed in the "partitions" subdirectory. + + +-Fixed Partitions +-================ +- +-Partitions can be represented by sub-nodes of a flash device. This can be used +-on platforms which have strong conventions about which portions of a flash are +-used for what purposes, but which don't use an on-flash partition table such +-as RedBoot. +- +-The partition table should be a subnode of the flash node and should be named +-'partitions'. This node should have the following property: +-- compatible : (required) must be "fixed-partitions" +-Partitions are then defined in subnodes of the partitions node. ++Deprecated: partitions defined in flash node ++============================================ + + For backwards compatibility partitions as direct subnodes of the flash device are + supported. This use is discouraged. + NOTE: also for backwards compatibility, direct subnodes that have a compatible + string are not considered partitions, as they may be used for other bindings. +- +-#address-cells & #size-cells must both be present in the partitions subnode of the +-flash device. There are two valid values for both: +-<1>: for partitions that require a single 32-bit cell to represent their +- size/address (aka the value is below 4 GiB) +-<2>: for partitions that require two 32-bit cells to represent their +- size/address (aka the value is 4 GiB or greater). +- +-Required properties: +-- reg : The partition's offset and size within the flash +- +-Optional properties: +-- label : The label / name for this partition. If omitted, the label is taken +- from the node name (excluding the unit address). +-- read-only : This parameter, if present, is a hint to Linux that this +- partition should only be mounted read-only. This is usually used for flash +- partitions containing early-boot firmware images or data which should not be +- clobbered. +-- lock : Do not unlock the partition at initialization time (not supported on +- all devices) +-- slc-mode: This parameter, if present, allows one to emulate SLC mode on a +- partition attached to an MLC NAND thus making this partition immune to +- paired-pages corruptions +- +-Examples: +- +- +-flash@0 { +- partitions { +- compatible = "fixed-partitions"; +- #address-cells = <1>; +- #size-cells = <1>; +- +- partition@0 { +- label = "u-boot"; +- reg = <0x0000000 0x100000>; +- read-only; +- }; +- +- uimage@100000 { +- reg = <0x0100000 0x200000>; +- }; +- }; +-}; +- +-flash@1 { +- partitions { +- compatible = "fixed-partitions"; +- #address-cells = <1>; +- #size-cells = <2>; +- +- /* a 4 GiB partition */ +- partition@0 { +- label = "filesystem"; +- reg = <0x00000000 0x1 0x00000000>; +- }; +- }; +-}; +- +-flash@2 { +- partitions { +- compatible = "fixed-partitions"; +- #address-cells = <2>; +- #size-cells = <2>; +- +- /* an 8 GiB partition */ +- partition@0 { +- label = "filesystem #1"; +- reg = <0x0 0x00000000 0x2 0x00000000>; +- }; +- +- /* a 4 GiB partition */ +- partition@200000000 { +- label = "filesystem #2"; +- reg = <0x2 0x00000000 0x1 0x00000000>; +- }; +- }; +-}; +- +-flash@3 { +- partitions { +- compatible = "fixed-partitions"; +- #address-cells = <1>; +- #size-cells = <1>; +- +- partition@0 { +- label = "bootloader"; +- reg = <0x000000 0x100000>; +- read-only; +- }; +- +- firmware@100000 { +- label = "firmware"; +- reg = <0x100000 0xe00000>; +- compatible = "brcm,trx"; +- }; +- +- calibration@f00000 { +- label = "calibration"; +- reg = <0xf00000 0x100000>; +- compatible = "fixed-partitions"; +- ranges = <0 0xf00000 0x100000>; +- #address-cells = <1>; +- #size-cells = <1>; +- +- partition@0 { +- label = "wifi0"; +- reg = <0x000000 0x080000>; +- }; +- +- partition@80000 { +- label = "wifi1"; +- reg = <0x080000 0x080000>; +- }; +- }; +- }; +-}; +--- /dev/null ++++ b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml +@@ -0,0 +1,152 @@ ++# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/mtd/partitions/fixed-partitions.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Fixed partitions ++ ++description: | ++ This binding can be used on platforms which have strong conventions about ++ which portions of a flash are used for what purposes, but which don't use an ++ on-flash partition table such as RedBoot. ++ ++ The partition table should be a node named "partitions". Partitions are then ++ defined as subnodes. ++ ++maintainers: ++ - Rafał Miłecki ++ ++properties: ++ compatible: ++ const: fixed-partitions ++ ++ "#address-cells": true ++ ++ "#size-cells": true ++ ++patternProperties: ++ "@[0-9a-f]+$": ++ description: node describing a single flash partition ++ type: object ++ ++ properties: ++ reg: ++ description: partition's offset and size within the flash ++ maxItems: 1 ++ ++ label: ++ description: The label / name for this partition. If omitted, the label ++ is taken from the node name (excluding the unit address). ++ ++ read-only: ++ description: This parameter, if present, is a hint that this partition ++ should only be mounted read-only. This is usually used for flash ++ partitions containing early-boot firmware images or data which should ++ not be clobbered. ++ type: boolean ++ ++ lock: ++ description: Do not unlock the partition at initialization time (not ++ supported on all devices) ++ type: boolean ++ ++ slc-mode: ++ description: This parameter, if present, allows one to emulate SLC mode ++ on a partition attached to an MLC NAND thus making this partition ++ immune to paired-pages corruptions ++ type: boolean ++ ++ required: ++ - reg ++ ++required: ++ - "#address-cells" ++ - "#size-cells" ++ ++additionalProperties: true ++ ++examples: ++ - | ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0000000 0x100000>; ++ read-only; ++ }; ++ ++ uimage@100000 { ++ reg = <0x0100000 0x200000>; ++ }; ++ }; ++ - | ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <2>; ++ ++ /* a 4 GiB partition */ ++ partition@0 { ++ label = "filesystem"; ++ reg = <0x00000000 0x1 0x00000000>; ++ }; ++ }; ++ - | ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <2>; ++ #size-cells = <2>; ++ ++ /* an 8 GiB partition */ ++ partition@0 { ++ label = "filesystem #1"; ++ reg = <0x0 0x00000000 0x2 0x00000000>; ++ }; ++ ++ /* a 4 GiB partition */ ++ partition@200000000 { ++ label = "filesystem #2"; ++ reg = <0x2 0x00000000 0x1 0x00000000>; ++ }; ++ }; ++ - | ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "bootloader"; ++ reg = <0x000000 0x100000>; ++ read-only; ++ }; ++ ++ firmware@100000 { ++ compatible = "brcm,trx"; ++ label = "firmware"; ++ reg = <0x100000 0xe00000>; ++ }; ++ ++ calibration@f00000 { ++ compatible = "fixed-partitions"; ++ label = "calibration"; ++ reg = <0xf00000 0x100000>; ++ ranges = <0 0xf00000 0x100000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "wifi0"; ++ reg = <0x000000 0x080000>; ++ }; ++ ++ partition@80000 { ++ label = "wifi1"; ++ reg = <0x080000 0x080000>; ++ }; ++ }; ++ }; From 0e43f62f21f10d4ee3c151f86d15784a9ec21d69 Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Tue, 16 Feb 2021 23:39:32 +0100 Subject: [PATCH 7/7] kernel: 5.10: refresh patches Signed-off-by: Adrian Schmutzler --- .../generic/hack-5.10/531-debloat_lzma.patch | 33 ++++++++++--------- ...t-command-line-parameters-from-users.patch | 10 +++--- ...ble-add-offload-support-for-xmit-pat.patch | 15 +++++---- ...dd-support-for-threaded-NAPI-polling.patch | 15 +++++---- .../pending-5.10/834-ledtrig-libata.patch | 4 +-- 5 files changed, 41 insertions(+), 36 deletions(-) diff --git a/target/linux/generic/hack-5.10/531-debloat_lzma.patch b/target/linux/generic/hack-5.10/531-debloat_lzma.patch index 0854872ffa..2f70eee3e9 100644 --- a/target/linux/generic/hack-5.10/531-debloat_lzma.patch +++ b/target/linux/generic/hack-5.10/531-debloat_lzma.patch @@ -710,26 +710,26 @@ Signed-off-by: Felix Fietkau { UInt32 dicSize; Byte d; -@@ -935,33 +883,11 @@ static SRes LzmaDec_AllocateProbs2(CLzma +@@ -935,7 +883,7 @@ static SRes LzmaDec_AllocateProbs2(CLzma return SZ_OK; } -SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc) --{ -- CLzmaProps propNew; -- RINOK(LzmaProps_Decode(&propNew, props, propsSize)); -- RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc)); -- p->prop = propNew; -- return SZ_OK; --} -- --SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc) +static SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc) { CLzmaProps propNew; -- SizeT dicBufSize; RINOK(LzmaProps_Decode(&propNew, props, propsSize)); - RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc)); +@@ -943,28 +891,6 @@ SRes LzmaDec_AllocateProbs(CLzmaDec *p, + p->prop = propNew; + return SZ_OK; + } +- +-SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc) +-{ +- CLzmaProps propNew; +- SizeT dicBufSize; +- RINOK(LzmaProps_Decode(&propNew, props, propsSize)); +- RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc)); - dicBufSize = propNew.dicSize; - if (p->dic == 0 || dicBufSize != p->dicBufSize) - { @@ -742,9 +742,12 @@ Signed-off-by: Felix Fietkau - } - } - p->dicBufSize = dicBufSize; - p->prop = propNew; - return SZ_OK; - } +- p->prop = propNew; +- return SZ_OK; +-} + + SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, + const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode, --- a/lib/lzma/LzmaEnc.c +++ b/lib/lzma/LzmaEnc.c @@ -53,7 +53,7 @@ void LzmaEncProps_Init(CLzmaEncProps *p) diff --git a/target/linux/generic/pending-5.10/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch b/target/linux/generic/pending-5.10/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch index 5a0e44b76b..2808c95322 100644 --- a/target/linux/generic/pending-5.10/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch +++ b/target/linux/generic/pending-5.10/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch @@ -267,15 +267,15 @@ Signed-off-by: Yousong Zhou + EXPORT(kexec_argv_buf) + .skip KEXEC_COMMAND_LINE_SIZE + .size kexec_argv_buf, KEXEC_COMMAND_LINE_SIZE ++ ++kexec_argv: ++ EXPORT(kexec_argv) ++ .skip KEXEC_ARGV_SIZE ++ .size kexec_argv, KEXEC_ARGV_SIZE -relocate_new_kernel_size: - EXPORT(relocate_new_kernel_size) - PTR relocate_new_kernel_end - relocate_new_kernel - .size relocate_new_kernel_size, PTRSIZE -+kexec_argv: -+ EXPORT(kexec_argv) -+ .skip KEXEC_ARGV_SIZE -+ .size kexec_argv, KEXEC_ARGV_SIZE -+ +kexec_relocate_new_kernel_end: + EXPORT(kexec_relocate_new_kernel_end) diff --git a/target/linux/generic/pending-5.10/640-11-netfilter-flowtable-add-offload-support-for-xmit-pat.patch b/target/linux/generic/pending-5.10/640-11-netfilter-flowtable-add-offload-support-for-xmit-pat.patch index 5e3c7e031a..508dc90e14 100644 --- a/target/linux/generic/pending-5.10/640-11-netfilter-flowtable-add-offload-support-for-xmit-pat.patch +++ b/target/linux/generic/pending-5.10/640-11-netfilter-flowtable-add-offload-support-for-xmit-pat.patch @@ -85,12 +85,14 @@ tag to the driver. - n = dst_neigh_lookup(dst_cache, daddr); - if (!n) - return -ENOENT; -+ this_tuple = &flow->tuplehash[dir].tuple; - +- - read_lock_bh(&n->lock); - nud_state = n->nud_state; - ether_addr_copy(ha, n->ha); - read_unlock_bh(&n->lock); ++ this_tuple = &flow->tuplehash[dir].tuple; + +- if (!(nud_state & NUD_VALID)) { + switch (this_tuple->xmit_type) { + case FLOW_OFFLOAD_XMIT_DIRECT: + ether_addr_copy(ha, this_tuple->out.h_dest); @@ -102,8 +104,7 @@ tag to the driver. + n = dst_neigh_lookup(dst_cache, daddr); + if (!n) + return -ENOENT; - -- if (!(nud_state & NUD_VALID)) { ++ + read_lock_bh(&n->lock); + nud_state = n->nud_state; + ether_addr_copy(ha, n->ha); @@ -143,8 +144,7 @@ tag to the driver. + struct flow_action_entry *entry; + struct net_device *dev; + int ifindex; - -- rt = (struct rtable *)flow->tuplehash[dir].tuple.dst_cache; ++ + this_tuple = &flow->tuplehash[dir].tuple; + switch (this_tuple->xmit_type) { + case FLOW_OFFLOAD_XMIT_DIRECT: @@ -158,7 +158,8 @@ tag to the driver. + default: + return; + } -+ + +- rt = (struct rtable *)flow->tuplehash[dir].tuple.dst_cache; + dev = dev_get_by_index(net, ifindex); + if (!dev) + return; diff --git a/target/linux/generic/pending-5.10/690-net-add-support-for-threaded-NAPI-polling.patch b/target/linux/generic/pending-5.10/690-net-add-support-for-threaded-NAPI-polling.patch index 79b7832f2a..2979934926 100644 --- a/target/linux/generic/pending-5.10/690-net-add-support-for-threaded-NAPI-polling.patch +++ b/target/linux/generic/pending-5.10/690-net-add-support-for-threaded-NAPI-polling.patch @@ -214,7 +214,7 @@ Signed-off-by: Felix Fietkau napi_hash_del(napi); list_del_rcu(&napi->dev_list); napi_free_frags(napi); -@@ -6788,52 +6881,18 @@ EXPORT_SYMBOL(__netif_napi_del); +@@ -6788,53 +6881,19 @@ EXPORT_SYMBOL(__netif_napi_del); static int napi_poll(struct napi_struct *n, struct list_head *repoll) { @@ -228,7 +228,8 @@ Signed-off-by: Felix Fietkau 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 @@ -246,8 +247,8 @@ Signed-off-by: Felix Fietkau - n->poll, work, weight); - - if (likely(work < weight)) -- goto out_unlock; -+ work = __napi_poll(n, &do_repoll); ++ if (!do_repoll) + goto out_unlock; - /* Drivers must not modify the NAPI state if they - * consume the entire weight. In such cases this code @@ -256,8 +257,7 @@ Signed-off-by: Felix Fietkau - */ - if (unlikely(napi_disable_pending(n))) { - napi_complete(n); -+ if (!do_repoll) - goto out_unlock; +- goto out_unlock; - } - - if (n->gro_bitmask) { @@ -268,9 +268,10 @@ Signed-off-by: Felix Fietkau - } - - gro_normal_list(n); - +- /* Some drivers may have called napi_schedule * prior to exhausting their budget. + */ @@ -11288,6 +11347,10 @@ static int __init net_dev_init(void) sd->backlog.weight = weight_p; } diff --git a/target/linux/generic/pending-5.10/834-ledtrig-libata.patch b/target/linux/generic/pending-5.10/834-ledtrig-libata.patch index 623e48085d..a52e712d8c 100644 --- a/target/linux/generic/pending-5.10/834-ledtrig-libata.patch +++ b/target/linux/generic/pending-5.10/834-ledtrig-libata.patch @@ -106,11 +106,11 @@ Signed-off-by: Daniel Golle + for (i = 0; i < host->n_ports; i++) { + if (unlikely(!host->ports[i]->ledtrig)) + continue; -+ + + snprintf(host->ports[i]->ledtrig_name, + sizeof(host->ports[i]->ledtrig_name), "ata%u", + host->ports[i]->print_id); - ++ + host->ports[i]->ledtrig->name = host->ports[i]->ledtrig_name; + + if (led_trigger_register(host->ports[i]->ledtrig)) {