media: staging: media: zoran: fix usage of vb2_dma_contig_set_max_seg_size
authorCorentin Labbe <clabbe@baylibre.com>
Tue, 14 Dec 2021 16:16:29 +0000 (17:16 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:23:12 +0000 (14:23 +0200)
[ Upstream commit 241f5b67fb48def58643f279dfb8468bdd54b443 ]

vb2_dma_contig_set_max_seg_size need to have a size in parameter and not
a DMA_BIT_MASK().
While fixing this issue, also fix error handling of all DMA size
setting.

Reported-by: kernel test robot <lkp@intel.com>
Fixes: d4ae3689226e5 ("media: zoran: device support only 32bit DMA address")
Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/staging/media/zoran/zoran_card.c

index f259585b068977023320d989fd33aaba9c049856..c578ef3c32f540a0d0f0edd64ce867c501e2cac0 100644 (file)
@@ -1069,8 +1069,10 @@ static int zoran_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
        err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
        if (err)
-               return -ENODEV;
-       vb2_dma_contig_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
+               return err;
+       err = vb2_dma_contig_set_max_seg_size(&pdev->dev, U32_MAX);
+       if (err)
+               return err;
 
        nr = zoran_num++;
        if (nr >= BUZ_MAX) {