|
@@ -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;
|