usb: phy: nop: use devm_kzalloc()
authorRoger Quadros <rogerq@ti.com>
Tue, 12 Mar 2013 11:24:20 +0000 (13:24 +0200)
committerFelipe Balbi <balbi@ti.com>
Mon, 18 Mar 2013 09:14:32 +0000 (11:14 +0200)
Use resource managed kzalloc.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/otg/nop-usb-xceiv.c

index a3ce24b94a73b1ee4bd43a1cbbcb2483c5bddeaf..af52870788ec04b447beb5faf39aae2b25035771 100644 (file)
@@ -100,15 +100,14 @@ static int nop_usb_xceiv_probe(struct platform_device *pdev)
        enum usb_phy_type       type = USB_PHY_TYPE_USB2;
        int err;
 
-       nop = kzalloc(sizeof *nop, GFP_KERNEL);
+       nop = devm_kzalloc(&pdev->dev, sizeof(*nop), GFP_KERNEL);
        if (!nop)
                return -ENOMEM;
 
-       nop->phy.otg = kzalloc(sizeof *nop->phy.otg, GFP_KERNEL);
-       if (!nop->phy.otg) {
-               kfree(nop);
+       nop->phy.otg = devm_kzalloc(&pdev->dev, sizeof(*nop->phy.otg),
+                                                       GFP_KERNEL);
+       if (!nop->phy.otg)
                return -ENOMEM;
-       }
 
        if (pdata)
                type = pdata->type;
@@ -127,7 +126,7 @@ static int nop_usb_xceiv_probe(struct platform_device *pdev)
        if (err) {
                dev_err(&pdev->dev, "can't register transceiver, err: %d\n",
                        err);
-               goto exit;
+               return err;
        }
 
        platform_set_drvdata(pdev, nop);
@@ -135,10 +134,6 @@ static int nop_usb_xceiv_probe(struct platform_device *pdev)
        ATOMIC_INIT_NOTIFIER_HEAD(&nop->phy.notifier);
 
        return 0;
-exit:
-       kfree(nop->phy.otg);
-       kfree(nop);
-       return err;
 }
 
 static int nop_usb_xceiv_remove(struct platform_device *pdev)
@@ -148,8 +143,6 @@ static int nop_usb_xceiv_remove(struct platform_device *pdev)
        usb_remove_phy(&nop->phy);
 
        platform_set_drvdata(pdev, NULL);
-       kfree(nop->phy.otg);
-       kfree(nop);
 
        return 0;
 }