]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
usb:hsotg:samsung: Add release function for hsotg device
authorLukasz Majewski <l.majewski@samsung.com>
Fri, 4 May 2012 12:17:13 +0000 (14:17 +0200)
committerFelipe Balbi <balbi@ti.com>
Fri, 4 May 2012 12:53:17 +0000 (15:53 +0300)
Add release function to prevent kernel warning.
Kfree is performed when all references are gone.

Signed-off-by: Sangwook Lee <sangwook.lee@linaro.org>
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/s3c-hsotg.c

index cd7ae3aef0c019827495cc7a0c358681503e32a7..520dc3db612b74d1b4d53789de32b0e02c1db5f8 100644 (file)
@@ -3444,10 +3444,22 @@ static void __devexit s3c_hsotg_delete_debug(struct s3c_hsotg *hsotg)
        debugfs_remove(hsotg->debug_root);
 }
 
+/**
+ * s3c_hsotg_release - release callback for hsotg device
+ * @dev: Device to for which release is called
+ */
+static void s3c_hsotg_release(struct device *dev)
+{
+       struct s3c_hsotg *hsotg = dev_get_drvdata(dev);
+
+       kfree(hsotg);
+}
+
 /**
  * s3c_hsotg_probe - probe function for hsotg driver
  * @pdev: The platform information for the driver
  */
+
 static int __devinit s3c_hsotg_probe(struct platform_device *pdev)
 {
        struct s3c_hsotg_plat *plat = pdev->dev.platform_data;
@@ -3531,6 +3543,7 @@ static int __devinit s3c_hsotg_probe(struct platform_device *pdev)
 
        hsotg->gadget.dev.parent = dev;
        hsotg->gadget.dev.dma_mask = dev->dma_mask;
+       hsotg->gadget.dev.release = s3c_hsotg_release;
 
        /* reset the system */
 
@@ -3678,7 +3691,6 @@ static int __devexit s3c_hsotg_remove(struct platform_device *pdev)
        clk_put(hsotg->clk);
 
        device_unregister(&hsotg->gadget.dev);
-       kfree(hsotg);
        return 0;
 }