ASoC: SOF: probes: Check ops before memory allocation
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 17 Nov 2022 10:32:23 +0000 (12:32 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 17 Nov 2022 13:58:43 +0000 (13:58 +0000)
We may check ops before spending resources on memory allocation.
While at it, utilize dev_get_platdata() helper.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20221117103223.74425-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/sof-client-probes.c

index d083951..fff1268 100644 (file)
@@ -399,23 +399,21 @@ static int sof_probes_client_probe(struct auxiliary_device *auxdev,
        if (!sof_probes_enabled)
                return -ENXIO;
 
-       if (!dev->platform_data) {
+       ops = dev_get_platdata(dev);
+       if (!ops) {
                dev_err(dev, "missing platform data\n");
                return -ENODEV;
        }
-
-       priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
-       if (!priv)
-               return -ENOMEM;
-
-       ops = dev->platform_data;
-
        if (!ops->startup || !ops->shutdown || !ops->set_params || !ops->trigger ||
            !ops->pointer) {
                dev_err(dev, "missing platform callback(s)\n");
                return -ENODEV;
        }
 
+       priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
+       if (!priv)
+               return -ENOMEM;
+
        priv->host_ops = ops;
 
        switch (sof_client_get_ipc_type(cdev)) {