On 10/03/2015 09:27 PM, Florian Fainelli wrote:
Le 03/10/2015 07:26, Neil Armstrong a écrit :
quoted
If no switch were found in dsa_setup_dst, return -ENODEV and
exit the dsa_probe cleanly.
Tested-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Neil Armstrong <redacted>
---
[snip]
quoted
static int dsa_probe(struct platform_device *pdev)
@@ -926,9 +937,9 @@ static int dsa_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, dst);
- dsa_setup_dst(dst, dev, &pdev->dev, pd);
-
- return 0;
+ ret = dsa_setup_dst(dst, dev, &pdev->dev, pd);
+ if (!ret)
+ return 0;
That logic is a little weird, I would just go with something like this:
ret = dsa_setup_dst(ds, dev, &pdev->dev, pd);
if (ret)
goto out;
return 0;
Yes you are right, the goto out is needed to clean up the of_probe resources.
I will send a v3 with this fixed.
Neil