From ea9f1dfdd444d49f1f2cdab30e0df89ca644cbdf Mon Sep 17 00:00:00 2001 From: Lukasz Majewski Date: Fri, 4 May 2012 14:17:13 +0200 Subject: [PATCH] --- yaml --- r: 303829 b: refs/heads/master c: f026a52d4309e1e08752a8bd41ac74aeea815686 h: refs/heads/master i: 303827: e837f93b6be23977dc8145608e798dbdf122a28b v: v3 --- [refs] | 2 +- trunk/drivers/usb/gadget/s3c-hsotg.c | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index b3b264b8329b..a49d5dc55eff 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f99b2bfebe8984db2b6e4c07e2bedc91977d27d8 +refs/heads/master: f026a52d4309e1e08752a8bd41ac74aeea815686 diff --git a/trunk/drivers/usb/gadget/s3c-hsotg.c b/trunk/drivers/usb/gadget/s3c-hsotg.c index cd7ae3aef0c0..520dc3db612b 100644 --- a/trunk/drivers/usb/gadget/s3c-hsotg.c +++ b/trunk/drivers/usb/gadget/s3c-hsotg.c @@ -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; }