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:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| phy-fsl-imx8-mipi-dphy.c | ||
| phy-fsl-imx8m-pcie.c | ||
| phy-fsl-imx8mq-usb.c | ||
| phy-fsl-imx8qm-hsio.c | ||
| phy-fsl-imx8qm-lvds-phy.c | ||
| phy-fsl-lynx-28g.c | ||
| phy-fsl-samsung-hdmi.c | ||