Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp4804494pxu; Wed, 21 Oct 2020 05:58:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwnmwAB98QT4iFEZNLv6qZoW1AHitHRRArSJW6eLn+YJih+GwLlvhj8vtonhhInrxyEZPb3 X-Received: by 2002:a17:906:c1d4:: with SMTP id bw20mr3343636ejb.91.1603285110752; Wed, 21 Oct 2020 05:58:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603285110; cv=none; d=google.com; s=arc-20160816; b=TcpnQwfiaZ/W4fZYssVO8EiLZt7DWursJfxtMl/1gcLj98UNqKkze5Nm7hOFMb6Q76 uZoNQ49D8QWH4GHdofr89i1bpXTxDPovJsg5Wk59oPWalSY21UQfPVEgDx5xj3ej/rkQ mQUO/HrOqC24Dig28UylSDvxrmutm5r2B/qVYKReS82K2LTwCZKmNuQT8Uexpx/QEGUW 3QsobQoRtkHSGkpgvWMkZWgBQdP7ScpBrZMwXzQg7hmRZXu6dDmASemzYPkD/cQ4IV1Q N6yoHn/dKorwERlmcF//UW58LxiwpkzVeqDupH3yVxcZB5MXIYqvdsUL7LxVvY1mNuUp yW+w== 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=62xo6Yc+okj8E3g2nExt24JkphJyecIdIYx1MX/KcgQ=; b=EToHSso3+ec3+m+CVyLHRYUAUCiGfVND5evS6tidtK7XNG8MzqfbdRpJ6+OTxR7XtK t+0XzeQWHW9dyzFNbyA9jEAPcnjkQoDMLp4bTuNTWpHJs39yj4K8zFNlMmT3Iak6EWL7 YPiEl6Nj6DwY6ATdLpSqyBy6P3Cx+0E31InpHcB5ac6WpQYmX6hphRNyrI/80wc+Gg7x xLBkndLXwv3ZA07Zq2AxuFRM0h86fLfgb0O+a6Au2+0P+JBomgjop6w/M6xg5bKC1n7y XMASwUeDjt7rGzEaQDXYvQid/K4jx4SWWQFNHLpdn8cPGxqRKoJf6IqscbdVEjlkIIzu RoKA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=K873XhCK; 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 qn8si1332975ejb.74.2020.10.21.05.58.07; Wed, 21 Oct 2020 05:58:30 -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=K873XhCK; 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 S2502401AbgJUI50 (ORCPT + 99 others); Wed, 21 Oct 2020 04:57:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2502348AbgJUI5T (ORCPT ); Wed, 21 Oct 2020 04:57:19 -0400 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6662DC0613D7 for ; Wed, 21 Oct 2020 01:57:18 -0700 (PDT) Received: by mail-wr1-x441.google.com with SMTP id n6so2011046wrm.13 for ; Wed, 21 Oct 2020 01:57:18 -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=62xo6Yc+okj8E3g2nExt24JkphJyecIdIYx1MX/KcgQ=; b=K873XhCKhky8xYu7l9PH0L4vvRQ8W4kOqwGB7em4FSZU/FH2w3o/Fs6+QECyRAghOu 8q8OodzeuuFUxMzw/vVk1/yMCBxwVGl1BeYckPl4pNsKxDrGH6PmKMHuJ2X/ASVVgbzy 2gMkhgZs8aQVpZ+fDa84ImMGzU1FdBr7OgsW4= 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=62xo6Yc+okj8E3g2nExt24JkphJyecIdIYx1MX/KcgQ=; b=Wj+SJBWvGLRBaUYDnkWQW/Vd/mzuINV6MxOSnWMzto0Ol5nLzPH9XiYQRWw6xEX3zM KWW8x3OOdsw02TbNIcsUdCTDrJbzsNRdz3ohS97TDoJO3fyqKkfL24YFrf2l9JXs11QO rJbyhmLmpGwPyXvwYFqhLmplMC7PQPP1jK6vRsDCGw0qZxpn9TbqtwusW9jP5dJN5oc9 NxQT7SgcdOOADpf6lPTKQU3v8xeFCINkGHKd4UK69T6XJy2N1tOwdUBHi9oCczgZI3II ZSbk2Aw8lhCN/yH62s/EBP5aDLbLEYhsgycLTHqn3De7c8W8mOtSeAJHehegfOEwsiZw IeFg== X-Gm-Message-State: AOAM530yDEyf8xK53bzlrj6CYZDwLoqDlcYD8YIo5xBFMi3HO2rcSAR8 S/e0oFEBgusWmNCQdDYbtSOwmg== X-Received: by 2002:a5d:480a:: with SMTP id l10mr3285006wrq.238.1603270637190; Wed, 21 Oct 2020 01:57:17 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id q8sm2675939wro.32.2020.10.21.01.57.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Oct 2020 01:57:16 -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 , Daniel Vetter Subject: [PATCH v3 10/16] media/videbuf1|2: Mark follow_pfn usage as unsafe Date: Wed, 21 Oct 2020 10:56:49 +0200 Message-Id: <20201021085655.1192025-11-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201021085655.1192025-1-daniel.vetter@ffwll.ch> References: <20201021085655.1192025-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