This patch uses managed resource APIs to allocate memory in order to simplify the driver unload or failure cases Signed-off-by: Kiran Padwal <kiran.padwal@xxxxxxxxxxxxxxx> --- drivers/staging/media/dt3155v4l/dt3155v4l.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/staging/media/dt3155v4l/dt3155v4l.c b/drivers/staging/media/dt3155v4l/dt3155v4l.c index 293ffda..e60a53e 100644 --- a/drivers/staging/media/dt3155v4l/dt3155v4l.c +++ b/drivers/staging/media/dt3155v4l/dt3155v4l.c @@ -901,14 +901,13 @@ dt3155_probe(struct pci_dev *pdev, const struct pci_device_id *id) err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); if (err) return -ENODEV; - pd = kzalloc(sizeof(*pd), GFP_KERNEL); + pd = devm_kzalloc(&pdev->dev, sizeof(*pd), GFP_KERNEL); if (!pd) return -ENOMEM; pd->vdev = video_device_alloc(); - if (!pd->vdev) { - err = -ENOMEM; - goto err_video_device_alloc; - } + if (!pd->vdev) + return -ENOMEM; + *pd->vdev = dt3155_vdev; pci_set_drvdata(pdev, pd); /* for use in dt3155_remove() */ video_set_drvdata(pd->vdev, pd); /* for use in video_fops */ @@ -951,8 +950,7 @@ err_req_region: pci_disable_device(pdev); err_enable_dev: video_device_release(pd->vdev); -err_video_device_alloc: - kfree(pd); + return err; } @@ -970,7 +968,6 @@ dt3155_remove(struct pci_dev *pdev) * video_device_release() is invoked automatically * see: struct video_device dt3155_vdev */ - kfree(pd); } static const struct pci_device_id pci_ids[] = { -- 1.7.9.5 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel