Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
c25b909304
@ -6,9 +6,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware/qca-wireless.git
|
||||
PKG_SOURCE_DATE:=2025-04-08
|
||||
PKG_SOURCE_VERSION:=9591c9b7578af3548c35bb80cd6c37978669f7c9
|
||||
PKG_MIRROR_HASH:=b5c0024a0c0ebeb61ad6bc037f897685d161f1578aca5a1366dd33603661338b
|
||||
PKG_SOURCE_DATE:=2025-04-15
|
||||
PKG_SOURCE_VERSION:=38a18dc26c9b150f06f56b9c5972d789eb5bc0c4
|
||||
PKG_MIRROR_HASH:=a10a9b524ecd91854265b04819303410ae77e1f5a093f9cc8eb43e25e99c1bae
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
@ -20,7 +20,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
--- a/net/ipv4/tcp_offload.c
|
||||
+++ b/net/ipv4/tcp_offload.c
|
||||
@@ -342,6 +342,18 @@ found:
|
||||
@@ -342,6 +342,19 @@ found:
|
||||
flush |= p->decrypted ^ skb->decrypted;
|
||||
#endif
|
||||
|
||||
@ -28,6 +28,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
+ flush |= (__force int)(flags ^ tcp_flag_word(th2));
|
||||
+ flush |= skb->ip_summed != p->ip_summed;
|
||||
+ flush |= skb->csum_level != p->csum_level;
|
||||
+ flush |= !pskb_may_pull(skb, skb_gro_offset(skb));
|
||||
+ flush |= NAPI_GRO_CB(p)->count >= 64;
|
||||
+
|
||||
+ if (flush || skb_gro_receive_list(p, skb))
|
||||
@ -39,7 +40,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
if (flush || skb_gro_receive(p, skb)) {
|
||||
mss = 1;
|
||||
goto out_check_final;
|
||||
@@ -406,6 +418,15 @@ INDIRECT_CALLABLE_SCOPE int tcp4_gro_com
|
||||
@@ -406,6 +419,15 @@ INDIRECT_CALLABLE_SCOPE int tcp4_gro_com
|
||||
const struct iphdr *iph = ip_hdr(skb);
|
||||
struct tcphdr *th = tcp_hdr(skb);
|
||||
|
||||
|
@ -96,7 +96,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
len = skb_gro_len(skb);
|
||||
flags = tcp_flag_word(th);
|
||||
|
||||
@@ -384,7 +390,6 @@ out_check_final:
|
||||
@@ -385,7 +391,6 @@ out_check_final:
|
||||
if (p && (!NAPI_GRO_CB(skb)->same_flow || flush))
|
||||
pp = p;
|
||||
|
||||
@ -104,7 +104,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
NAPI_GRO_CB(skb)->flush |= (flush != 0);
|
||||
|
||||
return pp;
|
||||
@@ -411,15 +416,23 @@ EXPORT_SYMBOL(tcp_gro_complete);
|
||||
@@ -412,15 +417,23 @@ EXPORT_SYMBOL(tcp_gro_complete);
|
||||
INDIRECT_CALLABLE_SCOPE
|
||||
struct sk_buff *tcp4_gro_receive(struct list_head *head, struct sk_buff *skb)
|
||||
{
|
||||
|
@ -35,7 +35,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
--- a/net/ipv4/tcp_offload.c
|
||||
+++ b/net/ipv4/tcp_offload.c
|
||||
@@ -413,6 +413,36 @@ void tcp_gro_complete(struct sk_buff *sk
|
||||
@@ -414,6 +414,36 @@ void tcp_gro_complete(struct sk_buff *sk
|
||||
}
|
||||
EXPORT_SYMBOL(tcp_gro_complete);
|
||||
|
||||
@ -72,7 +72,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
INDIRECT_CALLABLE_SCOPE
|
||||
struct sk_buff *tcp4_gro_receive(struct list_head *head, struct sk_buff *skb)
|
||||
{
|
||||
@@ -428,6 +458,8 @@ struct sk_buff *tcp4_gro_receive(struct
|
||||
@@ -429,6 +459,8 @@ struct sk_buff *tcp4_gro_receive(struct
|
||||
if (!th)
|
||||
goto flush;
|
||||
|
||||
|
@ -1,35 +0,0 @@
|
||||
From 0805d67bc0ef95411228e802f31975cfb7555056 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Tue, 23 Apr 2024 11:00:25 +0200
|
||||
Subject: [PATCH] net: sfp: add quirk for ATS SFP-GE-T 1000Base-TX module
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Add quirk for ATS SFP-GE-T 1000Base-TX module.
|
||||
|
||||
This copper module comes with broken TX_FAULT indicator which must be
|
||||
ignored for it to work.
|
||||
|
||||
Co-authored-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
[ rebased on top of net-next ]
|
||||
Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20240423090025.29231-1-kabel@kernel.org
|
||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
---
|
||||
drivers/net/phy/sfp.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
--- a/drivers/net/phy/sfp.c
|
||||
+++ b/drivers/net/phy/sfp.c
|
||||
@@ -486,6 +486,9 @@ static const struct sfp_quirk sfp_quirks
|
||||
// OEM SFP-GE-T is a 1000Base-T module with broken TX_FAULT indicator
|
||||
SFP_QUIRK_F("OEM", "SFP-GE-T", sfp_fixup_ignore_tx_fault),
|
||||
|
||||
+ // OEM SFP-GE-T is a 1000Base-T module with broken TX_FAULT indicator
|
||||
+ SFP_QUIRK_F("OEM", "SFP-GE-T", sfp_fixup_ignore_tx_fault),
|
||||
+
|
||||
SFP_QUIRK_F("OEM", "SFP-10G-T", sfp_fixup_rollball_cc),
|
||||
SFP_QUIRK_M("OEM", "SFP-2.5G-T", sfp_quirk_oem_2_5g),
|
||||
SFP_QUIRK_F("OEM", "RTSFP-10", sfp_fixup_rollball_cc),
|
@ -86,7 +86,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static void sfp_fixup_rollball_cc(struct sfp *sfp)
|
||||
{
|
||||
sfp_fixup_rollball(sfp);
|
||||
@@ -2323,7 +2321,7 @@ static int sfp_sm_mod_probe(struct sfp *
|
||||
@@ -2320,7 +2318,7 @@ static int sfp_sm_mod_probe(struct sfp *
|
||||
mask |= SFP_F_RS1;
|
||||
|
||||
sfp->module_t_start_up = T_START_UP;
|
||||
@ -95,7 +95,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
sfp->state_ignore_mask = 0;
|
||||
|
||||
@@ -2559,10 +2557,9 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||
@@ -2556,10 +2554,9 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||
|
||||
/* We need to check the TX_FAULT state, which is not defined
|
||||
* while TX_DISABLE is asserted. The earliest we want to do
|
||||
@ -108,7 +108,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
break;
|
||||
|
||||
case SFP_S_WAIT:
|
||||
@@ -2576,8 +2573,8 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||
@@ -2573,8 +2570,8 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||
* deasserting.
|
||||
*/
|
||||
timeout = sfp->module_t_start_up;
|
||||
@ -119,7 +119,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
else
|
||||
timeout = 1;
|
||||
|
||||
@@ -2620,7 +2617,11 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||
@@ -2617,7 +2614,11 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||
ret = sfp_sm_probe_for_phy(sfp);
|
||||
if (ret == -ENODEV) {
|
||||
if (--sfp->sm_phy_retries) {
|
||||
|
@ -51,7 +51,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
}
|
||||
|
||||
static void sfp_fixup_halny_gsfp(struct sfp *sfp)
|
||||
@@ -2321,6 +2328,7 @@ static int sfp_sm_mod_probe(struct sfp *
|
||||
@@ -2318,6 +2325,7 @@ static int sfp_sm_mod_probe(struct sfp *
|
||||
mask |= SFP_F_RS1;
|
||||
|
||||
sfp->module_t_start_up = T_START_UP;
|
||||
@ -59,7 +59,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
sfp->phy_t_retry = T_PHY_RETRY;
|
||||
|
||||
sfp->state_ignore_mask = 0;
|
||||
@@ -2557,9 +2565,10 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||
@@ -2554,9 +2562,10 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||
|
||||
/* We need to check the TX_FAULT state, which is not defined
|
||||
* while TX_DISABLE is asserted. The earliest we want to do
|
||||
@ -72,7 +72,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
break;
|
||||
|
||||
case SFP_S_WAIT:
|
||||
@@ -2573,8 +2582,8 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||
@@ -2570,8 +2579,8 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||
* deasserting.
|
||||
*/
|
||||
timeout = sfp->module_t_start_up;
|
||||
|
@ -0,0 +1,79 @@
|
||||
From cf3d39cfd29ab7bcbd6aa79d4a2f132817969e3d Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Tue, 15 Apr 2025 23:16:40 +0200
|
||||
Subject: [PATCH] ARM: 9404/1: arm32: fix boot hang with
|
||||
HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
||||
|
||||
It was reported that some SoC (mvebu based for example) hang on kernel
|
||||
loading. A variant of the feature was present in OpenWrt from long ago
|
||||
and adding the additional entry with KEEP, fix the problem.
|
||||
|
||||
Fixes: ed0f94102251 ("ARM: 9404/1: arm32: enable HAVE_LD_DEAD_CODE_DATA_ELIMINATION")
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
---
|
||||
arch/arm/include/asm/vmlinux.lds.h | 10 +++++-----
|
||||
arch/arm/kernel/vmlinux.lds.S | 4 ++--
|
||||
2 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/arch/arm/include/asm/vmlinux.lds.h
|
||||
+++ b/arch/arm/include/asm/vmlinux.lds.h
|
||||
@@ -48,7 +48,7 @@
|
||||
#define IDMAP_TEXT \
|
||||
ALIGN_FUNCTION(); \
|
||||
__idmap_text_start = .; \
|
||||
- *(.idmap.text) \
|
||||
+ KEEP(*(.idmap.text)) \
|
||||
__idmap_text_end = .; \
|
||||
|
||||
#define ARM_DISCARD \
|
||||
@@ -108,12 +108,12 @@
|
||||
. = ALIGN(8); \
|
||||
.ARM.unwind_idx : { \
|
||||
__start_unwind_idx = .; \
|
||||
- *(.ARM.exidx*) \
|
||||
+ KEEP(*(.ARM.exidx*)) \
|
||||
__stop_unwind_idx = .; \
|
||||
} \
|
||||
.ARM.unwind_tab : { \
|
||||
__start_unwind_tab = .; \
|
||||
- *(.ARM.extab*) \
|
||||
+ KEEP(*(.ARM.extab*)) \
|
||||
__stop_unwind_tab = .; \
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
__vectors_lma = .; \
|
||||
OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) { \
|
||||
.vectors { \
|
||||
- *(.vectors) \
|
||||
+ KEEP(*(.vectors)) \
|
||||
} \
|
||||
.vectors.bhb.loop8 { \
|
||||
*(.vectors.bhb.loop8) \
|
||||
@@ -143,7 +143,7 @@
|
||||
\
|
||||
__stubs_lma = .; \
|
||||
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) { \
|
||||
- *(.stubs) \
|
||||
+ KEEP(*(.stubs)) \
|
||||
} \
|
||||
ARM_LMA(__stubs, .stubs); \
|
||||
. = __stubs_lma + SIZEOF(.stubs); \
|
||||
--- a/arch/arm/kernel/vmlinux.lds.S
|
||||
+++ b/arch/arm/kernel/vmlinux.lds.S
|
||||
@@ -104,13 +104,13 @@ SECTIONS
|
||||
}
|
||||
.init.tagtable : {
|
||||
__tagtable_begin = .;
|
||||
- *(.taglist.init)
|
||||
+ KEEP(*(.taglist.init))
|
||||
__tagtable_end = .;
|
||||
}
|
||||
#ifdef CONFIG_SMP_ON_UP
|
||||
.init.smpalt : {
|
||||
__smpalt_begin = .;
|
||||
- *(.alt.smp.init)
|
||||
+ KEEP(*(.alt.smp.init))
|
||||
__smpalt_end = .;
|
||||
}
|
||||
#endif
|
@ -10,7 +10,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
|
||||
|
||||
--- a/drivers/net/phy/sfp.c
|
||||
+++ b/drivers/net/phy/sfp.c
|
||||
@@ -1571,6 +1571,10 @@ static void sfp_hwmon_probe(struct work_
|
||||
@@ -1568,6 +1568,10 @@ static void sfp_hwmon_probe(struct work_
|
||||
struct sfp *sfp = container_of(work, struct sfp, hwmon_probe.work);
|
||||
int err;
|
||||
|
||||
@ -21,7 +21,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
|
||||
/* hwmon interface needs to access 16bit registers in atomic way to
|
||||
* guarantee coherency of the diagnostic monitoring data. If it is not
|
||||
* possible to guarantee coherency because EEPROM is broken in such way
|
||||
@@ -2433,6 +2437,13 @@ static void sfp_sm_module(struct sfp *sf
|
||||
@@ -2430,6 +2434,13 @@ static void sfp_sm_module(struct sfp *sf
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
|
||||
|
||||
--- a/drivers/net/phy/sfp.c
|
||||
+++ b/drivers/net/phy/sfp.c
|
||||
@@ -676,10 +676,64 @@ static int sfp_i2c_write(struct sfp *sfp
|
||||
@@ -673,10 +673,64 @@ static int sfp_i2c_write(struct sfp *sfp
|
||||
return ret == ARRAY_SIZE(msgs) ? len : 0;
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
|
||||
|
||||
sfp->i2c = i2c;
|
||||
sfp->read = sfp_i2c_read;
|
||||
@@ -711,6 +765,29 @@ static int sfp_i2c_mdiobus_create(struct
|
||||
@@ -708,6 +762,29 @@ static int sfp_i2c_mdiobus_create(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -107,7 +107,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
|
||||
static void sfp_i2c_mdiobus_destroy(struct sfp *sfp)
|
||||
{
|
||||
mdiobus_unregister(sfp->i2c_mii);
|
||||
@@ -1889,9 +1966,15 @@ static void sfp_sm_fault(struct sfp *sfp
|
||||
@@ -1886,9 +1963,15 @@ static void sfp_sm_fault(struct sfp *sfp
|
||||
|
||||
static int sfp_sm_add_mdio_bus(struct sfp *sfp)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user