f34620f146
This commit accomplishes three goals: 1. bump 6.6 to 6.6.33 2. kernel: modules: video: change package definition for fb for upstream changes[1] 3. kernel/multiple subtargets: add CONFIG_FB_IOMEM_FOPS=y to all subtargets which also set CONFIG_FB_CORE=y. Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.33 Removed upstreamed: pending-6.6/195-block-fix-and-simplify-blkdevparts-cmdline-parsing.patch[2] gemini/patches-6.6/0003-net-ethernet-cortina-Locking-fixes.patch[3] Manually rebased: ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=c00e8fd749502c02085534c60b1edca4fc479c91 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.33&id=99bbbd9aea059f8a206736dc601be2ae61d366fb 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.33&id=8f6f82d6a205ceb3aba8d279f9ff6eeea0b1689b Build system: x86/64 Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Tested-by: Stijn Segers <foss@volatilesystems.org> Signed-off-by: John Audia <therealgraysky@proton.me>
79 lines
2.7 KiB
Diff
79 lines
2.7 KiB
Diff
From f8001196455311eb128fcafd98cb2050a70218df Mon Sep 17 00:00:00 2001
|
|
From: Linus Walleij <linus.walleij@linaro.org>
|
|
Date: Sat, 6 Jan 2024 01:12:22 +0100
|
|
Subject: [PATCH 4/4] net: ethernet: cortina: Drop TSO support
|
|
|
|
The recent change to allow large frames without hardware checksumming
|
|
slotted in software checksumming in the driver if hardware could not
|
|
do it.
|
|
|
|
This will however upset TSO (TCP Segment Offloading). Typical
|
|
error dumps includes this:
|
|
|
|
skb len=2961 headroom=222 headlen=66 tailroom=0
|
|
(...)
|
|
WARNING: CPU: 0 PID: 956 at net/core/dev.c:3259 skb_warn_bad_offload+0x7c/0x108
|
|
gemini-ethernet-port: caps=(0x0000010000154813, 0x00002007ffdd7889)
|
|
|
|
And the packets do not go through.
|
|
|
|
The TSO implementation is bogus: a TSO enabled driver must propagate
|
|
the skb_shinfo(skb)->gso_size value to the TSO engine on the NIC.
|
|
|
|
Drop the size check and TSO offloading features for now: this
|
|
needs to be fixed up properly.
|
|
|
|
After this ethernet works fine on Gemini devices with a direct connected
|
|
PHY such as D-Link DNS-313.
|
|
|
|
Also tested to still be working with a DSA switch using the Gemini
|
|
ethernet as conduit interface.
|
|
|
|
Link: https://lore.kernel.org/netdev/CANn89iJLfxng1sYL5Zk0mknXpyYQPCp83m3KgD2KJ2_hKCpEUg@mail.gmail.com/
|
|
Suggested-by: Eric Dumazet <edumazet@google.com>
|
|
Fixes: d4d0c5b4d279 ("net: ethernet: cortina: Handle large frames")
|
|
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
|
Reviewed-by: Eric Dumazet <edumazet@google.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
---
|
|
drivers/net/ethernet/cortina/gemini.c | 15 ++-------------
|
|
1 file changed, 2 insertions(+), 13 deletions(-)
|
|
|
|
--- a/drivers/net/ethernet/cortina/gemini.c
|
|
+++ b/drivers/net/ethernet/cortina/gemini.c
|
|
@@ -79,8 +79,7 @@ MODULE_PARM_DESC(debug, "Debug level (0=
|
|
#define GMAC0_IRQ4_8 (GMAC0_MIB_INT_BIT | GMAC0_RX_OVERRUN_INT_BIT)
|
|
|
|
#define GMAC_OFFLOAD_FEATURES (NETIF_F_SG | NETIF_F_IP_CSUM | \
|
|
- NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM | \
|
|
- NETIF_F_TSO | NETIF_F_TSO_ECN | NETIF_F_TSO6)
|
|
+ NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM)
|
|
|
|
/**
|
|
* struct gmac_queue_page - page buffer per-page info
|
|
@@ -1148,23 +1147,13 @@ static int gmac_map_tx_bufs(struct net_d
|
|
struct gmac_txdesc *txd;
|
|
skb_frag_t *skb_frag;
|
|
dma_addr_t mapping;
|
|
- unsigned short mtu;
|
|
void *buffer;
|
|
int ret;
|
|
|
|
- mtu = ETH_HLEN;
|
|
- mtu += netdev->mtu;
|
|
- if (skb->protocol == htons(ETH_P_8021Q))
|
|
- mtu += VLAN_HLEN;
|
|
-
|
|
+ /* TODO: implement proper TSO using MTU in word3 */
|
|
word1 = skb->len;
|
|
word3 = SOF_BIT;
|
|
|
|
- if (word1 > mtu) {
|
|
- word1 |= TSS_MTU_ENABLE_BIT;
|
|
- word3 |= mtu;
|
|
- }
|
|
-
|
|
if (skb->len >= ETH_FRAME_LEN) {
|
|
/* Hardware offloaded checksumming isn't working on frames
|
|
* bigger than 1514 bytes. A hypothesis about this is that the
|