diff options
Diffstat (limited to 'drivers/media/v4l2-core/videobuf2-dma-sg.c')
-rw-r--r-- | drivers/media/v4l2-core/videobuf2-dma-sg.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/media/v4l2-core/videobuf2-dma-sg.c b/drivers/media/v4l2-core/videobuf2-dma-sg.c index 2f860543912c..0d3a8ffe47a3 100644 --- a/drivers/media/v4l2-core/videobuf2-dma-sg.c +++ b/drivers/media/v4l2-core/videobuf2-dma-sg.c | |||
@@ -178,7 +178,7 @@ static void *vb2_dma_sg_get_userptr(void *alloc_ctx, unsigned long vaddr, | |||
178 | buf->pages = kzalloc(buf->num_pages * sizeof(struct page *), | 178 | buf->pages = kzalloc(buf->num_pages * sizeof(struct page *), |
179 | GFP_KERNEL); | 179 | GFP_KERNEL); |
180 | if (!buf->pages) | 180 | if (!buf->pages) |
181 | return NULL; | 181 | goto userptr_fail_alloc_pages; |
182 | 182 | ||
183 | num_pages_from_user = get_user_pages(current, current->mm, | 183 | num_pages_from_user = get_user_pages(current, current->mm, |
184 | vaddr & PAGE_MASK, | 184 | vaddr & PAGE_MASK, |
@@ -204,6 +204,7 @@ userptr_fail_get_user_pages: | |||
204 | while (--num_pages_from_user >= 0) | 204 | while (--num_pages_from_user >= 0) |
205 | put_page(buf->pages[num_pages_from_user]); | 205 | put_page(buf->pages[num_pages_from_user]); |
206 | kfree(buf->pages); | 206 | kfree(buf->pages); |
207 | userptr_fail_alloc_pages: | ||
207 | kfree(buf); | 208 | kfree(buf); |
208 | return NULL; | 209 | return NULL; |
209 | } | 210 | } |