rt2x00: fix clk_get call
authorStanislaw Gruszka <sgruszka@redhat.com>
Sun, 29 Jan 2017 11:40:52 +0000 (12:40 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 31 Jan 2017 07:08:52 +0000 (09:08 +0200)
clk_get() takes two arguments and might return ERR_PTR(), so we
have to nullify pointer on that case, to do not break further call
to clk_get_rate().

Reported-by: Felix Fietkau <nbd@nbd.name>
Fixes: 34db70b92fae ("rt2x00: add copy of clk for soc devices")
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ralink/rt2x00/rt2x00soc.c

index 362f9d3b98fc1a55e0e7e86bf4cbc9aa8df5f983..29250f79c4a4bffc0996222eb2c6381877f47c6f 100644 (file)
@@ -92,7 +92,10 @@ int rt2x00soc_probe(struct platform_device *pdev, const struct rt2x00_ops *ops)
        rt2x00dev->hw = hw;
        rt2x00dev->irq = platform_get_irq(pdev, 0);
        rt2x00dev->name = pdev->dev.driver->name;
-       rt2x00dev->clk = clk_get(&pdev->dev);
+
+       rt2x00dev->clk = clk_get(&pdev->dev, NULL);
+       if (IS_ERR(rt2x00dev->clk))
+               rt2x00dev->clk = NULL;
 
        rt2x00_set_chip_intf(rt2x00dev, RT2X00_CHIP_INTF_SOC);