OSDN Git Service

media: tw686x: Fix incorrect vb2_mem_ops GFP flags
authorEzequiel Garcia <ezequiel@collabora.com>
Fri, 18 May 2018 21:07:48 +0000 (17:07 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Aug 2018 05:55:17 +0000 (07:55 +0200)
[ Upstream commit 636757ab6c93e19e2f58d3b3af1312e34eaffbab ]

When the driver is configured in the "memcpy" dma-mode,
it uses vb2_vmalloc_memops, which is backed by a SLAB
allocator and so shouldn't be using GFP_DMA32.

Fix it.

Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/pci/tw686x/tw686x-video.c

index c3fafa9..0ea8dd4 100644 (file)
@@ -1228,7 +1228,8 @@ int tw686x_video_init(struct tw686x_dev *dev)
                vc->vidq.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
                vc->vidq.min_buffers_needed = 2;
                vc->vidq.lock = &vc->vb_mutex;
-               vc->vidq.gfp_flags = GFP_DMA32;
+               vc->vidq.gfp_flags = dev->dma_mode != TW686X_DMA_MODE_MEMCPY ?
+                                    GFP_DMA32 : 0;
                vc->vidq.dev = &dev->pci_dev->dev;
 
                err = vb2_queue_init(&vc->vidq);