OSDN Git Service

media: tw686x: Fix an error handling path in tw686x_probe()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Mon, 20 Jun 2022 05:31:53 +0000 (06:31 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Mon, 27 Jun 2022 08:16:05 +0000 (09:16 +0100)
The commit in Fixes: is incomplete. It has moved some code in the probe but
not all error handling paths have been updated.

Now, if request_irq() fails, we must release some resources.

Fixes: c8946454ed96 ("media: tw686x: Register the irq at the end of probe")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/pci/tw686x/tw686x-core.c

index 384d387..c53099c 100644 (file)
@@ -337,12 +337,15 @@ static int tw686x_probe(struct pci_dev *pci_dev,
                          dev->name, dev);
        if (err < 0) {
                dev_err(&pci_dev->dev, "unable to request interrupt\n");
-               goto iounmap;
+               goto tw686x_free;
        }
 
        pci_set_drvdata(pci_dev, dev);
        return 0;
 
+tw686x_free:
+       tw686x_video_free(dev);
+       tw686x_audio_free(dev);
 iounmap:
        pci_iounmap(pci_dev, dev->mmio);
 free_region: