Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] media: au0828 fix au0828_v4l2_device_register() to not unlock and free

au0828_v4l2_device_register() unlocks au0828_dev->lock and frees au0828
dev in error legs before return. au0828_usb_probe() does the same when
au0828_v4l2_device_register() returns error.

Fix au0828_v4l2_device_register() to not to unlock and free in its error
legs.

Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>

authored by

Shuah Khan and committed by
Mauro Carvalho Chehab
eda220ac c23ac90f

-4
-4
drivers/media/usb/au0828/au0828-video.c
··· 679 679 if (retval) { 680 680 pr_err("%s() v4l2_device_register failed\n", 681 681 __func__); 682 - mutex_unlock(&dev->lock); 683 - kfree(dev); 684 682 return retval; 685 683 } 686 684 ··· 689 691 if (retval) { 690 692 pr_err("%s() v4l2_ctrl_handler_init failed\n", 691 693 __func__); 692 - mutex_unlock(&dev->lock); 693 - kfree(dev); 694 694 return retval; 695 695 } 696 696 dev->v4l2_dev.ctrl_handler = &dev->v4l2_ctrl_hdl;