diff options
-rw-r--r-- | drivers/staging/most/hdm-dim2/dim2_hdm.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c b/drivers/staging/most/hdm-dim2/dim2_hdm.c index 6296aa5..97db334 100644 --- a/drivers/staging/most/hdm-dim2/dim2_hdm.c +++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c @@ -736,7 +736,7 @@ static int dim2_probe(struct platform_device *pdev) int ret, i; struct kobject *kobj; - dev = kzalloc(sizeof(*dev), GFP_KERNEL); + dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL); if (!dev) return -ENOMEM; @@ -750,13 +750,13 @@ static int dim2_probe(struct platform_device *pdev) if (!res) { pr_err("no memory region defined\n"); ret = -ENOENT; - goto err_free_dev; + return ret; } if (!request_mem_region(res->start, resource_size(res), pdev->name)) { pr_err("failed to request mem region\n"); ret = -EBUSY; - goto err_free_dev; + return ret; } dev->io_base = ioremap(res->start, resource_size(res)); @@ -862,9 +862,7 @@ err_unmap_io: iounmap(dev->io_base); err_release_mem: release_mem_region(res->start, resource_size(res)); -err_free_dev: #endif - kfree(dev); return ret; } @@ -897,7 +895,6 @@ static int dim2_remove(struct platform_device *pdev) iounmap(dev->io_base); release_mem_region(res->start, resource_size(res)); #endif - kfree(dev); platform_set_drvdata(pdev, NULL); /* |