mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-22 02:20:40 +00:00
media: videobuf2: Fix IS_ERR checking in vb2_vmalloc_put_userptr()
In order to avoid error pointers from frame_vector_pages(), we could use IS_ERR() to check the return value to fix this. This checking operation could make sure that vector contains pages. Signed-off-by: Ma Ke <make_ruc2021@163.com> Acked-by: Tomasz Figa <tfiga@chromium.org> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> [hverkuil: add space between ){] Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
parent
be521bf7bf
commit
feec1b29d7
1 changed files with 6 additions and 4 deletions
|
@ -133,13 +133,15 @@ static void vb2_vmalloc_put_userptr(void *buf_priv)
|
|||
|
||||
if (!buf->vec->is_pfns) {
|
||||
n_pages = frame_vector_count(buf->vec);
|
||||
pages = frame_vector_pages(buf->vec);
|
||||
if (vaddr)
|
||||
vm_unmap_ram((void *)vaddr, n_pages);
|
||||
if (buf->dma_dir == DMA_FROM_DEVICE ||
|
||||
buf->dma_dir == DMA_BIDIRECTIONAL)
|
||||
for (i = 0; i < n_pages; i++)
|
||||
set_page_dirty_lock(pages[i]);
|
||||
buf->dma_dir == DMA_BIDIRECTIONAL) {
|
||||
pages = frame_vector_pages(buf->vec);
|
||||
if (!WARN_ON_ONCE(IS_ERR(pages)))
|
||||
for (i = 0; i < n_pages; i++)
|
||||
set_page_dirty_lock(pages[i]);
|
||||
}
|
||||
} else {
|
||||
iounmap((__force void __iomem *)buf->vaddr);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue