diff options
| author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2026-02-26 20:28:53 +0200 |
|---|---|---|
| committer | Vinod Koul <vkoul@kernel.org> | 2026-02-27 19:21:01 +0530 |
| commit | a258d843a3e4cb687da19437f8f81fee55ad7d35 (patch) | |
| tree | 6f9ae041a2964b0c506cb1c5ffabd047b1504491 /include/asm-arm/git@git.tavy.me:linux.git | |
| parent | 48fafffcf29bb968c9dee6bf507c1e57d0ccb6b5 (diff) | |
phy: lynx-28g: skip CDR lock workaround for lanes disabled in the device tree
The blamed commit introduced support for specifying individual lanes as
OF nodes in the device, and these can have status = "disabled".
When that happens, for_each_available_child_of_node() skips them and
lynx_28g_probe_lane() -> devm_phy_create() is not called, so lane->phy
will be NULL. Yet it will be dereferenced in lynx_28g_cdr_lock_check(),
resulting in a crash.
This used to be well handled in v3 of that patch:
https://lore.kernel.org/linux-phy/20250926180505.760089-14-vladimir.oltean@nxp.com/
but until v5 was merged, the logic to support per-lane OF nodes was
split into a separate change, and the per-SoC compatible strings patch
was deferred to a "part 2" set. The splitting was done improperly, and
that handling of NULL lane->phy pointers was not integrated into the
proper commit.
Fixes: 7df7d58abbd6 ("phy: lynx-28g: support individual lanes as OF PHY providers")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://patch.msgid.link/20260226182853.1103616-1-vladimir.oltean@nxp.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'include/asm-arm/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions
