media: pci/ivtv: release memory regions on error
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 20 Jan 2021 08:52:53 +0000 (09:52 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Wed, 27 Jan 2021 07:34:34 +0000 (08:34 +0100)
Fix this smatch warning:

drivers/media/pci/ivtv/ivtv-driver.c:900 ivtv_setup_pci() warn: 'itv->base_addr' not released on lines: 876.

One error path didn't release the memory regions.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/pci/ivtv/ivtv-driver.c

index 28acb14..6e448cb 100644 (file)
@@ -873,6 +873,11 @@ static int ivtv_setup_pci(struct ivtv *itv, struct pci_dev *pdev,
                pci_read_config_word(pdev, PCI_COMMAND, &cmd);
                if (!(cmd & PCI_COMMAND_MASTER)) {
                        IVTV_ERR("Bus Mastering is not enabled\n");
+                       if (itv->has_cx23415)
+                               release_mem_region(itv->base_addr + IVTV_DECODER_OFFSET,
+                                                  IVTV_DECODER_SIZE);
+                       release_mem_region(itv->base_addr, IVTV_ENCODER_SIZE);
+                       release_mem_region(itv->base_addr + IVTV_REG_OFFSET, IVTV_REG_SIZE);
                        return -ENXIO;
                }
        }