summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>2021-06-10 08:40:58 +0200
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2021-06-17 09:26:42 +0200
commit235406dca37ecf6f00e0378e965a3dd37590c389 (patch)
tree51e3bae481790b14d8dfbad270328f0f4ff6a262
parent7f9197f11888c45d1aab470b7fd2c1f1fc1a2a35 (diff)
media: saa7134: fix saa7134_initdev error handling logic
Smatch reported an issue there: drivers/media/pci/saa7134/saa7134-core.c:1302 saa7134_initdev() warn: '&dev->devlist' not removed from list But besides freeing the list, the media controller graph also needs to be cleaned up on errors. Address those issues. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-rw-r--r--drivers/media/pci/saa7134/saa7134-core.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/media/pci/saa7134/saa7134-core.c b/drivers/media/pci/saa7134/saa7134-core.c
index 97b1767f1fff..47158ab3956b 100644
--- a/drivers/media/pci/saa7134/saa7134-core.c
+++ b/drivers/media/pci/saa7134/saa7134-core.c
@@ -1277,14 +1277,17 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
*/
#ifdef CONFIG_MEDIA_CONTROLLER
err = media_device_register(dev->media_dev);
- if (err)
+ if (err) {
+ media_device_cleanup(dev->media_dev);
goto err_unregister_video;
+ }
#endif
return 0;
err_unregister_video:
saa7134_unregister_video(dev);
+ list_del(&dev->devlist);
saa7134_i2c_unregister(dev);
free_irq(pci_dev->irq, dev);
err_iounmap: