[media] videobuf_pages_to_sg: sglist[0] length problem
On function videobuf_pages_to_sg the statement sg_set_page(&sglist[0], pages[0], PAGE_SIZE - offset, offset) will fail if size is less than PAGE_SIZE. Signed-off-by: Newson Edouard <newsondev@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
4bbcd849b0
commit
45f239ab82
|
@ -108,8 +108,9 @@ static struct scatterlist *videobuf_pages_to_sg(struct page **pages,
|
|||
if (PageHighMem(pages[0]))
|
||||
/* DMA to highmem pages might not work */
|
||||
goto highmem;
|
||||
sg_set_page(&sglist[0], pages[0], PAGE_SIZE - offset, offset);
|
||||
size -= PAGE_SIZE - offset;
|
||||
sg_set_page(&sglist[0], pages[0],
|
||||
min_t(size_t, PAGE_SIZE - offset, size), offset);
|
||||
size -= min_t(size_t, PAGE_SIZE - offset, size);
|
||||
for (i = 1; i < nr_pages; i++) {
|
||||
if (NULL == pages[i])
|
||||
goto nopage;
|
||||
|
|
Loading…
Reference in a new issue