Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp1141616pxx; Fri, 30 Oct 2020 03:12:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzO9DR7Zxy88TKxMX5lNoSjypra+WJ0M7FOZqxM+mQohuTOrLBHStSJGyQU5AfI+Bl6Pw3K X-Received: by 2002:a17:906:2ad3:: with SMTP id m19mr1603727eje.81.1604052751637; Fri, 30 Oct 2020 03:12:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1604052751; cv=none; d=google.com; s=arc-20160816; b=GNfaACKwS6dEgJfFZ+RYux7mBMUz5gZByNjFDoDuI9eCMA/9buMzanIyEdBRUaZxoL OlIepdSwAJfjHdyq5DD/FaRvwYBAKnrq45eBUMuLye3IyU149AIJXguRkcq8uIm6y7uk fl0ID1yz0JgFiVMMmDy09PZbNqiOuqz1PMhQsm3VqxrWhQLUB8cHslM0GJDY+iuKu2pF m1RwlfeRVxFPAjTlnJxeUE5F2FpQBn5RJNKJtwCy+/6fQYPOMtA74eBZZeuYD6PfSdl9 dqe/9owc/oVC148LJ20OrUqHgAasXsP6TqoDRBnIfcE7BSpsVPrisvDOSQXjK29+Yr6Z LNsw== 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=m0CY9Rbr42q+4kNNTVsBTqYTrcmWIBY8OlDR+PQ4LSY=; b=Z9Q2OpblV+s48bzuJpAxdfHMiodyrNA6gXSpWGPoGwIMggV4zek+UX+0vUh6YcSDz7 a+8lUHIRiCGG2QTNhpUgVMhYBt1v2ZNoCOf2BRkwgNyLLKXLBEdsn34TuszoEChWEmf9 4DSAPomxOn24XTuQyvcB/Y1Lrav69ZtNg5asbo6k2mJj4yqQeYSKOBQTyhLu1K6aCyfr RtxCmvbLeXIa+o/zNutWefO/+fpnIfW01HA4db0pGGF+TCIKpbe7RaANVtwJhQDqhaWM z76AtJvsNVtBMvixdgwVYmBe0iK44sHW4qOSbHAOLgzzJAPAvDkTMtcJONEeoss6pxZ8 XhhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=TCm1S5Q7; 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 g8si4254562edn.330.2020.10.30.03.12.08; Fri, 30 Oct 2020 03:12:31 -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=TCm1S5Q7; 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 S1726255AbgJ3KKI (ORCPT + 99 others); Fri, 30 Oct 2020 06:10:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50374 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726424AbgJ3KIw (ORCPT ); Fri, 30 Oct 2020 06:08:52 -0400 Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 02DD2C0613D5 for ; Fri, 30 Oct 2020 03:08:52 -0700 (PDT) Received: by mail-wr1-x443.google.com with SMTP id w14so5782114wrs.9 for ; Fri, 30 Oct 2020 03:08:51 -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=m0CY9Rbr42q+4kNNTVsBTqYTrcmWIBY8OlDR+PQ4LSY=; b=TCm1S5Q7agrMsYkVTr7D/78UXLblZmPqCiWDzvPwYxD9GCU1GNc8Jjvxv5svMDEe6v bkYAumdxmSMbSz/KtmN4VJ6fYcfYHsikuHnOoHLDbTMb+p4tqzZuBTIgrbDMQOuqzhBn cumsnxGZIRqSCkE4bbQitc4OwUhZCXYmYGs/4= 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=m0CY9Rbr42q+4kNNTVsBTqYTrcmWIBY8OlDR+PQ4LSY=; b=GkQ5eRWQt48TmLTsyMna/z4OOtNzC6MsnXIc06Dhx/Te0rhAfQ/xCDIJnznTNAJd2G tbeOfxTCrZV6JUcMprIySS8Iv394CrObi6nOHMYe769l1ys2iPPWsDWTXeRKVzPiU98Q FvjRBfSAz+YRYss7MdzlTHolkX/r5V8WNAvI/z8g7l3jPAY6lCWb24gL29aEdayQ1PYs 7Q34jxP0QcUM+gY7Z3HrabPNb1B1nbtbLTX76jH9Y+8oRP3wQwzp1OC+6fNirH/UOon6 IUWS79Zqcs8Gg+cfUOEhgQpcJXXa2QZHQY1HsWKEgc27ZqOjJbxTIcZi4jdX0RlKYLet pNJQ== X-Gm-Message-State: AOAM532oOKR+cuhx1oKsDxvXwJPmt2g/8J9rwBrz4sE55a0/JKeFdKmt gUDb0hfwSxhM9bA5LDPAOxDuYA== X-Received: by 2002:adf:db03:: with SMTP id s3mr2209689wri.152.1604052530739; Fri, 30 Oct 2020 03:08:50 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id v189sm4430947wmg.14.2020.10.30.03.08.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2020 03:08:49 -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 , 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 v5 09/15] media/videbuf1|2: Mark follow_pfn usage as unsafe Date: Fri, 30 Oct 2020 11:08:09 +0100 Message-Id: <20201030100815.2269-10-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201030100815.2269-1-daniel.vetter@ffwll.ch> References: <20201030100815.2269-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 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.28.0