Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp124692pxx; Mon, 26 Oct 2020 05:04:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy1/OggUG2WTCzuXTVva6ZSFIfia4kRcGTo8aGgJA6QAAg2zGb9V3cRXEjCYEGHCkrWvGju X-Received: by 2002:a17:906:25cc:: with SMTP id n12mr14927130ejb.488.1603713883734; Mon, 26 Oct 2020 05:04:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603713883; cv=none; d=google.com; s=arc-20160816; b=dvt8C7qaAY5cpRxy79YYQgJwp0RlFmQEG3BbXk+MXtebFeYXajhRnNevr99hTtFNxY yl/y5ZCWcDXAgE+O75ASoaUeY7mba1C2NZj+meJu5OfPn9DUyDRIPw1sZ1Wy31mUwWMo 2gExcTt1HNXLKFgFPl+4HSvyJiyGASmm2lg+4mIuQBIv+/EXa3LPt4oZ402km5UdjYC4 GLyO3MrosWM2MiHVPI5BkOt9xRj7rx8P0hQeKp9CfaYaT8aAck57XNEmBx+M4RkLu9qM DR2yWUEN+OPfmqPxTIcY0w0ZjU5QcKgIRm+MZLDRMf12Pc8/xaPzGocgMxiCfUSiuPTC tgqA== 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=fFEiUvLl06c3j38++d5NzLL6L7leWWZ4E8u91rYq/3A=; b=WQF7KxoQlOvW2DvxOThnLIR7eMpnyWN2fJ1Oo+1ddfalvHvaVKsac+I3D60sQI5RZH vH1sryb9i4yNwy14dkiONO8gZBWMUUbv88lehFW1lmW4TBRV2oZ8VD6QXoifdITcTfjF Y2N3cEwVJXS3NXoF0g+sltz8HzZDEfngiNkCvyXQdsT7CuydlN7W5ug8OFiH2FkeizD3 3KkjrGv/mzxTKmtOm+8FnsWp3JmVn79MEEfQO+kbKFGLKdgybwlv3wUVCnlUHSnOhuyo yamYRR3BAfotZwQt5izcWEhR/MSCkyGHpT+LuBtxiLPgoy1X8OFSZpxWQi7p9iadVYCk BiCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=BE6oxOGm; 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 u15si6477837eje.174.2020.10.26.05.04.14; Mon, 26 Oct 2020 05:04:43 -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=BE6oxOGm; 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 S1772839AbgJZK6p (ORCPT + 99 others); Mon, 26 Oct 2020 06:58:45 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:44220 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1772593AbgJZK6l (ORCPT ); Mon, 26 Oct 2020 06:58:41 -0400 Received: by mail-wr1-f67.google.com with SMTP id t9so11859153wrq.11 for ; Mon, 26 Oct 2020 03:58:39 -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=fFEiUvLl06c3j38++d5NzLL6L7leWWZ4E8u91rYq/3A=; b=BE6oxOGm6LpmFehTBcLW4JPuAVn0ztXRRhPFdKmp1PBfZHMfOH6ZZMUim7N+RidGFG 0CE8UiBULFscc13H0ar8GrDLO4yJ1P0bnnkFlnldicZz6vS1PSOwsA2+DLJdMtAv2h85 Tg25hld8e9Oy330GCD/SQEbTeh0mowIk6eEfA= 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=fFEiUvLl06c3j38++d5NzLL6L7leWWZ4E8u91rYq/3A=; b=HfEWmk6gCm2gxSJWhKDS4iiuF69PYTORMbaEKP7Z0Bs+BRqGfwcGl8eEh6YWq3Y/pJ W0lDFviq+S2Vi+6p1TyMqlwfNqWsaOidaTsbN9CmnpxerbvEsVYYR2ArdNhXC5KXPpgy oVJBlEvqTYlzq/Iw/JbxTUmWdrpiaoIWC4e7DonPgqj7pKElpl0lQgg91uWv0DinRqo3 5qeD9w1LLgaZi+edVt3MTEKt/yga39zxyf3QkjjTULhBxLVoTbSS97wIkYXnA0Zjmjlk sCmNGaNADPs1bnLy79HwWJNtWitXAM+KHLH+fSeH06csEulDe2vDVBoEenDkLiDkNSrO e/IA== X-Gm-Message-State: AOAM532Qlcgw9K9lDgBY+bwU1mUoveUqVCAFnnqYMn0FaZRE0REM5YS5 RMFUw0kR7YrEC7XuukpnBWHdBQ== X-Received: by 2002:a05:6000:12c9:: with SMTP id l9mr16792055wrx.309.1603709918272; Mon, 26 Oct 2020 03:58:38 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id w83sm21165156wmg.48.2020.10.26.03.58.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Oct 2020 03:58:37 -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, linux-s390@vger.kernel.org, Daniel Vetter , 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 , Tomasz Figa , Laurent Dufour , Vlastimil Babka , Daniel Jordan , Michel Lespinasse Subject: [PATCH v4 09/15] media/videbuf1|2: Mark follow_pfn usage as unsafe Date: Mon, 26 Oct 2020 11:58:12 +0100 Message-Id: <20201026105818.2585306-10-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201026105818.2585306-1-daniel.vetter@ffwll.ch> References: <20201026105818.2585306-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"). 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 6590987c14bd..e630494da65c 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