[PATCH] phy: fsl-lynx-28g: propagate PCVT enable errors
sashiko-bot at kernel.org
sashiko-bot at kernel.org
Wed Jul 22 20:36:49 PDT 2026
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Hardware and software state desynchronization on PCVT enable failure prevents mode recovery.
--
--- Patch [1]: [PATCH] phy: fsl-lynx-28g: propagate PCVT enable errors ---
commit 6193a7adcb18a183b9462da919d480f3a6949562
Author: surendra <kr494167 at gmail.com>
phy: fsl-lynx-28g: propagate PCVT enable errors
This commit updates lynx_28g_set_mode() to check the return value of
lynx_28g_lane_enable_pcvt(). If an error occurs, the code now propagates
the error and exits before updating the software lane mode tracking.
> diff --git a/drivers/phy/freescale/phy-fsl-lynx-28g.c b/drivers/phy/freescale/phy-fsl-lynx-28g.c
> index 38afcd081a2a7..1fe406adc83cb 100644
> --- a/drivers/phy/freescale/phy-fsl-lynx-28g.c
> +++ b/drivers/phy/freescale/phy-fsl-lynx-28g.c
> @@ -1003,7 +1003,9 @@ static int lynx_28g_set_mode(struct phy *phy, enum phy_mode mode, int submode)
>
> lynx_28g_lane_change_proto_conf(lane, lane_mode);
> lynx_28g_lane_remap_pll(lane, lane_mode);
> - WARN_ON(lynx_28g_lane_enable_pcvt(lane, lane_mode));
> + err = lynx_28g_lane_enable_pcvt(lane, lane_mode);
> + if (err)
> + goto out;
[Severity: Medium]
Does this new error path leave the software and hardware states
desynchronized?
Prior to this point, the hardware has already been reprogrammed to the
new mode by lynx_28g_lane_change_proto_conf() and
lynx_28g_lane_remap_pll(). If lynx_28g_lane_enable_pcvt() fails and takes
the goto out path, lane->mode remains set to the old mode.
If a caller later attempts to recover by setting the PHY back to the old
mode, lynx_28g_set_mode() will see:
if (lane_mode == lane->mode)
return 0;
and short-circuit, preventing the hardware from actually being reverted.
Should the error path either revert the hardware changes or set
lane->mode = LANE_MODE_UNKNOWN to ensure subsequent recovery attempts bypass
the short-circuit check?
>
> lane->mode = lane_mode;
>
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260722033619.10647-1-kr494167@gmail.com?part=1
More information about the linux-phy
mailing list