lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <025c0ebe-5537-4fa3-b05a-8b835e5ad317@app.fastmail.com>
Date: Fri, 18 Apr 2025 13:02:19 +1000
From: "Mathew McBride" <matt@...verse.com.au>
To: "Russell King (Oracle)" <rmk+kernel@...linux.org.uk>
Cc: "Ioana Ciornei" <ioana.ciornei@....com>,
 "David S. Miller" <davem@...emloft.net>,
 "Eric Dumazet" <edumazet@...gle.com>, "Jakub Kicinski" <kuba@...nel.org>,
 "Paolo Abeni" <pabeni@...hat.com>, netdev@...r.kernel.org,
 "Andrew Lunn" <andrew@...n.ch>, "Heiner Kallweit" <hkallweit1@...il.com>,
 regressions@...ts.linux.dev
Subject: [REGRESSION] net: pcs-lynx: 10G SFP no longer links up

#regzbot introduced: 6561f0e547be221f411fda5eddfcc5bd8bb058a5

Hi Russell,

On Thu, Dec 5, 2024, at 8:42 PM, Russell King (Oracle) wrote:
> Report the PCS in-band capabilities to phylink for the Lynx PCS.
> 

The implementation of in-band capabilities has broken SFP+ (10GBase-R) mode on my LS1088 board.
The other ports in the system (QSGMII) work fine.

$ dmesg | grep -E (eth8|dpmac2-sfp)
sfp dpmac2-sfp: module FS               SFPP-AO02        rev B1   sn F1940200586-2    dc 200615
fsl_dpaa2_eth dpni.1 eth8: autoneg setting not compatible with PCS
$ sudo ip link set eth8 up
fsl_dpaa2_eth dpni.1 eth8: configuring for inband/10gbase-r link mode 
< no link up occurs>

Reverting this exact commit resolves the issue, and the SFP comes up as normal:

fsl_dpaa2_eth dpni.1 eth8: configuring for inband/10gbase-r link mode
fsl_dpaa2_eth dpni.1 eth8: Link is Up - 10Gbps/Full - flow control off

The changes that were merged into net-next recently ("net: phylink: fix PCS without autoneg") did not resolve this problem.

Obviously, I don't think this particular patch is responsible (but it's what the bisect arrives at). Do you have any suggestions on where to insert some tracing/debug?

Transceiver information:
        Identifier                                : 0x03 (SFP)
        Extended identifier                       : 0x04 (GBIC/SFP defined by 2-wire interface ID)
        Connector                                 : 0x21 (Copper pigtail)
        Transceiver codes                         : 0x00 0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x00
        Transceiver type                          : Active Cable
        Encoding                                  : 0x00 (unspecified)
        BR, Nominal                               : 10300MBd
        Rate identifier                           : 0x00 (unspecified)
        Length (SMF,km)                           : 0km
        Length (SMF)                              : 0m
        Length (50um)                             : 0m
        Length (62.5um)                           : 0m
        Length (Copper)                           : 3m
        Length (OM3)                              : 0m
        Active Cu cmplnce.                        : 0x0c (unknown) [SFF-8472 rev10.4 only]
        Vendor name                               : FS
        Vendor OUI                                : 00:17:6a
        Vendor PN                                 : SFPP-AO02
        Vendor rev                                : B1
        Option values                             : 0x00 0x12
        Option                                    : RX_LOS implemented
        Option                                    : TX_DISABLE implemented
        BR margin, max                            : 0%
        BR margin, min                            : 0%
        Vendor SN                                 : F1940200586-2
        Date code                                 : 200615

Passive cables are also affected:
        Transceiver codes                         : 0x00 0x00 0x00 0x00 0x00 0x04 0x00 0x00 0x00
        Transceiver type                          : Passive Cable

Best Regards,
Matt

> Reviewed-by: Maxime Chevallier <maxime.chevallier@...tlin.com>
> Signed-off-by: Russell King (Oracle) <rmk+kernel@...linux.org.uk <mailto:rmk%2Bkernel@...linux.org.uk>>
> ---
> drivers/net/pcs/pcs-lynx.c | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
> 
> diff --git a/drivers/net/pcs/pcs-lynx.c b/drivers/net/pcs/pcs-lynx.c
> index b79aedad855b..767a8c0714ac 100644
> --- a/drivers/net/pcs/pcs-lynx.c
> +++ b/drivers/net/pcs/pcs-lynx.c
> @@ -35,6 +35,27 @@ enum sgmii_speed {
> #define phylink_pcs_to_lynx(pl_pcs) container_of((pl_pcs), struct lynx_pcs, pcs)
> #define lynx_to_phylink_pcs(lynx) (&(lynx)->pcs)
>  
> +static unsigned int lynx_pcs_inband_caps(struct phylink_pcs *pcs,
> + phy_interface_t interface)
> +{
> + switch (interface) {
> + case PHY_INTERFACE_MODE_1000BASEX:
> + case PHY_INTERFACE_MODE_SGMII:
> + case PHY_INTERFACE_MODE_QSGMII:
> + return LINK_INBAND_DISABLE | LINK_INBAND_ENABLE;
> +
> + case PHY_INTERFACE_MODE_10GBASER:
> + case PHY_INTERFACE_MODE_2500BASEX:
> + return LINK_INBAND_DISABLE;
> +
> + case PHY_INTERFACE_MODE_USXGMII:
> + return LINK_INBAND_ENABLE;
> +
> + default:
> + return 0;
> + }
> +}
> +
> static void lynx_pcs_get_state_usxgmii(struct mdio_device *pcs,
>        struct phylink_link_state *state)
> {
> @@ -306,6 +327,7 @@ static void lynx_pcs_link_up(struct phylink_pcs *pcs, unsigned int neg_mode,
> }
>  
> static const struct phylink_pcs_ops lynx_pcs_phylink_ops = {
> + .pcs_inband_caps = lynx_pcs_inband_caps,
> .pcs_get_state = lynx_pcs_get_state,
> .pcs_config = lynx_pcs_config,
> .pcs_an_restart = lynx_pcs_an_restart,
> -- 
> 2.30.2
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ