From nobody Wed Jun 10 15:20:27 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012016.outbound.protection.outlook.com [40.107.209.16]) (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 7E9973E0222 for ; Mon, 13 Apr 2026 14:46:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.16 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776091564; cv=fail; b=no4cyVBhHoDeW0rqOX+uEnjsQbrQf4VF5KbHfisEPCbQB2BLs90rfTHn5OjByVYtc9W26LUZkVjJVVPyIDklsrxDsD7lWgjIZS61UVmkpZlC5y/7nJYNCMyYfRCi6wXY5wAswaL0emSRYMf/+kICUUrlYgX0vOAJpaLf84XiorA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776091564; c=relaxed/simple; bh=NdyQ+CRmW2aLHcpNSVLzjgj69Ee8xMYPlDX53XY4Soc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JlLAi9LZoVAP53FTC1qEeIhTZM4NffRGNhAvfBT1zskyfmQiDM7ZEbQtBJClRk/Tafu/0y0xIqXHOPNRHC6kAwIE0fk8RU7iUIFuDzXH4Rz/KaN/mwvj+xRx7qskmZVld6D2j14r/MIahI9QZn9BkNUfkxcsyxjpUd2K46Rm8y0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=ZUEKXFu+; arc=fail smtp.client-ip=40.107.209.16 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="ZUEKXFu+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=y5qcn9jTTZjebq9CvbN8t0vb+SIW35RrQqhRDepfFO/mY014tJ4o6cvEimmzfvS0paBKgDYjVptmfCaQxJ7kNeek8B8fmUbBNj38nfU6ubT09wMXIFRRKg2+n5KjY0pq+NFvulcH8mYHu9BR88+Pyos2jcgCL70E1uuexQ3zfzSBe5v8wvsQDLB8oDKaYLIgqBFu22yzWPqlv0bVl3O215nXeViadAl+tQ3Ial0OE3J0EEnTDaf5DbMPb/e8wfRufRk/bZoZBqmG2liXW4Nhj0lQbU2LeqKg+TzWOjdJnWrD4EIX6Qpl6ilKfze9p3ByxlK5ASgT8NNXThGp6l0idw== 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=cczewP1hc1d4hRSIJ/mPdq5yH63B27qmh+Tjx12kYX4=; b=x/sLbvh6FNe7J3E8bpGuWidcfBjpfTNF7xoyoH8dFfQ4ymgAKoHM7Muzz5+2ESknFyydqSw9ioMo//vHlPlU644LZXsaaIchh8X0CaVrMD9GzdTH0MTTddzU51Y9BZzFPdchdsQvvNiFU+OdBIxk6jHjHEDbB9fjaE16DDdmD4Oq7ZYyYE/u9y/Rf/4je6NbggoakmLgBXkeAX8kYaxbpvy4jsHAYwT+HKm6vXkV1P9LSrWqs9RkQZjFvIFIBmcZuFzvonuKNBhq70hfs19AMbDdVvhZr10tngk3GyDmBh5L2u1tYd0xVdak702kKT36+F874T1Pknf0zVUQUpt8+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.linux.dev smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cczewP1hc1d4hRSIJ/mPdq5yH63B27qmh+Tjx12kYX4=; b=ZUEKXFu+KiB09jCvQqevYLKe8+qDDM1ZHPNaPuY9LRq98TvmVyEi+KxENxDh2AUNo90fVPtpS6dAXt88sz3mjNR67HZqX4yrWLaMdyOYm30WtK5+5OIynCQOs0KkNS44UJzuC/1m2fmGZY5Y/muGyBFVPp8wgCcQQME7kgJB8GU= Received: from CH0PR04CA0066.namprd04.prod.outlook.com (2603:10b6:610:74::11) by DM4PR12MB6181.namprd12.prod.outlook.com (2603:10b6:8:a9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Mon, 13 Apr 2026 14:46:00 +0000 Received: from CH3PEPF00000017.namprd21.prod.outlook.com (2603:10b6:610:74:cafe::60) by CH0PR04CA0066.outlook.office365.com (2603:10b6:610:74::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.48 via Frontend Transport; Mon, 13 Apr 2026 14:46:00 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by CH3PEPF00000017.mail.protection.outlook.com (10.167.244.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.0 via Frontend Transport; Mon, 13 Apr 2026 14:46:00 +0000 Received: from BLRANKISONI.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Apr 2026 09:45:55 -0500 From: Ankit Soni To: CC: , , , , , , Subject: [PATCH v5 1/4] iommu_pt: Fix pgsize_bitmap calculation in get_info for smaller vasz's Date: Mon, 13 Apr 2026 14:45:18 +0000 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PEPF00000017:EE_|DM4PR12MB6181:EE_ X-MS-Office365-Filtering-Correlation-Id: 5e82e917-429c-45bd-ada8-08de996b6129 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700016|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: 1fdZ6yXvV9A5+1r9hS21vXURFXxaPrWoCRuf6c7aMaiHbd83mDq7lWhXDJaihaC4yNCfcnJE6LmPARQzVhLIpcDdLnroA/yzLZexO9CnkmVmusOwsLaT9qcZDrvFL85FBwJbGhDHVsJFMF7DtLPxqyv+a1I9IgEe6iEBwd+rmF5TNpNY+8/PBULdQ51Zwo+a4Wp6IoDgYeg/hI8aQacjSH0FgtIbH/I/gtifGZJ1nRLFyuWCRXzNpHuL1Eh76+3dyqFlM5I2NYWr6f8/p1l5Yq1jKvxwRvBH+dQcpDOX9jjVFAZatBDtcz1Kcq0NJkYBVXoK3Vd6L1y4uibaFygoSy7wieOIKtbelhGnpeqWVYwVX9dR9gl3uaPcZauqghsVZgzotHJw5U8i2oEIkhHfsQqeFM3KK307NNzBZWQKpXhPWMWQlgsbd3+YzhwYF1IKYh05V1l+WyrHJ3I2tBRMqK9gUq6VNpJDORXbR7zLVRePXHNK5mfpDKYLCRfSzW/uk2nc7u38Pw+4fpmpbL9b6UpqCP/PEq980TxYlDm9yHTiSmS5BHKnrcKNVWtF1uZ9hHqZOKtm90mAURxAlP1gnXUeX0C8eLBMe6NR/fC35Lkx57eJiYuk1AAiqpOIutebvx+tG8jFZJf47tL58hxNAaeHc773rcY1POpEqRqroPz3GHmzbWM7CuBtwcvBexVnOkGTxs0qcS3LHtVAcAzKYjrfVCCzPzCrbk5n6/dBuqt95ygqax7MnwdKOfKVkCjZ1kfGRY6rXosU7fuJgAxCkA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3Bve3TGYPRWZJoXbIIcPmOeN/ih8lG7Jyk4rvE99tnUXAu22nIxTrf+4z1TGRxQc1e9IZ1d2CWwec0riECbiHLNgPVf7Jb7B4E+tOrVDS3sSWMQvMjg+dCAnR4+yc9bJ5CyqhQuKDodXLi1k9BtWaFZFU1wHtr3SxFXWFSLqJxHmvf11emW6frQCFtwrza+KKGt5nBKRTHzI1leSu+f7hDRjHQalJtzSU+hLL9aDpmYEF/wbWA4e2ewd6Bq9mVKglE3uaT+0TxlY9NOpvqYfrUQna8/nRIXoELdD8ym9EIkgYIF4Ly0uBUY2JqeCLFgbbRpZLc/Y773iGAGSdhdHlAQjlk+6Y0ngW654/d8oElNnbv6RnPRJ19pRFGR6w/OniqCow2MrjGsb6VXhvmpPhgCxfGJVsY0S/V8GroGU30A9wj0ynvTv9OfO4O+C4nkM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2026 14:46:00.3589 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5e82e917-429c-45bd-ada8-08de996b6129 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH3PEPF00000017.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6181 Content-Type: text/plain; charset="utf-8" To properly enforce the domain VA limit, clamp pgsize_bitmap using the requested max_vasz_lg2 in get_info(). Apply the same VA limit as get_info() in the kunit possible_sizes test so assertions stay consistent with the domain bitmap. Suggested-by: Jason Gunthorpe Signed-off-by: Ankit Soni Reviewed-by: Jason Gunthorpe --- drivers/iommu/generic_pt/iommu_pt.h | 8 ++++++-- drivers/iommu/generic_pt/kunit_generic_pt.h | 10 +++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/iommu/generic_pt/iommu_pt.h b/drivers/iommu/generic_pt= /iommu_pt.h index 3e33fe64feab..f150e3a7f545 100644 --- a/drivers/iommu/generic_pt/iommu_pt.h +++ b/drivers/iommu/generic_pt/iommu_pt.h @@ -1084,8 +1084,12 @@ static void NS(get_info)(struct pt_iommu *iommu_tabl= e, pgsize_bitmap |=3D pt_possible_sizes(&pts); } =20 - /* Hide page sizes larger than the maximum OA */ - info->pgsize_bitmap =3D oalog2_mod(pgsize_bitmap, common->max_oasz_lg2); + /* + * Hide page sizes larger than the maximum. -1 because a whole table + * pgsize is not allowed + */ + info->pgsize_bitmap =3D log2_mod(pgsize_bitmap, common->max_vasz_lg2 - 1); + info->pgsize_bitmap =3D oalog2_mod(info->pgsize_bitmap, common->max_oasz_= lg2); } =20 static void NS(deinit)(struct pt_iommu *iommu_table) diff --git a/drivers/iommu/generic_pt/kunit_generic_pt.h b/drivers/iommu/ge= neric_pt/kunit_generic_pt.h index 68278bf15cfe..3672f1c7e4cb 100644 --- a/drivers/iommu/generic_pt/kunit_generic_pt.h +++ b/drivers/iommu/generic_pt/kunit_generic_pt.h @@ -427,6 +427,9 @@ static void test_lvl_possible_sizes(struct kunit *test,= struct pt_state *pts, { unsigned int num_items_lg2 =3D safe_pt_num_items_lg2(pts); pt_vaddr_t pgsize_bitmap =3D pt_possible_sizes(pts); + /* Matches get_info() */ + pt_vaddr_t limited_pgsize_bitmap =3D + log2_mod(pgsize_bitmap, pts->range->common->max_vasz_lg2 - 1); unsigned int isz_lg2 =3D pt_table_item_lg2sz(pts); =20 if (!pt_can_have_leaf(pts)) { @@ -437,7 +440,8 @@ static void test_lvl_possible_sizes(struct kunit *test,= struct pt_state *pts, /* No bits for sizes that would be outside this table */ KUNIT_ASSERT_EQ(test, log2_mod(pgsize_bitmap, isz_lg2), 0); KUNIT_ASSERT_EQ( - test, fvalog2_div(pgsize_bitmap, num_items_lg2 + isz_lg2), 0); + test, + fvalog2_div(limited_pgsize_bitmap, num_items_lg2 + isz_lg2), 0); =20 /* * Non contiguous must be supported. AMDv1 has a HW bug where it does @@ -452,8 +456,8 @@ static void test_lvl_possible_sizes(struct kunit *test,= struct pt_state *pts, /* A contiguous entry should not span the whole table */ if (num_items_lg2 + isz_lg2 !=3D PT_VADDR_MAX_LG2) KUNIT_ASSERT_FALSE( - test, - pgsize_bitmap & log2_to_int(num_items_lg2 + isz_lg2)); + test, limited_pgsize_bitmap & + log2_to_int(num_items_lg2 + isz_lg2)); } =20 static void test_entry_possible_sizes(struct kunit *test) --=20 2.43.0 From nobody Wed Jun 10 15:20:27 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013066.outbound.protection.outlook.com [40.93.196.66]) (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 002073E0C70 for ; Mon, 13 Apr 2026 14:46:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776091585; cv=fail; b=APBR9Xx1Xe/pNvX/AHvywYrKzt1HlI1VWGLlkgA2TVVeUfu8WUWziQipSqH/ujT57m7MK1nF64Q2O8qLo8XfFRNgyyCOAqDZWDn73uLJvwJZTuGsBcejod0Imt0CW7i0hcgWcM0XYvHlFvrO/ofAeGWZLn8odORDK+tufRhuJaQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776091585; c=relaxed/simple; bh=A3m04a6T3uV56T99DCBuRizmO9Fj7gFzCFTsyhq0Y6g=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nlrNLJBYHcjY6wbXS5NwmioG1xHpHuq2fXCcLeZZWD8AyQ5uL1O3IjalkxtZKRBdg1jZnDpqBL0TiQ97V+Su+bu8dWl4c69c9GF36Ze4B9Kezx4DNteBgncb05e7yCK7Yjoi6/23jBjqo59p18bHK9IP5ggt0Nn9OunC/yWJpBg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=x3mTgitC; arc=fail smtp.client-ip=40.93.196.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="x3mTgitC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SELK0EYKXh9aCApaN1T/CDAW2JzKqbFFNf+bXN1Rc58H0c1j6dOn+eDAELm67mVottaPfxvmdWVuXb6ekVaN4Rbv18n453LyTRz0EooyMEz2IFu5Scq0N6zpQyZcI4wui9fDlfvsN4igL8QuvIgoQOkgtxwGMts3Q3kZTbu38T9PnWxQ70ybmqY1g6oRPSlzm9ElJNSoNAs58z96M8N3K6gRFQuWhenUSvQwO1VSzTRlUWhmoA3vouxcvYZv8d+rHqwBTaGeoHvaZ+f0j4lQ8PSrbM8gLQ8rxzw3/9+vYjaLgK5Bnmuqowa55AXLpbMclJkWbXAJ0gh7HbJpIIVi1Q== 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=JN2r7IGn2VCQwf1ygr0G+ZWPH3297hlzlroqsHIuo7Y=; b=FeaLajST07yLnrOj0Za3YEj1z7SwT9kkE9OplLtpE4F2Q1Nj8fFMfwNLVSbJXuhrrDizrqjs0k708zQ46s9FWiW4P1qD4n4+LVUlnhv3CZ9C31/2sPOOnrz5z4WUqV/m19vjFNVwuUpFuLf0POjZZZuUSDZHMx0qp1/pD7BneFSvDaltuMwwlYMTi0TwFwiMW1/J3txHRa8wNhCiHelSczIbBvUoXag2wpQRb+1DZLSAaeh40HoDgWn+IeD184lnQCxC3zcJBlL9tmYAqs53bf9V6AvL38AAGLNuu4dlCB/M2v8eQ0rHLSkw3nt09r8P46Zsk+2YUTBX1MC/DF3c+w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.linux.dev smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JN2r7IGn2VCQwf1ygr0G+ZWPH3297hlzlroqsHIuo7Y=; b=x3mTgitCrKb1V7WH6ugE9x30RqA2riuI1E72Nm3uJ1FVbbuZG6wMRzhSD+zHdawRKZXB9XPxU6UrncKbEKo+1ZeE9id6sNNi2MCGRCggMseOLrrdq3nsCJhVI9tuZzZ+KK3VIT5x910V22f1UASaA20gkLP0D8PnaCQFHMCZUmM= Received: from CH5PR04CA0024.namprd04.prod.outlook.com (2603:10b6:610:1f4::9) by SN7PR12MB6690.namprd12.prod.outlook.com (2603:10b6:806:272::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.20; Mon, 13 Apr 2026 14:46:18 +0000 Received: from CH3PEPF00000018.namprd21.prod.outlook.com (2603:10b6:610:1f4:cafe::4b) by CH5PR04CA0024.outlook.office365.com (2603:10b6:610:1f4::9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.48 via Frontend Transport; Mon, 13 Apr 2026 14:46:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by CH3PEPF00000018.mail.protection.outlook.com (10.167.244.123) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.0 via Frontend Transport; Mon, 13 Apr 2026 14:46:18 +0000 Received: from BLRANKISONI.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Apr 2026 09:46:13 -0500 From: Ankit Soni To: CC: , , , , , , Subject: [PATCH v5 2/4] iommu_pt: support small VA for AMDv1 Date: Mon, 13 Apr 2026 14:45:19 +0000 Message-ID: <64515b0d53c541ae52347ac3c0f90b75bcbde0c2.1776075533.git.Ankit.Soni@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PEPF00000018:EE_|SN7PR12MB6690:EE_ X-MS-Office365-Filtering-Correlation-Id: d11884aa-266d-401b-2432-08de996b6bcc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700016|376014|82310400026|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: hTNBThr9YC4sKNZUb6yDX3qUe1z3wThwSuapc0xBPgk/0Cxt4euSsuen9b3Fjl2PWF7Nin4jMsg+R1N2I0aOQdDL5SQlacs+E++T8nyeXMUAYrYaDlaLaxxlt3gbzmEC/oOBi+5YwKLfGrtusuUHs44tfG54K056d/JI1s/f9gQGIr3iiMrOR8ywWYfXb3KaRufQ389bpp1ZC3A2YtAmGLMr9eVHiBaGtkNpxDk9PCYAYqdJ+NF1cSFsrpJk6rht3CULe4lEUezKN1nbdWuLMWgCXe7zTW76GtAYYmJPpNm7oWX42Xvv7QzWS2P5WUh32PcTIsiU5Z2StLiEfXTTuZP1v9mDclF4fB/1glWxc7rliukJ5VMbbwvuGWmxqoeA207XqR3tEwTiUZuO8Zx78uObYpSYN5b8BJrX0SUP3E2fbWa3C+BRz27RFoHSNOmk0R1Fgzftu7e85KEL9KpmujXzSlGxUBkwNTy5fOAexqlYMY1Oe8rFBq0nJzBLsNaXKbhN8GP1VA/yr/egpGpFAq/38bgBt9Bx2g1dJ6Bdigp3L3MWteCFzebqB/l5AKMXMAUlbA7hAzV3L1xE2nSmLNMCtHJITiLnssde5aGRpQnDneVN3LQDbzuKNUOyXWTY8cfRIaVSgf4rb4oSwSm5gWtrC8RO3u4DYJNVQ1SArMDe5AQxwDPZ60X7lFi84ufi+Gr7KW0Du+m4gdyJBBdfzQrVtQp6phdvD0qC5abafZZhXcc5aqR2eWU+M/mEp3FkvXALSlOycvnGeIlYJgh+sw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(376014)(82310400026)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WfmqctT6q2ZaHYzoWXOvIE+YFWKBJPJ5eAdQCNs0a2xbvNbXRAipojN8x0K+NiiSa7h8Wy7MnSWg6pZa3vB6tznQNqjOBSRBUGrA7Iwlr7Iu5L+UpMXoRUMxmOiXPwgi3GFN2hPmtwN6kFWjQBNWO2ikYTn9pL2+fOSO9IqDKoR6jJ6cxc/H2JCx2izPdyLa3GFbOuRA046RKLhAgAa4PGaaoOYG/SmatfPRSG+tJy6QapHFHWpPRg1DUiG7m3Muy3rr0vIIveEVa9EOTK1eNJUHaQukRy/Uw5K7EmUZBmyP1lYM5KWuVvnf52JmMp6kBaUpks1oz1vU6RkzIMo0HHar0bxRoS+ImOSqwvEp56ZcL0ruosJTEolbZgh3JQZUFSrjhBCHnF9oD7GjaLXTFfwW7+5/8lLXbLKpW5ubKNAq/cJKU0A1nfTgZmQWFv0r X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2026 14:46:18.1732 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d11884aa-266d-401b-2432-08de996b6bcc X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH3PEPF00000018.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6690 Content-Type: text/plain; charset="utf-8" When hardware/VM request a small VA limit, the generic page-table code clears PT_FEAT_DYNAMIC_TOP. This later causes domain initialization to fail with -EOPNOTSUPP. Remove the clearing so init succeeds when the VA fits in the starting level and no top-level growth is needed. Signed-off-by: Ankit Soni Reviewed-by: Jason Gunthorpe Reviewed-by: Vasant Hegde --- drivers/iommu/generic_pt/iommu_pt.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/iommu/generic_pt/iommu_pt.h b/drivers/iommu/generic_pt= /iommu_pt.h index f150e3a7f545..d91981e2128b 100644 --- a/drivers/iommu/generic_pt/iommu_pt.h +++ b/drivers/iommu/generic_pt/iommu_pt.h @@ -1129,10 +1129,6 @@ static int pt_init_common(struct pt_common *common) if (PT_WARN_ON(top_range.top_level > PT_MAX_TOP_LEVEL)) return -EINVAL; =20 - if (top_range.top_level =3D=3D PT_MAX_TOP_LEVEL || - common->max_vasz_lg2 =3D=3D top_range.max_vasz_lg2) - common->features &=3D ~BIT(PT_FEAT_DYNAMIC_TOP); - if (top_range.max_vasz_lg2 =3D=3D PT_VADDR_MAX_LG2) common->features |=3D BIT(PT_FEAT_FULL_VA); =20 --=20 2.43.0 From nobody Wed Jun 10 15:20:27 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012067.outbound.protection.outlook.com [52.101.48.67]) (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 AFA1F3B38B4 for ; Mon, 13 Apr 2026 14:46:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776091604; cv=fail; b=UJUD2RnSwSaqus8agYaPB/lq3oc1vQw++IPG23ZXGRGlCyCLvSBU/1t7JYEbCgfvHoKrutTw5RYVvi5oclIozd/qvYY5dTAVFnZxGaOCkU3THMYmtFzpSLHZISvpVp97yei1liS/MlHrhaU7DaHlz9mJ58/RJu+7nzLROEElK+Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776091604; c=relaxed/simple; bh=jVTLsEObGIUMP/m5zUwrdMkv3uYTAHnltW7REaasuys=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nkBjk7S6Rjizj2L4kRW3k/I46eyKa1ioRo1SNOU6szjWaLqVQY6PjmOpaBKXjqS6XX/7LSP+pXg1IVbdrc4InTyq3YghPkpnVkGJ0AJov8M2R4L2hjcCEkiwYEPOH4/nx7Fg7xQHg1BO0lNZxkhMBs6LupzAbZdHXlS8WpVo5nw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=DXaZ077X; arc=fail smtp.client-ip=52.101.48.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="DXaZ077X" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RoprMrRaUzO2J2Pmyq8ksQBAR0OshJrPezJ+smh5gVDxB1xnF+/GUPl57IklbFQCnFCUniMkUBWwqUHamX62R1tfCg90utKQISL7tG8YmZeh5vDkZqR4o7PlnxhuHBTKlpvDD8ZLmp/txLnu0GE9TBeX/aoO38K51a+DxZ9ksMO5mDXCgTFc9JioHY5NcaOV1jDhKo5zzv1HDn2OEKw/DspYGd90fnWwjLC1J7JW6ZI/3so6F9xdXhS3bxVRVxC2STlZ2f1L3O8GSCAqb+uMr8lvk2OfZ/sRdZA6omw3mhu4p/2pxtEKjNnI4loUwXzA4vx2wBwZmIzYhC9N2+eOLA== 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=dExW8Kc5DD8ZAKFmUPtQsFfQrkJ7XwD96TWSzFbMqUE=; b=CspUJzFNoof9CEoeQN0sUViF01dulFi3+x5LTFHGeou6cpysdlzkELBLhImfOigtm8LdJvL2kYn2HnxRC7JOARiMAVyVNjsRplt5+q+GdS/LQdlwDfLXMcI420lD2DygfUyQ5akILn9P4F5OxFqAtMEHgXKOoD/byc8PKY7nMF3zClkPohauIc00G4xSg4VQOYiM97zb2Z4HxC78rP/UavPB9YlshGMg5v4TrZAZaT6SloAK9lG0ifDN8arCsDLBL+VrRwupgh6q/lBokgAukIeTeGLaDCUbSI2nB5TFUb/1YRUqu0CBII3ZQI3d1t8x+djL4+Laiecm8lPMdkM3SA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.linux.dev smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dExW8Kc5DD8ZAKFmUPtQsFfQrkJ7XwD96TWSzFbMqUE=; b=DXaZ077X2rMnFUr0lG4wr7vRdud2J5BLN1Ew1kFq4TSIo6XQQybbTyNPOYPznzycuqlih0XFoRNgYs91vr9+MABfgguyH4UEvfwPvjfutap95C9s2QbQgA1L58plXtyxD0oU8aNgD+uX5OndfSmPmr6xETir3dy4bJYET/odjaE= Received: from CH3P221CA0011.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:1e7::7) by DM4PR12MB6254.namprd12.prod.outlook.com (2603:10b6:8:a5::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9791.34; Mon, 13 Apr 2026 14:46:38 +0000 Received: from CH3PEPF00000014.namprd21.prod.outlook.com (2603:10b6:610:1e7:cafe::83) by CH3P221CA0011.outlook.office365.com (2603:10b6:610:1e7::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.48 via Frontend Transport; Mon, 13 Apr 2026 14:46:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by CH3PEPF00000014.mail.protection.outlook.com (10.167.244.119) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.0 via Frontend Transport; Mon, 13 Apr 2026 14:46:37 +0000 Received: from BLRANKISONI.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Apr 2026 09:46:32 -0500 From: Ankit Soni To: CC: , , , , , , Subject: [PATCH v5 3/4] iommu_pt: add kunit config for 32-bit VA (amdv1_cfg_1) Date: Mon, 13 Apr 2026 14:45:20 +0000 Message-ID: <2a9b91f957bc6538e86c71da75503fb320fbf30d.1776075533.git.Ankit.Soni@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PEPF00000014:EE_|DM4PR12MB6254:EE_ X-MS-Office365-Filtering-Correlation-Id: 78562035-c8db-44d0-d3b3-08de996b7721 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|36860700016|82310400026|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: asAoEi4uj/p6VFtzMQd12MaqGqs5oqKoeO/784+Lfu88YReDcB+XrIARJa4iOsqkbSe6gJARqyIqL/YK/zLrUch+fMF8nvp4cASh2BjLYu1RS/MP3Y79mzHxVF53uJ0yLr7WsEMkbSfmc5OtjG4nm5KOS9bjkp01V6vqnv9Lk0xbJjIcKXhGe3SRTM1MeIGkj6nYr41JNcmCfj8m4vAli+V1xrYsRZ+PrJqf9j9GeQ/33nYNW5f9Tn24XlGcF9yDmjZamty0ud/enoPVYBWWPzHUazj7NYjRJP1mSv3zTqMM5DbHH3olhjHP4cCuNEUEP0hZ7v8tU4XyR7y6olSsgnl4qIzA4RqnXFG7PWNbMhfskbFgqhF26qY4qAt7p53ZpKa/rGoTFiUpLYdFirTQnjAAGU2EOHVemYDYZ0EFryBJhFp1bdpGtG1ZWA1StlFxovL5Z24PLJoZaeXMsDuN8c9QrBVuKJ0Duw7UoPODSqnA5KXgkxsWW+L0bhHUDIcCmPMHq98R/oVXwp6/UPmbZhQua6baJ4FPNKpke+pqlU6L3eM7EXPPBZhFqLCt/LvEeQOMzb6o2kfxgTLjYyk6/3yg4AFhiVwZV7W2bk8lBvcXasK21b7Y2zdkmPAmBHMSVzwPz5tiW9Ihl0g2v9aQfukLBVCzxAGSliNqrfk8h5EYVOgHJYma6EBvb8+XS+uVq7itkewA3rLpWLqqyVEiTZQftpqmIpLqbu/IlwebCkMu9j2bOjQ9nGymdfc8zdMgWbbK5Gmh1SX2tKmP9uvmAQ== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700016)(82310400026)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: e+2tIEaTkKPfyn/PRPxuMroFtJb8ZWetGKlRT3lL6Gmdh3zmv+R1K/W/NfZSzbgz+HtX9lxwaWdHIX8o5gfDUNsLfnfPzDv5WGNMB+G0ObtrVhuCjKxai3fC1k6TIlNGNPYiXDNfn1HFmqP5QTerF//qk4t98mwFnz1TBkP9ThfYP4Q4S/by02RWFXYquYGlyCEkjBeYeGiQ3xPYSrXpsfmX7zJ6uJ601eUDP4zJ4MRUSeZ3PERpNgDE7MllURFKbVcl+RtXZGdDiPrr6s0BGrRQPy+7vuDcq+pSW9UgWDW0rBf7ygnzea/0aTKb+A06qrBHYX3kuasPZgzob+NculO9cyOLIPoES2NRlbyHEsURRpLrCv/LOVFOEOhWl4pF5Q1eCxJAvJTVKp99atx/5QIJdCsefTKi5OyZdOsvur3zRsCQ3XED1spcwpx+v3Iu X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2026 14:46:37.2172 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 78562035-c8db-44d0-d3b3-08de996b7721 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH3PEPF00000014.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6254 Add test coverage for small VAs (32=E2=80=91bit) starting at level 2 by ena= bling the AMDv1 KUnit configuration. This limits level expansion because the starting level can accommodate only the maximum virtual address requested. Reviewed-by: Jason Gunthorpe Signed-off-by: Ankit Soni Reviewed-by: Vasant Hegde --- drivers/iommu/generic_pt/fmt/amdv1.h | 1 + drivers/iommu/generic_pt/kunit_iommu_pt.h | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/generic_pt/fmt/amdv1.h b/drivers/iommu/generic_p= t/fmt/amdv1.h index 3b2c41d9654d..52ea88ee46da 100644 --- a/drivers/iommu/generic_pt/fmt/amdv1.h +++ b/drivers/iommu/generic_pt/fmt/amdv1.h @@ -404,6 +404,7 @@ amdv1pt_iommu_fmt_hw_info(struct pt_iommu_amdv1 *table, static const struct pt_iommu_amdv1_cfg amdv1_kunit_fmt_cfgs[] =3D { /* Matches what io_pgtable does */ [0] =3D { .starting_level =3D 2 }, + [1] =3D { .starting_level =3D 2, .common.hw_max_vasz_lg2 =3D 32 }, }; #define kunit_fmt_cfgs amdv1_kunit_fmt_cfgs enum { KUNIT_FMT_FEATURES =3D 0 }; diff --git a/drivers/iommu/generic_pt/kunit_iommu_pt.h b/drivers/iommu/gene= ric_pt/kunit_iommu_pt.h index e8a63c8ea850..ece1c9b8c55d 100644 --- a/drivers/iommu/generic_pt/kunit_iommu_pt.h +++ b/drivers/iommu/generic_pt/kunit_iommu_pt.h @@ -112,8 +112,9 @@ static void test_increase_level(struct kunit *test) if (IS_32BIT) kunit_skip(test, "Unable to test on 32bit"); =20 - KUNIT_ASSERT_GT(test, common->max_vasz_lg2, - pt_top_range(common).max_vasz_lg2); + if (common->max_vasz_lg2 <=3D pt_top_range(common).max_vasz_lg2) + kunit_skip(test, + "max_vasz_lg2 fits in starting level, no growth possible"); =20 /* Add every possible level to the max */ while (common->max_vasz_lg2 !=3D pt_top_range(common).max_vasz_lg2) { --=20 2.43.0 From nobody Wed Jun 10 15:20:27 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010064.outbound.protection.outlook.com [52.101.46.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 D3E513B38B8 for ; Mon, 13 Apr 2026 14:47:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776091636; cv=fail; b=a2O/ot7Lpxy7Xsm60/mGR0ntzpW6bpIzHeMs09V/U+MGdff2f6bEFs4yP6PoYiVsHb7irm3Rgow9r4SjEs1TWmDKkSnYtLWBNxxS0fURQzMmzJES+a0q5OrkW1bONN8F9E+NTXtAKcWuADRa6cxI0MKdHUKw0Gd0QOA0zxzaiGA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776091636; c=relaxed/simple; bh=2lzbzujy6hfcDVy8JoyV4li/VYMz7hxgC2z01rLpwUg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=XiCRFxqQBod92RwmzTlLye5VrmJcd94nQmrSIHsVJq9akR2HAYFdiNlk2Y4zHD/Ew02dwarWW8PN1lMHKpHfFxeE3IuhUBQGKjyYcwM3ojY+pE48L7wvkd5C9qKxpq60XQpjVkCMbgyuo/pTZVYHifQy/asJhvGvsD+d7xWsozw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=NcrdESQU; arc=fail smtp.client-ip=52.101.46.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="NcrdESQU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XjF4uCKKQ/XJ4TbyzEfghg0bwyfhLRYXc9IsXDPZBtUip2nVMYE47X3kL3i2YMVFaYfOOUz2iRPlRrL492Mr9LcvvBTIohgCFEBRjGV+wxRt7gtUB4x3Z1rCFda7SIOcF9OfIupWqiYbvce7N2U5uiOBow8TnTmbcEQT9P7+H4xp+ybqG42XDmmx0sfCo0gH2xRf6qNSMXSJWxC9L3YgzcfAuylBHrU9LdSFMZgsXfOzLGXSLGkO9mdby/9uJY/++o4OP9cKvJLRwis3ZvxOzQpKld3TJ+8dt7mF2ZZ9tjBu83iErG5NL+sjntCSz6iqQY2S/F9lQ1s2zity25+J0w== 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=bidcYRQU1gsKoST20xMV1wt7Ww3RkNqewVjbg0yrmn0=; b=fbGBV1++02NPHe6pLC+sGBS/Wp9y1+38IZmXluXqpUT2VCWSw/bgThyNhNawdv0XcqGXWXeUYWnHzvUlmlrpXr+NWzWxphZWIjEyaceqM5PmQ3k4KtVhG/rIvfZDkDsbsHmW91LH+57oL34uZWpVN+WiyLtuTffk4+X+avVU+Y+E83tOu/VrJsU17WzNpHt3i1ptQj6buA7wJOYGRWPR1BwUVYd3uVZ6lJ56TBmp0i3QwADtjnrp7L8b10bJrjAjuGx3U1OlESOzdC4BmUVu1vxKJKTaCNfNC3a+D6Koa1sIWx74FGCynMwf0NtPagYq/kP4cu+LExfr5u94zkQv7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.linux.dev smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bidcYRQU1gsKoST20xMV1wt7Ww3RkNqewVjbg0yrmn0=; b=NcrdESQUXTYuL8e7xETbJ+oN2+faXqB9bXH/bIQsxWc79YC+PNEnyCa9pDZIseElvfyGE6RyGNkaLCdfCaZB6uszXbvj6/16+ejfR4DXYXY91738sgfFEDgeIAGdr/CLibFzZspqcqLsX1iTBGK0XVdyo+dNLsZ4f7AiugvtLnE= Received: from CH0PR04CA0072.namprd04.prod.outlook.com (2603:10b6:610:74::17) by SA5PPF3C36BFCB5.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8c7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9791.34; Mon, 13 Apr 2026 14:47:00 +0000 Received: from CH3PEPF00000017.namprd21.prod.outlook.com (2603:10b6:610:74:cafe::62) by CH0PR04CA0072.outlook.office365.com (2603:10b6:610:74::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.48 via Frontend Transport; Mon, 13 Apr 2026 14:47:00 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by CH3PEPF00000017.mail.protection.outlook.com (10.167.244.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.0 via Frontend Transport; Mon, 13 Apr 2026 14:47:00 +0000 Received: from BLRANKISONI.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 13 Apr 2026 09:46:56 -0500 From: Ankit Soni To: CC: , , , , , , Subject: [PATCH v5 4/4] iommu/amd: Adhere to IVINFO[VASIZE] for address limits Date: Mon, 13 Apr 2026 14:45:21 +0000 Message-ID: <180ff283b9024dff4d8de39499623c749de56c89.1776075533.git.Ankit.Soni@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PEPF00000017:EE_|SA5PPF3C36BFCB5:EE_ X-MS-Office365-Filtering-Correlation-Id: ec55cbd4-6cef-415d-f54f-08de996b84de X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700016|82310400026|376014|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: XMUtBNlbRBET2rqeRiCsZNSNnVjh4fuF1KEMahgkwrj4purKBDzIaB7ZMvV3UHXtOl/4yG4KgRXl0SrN1KAAJWz+8K8Cqhgf2Sq+2ckcZBSb/HJGIyo6xGwZzit8PEOjAZE6OFefrBKPRBAGd7kPBFajHNTwHa7g15MkO54LmJqH9s9o1Rd1UbxN/n3cFVcUqAd0kj0SpaxEWlth/bngDtGwR1KbXmDBPU4QtiPArE9OsSLjZAQ3R8SPkDIyiy/vbJtxxA3Aqqg0Sc/9K9MzAV+Wnh2gZp/ScRFbGf1q/p3NhWicheQZPY5fwcABqR5ph0kQvcC0SrjIQFDChwNB5gov41C+8D6rLHG71p8uaAM6gpoOTjZZwT74DR0+eSrgvrLXstb1xRN46ZhsVZ8sJTj1m3fXSZHiUzME7PEkFz/vCNfaNNWYGkNKaEiG9HqjsPtb57W/prfdA7OmGA37zac49qQZ9rQEXIrM0xwDTBgvYutGl1hm+Ivn2htLTrRSd2TJV2IEDd01K7RT/kiLoMOkQKg553GZEVkwBVBPmDjTi1PXZlfgXJo7NVVb1gSOi+nsCTGvR84jsyiglDTc5wYKaqkpPYyEDVFMf4FnzGsQXaRoE/OcQ7x4fzPjOLciQ9Si6ATlDnTyGxf+k4HBBnYRDumBIDKXMgYC4fcf/zSH5wD0aePYydAoxvYiRcLOYs20PgK8St2A9EJ6ZH2b7f/5VHUjveLxl6AHmGWd87B6Wu334yP0JeiK3uwIwfjhc8REnkTKGu1XBRZ147MX0w== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(82310400026)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: h75C4+RGfL9y0mCLw6IQrcVmcz81SX2twOT5fQb/81G8oRdxp3Lf0YKDkGvFDHlX1Fnt3rIAZpjz63JFwznYBxAvlQb+2Rp0lundYKKemBsde8+cphVdGlgXq2l+8C9e+WNUIqIhH+ZyCRTRCGhCuW6jrcRSX25Vq7N+2I/MmjnTCpA4yPWwsHg+fsSCWo/tseDRPG8DTbiosbnBHuCC8NeDCg8DQJ8XqRuPIBsGIe46+XdxqxPj3zftrmZCemur3WgnXedMM9hhBLk1d5TxauaCs9YUCClb6mqjZlMtcu/U4RxHQGTkyma+IfMUIlxDe7JL5cNB+xgLIxCIRIkMWtzFE8czNLzjp8DpxfvqCbrffxKgn7etVdBhnabitM3pklhWx75ccjLhi6uqP/7uYy04yWyHW7Cn5NDXs3O0ZFVMnoh9BWvpSw7kwP13Bt6b X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2026 14:47:00.2410 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ec55cbd4-6cef-415d-f54f-08de996b84de X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH3PEPF00000017.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF3C36BFCB5 ACPI IVRS IVHD=E2=80=99s IVINFO field reports the maximum virtual address size (VASIZE) supported by the IOMMU. The AMD IOMMU driver currently caps this with pagetable level reported by EFR[HATS] when configuring paging domains (hw_max_vasz_lg2). On systems where firmware or VM advertises smaller or different limits, the driver may over-advertise capabilities and create domains outside the hardware=E2=80=99s actual bound= s. Reviewed-by: Jason Gunthorpe Reviewed-by: Vasant Hegde Signed-off-by: Ankit Soni --- drivers/iommu/amd/amd_iommu.h | 2 +- drivers/iommu/amd/amd_iommu_types.h | 1 + drivers/iommu/amd/init.c | 13 +++++++++---- drivers/iommu/amd/iommu.c | 3 +-- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/iommu/amd/amd_iommu.h b/drivers/iommu/amd/amd_iommu.h index 1342e764a548..f915938a3a08 100644 --- a/drivers/iommu/amd/amd_iommu.h +++ b/drivers/iommu/amd/amd_iommu.h @@ -41,7 +41,7 @@ int amd_iommu_enable_faulting(unsigned int cpu); extern int amd_iommu_guest_ir; extern enum protection_domain_mode amd_iommu_pgtable; extern int amd_iommu_gpt_level; -extern u8 amd_iommu_hpt_level; +extern u8 amd_iommu_hpt_vasize; extern unsigned long amd_iommu_pgsize_bitmap; extern bool amd_iommu_hatdis; =20 diff --git a/drivers/iommu/amd/amd_iommu_types.h b/drivers/iommu/amd/amd_io= mmu_types.h index c685d3771436..6a85a38d34bd 100644 --- a/drivers/iommu/amd/amd_iommu_types.h +++ b/drivers/iommu/amd/amd_iommu_types.h @@ -395,6 +395,7 @@ #define IOMMU_IVINFO_OFFSET 36 #define IOMMU_IVINFO_EFRSUP BIT(0) #define IOMMU_IVINFO_DMA_REMAP BIT(1) +#define IOMMU_IVINFO_VASIZE GENMASK_ULL(21, 15) =20 /* IOMMU Feature Reporting Field (for IVHD type 10h */ #define IOMMU_FEAT_GASUP_SHIFT 6 diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c index f3fd7f39efb4..e874a4135d5c 100644 --- a/drivers/iommu/amd/init.c +++ b/drivers/iommu/amd/init.c @@ -152,8 +152,8 @@ bool amd_iommu_dump; bool amd_iommu_irq_remap __read_mostly; =20 enum protection_domain_mode amd_iommu_pgtable =3D PD_MODE_V1; -/* Host page table level */ -u8 amd_iommu_hpt_level; +/* Virtual address size */ +u8 amd_iommu_hpt_vasize; /* Guest page table level */ int amd_iommu_gpt_level =3D PAGE_MODE_4_LEVEL; =20 @@ -3188,7 +3188,7 @@ static int __init early_amd_iommu_init(void) struct acpi_table_header *ivrs_base; int ret; acpi_status status; - u8 efr_hats; + u8 efr_hats, max_vasize; =20 if (!amd_iommu_detected) return -ENODEV; @@ -3218,6 +3218,10 @@ static int __init early_amd_iommu_init(void) =20 ivinfo_init(ivrs_base); =20 + max_vasize =3D FIELD_GET(IOMMU_IVINFO_VASIZE, amd_iommu_ivinfo); + if (!max_vasize) + max_vasize =3D 64; + amd_iommu_target_ivhd_type =3D get_highest_supported_ivhd_type(ivrs_base); DUMP_printk("Using IVHD type %#x\n", amd_iommu_target_ivhd_type); =20 @@ -3240,7 +3244,8 @@ static int __init early_amd_iommu_init(void) * efr[HATS] bits specify the maximum host translation level * supported, with LEVEL 4 being initial max level. */ - amd_iommu_hpt_level =3D efr_hats + PAGE_MODE_4_LEVEL; + amd_iommu_hpt_vasize =3D min_t(unsigned int, max_vasize, + (efr_hats + PAGE_MODE_4_LEVEL - 1) * 9 + 21); } else { pr_warn_once(FW_BUG "Disable host address translation due to invalid tra= nslation level (%#x).\n", efr_hats); diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index 760d5f4623b5..c18252a2c857 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -2712,8 +2712,7 @@ static struct iommu_domain *amd_iommu_domain_alloc_pa= ging_v1(struct device *dev, else cfg.common.features |=3D BIT(PT_FEAT_FLUSH_RANGE); =20 - cfg.common.hw_max_vasz_lg2 =3D - min(64, (amd_iommu_hpt_level - 1) * 9 + 21); + cfg.common.hw_max_vasz_lg2 =3D amd_iommu_hpt_vasize; cfg.common.hw_max_oasz_lg2 =3D 52; cfg.starting_level =3D 2; domain->domain.ops =3D &amdv1_ops; --=20 2.43.0