Re: [PATCH net-next v2] mlxbf_gige: report unknown speed and duplex when link is down
From: Jakub Kicinski
Date: Fri Oct 17 2025 - 18:54:12 EST
On Tue, 14 Oct 2025 12:16:31 -0400 Chris Babroski wrote:
> The "Speed" and "Duplex" fields displayed by ethtool for the OOB
> interface should report "Unknown" when the link is down to match the
> behavior of other network interfaces on BlueField (implemented by the
> mlx5 driver). Currently, the mlxbf_gige driver always reports the
> initially configured link speed and duplex, regardless of the actual
> link state.
>
> The link speed and duplex are not updated for two reasons:
> 1. On BlueField the OOB phy is internally hardwired to a three port
> switch. This means the physical link between the phy and link
> partner is always up, regardless of the administrative link state
> configured with ifconfig.
> 2. phy_ethtool_get_link_ksettings() reads cached values that are only
> updated when phy_read_status() is called by the phy state machine.
> Doing "ifconfig down" will trigger phy_stop() in the
> ndo_stop() handler. This halts the phy state machine and sets
> phydev->link without calling phy_read_status() or explicitly
> updating other values, so the speed and duplex returned by
> future phy_ethtool_get_link_ksettings() calls will be stale.
>
> While #2 could potentially be fixed (assuming this is even an issue for
> other devices), #1 is unique to BlueField.
>
> Implement a custom get_link_ksettings() handler in mlxbf_gige that calls
> phy_ethtool_get_link_ksettings() and updates the speed and duplex based
> on the link state. When the link is brought down with ifconfig, the
> driver now reports unknown speed and duplex to ethtool as expected.
Are you sure you still need this now that 60f887b1290b has been applied?