From: Wenwen Wang Date: Sun, 18 Aug 2019 05:40:14 +0000 (-0300) Subject: media: saa7146: add cleanup in hexium_attach() X-Git-Tag: v5.4-rc1~145^2~30 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=42e64117d3b4a759013f77bbcf25ab6700e55de7;p=platform%2Fkernel%2Flinux-rpi.git media: saa7146: add cleanup in hexium_attach() If saa7146_register_device() fails, no cleanup is executed, leading to memory/resource leaks. To fix this issue, perform necessary cleanup work before returning the error. Signed-off-by: Wenwen Wang Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/pci/saa7146/hexium_gemini.c b/drivers/media/pci/saa7146/hexium_gemini.c index dca20a3..f962269 100644 --- a/drivers/media/pci/saa7146/hexium_gemini.c +++ b/drivers/media/pci/saa7146/hexium_gemini.c @@ -292,6 +292,9 @@ static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d ret = saa7146_register_device(&hexium->video_dev, dev, "hexium gemini", VFL_TYPE_GRABBER); if (ret < 0) { pr_err("cannot register capture v4l2 device. skipping.\n"); + saa7146_vv_release(dev); + i2c_del_adapter(&hexium->i2c_adapter); + kfree(hexium); return ret; }