From patchwork Tue Jun 24 18:00:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolin Chen X-Patchwork-Id: 899584 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2064.outbound.protection.outlook.com [40.107.223.64]) (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 752702E62B3; Tue, 24 Jun 2025 18:01:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750788081; cv=fail; b=ukco5Sex7e8cyQMVeTv5fw6qaJOyVyTU5zzsgEb2guCJO7zfIpcqLkj7rrNARjtJyGSq0UvPRWcyunXsGmCOmBe+7rH9ArEklGYfoDvJtIM6FabTsPWl2QNsRidUTlv+FAGnzm+W4datPHXinid9fR6cTP9cdUP0rAhJJs03lIg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750788081; c=relaxed/simple; bh=TVAZESO6eMlJRQxUWV37Lp688BbaFvzN3aYBiCNGxWI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=TsDZzroRPzkQ4FZ0sNMVENnn8zTaZWvKS3w7ek6wHXGuMQaRCLDBrre+QQmjgHjeIGjX55mHBleTQigH5eG50By6NdXcIAj/L7pTTFe3hS9XOVpwrM8jNmOiP+MvJ5f6ViT2m1yitoSzXAaPRDmjghXj/ujk7FTgWTFw2Vr0XdE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=W196X5NL; arc=fail smtp.client-ip=40.107.223.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="W196X5NL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dQ3QuFptTSuTGTtXzeoMTr5vpgdOCDeJKDIOAUHmcsqJ0PAE1Gmu+78aYdw9lmoux3KIfQldx2/1cPpCRldWNnf2dzDSn4lQwaOGNrv8MvvLBhjuEYcq7A855eHibi1S3BbdhS6DCAsG+5IFgwMdwcg+63XNDqHkQC6JIczHXMFmm+m65fsom0GCR2wX8DxvdZlqRgRXUeb0DMaVhI7ngcPLsDEtiqOgjF6oFLNhlicHSSxcMqEyfAEUQoJPWn6z/IAe5g6hj20I57YWrIBWPY0iLoGcYKbn+o352/eAqVeT1QlDSguSgpuhHaeM/jxeksgyfVn8KfxgbM/cg6HfRw== 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=LMgFP8VkwrOWN3KeVrHlV9smNmEx1d/QYkXIzKEjZCM=; b=xxx825RZdrMkadC4IcNipdvqXvSV/Rqb+WlRbUoQowJIt/MDar0LMHI/jqCaJVDO+tKpoZWsmDAMZEcSOKjcQ36EnJFJDZwwnO3blw9pbQU8gl8whRJ4t18uOmrqvqZ+MupZ0zXlt+lzL0dYNGQnoYihrnyhJAQ+K65Z0NSUSDIBCZ5op9febDF+21tYREOX2b+94muueJeUVweSa3S5Fy7RKDi1VIdfJp8TShVE9fiSbB6pefJyz7wKzc18+nD3GvOMtczTLjAcVvBofKuE2yHHq/ri1ztwSEfO7UA42ATT8VkG1F1bXw4w6JvvI/EY+HXJQTbb0yRpIhTHOQYlWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=intel.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LMgFP8VkwrOWN3KeVrHlV9smNmEx1d/QYkXIzKEjZCM=; b=W196X5NLUED4SWxSP2uMIQ0gERE2Tq86Aht5I/BPE4f86Npv8lQOhgPDR9/XFfa8YIjIo41yppssSlWjSFAgvz6RtOdlFPd/89RBewEmfxVi8RHZfWN1WPFDSNqpSfKd6AoMQAAetN8ZQsMkVn46pii860CYrfywiICo8IcfVFFUVJnUMF9Uw8vLuoNWEahiLbi/cSgeqLZfdVf5L4dWESVf8jnBuA+FhRL3fVBYbAiJHc2jFkxDELIDvrZ5IsPRaPIkqCbLIA/goSxCqSwogdWq6kYAUzxKGzwL6YMBUDLvT1H9q41w7uAXphzM3diVwFedEskDeiohnVhoR4j+CA== Received: from CH0PR03CA0320.namprd03.prod.outlook.com (2603:10b6:610:118::25) by SJ1PR12MB6244.namprd12.prod.outlook.com (2603:10b6:a03:455::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.25; Tue, 24 Jun 2025 18:01:14 +0000 Received: from CH1PEPF0000A34C.namprd04.prod.outlook.com (2603:10b6:610:118:cafe::40) by CH0PR03CA0320.outlook.office365.com (2603:10b6:610:118::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8880.17 via Frontend Transport; Tue, 24 Jun 2025 18:01:13 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by CH1PEPF0000A34C.mail.protection.outlook.com (10.167.244.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.14 via Frontend Transport; Tue, 24 Jun 2025 18:01:13 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Tue, 24 Jun 2025 11:00:56 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 24 Jun 2025 11:00:56 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Tue, 24 Jun 2025 11:00:55 -0700 From: Nicolin Chen To: , CC: , , , , , , Subject: [PATCH rc v2 1/4] iommufd/selftest: Fix iommufd_dirty_tracking with large hugepage sizes Date: Tue, 24 Jun 2025 11:00:45 -0700 Message-ID: <1ea8609ae6d523fdd4d8efb179ddee79c8582cb6.1750787928.git.nicolinc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000A34C:EE_|SJ1PR12MB6244:EE_ X-MS-Office365-Filtering-Correlation-Id: cf3192b5-7af2-4267-3a41-08ddb3491bbe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|1800799024|376014|36860700013; X-Microsoft-Antispam-Message-Info: bqozCCBpcOD/1dV+5RRN6w0Cy3WBh74eqYZNMzMbP9Ju968MCKwPpZMIFpxsiu0MR/i2FF6xJ2RqSTisdFGKIB1Jy7WczxE1keIZ5VAXQvy0208KdH1ZV/JA/hvRl8nCHRu5WGhszjwnJ1Y53xjmjUHiMa91UTIwMcSFfqVCQD2MX1fTZPyJAa0tdovNJQ599yfKHdfMekrvSs1wC2S0U0Wq7DPbIpWNytlG2brmjjREvzt4Dt6qK2T7zstOuamIXLgkzo/kzbEeIEkn/Dro4iYbgKbXfrZ9PcOOvaecTYIpkqQkngl0O37Nm2eZ0EBfneGArKgUaGJ3/7VuBhPRks1iObGO5JnIT94roEWldcwr05qhTps9U9ub0t5+v5tM7VEBmTWtqqzGm8EoFo/NeeoiRMuDMiDYUbGfmDyAARyCSQr7J/kNiiyuUdtPJYc5+Xq5Y95juPt0Fap2lJ1iScqwzcbmvwlwXAD2JnjFk03fbXoAI0q5MsGvOcslBoiyI3pO/ifyDED2D2qf42df+cEIuhFNJ8DJ8V7O5gXq4vuRJiF32h/dAVgw3luigUFlFocGQpvayOu1Xh86dAZ5m9zKpQUhjPmnReaFacnX/4I2L5ZYTphbnV8kj9pipBLBtob+4/o/A0+PtwtvXx2uSuLw1hEOvU21oMcE79RBIqpnony9eR3Cl87DgJy7C/d95qYO62Yn8Vd0WoXmwMkFbdUiUWhbGlyjcorSExUw/2bsauB5tMC/0T5yeB26RvK5/0o0QKx2z9wPYk91uRL07vJK5ef2ghIsD/ZB7FGTSg8yBlOGTnTm8fne4mzQMpCLAAQymd3WVA/jD6fO8NilQb6B5KiKJjViVIes0rlVZ5dRi0zb1nhYDl/+eIOsN1dHJXAl1yzd8TTDKio52KiIiDnjG8DweLIiAoCVXRo+5h2ZTZb2qAhG3BMC+VLQV7drXvJF3sZlgaImZ7wG75vVW8AKKB1OCM4pIbghY5Qp6X0f83NSEAbQU54JyhSokGcZLJNj0aJFqlRyx9VW+ObsNV+E+3boUGZm/AH950VQMVFBSmj0P2NUPS0CYgmlvWF+PpveMuePW1T4UK16oLKKqhKL08pzQ5FG7nL1QtmURF8lpK9yIso+ibZ92NbyLwSkdUdEYt9eF7rz0aI19/FJNYU7LYoOX04VZEP18pAZMxRYcuEAdwKV25NV5rFoJX8psMu4P5endsaWlMTynrdXS4PZihbjDmD/ZsLh1nANE9C3CqgXfb/COQdP9IgVSWUaNNkSnIAnzS1tnktn2h4Ybd6JrmuSZJHr7zXkfzf5XmzD4zHuFVlyYlVucki5xhIEzvjikNjaE39M0nCCWhfxdctw8qqgEBKrvUZL5/ZmrFgqz221wwuf54gLahvQWhcAiM3kepbjfGe9noxQfA7dtM+E1l4sNSX3JiZQCwhV0Q1A6FMYWRNs76t+k+xptMEs3EZTeJC58JbJs48cObvZJQpoUwr1tJ/2gUj7P/L1YtZrqyPluikZgt8ia6cy0pH8 X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jun 2025 18:01:13.4342 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cf3192b5-7af2-4267-3a41-08ddb3491bbe X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000A34C.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6244 The hugepage test cases of iommufd_dirty_tracking have the 64MB and 128MB coverages. Both of them are smaller than the default hugepage size 512MB, when CONFIG_PAGE_SIZE_64KB=y. However, these test cases have a variant of using huge pages, which would mmap(MAP_HUGETLB) using these smaller sizes than the system hugepag size. This results in the kernel aligning up the smaller size to 512MB. If a memory was located between the upper 64/128MB size boundary and the hugepage 512MB boundary, it would get wiped out: https://lore.kernel.org/all/aEoUhPYIAizTLADq@nvidia.com/ Given that this aligning up behavior is well documented, we have no choice but to allocate a hugepage aligned size to avoid this unintended wipe out. Instead of relying on the kernel's internal force alignment, pass the same size to posix_memalign() and map(). Also, fix the FIXTURE_TEARDOWN() misusing munmap() to free the memory from posix_memalign(), as munmap() doesn't destroy the allocator meta data. So, call free() instead. Fixes: a9af47e382a4 ("iommufd/selftest: Test IOMMU_HWPT_GET_DIRTY_BITMAP") Cc: stable@vger.kernel.org Suggested-by: Jason Gunthorpe Signed-off-by: Nicolin Chen --- tools/testing/selftests/iommu/iommufd.c | 30 +++++++++++++++++-------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/iommu/iommufd.c b/tools/testing/selftests/iommu/iommufd.c index 1a8e85afe9aa..e7eb11a94034 100644 --- a/tools/testing/selftests/iommu/iommufd.c +++ b/tools/testing/selftests/iommu/iommufd.c @@ -2008,6 +2008,7 @@ FIXTURE_VARIANT(iommufd_dirty_tracking) FIXTURE_SETUP(iommufd_dirty_tracking) { + size_t mmap_buffer_size; unsigned long size; int mmap_flags; void *vrc; @@ -2022,22 +2023,33 @@ FIXTURE_SETUP(iommufd_dirty_tracking) self->fd = open("/dev/iommu", O_RDWR); ASSERT_NE(-1, self->fd); - rc = posix_memalign(&self->buffer, HUGEPAGE_SIZE, variant->buffer_size); - if (rc || !self->buffer) { - SKIP(return, "Skipping buffer_size=%lu due to errno=%d", - variant->buffer_size, rc); - } - mmap_flags = MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED; + mmap_buffer_size = variant->buffer_size; if (variant->hugepages) { /* * MAP_POPULATE will cause the kernel to fail mmap if THPs are * not available. */ mmap_flags |= MAP_HUGETLB | MAP_POPULATE; + + /* + * Allocation must be aligned to the HUGEPAGE_SIZE, because the + * following mmap() will automatically align the length to be a + * multiple of the underlying huge page size. Failing to do the + * same at this allocation will result in a memory overwrite by + * the mmap(). + */ + if (mmap_buffer_size < HUGEPAGE_SIZE) + mmap_buffer_size = HUGEPAGE_SIZE; + } + + rc = posix_memalign(&self->buffer, HUGEPAGE_SIZE, mmap_buffer_size); + if (rc || !self->buffer) { + SKIP(return, "Skipping buffer_size=%lu due to errno=%d", + mmap_buffer_size, rc); } assert((uintptr_t)self->buffer % HUGEPAGE_SIZE == 0); - vrc = mmap(self->buffer, variant->buffer_size, PROT_READ | PROT_WRITE, + vrc = mmap(self->buffer, mmap_buffer_size, PROT_READ | PROT_WRITE, mmap_flags, -1, 0); assert(vrc == self->buffer); @@ -2066,8 +2078,8 @@ FIXTURE_SETUP(iommufd_dirty_tracking) FIXTURE_TEARDOWN(iommufd_dirty_tracking) { - munmap(self->buffer, variant->buffer_size); - munmap(self->bitmap, DIV_ROUND_UP(self->bitmap_size, BITS_PER_BYTE)); + free(self->buffer); + free(self->bitmap); teardown_iommufd(self->fd, _metadata); } From patchwork Tue Jun 24 18:00:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolin Chen X-Patchwork-Id: 899583 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2046.outbound.protection.outlook.com [40.107.236.46]) (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 76B032E62C0; Tue, 24 Jun 2025 18:01:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750788084; cv=fail; b=cIdLwbp/3l3FReZ7Z/+nelUWzLz9O9q+Uj878Cl4OOpdo/Ii+qJ6wZVe2L8LHjv837FQt2Pky90Z3euEBKT/kLk0MhmSKNdH2PWdii27KdFWPzeAgUDOXt65MzC58rhiTyAu1YyYv9abRhO6m109ifyCr6g0tjBRSTSeSCtxQRE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750788084; c=relaxed/simple; bh=5Ni1NPGOZyphDijmrGiWL02+n+JStbd1ojfNKZM4snE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=AyCq5l3T3c1tVBa9gFp5xiMJYctCxLu6GpLNxawNe4MFYIX9+DrzK1/SK9NzexEoxnVJVX6ni3FUTcgeZI7wmyr2B06EI09V2DubZkljRclaUFgQiznER24fPceWauENfx8acBvnJv4geuOGHrkD2sIcvBxL0gMMfxx2JqJEXlg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Tvhewtu3; arc=fail smtp.client-ip=40.107.236.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Tvhewtu3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oiRGp95/E8aEwDDPjax3tFFAmfoOhf2brDFE/f34NmEaN9e+Gr0umZgNCftDZSKRn7Oh9xQRS9h1Qgv4vcqGO8+BfsQKOduHzVCYuImoW7ikAbg4Uj5McK0n3gPBMRhlV+YtZMbDVBFFWCkdkwmP8JCI8+NnJF65PN4ky/rN0BdBbpsQPSh9f38+2UrZxeWMhGcLTFj1KYVJxek2VA1162ef7lLOQrM5AmAuuWdZ4a0l5ZkHmDfFc5KNwA2UcMyPX9m2NUYVQo/LLwrQIk1rAmQAK5rbtGxjLD1VkKF/onl6pWV/UO3ZUr5hlWTq+viLF1/5FbpNewRkNNOsovkMaQ== 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=1OJ4ofSmuBRIzTl6zbVagr21vkH7GdeC4IfLtIIPLck=; b=HhXkOPs8F/VI7fT8H/mR6Q+Cjo7dwf4QtAxCITCyliR3N2L1pfiKMKF0Sj0LqwhCPlm6bcbbSpBfPGTQtWX1TKZ6V76IKd2QtabvuMCiXIbd/HR8id0OSXioOLaG3yxomDPQGju8GkjfuZDoHGTBZkupA4b15WyRjfIV7Mz79bxIHdH0nOsPQBh5Uv4gpDAqzcAvos7ESj0JrELQjANaM920DN+GGoTVK2JE0zWpRBF/+j//YiHezI8mdaZP6bL6ODvPMU7E0Fqr4oP4y9Os4K7nrf0DQT/HhvqytFlFSs8xok9CTGGdeOjbt6wcAvzAm5eVcq+6iuVQrfWKV6GgxA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=intel.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1OJ4ofSmuBRIzTl6zbVagr21vkH7GdeC4IfLtIIPLck=; b=Tvhewtu3BG2wY9uHP8xtr8DtKpWrPpM+a7CrkR6UJU4dzAQtl5cBT/eCj03oHSPnxGiwtYFYljNWwwM7gT67bymgK4tO/shS/ooYbeMCclvR3540PlXGeX23V0bGbcIzPrgITdzMj3ODd5ZuSIw5D3t1cvPOIvVhxY+Y6/+9Xhxx/toJpEgwy1Q/X8pDd1qKCagJdd+0YlV3PqEPd1iutOSnkS4I3ZLpc+EqVRRzB63UQh0A8Nf4+mxykFtv4Fs6V6Z+dBRtZ2/KAXfkJGanjSdOv2EP8sIZPmQtZN1kMgIy5cuT/H/aVSJgQu/MUxO/EHhSE+Z2PH2mrbsZnmCDTQ== Received: from CH0PR03CA0376.namprd03.prod.outlook.com (2603:10b6:610:119::23) by CH3PR12MB8356.namprd12.prod.outlook.com (2603:10b6:610:130::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.28; Tue, 24 Jun 2025 18:01:15 +0000 Received: from CH1PEPF0000A349.namprd04.prod.outlook.com (2603:10b6:610:119:cafe::99) by CH0PR03CA0376.outlook.office365.com (2603:10b6:610:119::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8857.29 via Frontend Transport; Tue, 24 Jun 2025 18:01:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by CH1PEPF0000A349.mail.protection.outlook.com (10.167.244.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.14 via Frontend Transport; Tue, 24 Jun 2025 18:01:15 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Tue, 24 Jun 2025 11:00:57 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Tue, 24 Jun 2025 11:00:57 -0700 Received: from Asurada-Nvidia.nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Tue, 24 Jun 2025 11:00:56 -0700 From: Nicolin Chen To: , CC: , , , , , , Subject: [PATCH rc v2 2/4] iommufd/selftest: Add missing close(mfd) in memfd_mmap() Date: Tue, 24 Jun 2025 11:00:46 -0700 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000A349:EE_|CH3PR12MB8356:EE_ X-MS-Office365-Filtering-Correlation-Id: ff7addf7-ecf1-4c78-87cb-08ddb3491ce3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info: 3E5K4QhUnconqACVDQwcciOcCkBEn/WzinqQ6J9XSBg/yMhDA+L5654vtys1hyUtZuygShHnfZg/WQuOhS1u/FzwQ/K2w4oTxur77lpM40wymiXHihoKgmGFITaSXn+XbsaQeITUqHnJBBHiTBRnbxHOJielsCXQM8beKNOx5PSJFslrvNus0jRbW4LsUfswLYwrl6vebp7vaM2K1xL91dhcek0KSssEhtl9906Uc/oEuz2GhamGNOTZ69FVUh1kn9Aea+vu+ODSq4Ia7ZtNi2Zs/PgPCg5TQfcWKgp6r0ps8ruJsHcVSOWKu1O0Ny4mtE8P8jgRgn418fycMTcpk7q3ndpZYQ4R4B2fR4QLv0cXBMzhIBVF940zkAy2nYBrMFtZtffcJwj13LSoX6rjfsJ24+1iq9t4cMLWI6b6ceDQirof4QqooGPq/njSBOOZSKMhY9UrBLD5Utqw3Y+y1STEAMr3qtHTBic1kzzNvt5+idwDukapMixiqFwN2+UyE04xr7YXtB6hJ+b83XM1gbAJakrAFM4LSZoZkMc3y3WnkvTNs8eXSuLWCQp01a5hsbgLNOuVDtJvVB3sUu4a0rDiqU+jZ0VZu0qq9rXY8oVtsmZosO8fbv7gDE7sLh6yjc3xNUzMbQbQs31e5EQ3RvraN32UNiQxNpGs7GEOKf9E0xysrvIY21t49vEWB+F4Ov1vAzanRVI4+GIu6e2aA1O5LATpp4vJsxQOpmcNHQkuknskv6EOMdF4eOV5hv/5BLz/8mx+W6FXkXDUj/zhAg07rvyJ641cG3gODYafDll1c9raWxDTRTDgp6bUT683esa0MLZDkyIHbv2E00NAyLUTwizy+ef00tIulGtmRDNxhLjegrKwalIX9cV5IC/g/6sDcvtGUiIPgRYJOyV0TRGiNLQV+NKgOaPYanPxtfoAzJVNLEYus1WHGRZtpAx8DR/t0OTSXqVIJ3++37Y8rNe7O+Zeq7QYE5mr6n8D/wqJ4UrHqhmhxnB/OberSqA/qvLgXOcKiZimgMXLdWKRjWVeFskBc+Zos+REqagzIm013l8/8uKCR0u0lzTtEThjgKbj4x3g18EDAAI5w1Ms9j6uG5LSs1fP4UnB/ufaLFWFdLNiJoYWEcC/Jgb3s8hgHjWedy5V50aayBwxs64bIvh6Bw1MWEC03X9AefGhYEi7JL3OyGxX7J5wOQEhGPoeH0VLYSV0w5/ltRde7r4SilbQq/SKgAL72zdjsKoPHfruRmJ4dJF1LWnfllaxaom/jETCyH7lvovN4FV2+x0+LMLwMsIKhfy0VhJ+3AziQuAwvqPLmWZkiB/7uFfTY6MFCVqHVEKNvoze9EHy521MzjiHC+p/rvYm2UayNfOdBMjBulGDxt3qNMfVEuD/jVjt9u4T2avw1KkKcn0Yq+/J1fyj+lYh/p4zYmbcxdny2LQGENQYX9GyBqdvQfOZbKzT1BuXLjLjcTfZ0gFi8A2NfEvHUvo9wDItRMiGXDGm6ZG5EaUUQUJFlIGLNxfGLNyP X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jun 2025 18:01:15.3587 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ff7addf7-ecf1-4c78-87cb-08ddb3491ce3 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000A349.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8356 Do not forget to close mfd in the error paths, since none of the callers would close it when ASSERT_NE(MAP_FAILED, buf) fails. Fixes: 0bcceb1f51c7 ("iommufd: Selftest coverage for IOMMU_IOAS_MAP_FILE") Cc: stable@vger.kernel.org Reviewed-by: Jason Gunthorpe Signed-off-by: Nicolin Chen --- tools/testing/selftests/iommu/iommufd_utils.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/iommu/iommufd_utils.h b/tools/testing/selftests/iommu/iommufd_utils.h index 72f6636e5d90..6e967b58acfd 100644 --- a/tools/testing/selftests/iommu/iommufd_utils.h +++ b/tools/testing/selftests/iommu/iommufd_utils.h @@ -60,13 +60,18 @@ static inline void *memfd_mmap(size_t length, int prot, int flags, int *mfd_p) { int mfd_flags = (flags & MAP_HUGETLB) ? MFD_HUGETLB : 0; int mfd = memfd_create("buffer", mfd_flags); + void *buf = MAP_FAILED; if (mfd <= 0) return MAP_FAILED; if (ftruncate(mfd, length)) - return MAP_FAILED; + goto out; *mfd_p = mfd; - return mmap(0, length, prot, flags, mfd, 0); + buf = mmap(0, length, prot, flags, mfd, 0); +out: + if (buf == MAP_FAILED) + close(mfd); + return buf; } /*