| From 67f85135c57c8ea20b5417b28ae65e53dc2ec2c3 Mon Sep 17 00:00:00 2001 |
| From: Sergey Senozhatsky <senozhatsky@chromium.org> |
| Date: Tue, 28 Sep 2021 04:46:34 +0100 |
| Subject: media: videobuf2: always set buffer vb2 pointer |
| |
| From: Sergey Senozhatsky <senozhatsky@chromium.org> |
| |
| commit 67f85135c57c8ea20b5417b28ae65e53dc2ec2c3 upstream. |
| |
| We need to always link allocated vb2_dc_buf back to vb2_buffer because |
| we dereference vb2 in prepare() and finish() callbacks. |
| |
| Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org> |
| Tested-by: Chen-Yu Tsai <wenst@chromium.org> |
| Acked-by: Tomasz Figa <tfiga@chromium.org> |
| Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/media/common/videobuf2/videobuf2-dma-contig.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c |
| +++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c |
| @@ -497,6 +497,7 @@ static void *vb2_dc_get_userptr(struct v |
| |
| buf->dev = dev; |
| buf->dma_dir = vb->vb2_queue->dma_dir; |
| + buf->vb = vb; |
| |
| offset = lower_32_bits(offset_in_page(vaddr)); |
| vec = vb2_create_framevec(vaddr, size); |
| @@ -683,6 +684,8 @@ static void *vb2_dc_attach_dmabuf(struct |
| return ERR_PTR(-ENOMEM); |
| |
| buf->dev = dev; |
| + buf->vb = vb; |
| + |
| /* create attachment for the dmabuf with the user device */ |
| dba = dma_buf_attach(dbuf, buf->dev); |
| if (IS_ERR(dba)) { |