Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp4445222pxf; Tue, 16 Mar 2021 13:45:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw9EyAJ+cXmDyqwlyIS5k1AlylkouzHOIwvb7ZB/sf9fVmhAKHgzyVgofuixSaHKGvxfW/6 X-Received: by 2002:a17:906:170f:: with SMTP id c15mr31379300eje.358.1615927505333; Tue, 16 Mar 2021 13:45:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615927505; cv=none; d=google.com; s=arc-20160816; b=qaqJ+xbWyKv0fNQHk2EhPg1Nx2kFkgND5mK/+iYNTlaqBCWZSeriOcgPxGO56LPUWl WQhMIsCoB+TVe9b14UuzkvEBsEJDA793axAnDJmkxKGUxuTsvPmK9VlOi1ZXoHJh/n7Y hsUQUNghddnjUPokqpg/YHkF5sM52bZZ1oD4Nh36ChkzURgeRd2zSXWVsgocNjV1x1QV M2CF4FbOaxBQnxsEzt4GhBmhLV9offPpMcp1RT4YBS6ZZuPYul9O34S5J7RffcKp7AUf KRSuxLy8Bp28yRPZhr5NtmSpRTQ91AKZV3ihMniAcqFLc1qqrVfp3XmcrOgK9LEs6dj/ rxqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=tAmsDn5BdzFpIsfSDcu5mIHmvLYc/wJQn0BecfxLgl0=; b=foOlmtjKX/cfmz6ZyR5PJSgasKuMppgb//U5YwmIfbInAc0zFEnx8PEyAZjr7HsaOr dDbDKJkmz+2v2M9Mtpif1KTgNBttFgtX7qH/dOi/+RFsakFf7n6vs6Xk8s29i+u/mGei Wm6cdxo0flTUzy5MyFlnjjz6Eme1QMZKW61ffH4KuYqnPHeKqsFuk6Q/yoVOymx2PaK+ BdYxG/xw/z2iAqnO4Gb/g864MGDpjSx+ScdPwmRgMxCtqJnY0BlnLxZk1vF4O+nFessU VTSK8mlnrMOEopIEeU8iv0+TOoSmIwnF5FEcKZeAJrG8ogJlhWFIWBU6Q1WyUbtMCCPE Avng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=ME4sGumF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e1si7861040ejx.431.2021.03.16.13.44.39; Tue, 16 Mar 2021 13:45:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=ME4sGumF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238151AbhCPPd6 (ORCPT + 99 others); Tue, 16 Mar 2021 11:33:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36884 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238104AbhCPPdQ (ORCPT ); Tue, 16 Mar 2021 11:33:16 -0400 Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BD989C061762 for ; Tue, 16 Mar 2021 08:33:15 -0700 (PDT) Received: by mail-wm1-x32b.google.com with SMTP id g8so10349311wmd.4 for ; Tue, 16 Mar 2021 08:33:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tAmsDn5BdzFpIsfSDcu5mIHmvLYc/wJQn0BecfxLgl0=; b=ME4sGumFgKYUCqwSU9ZCBXBRBDOTgxTwFtahv+NVAVJHr+fD8AUrznH+V7FRtA8gOj B+CFMjnx7WbKUqyhiMCsTbXLvmFggAn1SQaPCFAka4KTPpVgwdX/WNFBVl3rpTLAziJj STDnUtNyyxJvOuElf8oAxewCR7SdYgUMXzeAE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tAmsDn5BdzFpIsfSDcu5mIHmvLYc/wJQn0BecfxLgl0=; b=oOsPwDfS7J9Tv6WMSzlwnonTm4sIEnULL594jAqjajhzJgwdPE+AhK0LwvUouDc92t jJ9mbx+bJ7RRB5XfPFSFY6xPnZ9wUr1OQgIbxNhO8eTKeHJaBkXnzmSmoqO3MJBwaRt6 zb9mgFCIXnFjDrydhoQXtnGF2Z+0mn+pEehMIDUUS6f8vzIqz4rc9qOx6RJebJ35stpV hgcDJj0y8zXvqJQCxkVmUvONN5kkCDOkHHlC8j4zwqRwPvGH2NniJxjt+Ow+QBaKxXfF 0I3K6IG2UGhkYHqvownfA294AurZLyiwrQoiCOvLbIbUKEp4s9x4WMSMxbkaVXFOnzNS QpdQ== X-Gm-Message-State: AOAM530J16WpHGq1uvPPgSLJy9WbdC+MoZCX6Pw3hhb1+gQ8zGb3cMli MPb/Puphj8eBXozmKCFfpH9ZNQ== X-Received: by 2002:a05:600c:4a06:: with SMTP id c6mr209965wmp.35.1615908794565; Tue, 16 Mar 2021 08:33:14 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id h22sm3985078wmb.36.2021.03.16.08.33.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Mar 2021 08:33:14 -0700 (PDT) From: Daniel Vetter To: DRI Development , LKML Cc: kvm@vger.kernel.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-media@vger.kernel.org, Daniel Vetter , Tomasz Figa , Hans Verkuil , Daniel Vetter , Jason Gunthorpe , Kees Cook , Dan Williams , Andrew Morton , John Hubbard , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Jan Kara , Pawel Osciak , Marek Szyprowski , Kyungmin Park , Laurent Dufour , Vlastimil Babka , Daniel Jordan , Michel Lespinasse Subject: [PATCH 2/3] media/videobuf1|2: Mark follow_pfn usage as unsafe Date: Tue, 16 Mar 2021 16:33:02 +0100 Message-Id: <20210316153303.3216674-3-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210316153303.3216674-1-daniel.vetter@ffwll.ch> References: <20210316153303.3216674-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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, this only affects the zerocopy userptr usage enabled in 50ac952d2263 ("[media] videobuf2-dma-sg: Support io userptr operations on io memory"). Acked-by: Tomasz Figa Acked-by: Hans Verkuil Signed-off-by: Daniel Vetter Cc: Jason Gunthorpe Cc: Kees Cook Cc: Dan Williams Cc: Andrew Morton Cc: John Hubbard Cc: Jérôme Glisse Cc: Jan Kara Cc: Dan Williams Cc: linux-mm@kvack.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Cc: linux-media@vger.kernel.org Cc: Pawel Osciak Cc: Marek Szyprowski Cc: Kyungmin Park Cc: Tomasz Figa Cc: Laurent Dufour Cc: Vlastimil Babka Cc: Daniel Jordan Cc: Michel Lespinasse Signed-off-by: Daniel Vetter -- v3: - Reference the commit that enabled the zerocopy userptr use case to make it abundandtly clear that this patch only affects that, and not normal memory userptr. The old commit message already explained that normal memory userptr is unaffected, but I guess that was not clear enough. --- 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 a0e65481a201..1a82ec13ea00 100644 --- a/drivers/media/common/videobuf2/frame_vector.c +++ b/drivers/media/common/videobuf2/frame_vector.c @@ -70,7 +70,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.30.0