]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
phy: lynx-28g: require an OF node to probe
authorVladimir Oltean <vladimir.oltean@nxp.com>
Mon, 11 May 2026 15:00:21 +0000 (18:00 +0300)
committerVinod Koul <vkoul@kernel.org>
Thu, 14 May 2026 15:28:32 +0000 (20:58 +0530)
The driver will gain support for variants in an upcoming change, and
will use of_device_get_match_data() to deduce the running variant from
the compatible string.

Currently, the driver expects the schema at phy/fsl,lynx-28g.yaml, and
OF-based consumers, but doesn't enforce this. And it is possible for
user space to force-bind the driver to a device without OF node using
the driver_override sysfs.

To avoid future surprise crashes for an unsupported configuration,
explicitly test for the presence of an OF node and fail probing if
found.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Tested-by: Josua Mayer <josua@solid-run.com>
Link: https://patch.msgid.link/20260511150023.1903577-4-vladimir.oltean@nxp.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/freescale/phy-fsl-lynx-28g.c

index 4ec3fb7a0d690254a1e3e6a7747285cce0fef7ad..6d0c395d20e506c911a8e51cebbe8c2fc43e16f5 100644 (file)
@@ -1286,6 +1286,12 @@ static int lynx_28g_probe(struct platform_device *pdev)
        struct device_node *dn;
        int err;
 
+       dn = dev_of_node(dev);
+       if (!dn) {
+               dev_err(dev, "Device requires an OF node\n");
+               return -EINVAL;
+       }
+
        priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
        if (!priv)
                return -ENOMEM;
@@ -1301,7 +1307,6 @@ static int lynx_28g_probe(struct platform_device *pdev)
 
        lynx_28g_pll_read_configuration(priv);
 
-       dn = dev_of_node(dev);
        if (of_get_child_count(dn)) {
                struct device_node *child;