diff --git a/drivers/media/platform/msm/vidc/msm_v4l2_vidc.c b/drivers/media/platform/msm/vidc/msm_v4l2_vidc.c index de5a2dececdf..e81162f3c4ad 100644 --- a/drivers/media/platform/msm/vidc/msm_v4l2_vidc.c +++ b/drivers/media/platform/msm/vidc/msm_v4l2_vidc.c @@ -456,14 +456,15 @@ static int msm_vidc_probe_vidc_device(struct platform_device *pdev) struct device *dev; int nr = BASE_DEVICE_NUMBER; - core = kzalloc(sizeof(*core), GFP_KERNEL); - if (!core || !vidc_driver) { - dprintk(VIDC_ERR, - "Failed to allocate memory for device core\n"); - rc = -ENOMEM; - goto err_no_mem; + if (!vidc_driver) { + dprintk(VIDC_ERR, "Invalid vidc driver\n"); + return -EINVAL; } + core = kzalloc(sizeof(*core), GFP_KERNEL); + if (!core) + return -ENOMEM; + dev_set_drvdata(&pdev->dev, core); rc = msm_vidc_initialize_core(pdev, core); if (rc) { @@ -628,7 +629,6 @@ err_v4l2_register: err_core_init: dev_set_drvdata(&pdev->dev, NULL); kfree(core); -err_no_mem: return rc; }