The media model assumes that buffers are all preallocated, so that when a media pipeline is running we never miss a deadline because the buffers aren't allocated or available.
This means we cannot fix the v4l follow_pfn usage through mmu_notifier, without breaking how this all works. The only real fix is to deprecate userptr support for VM_IO | VM_PFNMAP mappings and tell everyone to cut over to dma-buf memory sharing for zerocopy. userptr for normal memory will keep working as-is. Signed-off-by: Daniel Vetter <daniel.vet...@intel.com> Cc: Jason Gunthorpe <j...@ziepe.ca> Cc: Kees Cook <keesc...@chromium.org> Cc: Dan Williams <dan.j.willi...@intel.com> Cc: Andrew Morton <a...@linux-foundation.org> Cc: John Hubbard <jhubb...@nvidia.com> Cc: Jérôme Glisse <jgli...@redhat.com> Cc: Jan Kara <j...@suse.cz> Cc: Dan Williams <dan.j.willi...@intel.com> Cc: linux...@kvack.org Cc: linux-arm-ker...@lists.infradead.org Cc: linux-samsung-...@vger.kernel.org Cc: linux-me...@vger.kernel.org Cc: Pawel Osciak <pa...@osciak.com> Cc: Marek Szyprowski <m.szyprow...@samsung.com> Cc: Kyungmin Park <kyungmin.p...@samsung.com> Cc: Tomasz Figa <tf...@chromium.org> Cc: Laurent Dufour <lduf...@linux.ibm.com> Cc: Vlastimil Babka <vba...@suse.cz> Cc: Daniel Jordan <daniel.m.jor...@oracle.com> Cc: Michel Lespinasse <wal...@google.com> --- drivers/media/common/videobuf2/frame_vector.c | 2 +- drivers/media/v4l2-core/videobuf-dma-contig.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/common/videobuf2/frame_vector.c b/drivers/media/common/videobuf2/frame_vector.c index 2b0b97761d15..a1b85fe9e7c1 100644 --- a/drivers/media/common/videobuf2/frame_vector.c +++ b/drivers/media/common/videobuf2/frame_vector.c @@ -69,7 +69,7 @@ int get_vaddr_frames(unsigned long start, unsigned int nr_frames, break; while (ret < nr_frames && start + PAGE_SIZE <= vma->vm_end) { - err = follow_pfn(vma, start, &nums[ret]); + err = unsafe_follow_pfn(vma, start, &nums[ret]); if (err) { if (ret == 0) ret = err; diff --git a/drivers/media/v4l2-core/videobuf-dma-contig.c b/drivers/media/v4l2-core/videobuf-dma-contig.c index 52312ce2ba05..821c4a76ab96 100644 --- a/drivers/media/v4l2-core/videobuf-dma-contig.c +++ b/drivers/media/v4l2-core/videobuf-dma-contig.c @@ -183,7 +183,7 @@ static int videobuf_dma_contig_user_get(struct videobuf_dma_contig_memory *mem, user_address = untagged_baddr; while (pages_done < (mem->size >> PAGE_SHIFT)) { - ret = follow_pfn(vma, user_address, &this_pfn); + ret = unsafe_follow_pfn(vma, user_address, &this_pfn); if (ret) break; -- 2.28.0 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel