media: saa7134: fix saa7134_initdev error handling logic
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 10 Jun 2021 06:40:58 +0000 (08:40 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 17 Jun 2021 07:26:42 +0000 (09:26 +0200)
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>
drivers/media/pci/saa7134/saa7134-core.c

index 97b1767..47158ab 100644 (file)
@@ -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: