diff options
author | Hans Verkuil <hans.verkuil@cisco.com> | 2014-02-15 13:15:53 +0100 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-07-17 16:57:32 +0200 |
commit | c5b250ad3593656811c31a1d480745270b47658b (patch) | |
tree | 4955651b805b80787d2918521bce95b3c0135597 /drivers | |
parent | [media] solo6x10: fix 'dma from stack' warning (diff) | |
download | linux-c5b250ad3593656811c31a1d480745270b47658b.tar.xz linux-c5b250ad3593656811c31a1d480745270b47658b.zip |
[media] solo6x10: check dma_map_sg() return value
The dma_map_sg() function can fail, so check for the return value.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c b/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c index 6078aeb4ce07..968666a544dc 100644 --- a/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c +++ b/drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c @@ -478,8 +478,9 @@ static int solo_fill_jpeg(struct solo_enc_dev *solo_enc, vb2_set_plane_payload(vb, 0, vop_jpeg_size(vh) + solo_enc->jpeg_len); /* may discard all previous data in vbuf->sgl */ - dma_map_sg(&solo_dev->pdev->dev, vbuf->sgl, vbuf->nents, - DMA_FROM_DEVICE); + if (!dma_map_sg(&solo_dev->pdev->dev, vbuf->sgl, vbuf->nents, + DMA_FROM_DEVICE)) + return -ENOMEM; ret = solo_send_desc(solo_enc, solo_enc->jpeg_len, vbuf, vop_jpeg_offset(vh) - SOLO_JPEG_EXT_ADDR(solo_dev), frame_size, SOLO_JPEG_EXT_ADDR(solo_dev), @@ -525,8 +526,9 @@ static int solo_fill_mpeg(struct solo_enc_dev *solo_enc, frame_size = ALIGN(vop_mpeg_size(vh) + skip, DMA_ALIGN); /* may discard all previous data in vbuf->sgl */ - dma_map_sg(&solo_dev->pdev->dev, vbuf->sgl, vbuf->nents, - DMA_FROM_DEVICE); + if (!dma_map_sg(&solo_dev->pdev->dev, vbuf->sgl, vbuf->nents, + DMA_FROM_DEVICE)) + return -ENOMEM; ret = solo_send_desc(solo_enc, skip, vbuf, frame_off, frame_size, SOLO_MP4E_EXT_ADDR(solo_dev), SOLO_MP4E_EXT_SIZE(solo_dev)); |