From nobody Thu Apr 9 19:16:17 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011010.outbound.protection.outlook.com [52.101.62.10]) (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 2E83F386435 for ; Tue, 3 Mar 2026 20:13:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.10 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772568833; cv=fail; b=UKhnL/YXEqzO6+KNnoJcG2DmgmwCoRKVccZTszPUCVRXOOkRYGeiMU6/dfcndL42/TtchX/gNYXtbaFd3s+RymbEmsWGT23SzK7Ecc1QmnNSnZK23kbqx9sN9/g1S+ovlF20/Ix1mcFcRvlTPlBR0rHnjffMLqVymIw7dykvzL8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772568833; c=relaxed/simple; bh=QbTc3pNeII7bXA4eAg7BaDa+lqJcMS0W8Us237vB2A4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=R2eWAh2qXA99wFmX90GcQKFnaxknnEBCQWciv/PSr+Ag0C74jIPj5J9wn6nv7R/kP98+M4/ENDzpH/ulUl8H8A9JBkd6Yehq9tXeO58eEtcVgsecH/sPMEsw35CDHis8fnJMaDVTW8n6k+8O0fBUz2zVAEp1gGe5bjwOFnpl9is= 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=D6SqDmGY; arc=fail smtp.client-ip=52.101.62.10 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="D6SqDmGY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=spMJjIPdT+Cyz17y9OBwtIkgoRlGN3q3eKfc+I8OgzZcB37gyDDjzx7z3eAeS7PcFIQAII68M1tHe8s2MJLKGH1KM4AdzdEGPnOF3ejqeGZdVM15hwcyNrv8tMEbW8wPNDl12rR9wZdGXnJwBJD/VV/o69M9jl+M0Uy2K9EPKN8SjY8iwhiIP8q3pdkyymXye38j866BxKlVRvlLhV4NZcrjKu7J4zZdh195waAn43HDfWOdrkSmV7r7x9KjOgDOsY/IEhvMmgMTvluE8BAl2ZbXSzqSwMGjkeYKm5KSZuEGbb9imqPaoxCH7+ruh4lymI2NumNWSobjDcyzhSmbfg== 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=VipprFJAxSItjGuUwxDmhU/95+2yKmVk0VXAe6BeanY=; b=mBa7+yuwkSuAR/Jr1WMJ35l0ZNdlbO2iTUe277i+e/dqZF8/Bkj9Anb9nv8Xs5StoILQIYMZn9C3+QtkyPYtGcfeCiduFn+KnWG8QenYhEwU7rilibEX1MXa0w5UuppAtY93AgMzs2Z/hZhLbhXgckSHcKKqcJ2tc6SVp+npFSW6Cgejb7dw8unp6hy+w0+aBHN19UWG1Lmv5hEyAR1r7dJ15uUL/6kyHojFstuQJZGf+dRruJi41p/Y7MFQG7rKX8z2Uj+Y+hoGv0wRfAdMsD0hrG1Trlbk6cHfRMwpXUtqIv20EsQHDThND6lm2vVCmgjZKS8qTTdvCgstRG17Ow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=kernel.org 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=VipprFJAxSItjGuUwxDmhU/95+2yKmVk0VXAe6BeanY=; b=D6SqDmGYY5NONocQJLSevLqcLCFPBrCs41kNqH/w4nfNVa4kyOlkwIzkKiDqyOV0mu9r1V9/LlOIPCtccuqlqi4ersrEBCUv8Yfr4JqJmLdr0/VakNHCOVSlgG27YU/iEe0QPBRC69MnCdNeF9G5USspoerGmKU5UeX5YrlsIoV40RzNR23Fid0GM+4bmOofOkd25YL1QnEg/GZOkNQJVeILbqPF9J9oiD8O26bqlmALfeSGcRQ8KHpZsE/pefyXR3GjiWnnCTSAfYa0cMFZSYj74i0KgutGlulB7fvyxpkwKrD3VZHNST8SqviVnQ6HVR5fTGNMQjtamJhI3/yRzg== Received: from BL1PR13CA0187.namprd13.prod.outlook.com (2603:10b6:208:2be::12) by DS5PPF7856D51FE.namprd12.prod.outlook.com (2603:10b6:f:fc00::654) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar 2026 20:13:43 +0000 Received: from BL6PEPF00020E62.namprd04.prod.outlook.com (2603:10b6:208:2be:cafe::6c) by BL1PR13CA0187.outlook.office365.com (2603:10b6:208:2be::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.22 via Frontend Transport; Tue, 3 Mar 2026 20:13:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by BL6PEPF00020E62.mail.protection.outlook.com (10.167.249.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.16 via Frontend Transport; Tue, 3 Mar 2026 20:13:42 +0000 Received: from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 3 Mar 2026 12:13:21 -0800 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 3 Mar 2026 12:13:21 -0800 Received: from Asurada-Nvidia.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 3 Mar 2026 12:13:20 -0800 From: Nicolin Chen To: , , CC: , , , , , , , , , Subject: [PATCH RFTv1 1/3] iommu/arm-smmu-v3: Drain in-flight fault handlers Date: Tue, 3 Mar 2026 12:13:05 -0800 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-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E62:EE_|DS5PPF7856D51FE:EE_ X-MS-Office365-Filtering-Correlation-Id: 45576ffe-04ba-4a6a-4576-08de79615e22 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: ZoLmfj/wrm4iKoEEXq5UM/Befu5SgQf/330FIpB34QqQSfiXcnVZZeKoGe+9SxN5+2xJ/YPkTj0lSajwYx3V20WZp5Q+a07ACmwIhOzKBKzwNhmixQ6qw6IRywU1Ainr4rD/aErnMoAY+e4+LsjZXbqPEE0B3bd2rmGKjg64U63Doo9evUz2KSrTnfz2isupEcw/otQQQV1oRg6r13Xs0WjtJb32PLyR/RTdN93laA6wNqP+yjPyQgIBURh59uE8LFbzuGeioKGEN/6Zxtjm7gUnOQQ2OM1HAm5jxjg5Mo79n0U3VZxVfToQHza0Rluk774ftyVbb1UlMYq6RZC/O2OjFOhbDTvZhLrevhF0S9klLo/ipg74j2uRhjksm83Z6QDGdhermjDCuFFvnxkYUXK/kuUfUxCnZtyiQP8iDLRsleT0CYbsTLFl03QeZ5Bl6Z+9f7en9C3l8+OgYPG+KHNv6Dw3ra9NOngihFDoQg9bTV6zilC6qDHXczIScHB+PLDGApsBHRzDDKq9Hbmlrs8/E+ZJe7y+PFFsQJFgOfFNq7JAQwx+8xQLjp1Krjj/lzZAFItQTME3mxVyik94VfNdCUgNnzuk7YlZfLS/7vBrNZOWRxVTd186xS9yQHodJ1BN6islDDzMCPNX6evpZXzlX6Ad4k/PeqNcgqccMLEGuuFxErlzDPSY0OAVhwfk4vIKZLX3iJg6F6meob2bgAHF9NU6JIaX6QuasvDKYCOYvK0U7zSxDsda4x+Aqym2lh1pQkia0+A/FnVaXot8zUP9VJz4gN563iEFgfe/BSwVTo6zXU37pEXDNugEpzAHTI8d9BDiipTrsNgRFTHEEw== X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8cjJkGMvAmWT2Uz1typy5p1XuWci5n6HcXkPpv9G13iA9N8Jrn3hD7COpRYKnHnZwAzKrwycXgufQHLlhFkkcr8yniWIcGm5UH1/U+p6MEgaiskSF3yIDW2T1wLnQ/ui/2HkftJfVAffuu5BH3VE+P+vuUqNQLcz4NnO3mI6TTqQNGdVRdxESRxQ99nJITY7k44F1EmQgaJdnq5OLw3j/nEUXKIz/ngTLJ/Rjn99WGqpg/kFbEtfhZonk2fp2LZcWkBhb7G7xVIw5GTbMSLljELIU+n9qYh5F05hq4Nc3Txyg3uGybK2Q71EVhr+dDSPv1O3Ed+R+Xzby30pdUPP8ZLB3Lg667qHmbXK3YWWv+oyzbalfcyF6Op+SB3Wo4Uy1wr52bpJxMI7PBtDwmS+iQwp9EqhKK3tlp0624iTnblRZTUwfqP/SNLEsagIMkcZ X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2026 20:13:42.9357 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 45576ffe-04ba-4a6a-4576-08de79615e22 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.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E62.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF7856D51FE Content-Type: text/plain; charset="utf-8" From: Malak Marrid When a device is switching away from a domain, either through a detach or a replace operation, it must drain its IOPF queue that only contains the page requests for the old domain. Co-developed-by: Barak Biber Signed-off-by: Barak Biber Co-developed-by: Stefan Kaestle Signed-off-by: Stefan Kaestle Signed-off-by: Malak Marrid Signed-off-by: Nicolin Chen --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/ar= m/arm-smmu-v3/arm-smmu-v3.c index 4d00d796f0783..2176ee8bec767 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -2843,6 +2843,12 @@ static int arm_smmu_enable_iopf(struct arm_smmu_mast= er *master, if (master->iopf_refcount) { master->iopf_refcount++; master_domain->using_iopf =3D true; + /* + * If the device is already on the IOPF queue (domain replace), + * drain in-flight fault handlers so nothing will hold the old + * domain when the core switches the attach handle. + */ + iopf_queue_flush_dev(master->dev); return 0; } =20 @@ -2866,8 +2872,11 @@ static void arm_smmu_disable_iopf(struct arm_smmu_ma= ster *master, return; =20 master->iopf_refcount--; - if (master->iopf_refcount =3D=3D 0) + if (master->iopf_refcount =3D=3D 0) { + /* Drain in-flight fault handlers before removing device */ + iopf_queue_flush_dev(master->dev); iopf_queue_remove_device(master->smmu->evtq.iopf, master->dev); + } } =20 static void arm_smmu_remove_master_domain(struct arm_smmu_master *master, --=20 2.43.0 From nobody Thu Apr 9 19:16:17 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012068.outbound.protection.outlook.com [52.101.53.68]) (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 470543B4E87 for ; Tue, 3 Mar 2026 20:13:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772568836; cv=fail; b=aG5pO0h+mKCbhdVrXzFWYcFYA4hu0j7PUvsuwER5DFAHGI96S1udomkBHQQL/BxbUDX7NO08biHhwgtXynolV6XAedoZ1pGaR9jj0kPXPHX6Jy8VU1C0MQNPZ4e5w2IylYiFxKOoPDGhHxgHOv2P+7JJ5iJE+7+JffeHZ355AgE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772568836; c=relaxed/simple; bh=qj4Iqrsir2WmiaHK4/EiSOkBlY4eDrKZ0MgUDYAfVOY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=UMONlz7BH7MZZtbx9naCbGGLos2hC6GUvE82FeTy38jRzGxpXLkPwnBQ8+ZhnNw+nSDLCyL4sHOnwFib5nG4JDMyxuVAuBjeI3RSvy+S2OHWUDGHlIfkyzz6iiHOpaIpIzsj1fW+/kYbzg/rkwrCMizHfZVc6GevdydlmMVkpOA= 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=IJ1TbDGZ; arc=fail smtp.client-ip=52.101.53.68 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="IJ1TbDGZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=w4KrJhtoaQNviUksBZpAvFerlaXCuR7TK58gcYGpnKXWYy2CnxM/hn9uimSbS1CXKU/CdQ9RqwuClqGMvNjQ5ieQDxitdpmH1xkZqTSxpxntRoitT3i4pdKxLSJT5vybqR50AFvfwOz5jCYVR/MRlGTo2sxHK7UFMZB7aY7yA/4UJlmgERFOXc2ly8ZY4HF3TuZVD0B8Iazyq1PRQX5ELJeCDtVPLVOAklq7L2w74Fbe2zcEJwKZDzVVR2XoQaTljdX/wv7t+F3dZe9zIB5N5h9e8TzcYzObNFCsffBAFMGTat4fTEKuKi/W5NAg/QM1vs54Ut4nem1l5CzZXsc6NQ== 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=+2lIhtbKvApOBKE2LwEEGIAsABSutCr+bRcpteD+VoA=; b=fWMK8Pj8CI/bVrZec8xQVrhY3QTrLipd545LPZOtnJzoWwaQCNrtDtEieVMm2LhM83ykMxIdRWlZsK2TimvlGXXQB0bHvAyIC0H34cAQtWhZGZ559YAgZdhklfeU2vaku/Uyl8CtttKvCcSkGwQsMGcOMfxsX3qGLDHWpiJT6UpmhLvZhd0h53xkQcYvPgdNI7cDH2nHf8fIjln0JTIR84U02XUVgfhXLtndBDhV8tWxq1JQ4m7G629woIw3ZClgctDZNFJ4xn+SoNVvUEDFCCQIlWkUMSsFRutIG4Ey8ZmpNQn/E1YEPJNQ3169d2i7Wz+AGcPgKYdrJdAbIzCwsg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=kernel.org 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=+2lIhtbKvApOBKE2LwEEGIAsABSutCr+bRcpteD+VoA=; b=IJ1TbDGZ47Wcw7usttWCnuofFO55el6RRF/GHuhm0w6kk0BZZ6ydPRm5mCt49526z2P4eeWkk4yzAnXPsk03Co282aDTKPxmruhVa6tVGV79+6B4kre8w+mHrvibpiuqfMEALSHh8EqQKbsANOKcHhp5atKasA08JmK/yHxoQnPMIpPQ/eGmu0hwhty5FewP4FscfS9RLBYKu/qVZX6dXi6WJaOuJJxGc5JSQJdC6va/lcDDc5yyPnj8nTH6SxD6TMo8GXIroA70dLcaq8mQzJZE92bUG2zNQmvM+xW20rf2zsNNxBDnNCwdO3D4wThyqDe/9POzc6c5NF61osiS7A== Received: from BL1PR13CA0181.namprd13.prod.outlook.com (2603:10b6:208:2be::6) by DM4PR12MB8474.namprd12.prod.outlook.com (2603:10b6:8:181::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar 2026 20:13:44 +0000 Received: from BL6PEPF00020E62.namprd04.prod.outlook.com (2603:10b6:208:2be:cafe::50) by BL1PR13CA0181.outlook.office365.com (2603:10b6:208:2be::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.21 via Frontend Transport; Tue, 3 Mar 2026 20:13:34 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by BL6PEPF00020E62.mail.protection.outlook.com (10.167.249.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.16 via Frontend Transport; Tue, 3 Mar 2026 20:13:43 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 3 Mar 2026 12:13:23 -0800 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.2562.20; Tue, 3 Mar 2026 12:13:22 -0800 Received: from Asurada-Nvidia.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 3 Mar 2026 12:13:21 -0800 From: Nicolin Chen To: , , CC: , , , , , , , , , Subject: [PATCH RFTv1 2/3] iommu/arm-smmu-v3: Submit CMDQ_OP_PRI_RESP for IOPF event Date: Tue, 3 Mar 2026 12:13:06 -0800 Message-ID: <306eaea18559e090d6e5d65df673b1b245a84cdd.1772568590.git.nicolinc@nvidia.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-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00020E62:EE_|DM4PR12MB8474:EE_ X-MS-Office365-Filtering-Correlation-Id: a92ab65f-0230-4a06-df0b-08de79615eac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: iiHjXl2EEX2rZE+ol8I/UZYYGf1mfXbnfAUAls16h6wRgpSivO9nv63YAeezcHJVLKDTjZiOtJ43D3SIbdQkr7VevByz596lq1oWeiyHKO44fWA0YOgvTK22DulP/hsYkl4XP+sBMmHSOzWdqrrD93+9zKJrPLp8mWFauM/92UhTACRokejnPb0wtMXKahcHZY0nG4zs4AyY/exZAm+FJx/7GQjHpQ3LTIln6q8xqG3PvHY/YEGu0xO3Qt7VVh+tl7W7i9+bRqDExL9TsNlHFmYGqw188f/SW3yaRkQAUuFe/kOd4ZQ0C+2o7VbIEPWAzFQxTc5cKloK/0bmLB205TfR528rUO2/ldNn8kfJg6ThEeKC/OJfxmriZLb6rlx9bX2isoAibUEKzWlbXM478JVRs1dTkVcWtQj/7SSSl47ndyx3CkmPB5hyfZiBiYhlwegr+Cqz0GXvPRKa9S8i+Ia6R8EVIVtzoY0K0SrgE5uz1jjfFCDEKezct10dGZjVOfXxS20R7T5dVSa8Pd0HaiEtmR1au+uqJfbm6AU1a4UVmH3wa3+KsnAykhbW2QgZKFCAubdp95oLVJk5PdQe/yy8YEjOUYXXNDC4l5A6lg1KH4wTJj3lGNyLls5MQJ/Gja+tu+t0hq46C9ty0PdGjwXHM7P7/Ds6HpALCdusb6m86IusojI3rZ5GzxnDteKVr4DE1KHopRoPxGyZrXbptSH9YZrun2ClJLfIwMmmLhPaAoTwQhupuxZZVM57XOMcRrkkuEdmdtRspfMYzaeP3hZAXZlf3ShGGXC4k/MWCLLlpPnLmAuJyOxYg/iscY44X3+ey88DKSspVvF5DTuyGA== X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /SfAPVfOOTRBActiaA7ydbhMAYrsVOd5WwEX+pBX/B+c/N2paQjkzc5vw1fvcYvy9+iJQUnZarxU61P3TZoVsDS/eOcuUDuloku+vg++/ilpiXRK8Vh0um+dGFEyVtt4TypGWjzkT6QFKZGakvZCrqBQeubhH03gkA79G2nMf6MIPsyni4i4NoL07L9VTUKiFj2XD/SrMf8KEuRgQnykJyXZGZd/xwLXQfMbbuAHTU5JZBvHBCwcQs2MiQeHNeNDuH0Btd4sfI16mTlEB2mGg+tqW0Ya/22QIpzm+NfQz4sXf5byaiYjP1uby7LbkIBeXiWeeipDQMSgHN+SuhEzzLrBuUSs3KDhp6MCJjCwkrCxmIbhRS8925zK02rqwocaMOnEfBxtoWfbIZ1Wbi7scngTMYtzn9i5yFxYlWKc6/FCLLlaayl6d3FIc2F1XKi9 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2026 20:13:43.8454 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a92ab65f-0230-4a06-df0b-08de79615eac 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.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00020E62.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8474 Content-Type: text/plain; charset="utf-8" From: Malak Marrid To support IOMMU_FAULT_PAGE_REQ, the arm_smmu_page_response() should issue a corresponding CMDQ_OP_PRI_RESP for SMMU HW to response the page request. Extract the PRI info from the iopf_fault structure and fill the command. Also, slightly rework the function flow with the existing CMDQ_OP_RESUME. Co-developed-by: Barak Biber Signed-off-by: Barak Biber Co-developed-by: Stefan Kaestle Signed-off-by: Stefan Kaestle Signed-off-by: Malak Marrid Signed-off-by: Nicolin Chen --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 59 +++++++++++++++------ 1 file changed, 43 insertions(+), 16 deletions(-) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/ar= m/arm-smmu-v3/arm-smmu-v3.c index 2176ee8bec767..055dde5367131 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -992,29 +992,56 @@ static int arm_smmu_cmdq_batch_submit(struct arm_smmu= _device *smmu, cmds->num, true); } =20 -static void arm_smmu_page_response(struct device *dev, struct iopf_fault *= unused, +static void arm_smmu_page_response(struct device *dev, struct iopf_fault *= evt, struct iommu_page_response *resp) { struct arm_smmu_cmdq_ent cmd =3D {0}; struct arm_smmu_master *master =3D dev_iommu_priv_get(dev); int sid =3D master->streams[0].id; =20 - if (WARN_ON(!master->stall_enabled)) + /* Handle PRI responses */ + if (evt && evt->fault.type =3D=3D IOMMU_FAULT_PAGE_REQ) { + cmd.opcode =3D CMDQ_OP_PRI_RESP; + cmd.pri.sid =3D sid; + cmd.pri.grpid =3D resp->grpid; + if (evt->fault.prm.flags & + IOMMU_FAULT_PAGE_REQUEST_PASID_VALID) { + cmd.substream_valid =3D true; + cmd.pri.ssid =3D resp->pasid; + } + switch (resp->code) { + case IOMMU_PAGE_RESP_SUCCESS: + cmd.pri.resp =3D PRI_RESP_SUCC; + break; + case IOMMU_PAGE_RESP_FAILURE: + cmd.pri.resp =3D PRI_RESP_FAIL; + break; + case IOMMU_PAGE_RESP_INVALID: + cmd.pri.resp =3D PRI_RESP_DENY; + break; + default: + WARN_ON(true); + return; + } + } else if (master->stall_enabled) { + cmd.opcode =3D CMDQ_OP_RESUME; + cmd.resume.sid =3D sid; + cmd.resume.stag =3D resp->grpid; + switch (resp->code) { + case IOMMU_PAGE_RESP_INVALID: + case IOMMU_PAGE_RESP_FAILURE: + cmd.resume.resp =3D CMDQ_RESUME_0_RESP_ABORT; + break; + case IOMMU_PAGE_RESP_SUCCESS: + cmd.resume.resp =3D CMDQ_RESUME_0_RESP_RETRY; + break; + default: + WARN_ON(true); + return; + } + } else { + WARN_ON(true); return; - - cmd.opcode =3D CMDQ_OP_RESUME; - cmd.resume.sid =3D sid; - cmd.resume.stag =3D resp->grpid; - switch (resp->code) { - case IOMMU_PAGE_RESP_INVALID: - case IOMMU_PAGE_RESP_FAILURE: - cmd.resume.resp =3D CMDQ_RESUME_0_RESP_ABORT; - break; - case IOMMU_PAGE_RESP_SUCCESS: - cmd.resume.resp =3D CMDQ_RESUME_0_RESP_RETRY; - break; - default: - break; } =20 arm_smmu_cmdq_issue_cmd(master->smmu, &cmd); --=20 2.43.0 From nobody Thu Apr 9 19:16:17 2026 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010050.outbound.protection.outlook.com [52.101.193.50]) (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 515A8389117 for ; Tue, 3 Mar 2026 20:13:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.193.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772568833; cv=fail; b=triGsrCKbmXRkc0AcuevlKz/UjsmW/2PpkizTD7bs9Xq6gD8/R421A6GLA6T1pTjeWI92RpvHQDZuHr2to0wBni2+EsZ0d3znNQjmLD9552KphR9JhT6puE/rlEdUdhd+eRx7wrTheWOKY1bnOvXu3JCJlfCaA1LKC/raWw0OgI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772568833; c=relaxed/simple; bh=L7+d75mdqwtcNTNxIiWZjiURKgaU1cNMx+XojBAyB7s=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sUZrjvWrVUdB7duuwt3b3vi/P2i2HkHW+XFb0H9v2xzl/PcgD6TilUW87NcQCfCUbylHOhyV1ohGVie3VtlWv28TkFIUnRt14cISuEl0K6qpIZZBk+Idc4/bMybMdFKYY+BYLb9j1ot5EXsYPzBe2Kt6aBzA584iGZSUm7PL2vg= 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=n7i1+vb4; arc=fail smtp.client-ip=52.101.193.50 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="n7i1+vb4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XSjexfwmxn450YLjBhhhSHZ7EEInWBCyYqW6K8cyxrCGJhV2CbkljBu5nB+9wU+OUW2A77kmtXOFm/0Xz6VfokuJivk5PxUQ8j7TIvuzWhr6ib6E0sJWjN8Oi9nDnmo3aPTBCadrXVBjOPWVrMs6wSetunG+fZch36obuiPTRmje5Hv4opNEL1fUiXxga9hmGxI8DlzMYDej+M/RE0/6XGv28MBSaJxkQ7089RQmxtkY5ibhsMPPormbTvCQiRALjNtS3XavAQToLPb849ryqXzmOwuNgWMzIQwIzRCpUsLABO661QCtw2K63pi+eYfcLJizIjGAan3fHRrdV1ij+Q== 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=1c3d6cFSt8gmRfKS/lv0LfxlDCoGiAx+ugoDUdZoilY=; b=m8blW9uPLTi5g0z0Vmj45GuxNAkVsSYqEKH7K/pGF1zu7kv/2zI+heB9BwbfbwpazZYR/SOZufoGrvTOnoJnDaDM9b+AIHybj+ECMaapIPvHhakvcv3mgsJ2ZaMU0voTVvLPTn2T9krmdb2rXdAEuS0BqN4nRyZSRTleYLBrfu+TJbNFbwyE/GhOHnjhzkMAFQyrRPRTji1ZOhNFzOODTwCCJ8OMFHvtD3i+Qd9T0m92cmjdd9XnrLP1yHWf5UBfz1ftb5I+FbxtvUQLNKyKg7DpBuag2Nd0IXGY6Dc6/AejYiwBN7LoyPYOxk52+TU06w670P00AOUVAKjaHRRzWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=kernel.org 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=1c3d6cFSt8gmRfKS/lv0LfxlDCoGiAx+ugoDUdZoilY=; b=n7i1+vb4mjHNUCABl7cQNhwgD6OCSGNNP/CYX5JRQe2bDnvijUEKgcB6M/+T0NQXBd/Qb/Bju+l8jfjXgMXzU0xlZ9EjmI9oLltg+v55VpiA1/t8TklpK5BhQ8JiY63oG1j1dHc2vDVtMCVDEGC1xxMk9RZitb9n0D1s3P4M20rd5jI0HrDYruEjdjIlc8Ad88CqtwePbdyIHnHA1F2Coo6V1pj7qmbLQplJ3IR3NNn5HA/w4F9ys6bKbQ2lZQbqWY6UBk2uBatMk29HTP0jfd1EBfkJZf9vTp0EwB+rblpFCigQC2yFZQGLg8Sr9DO5o4c2fIe8ANvfNqZOZApy7w== Received: from CH2PR18CA0045.namprd18.prod.outlook.com (2603:10b6:610:55::25) by CY1PR12MB9673.namprd12.prod.outlook.com (2603:10b6:930:104::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Tue, 3 Mar 2026 20:13:45 +0000 Received: from CH2PEPF00000141.namprd02.prod.outlook.com (2603:10b6:610:55:cafe::86) by CH2PR18CA0045.outlook.office365.com (2603:10b6:610:55::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.22 via Frontend Transport; Tue, 3 Mar 2026 20:13:25 +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 CH2PEPF00000141.mail.protection.outlook.com (10.167.244.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.16 via Frontend Transport; Tue, 3 Mar 2026 20:13:45 +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.2562.20; Tue, 3 Mar 2026 12:13:24 -0800 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.2562.20; Tue, 3 Mar 2026 12:13:24 -0800 Received: from Asurada-Nvidia.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 3 Mar 2026 12:13:23 -0800 From: Nicolin Chen To: , , CC: , , , , , , , , , Subject: [PATCH RFTv1 3/3] iommu/arm-smmu-v3: Support PRI Page Request Date: Tue, 3 Mar 2026 12:13:07 -0800 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-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF00000141:EE_|CY1PR12MB9673:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b1cf3a9-ac54-46b0-25a7-08de79615f7d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|376014|7416014|82310400026; X-Microsoft-Antispam-Message-Info: jcLVYYqkO+781SJrBsYkv1W3YHNUftvhc8JyAElMPiqjZ3EP5KzttW68UoSQ2NsbXBNGcD5rbtONQ24At6yWwakK7sFiHHIcT03CwiPWAyQ9S083we7u59DMgPdlxbSu3u7GG1dDXE01CQXFspVcwkAPwbpFwZcCSQdgAK+TpRCVToIsRhO9m8AtoV3zyeOY3FEg1IEWAt7NrudxGzUpG09V2hMCBV3k4xZnpW4M9KDXjIhV5M621l5n+yY6aL6tM1dgrAAJytLOmPGvOLWK6z9+X+dzvbSNDB0COird4dLNnYG8ZC6zXbxtWw8jjyQ5T3tNjCl7O1tAomcQwM+lEtu7ePotRbWvCA69fOniFlUC/Ybth3/Iv6xhAa3vkKb0DE7d7bORQUFUY+mhRdZ1tzsfesNF6l8fJE+6BtkVpcaftJjkXloJn1zUegFXmerNrhWrVuOBNidhLjKtRnJ+0yW+pBRJsxoYkSq7HRuLaSIE9xVbkk0L1/cG+OLVLfbop5PLMyKn9uFdB9SEWw5iS7JD0VtJHbBk9BdfDqdt+ksmW/DIJsgNvj32Uyl12Q9k/i9JstXB9rTlLufTTwZlD74MMjX9CeOA9X837s1Zun8s8tm1bT1RW/6U1AcrUqdsKlSAjRiV8WDsdWqsTVNAkq9wdiXQoFy9sS84cWgQ+NNy8AA9YmULJqSBA82YftsiRfczd+DdH57GOZvLyD7aG+aTylcPDKWdntTcbuS9yzp7IcXrrE0fhKm+QgvBTaNjLIR6pchkkM0A9ZWJcvspR9tNiuqXHLNwKLaItv5yH+chcLpX7ggY6m5c97ZrjntSJns5dpmhA/0FJ6gY9Ujq6A== 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)(376014)(7416014)(82310400026);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TwYYtjvFTIabay3Ffn4DOakYG0IRXoYY9B7Nzv9/5gkzyitZ3MQ6zcT4wJzKWQJ72BBGmW8OJIYGV3I+3x0gaTlU8NTQt2nowGc+R2yPbk/5qFFrzEbS7U03tsFklAaqrXnIbLkgAsl2Pnne49+ymworSM8EaJzZUIVN8RLfgYP6HpV7Dfgt97gNdEDJQjwAgrRAVO1y4zjDp1ZN3iDH+xXekAEw7bCUjix2ljEV7DHX3AFmg3ZPegdlsxIjho3Plk8pzNSZqzQIeadJ/UPD3XH/Edsa0mx7/xAc1UPJiVDYSrpxnr2jdbSr2eBEUmVwfUyjV5+jSYm2gmMellXxGwFjmFsbb+K9yvdFOImGEhoZCITZLSa0Sat2zUVE+lXOgriwLjEbFWJQ+6TLiTmKrrH6RljsM5bBwhbVNvheUKKu9As842ARYe45uxCQLvIU X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2026 20:13:45.2569 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7b1cf3a9-ac54-46b0-25a7-08de79615f7d 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: CH2PEPF00000141.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB9673 Content-Type: text/plain; charset="utf-8" From: Malak Marrid Now, arm_smmu_page_response() can issue CMDQ_OP_PRI_RESP for page requests from the IOPF infrastructure. Decode the page requests from the PRI queue, and report it to the IOPF infrastructure. This fills the final piece for PRI support. Co-developed-by: Barak Biber Signed-off-by: Barak Biber Co-developed-by: Stefan Kaestle Signed-off-by: Stefan Kaestle Signed-off-by: Malak Marrid Signed-off-by: Nicolin Chen --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 65 +++++++++++---------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/ar= m/arm-smmu-v3/arm-smmu-v3.c index 055dde5367131..277d753c7675c 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -2061,40 +2061,41 @@ static irqreturn_t arm_smmu_evtq_thread(int irq, vo= id *dev) =20 static void arm_smmu_handle_ppr(struct arm_smmu_device *smmu, u64 *evt) { - u32 sid, ssid; - u16 grpid; - bool ssv, last; - - sid =3D FIELD_GET(PRIQ_0_SID, evt[0]); - ssv =3D FIELD_GET(PRIQ_0_SSID_V, evt[0]); - ssid =3D ssv ? FIELD_GET(PRIQ_0_SSID, evt[0]) : IOMMU_NO_PASID; - last =3D FIELD_GET(PRIQ_0_PRG_LAST, evt[0]); - grpid =3D FIELD_GET(PRIQ_1_PRG_IDX, evt[1]); - - dev_info(smmu->dev, "unexpected PRI request received:\n"); - dev_info(smmu->dev, - "\tsid 0x%08x.0x%05x: [%u%s] %sprivileged %s%s%s access at iova 0x%016l= lx\n", - sid, ssid, grpid, last ? "L" : "", - evt[0] & PRIQ_0_PERM_PRIV ? "" : "un", - evt[0] & PRIQ_0_PERM_READ ? "R" : "", - evt[0] & PRIQ_0_PERM_WRITE ? "W" : "", - evt[0] & PRIQ_0_PERM_EXEC ? "X" : "", - evt[1] & PRIQ_1_ADDR_MASK); - - if (last) { - struct arm_smmu_cmdq_ent cmd =3D { - .opcode =3D CMDQ_OP_PRI_RESP, - .substream_valid =3D ssv, - .pri =3D { - .sid =3D sid, - .ssid =3D ssid, - .grpid =3D grpid, - .resp =3D PRI_RESP_DENY, - }, - }; + u32 sid =3D FIELD_GET(PRIQ_0_SID, evt[0]); + struct iopf_fault iopf_fault =3D {0}; + struct iommu_fault *fault =3D &iopf_fault.fault; + struct arm_smmu_master *master; + + INIT_LIST_HEAD(&iopf_fault.list); =20 - arm_smmu_cmdq_issue_cmd(smmu, &cmd); + fault->type =3D IOMMU_FAULT_PAGE_REQ; + + if (FIELD_GET(PRIQ_0_PRG_LAST, evt[0])) + fault->prm.flags |=3D IOMMU_FAULT_PAGE_REQUEST_LAST_PAGE; + if (FIELD_GET(PRIQ_0_SSID_V, evt[0])) { + fault->prm.flags |=3D IOMMU_FAULT_PAGE_REQUEST_PASID_VALID; + fault->prm.pasid =3D FIELD_GET(PRIQ_0_SSID, evt[0]); } + + fault->prm.grpid =3D FIELD_GET(PRIQ_1_PRG_IDX, evt[1]); + + if (evt[0] & PRIQ_0_PERM_READ) + fault->prm.perm |=3D IOMMU_FAULT_PERM_READ; + if (evt[0] & PRIQ_0_PERM_WRITE) + fault->prm.perm |=3D IOMMU_FAULT_PERM_WRITE; + if (evt[0] & PRIQ_0_PERM_EXEC) + fault->prm.perm |=3D IOMMU_FAULT_PERM_EXEC; + if (evt[0] & PRIQ_0_PERM_PRIV) + fault->prm.perm |=3D IOMMU_FAULT_PERM_PRIV; + + fault->prm.addr =3D FIELD_GET(PRIQ_1_ADDR_MASK, evt[1]) << 12; + + guard(mutex)(&smmu->streams_mutex); + master =3D arm_smmu_find_master(smmu, sid); + if (master) + iommu_report_device_fault(master->dev, &iopf_fault); + else + dev_warn(smmu->dev, "PPR: unrecognized StreamID 0x%x\n", sid); } =20 static irqreturn_t arm_smmu_priq_thread(int irq, void *dev) --=20 2.43.0