public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: "Marek Behún" <kabel@kernel.org>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Sasha Levin" <sashal@kernel.org>,
	linux@armlinux.org.uk, andrew@lunn.ch, hkallweit1@gmail.com,
	netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 6.19-6.12] net: sfp: add quirk for Lantech 8330-265D
Date: Sat, 14 Feb 2026 16:23:53 -0500	[thread overview]
Message-ID: <20260214212452.782265-88-sashal@kernel.org> (raw)
In-Reply-To: <20260214212452.782265-1-sashal@kernel.org>

From: Marek Behún <kabel@kernel.org>

[ Upstream commit 86a8e8e0ddbc3d14c799536eb888180b84d002f3 ]

Similar to Lantech 8330-262D-E, the Lantech 8330-265D also reports
2500MBd instead of 3125MBd.

Also, all 8330-265D report normal RX_LOS in EEPROM, but some signal
inverted RX_LOS. We therefore need to ignore RX_LOS on these modules.

Signed-off-by: Marek Behún <kabel@kernel.org>
Link: https://patch.msgid.link/20260128170044.15576-1-kabel@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

LLM Generated explanations, may be completely bogus:

## Analysis of SFP Quirk Addition for Lantech 8330-265D

### Commit Message Analysis

The commit adds a hardware quirk for the Lantech 8330-265D SFP module.
It addresses two specific hardware issues:

1. **Incorrect speed reporting**: The module reports 2500MBd instead of
   the correct 3125MBd in its EEPROM, preventing it from being
   recognized as a 2500base-X capable module.
2. **Inverted RX_LOS signal**: Some units of this module report inverted
   Loss-of-Signal, while the EEPROM claims normal LOS behavior. Since
   the behavior is inconsistent across units, the fix ignores LOS
   entirely.

The commit explicitly references similarity to an existing quirk
(Lantech 8330-262D-E), establishing a pattern.

### Code Change Analysis

The change is minimal and contained:
- **2 lines added**: A new `SFP_QUIRK()` entry for "Lantech" /
  "8330-265D" with `sfp_quirk_2500basex` and `sfp_fixup_ignore_los`
- **Comment updated**: The existing comment for the 8330-262D-E is
  expanded to cover the 8330-265D as well, and explains the LOS issue
- **No new functions or infrastructure**: Uses existing quirk macros
  (`SFP_QUIRK`) and existing fixup functions (`sfp_quirk_2500basex`,
  `sfp_fixup_ignore_los`)

### Classification: Hardware Quirk

This falls squarely into the **SFP/Network Quirks** exception category
explicitly mentioned in the stable backport guidelines. SFP quirks for
optical modules with broken behavior are specifically called out as
appropriate for stable trees.

### Risk Assessment

- **Risk: Extremely Low** — The quirk only triggers for modules with
  vendor string "Lantech" and product string "8330-265D". It cannot
  affect any other hardware.
- **Scope: Minimal** — Two lines of data-driven code in an existing
  quirk table. No logic changes.
- **Dependencies: None** — The `SFP_QUIRK` macro, `sfp_quirk_2500basex`,
  and `sfp_fixup_ignore_los` all already exist in the codebase. This
  commit is fully self-contained.

### User Impact

Without this quirk:
- The Lantech 8330-265D SFP module **cannot operate at 2500base-X**
  because the kernel misinterprets its EEPROM data
- Some units exhibit **random link drops or failure to establish link**
  due to inverted RX_LOS being treated as actual signal loss

These are real, user-impacting hardware issues that make the SFP module
non-functional or unreliable.

### Stability Indicators

- Author is **Marek Behún**, the SFP subsystem maintainer — he deeply
  understands this code
- Reviewed and merged by **Jakub Kicinski**, the networking subsystem
  maintainer
- Follows an established pattern (identical approach to existing
  8330-262D-E quirk)
- The fixup functions used (`sfp_quirk_2500basex`,
  `sfp_fixup_ignore_los`) are well-tested and used by other quirk
  entries

### Conclusion

This is a textbook example of a hardware quirk that belongs in stable
trees. It's a tiny, self-contained, zero-risk addition to an existing
quirk table that makes specific hardware work correctly. It uses only
pre-existing infrastructure, was authored and reviewed by the relevant
maintainers, and fixes real hardware issues (incorrect speed negotiation
and unreliable link due to inverted LOS).

**YES**

 drivers/net/phy/sfp.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c
index 3e023723887c4..43aefdd8b70f7 100644
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
@@ -532,9 +532,13 @@ static const struct sfp_quirk sfp_quirks[] = {
 	SFP_QUIRK("HUAWEI", "MA5671A", sfp_quirk_2500basex,
 		  sfp_fixup_ignore_tx_fault),
 
-	// Lantech 8330-262D-E can operate at 2500base-X, but incorrectly report
-	// 2500MBd NRZ in their EEPROM
+	// Lantech 8330-262D-E and 8330-265D can operate at 2500base-X, but
+	// incorrectly report 2500MBd NRZ in their EEPROM.
+	// Some 8330-265D modules have inverted LOS, while all of them report
+	// normal LOS in EEPROM. Therefore we need to ignore LOS entirely.
 	SFP_QUIRK_S("Lantech", "8330-262D-E", sfp_quirk_2500basex),
+	SFP_QUIRK("Lantech", "8330-265D", sfp_quirk_2500basex,
+		  sfp_fixup_ignore_los),
 
 	SFP_QUIRK_S("UBNT", "UF-INSTANT", sfp_quirk_ubnt_uf_instant),
 
-- 
2.51.0


      parent reply	other threads:[~2026-02-14 21:27 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20260214212452.782265-1-sashal@kernel.org>
2026-02-14 21:22 ` [PATCH AUTOSEL 6.19-5.10] myri10ge: avoid uninitialized variable use Sasha Levin
2026-02-14 21:22 ` [PATCH AUTOSEL 6.19-6.1] net: mctp-i2c: fix duplicate reception of old data Sasha Levin
2026-02-14 21:22 ` [PATCH AUTOSEL 6.19-6.12] net: wwan: mhi: Add network support for Foxconn T99W760 Sasha Levin
2026-02-14 21:22 ` [PATCH AUTOSEL 6.19-5.10] net/rds: Clear reconnect pending bit Sasha Levin
2026-02-14 21:22 ` [PATCH AUTOSEL 6.19-6.12] ipv6: annotate data-races over sysctl.flowlabel_reflect Sasha Levin
2026-02-14 21:22 ` [PATCH AUTOSEL 6.19-5.15] ipv6: exthdrs: annotate data-race over multiple sysctl Sasha Levin
2026-02-14 21:23 ` [PATCH AUTOSEL 6.19-5.10] octeontx2-af: Workaround SQM/PSE stalls by disabling sticky Sasha Levin
2026-02-14 21:23 ` [PATCH AUTOSEL 6.19-5.10] vmw_vsock: bypass false-positive Wnonnull warning with gcc-16 Sasha Levin
2026-02-14 21:23 ` [PATCH AUTOSEL 6.19-5.15] ipv6: annotate data-races in ip6_multipath_hash_{policy,fields}() Sasha Levin
2026-02-14 21:23 ` [PATCH AUTOSEL 6.19-6.6] ipv4: igmp: annotate data-races around idev->mr_maxdelay Sasha Levin
2026-02-14 21:23 ` [PATCH AUTOSEL 6.19-5.10] net/rds: No shortcut out of RDS_CONN_ERROR Sasha Levin
2026-02-14 21:23 ` [PATCH AUTOSEL 6.19-6.18] ipv6: annotate data-races in net/ipv6/route.c Sasha Levin
2026-02-14 21:23 ` [PATCH AUTOSEL 6.19-6.12] bnxt_en: Allow ntuple filters for drops Sasha Levin
2026-02-14 21:23 ` [PATCH AUTOSEL 6.19-6.18] ptp: ptp_vmclock: add 'VMCLOCK' to ACPI device match Sasha Levin
2026-02-14 21:23 ` [PATCH AUTOSEL 6.19-5.10] ipv4: fib: Annotate access to struct fib_alias.fa_state Sasha Levin
2026-02-14 21:23 ` Sasha Levin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260214212452.782265-88-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=andrew@lunn.ch \
    --cc=hkallweit1@gmail.com \
    --cc=kabel@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=netdev@vger.kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox