Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp1813711pxu; Fri, 27 Nov 2020 16:26:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJwbhrWP4Fj2OXkw9FW+gZcbLptWQerz+xYHxutxWuVeG4tpgy4jfsFSmHmlu6FZHLsXV8lW X-Received: by 2002:a17:906:26c6:: with SMTP id u6mr10211577ejc.349.1606523166669; Fri, 27 Nov 2020 16:26:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606523166; cv=none; d=google.com; s=arc-20160816; b=oBvHJovS4lMOGVoD2Ju7cCfW0xebZ/E5dA0DsOQFxNlkbQs8s5f/2MaKSQlN6b7065 i4mYd3Pt6T2boT9l1nhEzCFm+d5NeDQLRiXCDgvAVRLGjpxHbxyVkBCg3BPxO9lDScwx 7oUH4LTPI+iX1IJVh0J+l0dTLkB4FJeRuUStJBJIimROVWd5mtrqWYptqUzuYOmhd6/K ZLv9oM43NVJm1QbUqg2dCZMeimrxKcPInympUndmEfgQudF4U+dgFmoxQ3G5K+mowyYe 9vgXTHotR/A38IFvNyca4T6TCIhIsODaIx3AqZ71CV48oEWAw6VhTVvsG87mSCD+wZgd Ovyw== 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=BPpebch13YhiVnp0IIh0dviRE5BWGvg35r91rkcoUQ8=; b=LP7UXt2MQ54xU+otsPu0WsYe4v7kVtsmNbQTauApNCLrWlr0cMPoPE5+XpBGB0KOhq 2r4fkIG25oULXUcWbUy+b6AnTB0a5gQ/3UEp5AMN5xGkFtvelPCvG2I4oQCX47ScWIEF IHmgKC3rTRmjYXC1FyFlUKQEm+6Lu413y/rto0b0DKbqJQ4uKWfLwhhtdoYRO/mLJIxq l53cq6/b/21M4fZ3TJJ85VJdU5dDMbG5DAqxP0X1rrtvjw61tioYPM4AKSCFJVuWm+sz NKkPv/bFYwBW568aiVfkau9wXu4fJTm0+esXETS+w/E2pivcfTRROIlzmm+Fz6qbtW4N /XXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=UdfuUiyL; 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 hd32si6130576ejc.160.2020.11.27.16.25.43; Fri, 27 Nov 2020 16:26:06 -0800 (PST) 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=UdfuUiyL; 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 S1732037AbgK0Qmf (ORCPT + 99 others); Fri, 27 Nov 2020 11:42:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54072 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731890AbgK0QmS (ORCPT ); Fri, 27 Nov 2020 11:42:18 -0500 Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BB07EC061A47 for ; Fri, 27 Nov 2020 08:42:17 -0800 (PST) Received: by mail-wr1-x442.google.com with SMTP id s8so6185596wrw.10 for ; Fri, 27 Nov 2020 08:42:17 -0800 (PST) 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=BPpebch13YhiVnp0IIh0dviRE5BWGvg35r91rkcoUQ8=; b=UdfuUiyL9zVaZNoEd7CmWhkKrdsSAuB1DVT5XHR7CrlA5nhTEWInYppse02PjPc4Yi DkuS7B3q4Hio3DsYDg2teg7Ek0grF7iXH0QJVpnAt2UFzSQvjdPZloVznrc9uuKp5tQx CYqnHkdUS14/phlJoRVmiyHTnRlL9+CubKHZI= 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=BPpebch13YhiVnp0IIh0dviRE5BWGvg35r91rkcoUQ8=; b=k/9btNMLIUi9QepG/t4VeI+bhgt5m7w29l+zhXe3SAZpA5X7ywT42J6ztbuSS2lW5x 5dPzh5wYf/VbCA/o+b7Twstng57OYYmra8HrGIv/cK10uVg0IxlnIKtFAaZcASujCtN1 i6nD64NO7+y+e1mjcHeBVKawUwsyq3uvOXAWZLoYDOsYj513SvMNrgejIT+S+OOMep4H WV5RrMZQXkJ3dVJOBsLgzwk4QM6Qtxy35gG3GMudOIGt35ha4x7ZpXcb5WkDU9/PZUjs dpvk452gl32IgtM8srUn5SBWP6KHk6cIXLFOMOtNXcjEuF6GGDrQgnM6prdzg5lT6gnp hZlQ== X-Gm-Message-State: AOAM5306qGBYdtFFq2mZmbXjk1Ds7xWCLMoSmCEpt0+ysLJvOS2n1dde 8glCjULLNfIpQaxWWC/4/LbGMw== X-Received: by 2002:adf:fd0d:: with SMTP id e13mr11431089wrr.85.1606495336488; Fri, 27 Nov 2020 08:42:16 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id q12sm14859078wrx.86.2020.11.27.08.42.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Nov 2020 08:42:15 -0800 (PST) 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 v7 14/17] media/videobuf1|2: Mark follow_pfn usage as unsafe Date: Fri, 27 Nov 2020 17:41:28 +0100 Message-Id: <20201127164131.2244124-15-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201127164131.2244124-1-daniel.vetter@ffwll.ch> References: <20201127164131.2244124-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.29.2