aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDevendra Naga <devendra.aaru@gmail.com>2012-12-17 19:02:26 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-17 20:15:20 -0500
commit0d7ecb8389a34f650f0d4ab23a56c94595a75ccf (patch)
tree349589579192687b91d4340de2c7a0458e487975 /drivers
parent968d21c2cf01bde4b0e3ff0b0f821b51b9da8ffd (diff)
drivers/rtc/rtc-vt8500.c: convert to use devm_kzalloc
Replace the kzalloc() and kfree() calls with devm_kzalloc(). Signed-off-by: Devendra Naga <devendra.aaru@gmail.com> Cc: Alessandro Zummo <a.zummo@towertech.it> Cc: Alexey Charkov <alchark@gmail.com> Acked-by: Tony Prisk <linux@prisktech.co.nz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/rtc/rtc-vt8500.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/rtc/rtc-vt8500.c b/drivers/rtc/rtc-vt8500.c
index 07bf19364a74..14e2d8cfcc83 100644
--- a/drivers/rtc/rtc-vt8500.c
+++ b/drivers/rtc/rtc-vt8500.c
@@ -210,7 +210,8 @@ static int __devinit vt8500_rtc_probe(struct platform_device *pdev)
210 struct vt8500_rtc *vt8500_rtc; 210 struct vt8500_rtc *vt8500_rtc;
211 int ret; 211 int ret;
212 212
213 vt8500_rtc = kzalloc(sizeof(struct vt8500_rtc), GFP_KERNEL); 213 vt8500_rtc = devm_kzalloc(&pdev->dev,
214 sizeof(struct vt8500_rtc), GFP_KERNEL);
214 if (!vt8500_rtc) 215 if (!vt8500_rtc)
215 return -ENOMEM; 216 return -ENOMEM;
216 217
@@ -220,15 +221,13 @@ static int __devinit vt8500_rtc_probe(struct platform_device *pdev)
220 vt8500_rtc->res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 221 vt8500_rtc->res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
221 if (!vt8500_rtc->res) { 222 if (!vt8500_rtc->res) {
222 dev_err(&pdev->dev, "No I/O memory resource defined\n"); 223 dev_err(&pdev->dev, "No I/O memory resource defined\n");
223 ret = -ENXIO; 224 return -ENXIO;
224 goto err_free;
225 } 225 }
226 226
227 vt8500_rtc->irq_alarm = platform_get_irq(pdev, 0); 227 vt8500_rtc->irq_alarm = platform_get_irq(pdev, 0);
228 if (vt8500_rtc->irq_alarm < 0) { 228 if (vt8500_rtc->irq_alarm < 0) {
229 dev_err(&pdev->dev, "No alarm IRQ resource defined\n"); 229 dev_err(&pdev->dev, "No alarm IRQ resource defined\n");
230 ret = -ENXIO; 230 return -ENXIO;
231 goto err_free;
232 } 231 }
233 232
234 vt8500_rtc->res = request_mem_region(vt8500_rtc->res->start, 233 vt8500_rtc->res = request_mem_region(vt8500_rtc->res->start,
@@ -236,8 +235,7 @@ static int __devinit vt8500_rtc_probe(struct platform_device *pdev)
236 "vt8500-rtc"); 235 "vt8500-rtc");
237 if (vt8500_rtc->res == NULL) { 236 if (vt8500_rtc->res == NULL) {
238 dev_err(&pdev->dev, "failed to request I/O memory\n"); 237 dev_err(&pdev->dev, "failed to request I/O memory\n");
239 ret = -EBUSY; 238 return -EBUSY;
240 goto err_free;
241 } 239 }
242 240
243 vt8500_rtc->regbase = ioremap(vt8500_rtc->res->start, 241 vt8500_rtc->regbase = ioremap(vt8500_rtc->res->start,
@@ -278,8 +276,6 @@ err_unmap:
278err_release: 276err_release:
279 release_mem_region(vt8500_rtc->res->start, 277 release_mem_region(vt8500_rtc->res->start,
280 resource_size(vt8500_rtc->res)); 278 resource_size(vt8500_rtc->res));
281err_free:
282 kfree(vt8500_rtc);
283 return ret; 279 return ret;
284} 280}
285 281
@@ -297,7 +293,6 @@ static int __devexit vt8500_rtc_remove(struct platform_device *pdev)
297 release_mem_region(vt8500_rtc->res->start, 293 release_mem_region(vt8500_rtc->res->start,
298 resource_size(vt8500_rtc->res)); 294 resource_size(vt8500_rtc->res));
299 295
300 kfree(vt8500_rtc);
301 platform_set_drvdata(pdev, NULL); 296 platform_set_drvdata(pdev, NULL);
302 297
303 return 0; 298 return 0;