From patchwork Mon Apr 28 07:38:29 2025
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Huan Yang
X-Patchwork-Id: 885657
Received: from HK3PR03CU002.outbound.protection.outlook.com
(mail-eastasiaazon11011025.outbound.protection.outlook.com [52.101.129.25])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5CFD01A7045;
Mon, 28 Apr 2025 07:40:55 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
arc=fail smtp.client-ip=52.101.129.25
ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
t=1745826058; cv=fail;
b=BOqCEZ7De5rkLJLWQa/J9CUWrWxlj9VR1D1ASBFe/s1n1JAaL5CRhrbmjQcpH1rA4uKnLkxw8sTQ1oZRZN7rRf6kFgQdYZg5pGkg8wjdtXk7/34D5LU/65DNankfw9JqNWTIfLopsEt0rBYgoxtsjDwst6auebfgyYSkRGKLmN4=
ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org;
s=arc-20240116; t=1745826058; c=relaxed/simple;
bh=8gX0FsV4qlNTlBK/392kgP7jn9peKY5dJ/OFs/I73So=;
h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:
Content-Type:MIME-Version;
b=Vdw8LIplXVqxqsk6lrzns0LQRlMzeGiLap3djltXlrNszkgw5VhCYdFM9At4cBlJOGTt3+hXyR8NsjU/2t/NdGs6cTM4likL2IJEwFr1ifh0pXknP2fhZqrZ1x7zWZ7UHvadjOSX9UWwBxxTdq4JHnB/CLGjdRlLO1NSOiCGkPk=
ARC-Authentication-Results: i=2; smtp.subspace.kernel.org;
dmarc=pass (p=quarantine dis=none) header.from=vivo.com;
spf=pass smtp.mailfrom=vivo.com;
dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com
header.b=jZVxGIjL; arc=fail smtp.client-ip=52.101.129.25
Authentication-Results: smtp.subspace.kernel.org;
dmarc=pass (p=quarantine dis=none) header.from=vivo.com
Authentication-Results: smtp.subspace.kernel.org;
spf=pass smtp.mailfrom=vivo.com
Authentication-Results: smtp.subspace.kernel.org;
dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com
header.b="jZVxGIjL"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
b=ioFguwV37/FABB2LOaI06/CaB7CaqUNQnbnisgG3eEBWueFT0c3VBe7QwpgGOZlUllu2y81LrBbF0wwiPhiOubN68fo3xXzdHPOH1xD4WBNbyOGcN7Yonu5V8kTTjobnmZ2k/Aao0H3GhQfXxankxpJMYZS9x/bpYCRqdOfGzM8rhS9zUM/IUubTb8pH1FSfVsW0qa8mt3vVauL0hu0qJ5QmdoQMHe8EBwHGLX5yrzjJPFfpXOvmkAV9vtNyUB/DN+dcaOwx+UweVzdL3695Wg5p3VnhKZq4oiVPLm1hrcokQ3o7cUNScOhVGWvFiylAnAEdyQwNc28sUES8o8A9WA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
s=arcselector10001;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
bh=U46C7+zfXZfeRyQIoCGJYfchuHBaajWgN5LgDUiKkwU=;
b=c3NhS+KJ2Yy7mxyq8qWknx3wsQukS8dq8Or3Yjrv3FcXQRGqeWmISXjRkg7MYwi1CkwAyk/3oWsa/lwy7V+fvsf0kY/eDfTulBjzzkhrsmOLcvCTgfjCnPp8UPLkdEaWALonghmlsew4r7BfF2fZ+ogik0ZdM4W256rf9PKyQ8DCapVH2W78XaY4L1/unKxnqQAciIVW3+v3lRnAgZoatMpJweeBzQ3egn5Who0MG8lp6CBfFhLd2vRcOsHufme0K62cRi3xnrib9zcZhVnxPKfDm+yqplsLUp9QEOys2qnI+kr5KvZgyLzqIlCuHEB61diyPsuMSTSVqkxZwlsbpw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com;
dkim=pass header.d=vivo.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
bh=U46C7+zfXZfeRyQIoCGJYfchuHBaajWgN5LgDUiKkwU=;
b=jZVxGIjL7RGvu/Yr2cmuIlK1Ft96J1wuBWj18KKLI4x6ogLayrQ2X8v7z6mLeHF9VHa4OFnTrqVqVpjCpjqurqNhwLkeShYMXnhwhy9Y6TRPhrO1DXXDCBr8BwPWciZlxAQKxgBJrzIwf46f71AFFBCHT2Vt9HvLT14GDpWwhvWBgStCiTPm2khKTgMsQHR7lSWri/sHZGyCyW7jIWFL5wTLvDgC3TShjBnWE58dEla3vcUwU/peLnaHSAOLv5P2tldGhHWDgYxGmC4vZfFE6FCC4SkweaKP3LsOQoWm0b/KFMzyVSG0InnphecHylND950Jjj8oiNt/eQZJ2x7dww==
Authentication-Results: dkim=none (message not signed)
header.d=none;dmarc=none action=none header.from=vivo.com;
Received: from PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10)
by TYZPR06MB7093.apcprd06.prod.outlook.com (2603:1096:405:ac::10)
with Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Mon, 28 Apr
2025 07:40:51 +0000
Received: from PUZPR06MB5676.apcprd06.prod.outlook.com
([fe80::a00b:f422:ac44:636f]) by PUZPR06MB5676.apcprd06.prod.outlook.com
([fe80::a00b:f422:ac44:636f%7]) with mapi id 15.20.8678.028; Mon, 28 Apr 2025
07:40:50 +0000
From: Huan Yang
To: Sumit Semwal ,
=?utf-8?q?Christian_K=C3=B6nig?= ,
Gerd Hoffmann ,
Vivek Kasireddy ,
Dave Airlie , Andrew Morton ,
linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org,
linaro-mm-sig@lists.linaro.org, linux-kernel@vger.kernel.org
Cc: opensource.kernel@vivo.com, Huan Yang ,
Bingbu Cao
Subject: [PATCH v2 1/2] Revert "udmabuf: fix vmap_udmabuf error page set"
Date: Mon, 28 Apr 2025 15:38:29 +0800
Message-ID: <20250428073831.19942-2-link@vivo.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250428073831.19942-1-link@vivo.com>
References: <20250428073831.19942-1-link@vivo.com>
X-ClientProxiedBy: SI2PR01CA0013.apcprd01.prod.exchangelabs.com
(2603:1096:4:191::9) To PUZPR06MB5676.apcprd06.prod.outlook.com
(2603:1096:301:f8::10)
Precedence: bulk
X-Mailing-List: linux-media@vger.kernel.org
List-Id:
List-Subscribe:
List-Unsubscribe:
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PUZPR06MB5676:EE_|TYZPR06MB7093:EE_
X-MS-Office365-Filtering-Correlation-Id: 5cdcdce9-b8cb-41fe-9d3c-08dd8627ff9a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
ARA:13230040|366016|1800799024|7416014|376014|52116014|38350700014|921020;
X-Microsoft-Antispam-Message-Info: xK25BAjJj4fRW7ZKcZMupvU3BwrGwMYrJiBjDh6vXKjK0wOr+9bQDj3PIi/Qd7i6mmh6pU6mUGgrtPDrS9V7R/9qlvzd61ydCf4kVCX6g4b3bvRFwWm4K8L+8HbwrtJBsq9A+UONvF0JlNmnG3Kyxqx5ilBVuKN6UAn649i41zzfU4HUhWRxu/Mj6QHEtAOw7dyfXizQXggCkBW1fn/PPDbmpO1br9uRdT3WOt4BugsmjEMXF8ooRKIR92PPd265JKlvcFNs+Tfyth3L4IYNW4tYuVWQFvtJ5AfRNg9v6Cz+LEmy8h7PU61bUtPRxZJ3zFhPkYChqs4JPz1pEggfEixfSVfJ6wf6SvGthsW4XfMcabKa7P/9NomsxJ7/4UfI1Lr2cwaWTlTBz8921jEPv9STEnbO7vwhl604SpSlOpXHS8IlNRDbLHnSNByQgvmZ4nQY6dSfiDmnvEJy+6CrnxUtM7MbbSm8LpskG4Fp9oR+TVy4G6wPnJ5vtJHFpfJIIaV4ylkvqVRfbvCRHIbbVNf3dTxQer+FXrRtEzFjGvX0BwRn8fqZGIpILUdDzpo6EB3LrliFWMIjzS2WEi5ZTVGHI94MDJx/gELpPuZ2DuMbnfekZW+jdeazMGr5r2+s+27kDkq7UAO2REmyZdPc1MdKNcYzH65rGsEsFn+oSaeGvGcr8BaWZgOz+DEytCh92yKU6wK1tll1WYkli/7strCIxqbumbe3f+ZqgZFHEaeG0GaghNmHnQaF0ynjR8P734h11z2RQ2IFLrGyHjppKM0dQJ3IFZA2034aPrJ4RTTLwGellzty4jgfwmzS9NFjMskD6yf1lZEkHikATTnAmbbvJVkje4JYCuv1xhR1mnZFSgxsi50uscFKNAk+YWL/gS+QGwTAov/LaeY8papoW1lhfQzTIyFLjisoYmgJM1TKocHCxWHi08my0VHYJrrY3due1I70gCkcBwtQLvbjgROXEo7UglwEcJJNZ9hP3Rd7LinV5xf7NiNaeYmv49rF7AICaUA2xGhuD0VHvTNSQZdxNdqi+eAlivCuOHkeXZRyJsbQr9i/9yIXb9e6GlMDW5Qigh2vL603b9hz6TN8U9wDoD9TmUOW/TmI8OEp59fJiCmqpS4ZhlLwxEQY6m99aM1cG15y+Hejp2t42MPsRKulXY7nJcRrJXPkYvtXgUgQghuvf4gjq83y9AZVBmgrXgXG9QF1alPpbypdn6Toj9wOIB+tRtvg59kFVzWM1/LtZ1sI0iLSvFDmX5DPGGEm8vHwwhLpzEz7YmaWMRIsWZ57D6CeP1vc1DNc/YUS1JZfVAXatWsja3XLIt7mZ/zdHq4ey3esEIQvcnzbpwo82lZq/0S5/AbH1O0UdYWZPneADpIC8YRl2lXiFrgMAnGNI1CWg0zq3IVteEAwS+42CcjuCdJLIkUXd4xZEbfVqHMff8ZMq3aCS19706R39WL/
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
IPV:NLI; SFV:NSPM; H:PUZPR06MB5676.apcprd06.prod.outlook.com; PTR:; CAT:NONE;
SFS:(13230040)(366016)(1800799024)(7416014)(376014)(52116014)(38350700014)(921020);
DIR:OUT; SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: fllX+KemW/XwtT97Se7VvtRtaLx8anTU66iwXRl8V7daP0ee4AWrqgXNyn0WybzKQq0tspe6ElrtfaG9NlaR8UeSJjM2kPr7AQHz+cbhpgY7acRNWzYkwowlwNul2RHAxtqFg4SDbK/1OciqWdyL9z7pWl2jvfnN2cguA24qJD84OQ5ODBwPws36iWmlNzxafZ2KC0RZV10VE3G7Q2SUxVYGIchqKOE40yMuSu460rAmYKMDNImjGMxJ8X1FFwdBqNvGDOKgHCVO0mc1fwcNE3Kr17kqyZhMz7x8fSXMQJNqzhiZd7pft9wLnVjZuIHaI2oBCTQB/jAnY2iYumMtLUI9gu+Q+GxnqTXTwTWMtO0MRpLP/sfFvxrwoO7Xezyn6/u+BZNPbqkOiMZSinYp8mmty3ifoDpQi0QtVH5c7cb2jJlw3O5jcdLcXeAl6RcRvAgN3R02kyv8bA29V7YhbNFMw4tHWhlz98VgcWrYoaZoUGAmuoMGL11XyvmLJbH+92tcmbk+zn1IQNdsC9O4vnX/PiHi8phVn6fofC+T5V/PI1ZicH9EgzWxzOEqJybtTSnupJTMe69jxl8joILw4vNCo2RDemyalJz1C2n2GjDb8LUkv6G71l74Or92rZy/AziedXWdHCU+uCwGZsWx0NuqKLLlQI9gO8j0asK8wnb+NSVOvLcRwLXHE0KJ601mc146pdYkzl0IVuHtKgKmQ5cQRMHQo82frks27/y65PnYN1ZsjjPv5Nh9v7vP9qtauXMV6dGo51PLRMN7+b9um88hMdE52LqYw9SIzRr7xsrW4n+WtF1QNrTbSQJF8IEtksXdE3JpWoUST10UAl9IjkufGl72fxtIu95URD7QhFtWPAk/ZFKrN/gVL+edU19jPuXyTKv+8YZ0u9QqiQOriMi2ipD53PRHCWruEYh17cHVM717ecdqxGPZMc93H53ziI0AshcpoM339lA6Fd1sRW7zkEMmgv84/dtbaMMZm0Dz/yozZY0kP03POsaaM1bVqyv7v/KuSDgjKSjDThY+pxeF+jJqKV7HO7t3ygizTUl2pAg3dWr0GHzAbRJDqwpwqmlnYyDcm5hJtbiVBNaz2CY8wufd4GX77FeSllWNfSYjVyUFYT3GfidT9E2bIY5XQyRWTsPZtYYogZWQjcTbtpxrHOvI1SECQwGGXTplWF7FMM9KUQZGFZzk8m+HGq6+FNER6pcyMcu9YsJnTblQVsKaDKE5GWXlIgZ9iHVhMUOlLzHmGqAfIBOAujSDhMT3VOqpSew4GR3878pJyENa4F4QlZKJvOVteVcH2pDOwWjG9v6ytt6Ogn8VIEw2cpkBar1PgP+5tifmyjHil3zEsxm4DWLsusnMWG87R9LwpQVTc9V5xxzhLvPlWvuCaPd3NhrGxYUJBQwqHUQ+vtymNs0W5Z8so+856YuDVA0NRA8KRopN0+dZECL3KTyqz6kMR3KZVwCCDgR4yAyCz2qcACwzPr+z66W19yyYmrL/DEdktZDZgC2TsLkDH/bdayz8XP9phojxtc3hE4XI72tqFq5UFXMyhpAv8h7GsNe3Dxee/pjSLGiLH+gwXMLa1ZiY
X-OriginatorOrg: vivo.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5cdcdce9-b8cb-41fe-9d3c-08dd8627ff9a
X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB5676.apcprd06.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 07:40:50.8442 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1WsZRhZNbRCS4eOFMVoahYTMG8oKTbLR6une30jWqOWpnbSY3OvKTHn653HSyNhY7VkRrvmXH6KcGurVO+nxxw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR06MB7093
This reverts commit 18d7de823b7150344d242c3677e65d68c5271b04.
We cannot use vmap_pfn() in vmap_udmabuf() as it would fail the pfn_valid()
check in vmap_pfn_apply(). This is because vmap_pfn() is intended to be
used for mapping non-struct-page memory such as PCIe BARs. Since, udmabuf
mostly works with pages/folios backed by shmem/hugetlbfs/THP, vmap_pfn()
is not the right tool or API to invoke for implementing vmap.
Signed-off-by: Huan Yang
Suggested-by: Kasireddy, Vivek
Reported-by: Bingbu Cao
Closes: https://lore.kernel.org/dri-devel/eb7e0137-3508-4287-98c4-816c5fd98e10@vivo.com/T/#mbda4f64a3532b32e061f4e8763bc8e307bea3ca8
---
drivers/dma-buf/Kconfig | 1 -
drivers/dma-buf/udmabuf.c | 22 +++++++---------------
2 files changed, 7 insertions(+), 16 deletions(-)
diff --git a/drivers/dma-buf/Kconfig b/drivers/dma-buf/Kconfig
index fee04fdb0822..b46eb8a552d7 100644
--- a/drivers/dma-buf/Kconfig
+++ b/drivers/dma-buf/Kconfig
@@ -36,7 +36,6 @@ config UDMABUF
depends on DMA_SHARED_BUFFER
depends on MEMFD_CREATE || COMPILE_TEST
depends on MMU
- select VMAP_PFN
help
A driver to let userspace turn memfd regions into dma-bufs.
Qemu can use this to create host dmabufs for guest framebuffers.
diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c
index 7eee3eb47a8e..79845565089d 100644
--- a/drivers/dma-buf/udmabuf.c
+++ b/drivers/dma-buf/udmabuf.c
@@ -109,29 +109,21 @@ static int mmap_udmabuf(struct dma_buf *buf, struct vm_area_struct *vma)
static int vmap_udmabuf(struct dma_buf *buf, struct iosys_map *map)
{
struct udmabuf *ubuf = buf->priv;
- unsigned long *pfns;
+ struct page **pages;
void *vaddr;
pgoff_t pg;
dma_resv_assert_held(buf->resv);
- /**
- * HVO may free tail pages, so just use pfn to map each folio
- * into vmalloc area.
- */
- pfns = kvmalloc_array(ubuf->pagecount, sizeof(*pfns), GFP_KERNEL);
- if (!pfns)
+ pages = kvmalloc_array(ubuf->pagecount, sizeof(*pages), GFP_KERNEL);
+ if (!pages)
return -ENOMEM;
- for (pg = 0; pg < ubuf->pagecount; pg++) {
- unsigned long pfn = folio_pfn(ubuf->folios[pg]);
-
- pfn += ubuf->offsets[pg] >> PAGE_SHIFT;
- pfns[pg] = pfn;
- }
+ for (pg = 0; pg < ubuf->pagecount; pg++)
+ pages[pg] = &ubuf->folios[pg]->page;
- vaddr = vmap_pfn(pfns, ubuf->pagecount, PAGE_KERNEL);
- kvfree(pfns);
+ vaddr = vm_map_ram(pages, ubuf->pagecount, -1);
+ kvfree(pages);
if (!vaddr)
return -EINVAL;