From patchwork Wed Oct 11 23:25:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 13418072 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id ADA89CDB465 for ; Wed, 11 Oct 2023 23:28:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=N3nr2/jpVAfvgq28seT5SjyoiHi964oYsQTF38mVyv8=; b=YeRflU/Iq+JRTu OjhKJu1tvcNMx0NeVH+hfGer+ef3kO2rSw2g+wCP1BI4PUS5sQ2DJlBwXJWK8gKYN3oErmZxSNrSD xeLyZEWO7N2W0C1wxr3PTvfcvT3lXg94D+aWIAcXBSwuiuShEoSYiv1PMy2AJUA0w6NOJtTCRLyeS Wp5fNVOsh6uJ0fsEEGHOMDjuRLBTsSd6SIeQe7oG3ZjN5Xz3tKNPWH76gtIuCUAbLVgP5X2l/H37/ Aj+J/HBcdFwhXmPqWWd5Ryye4lDoErKSWAbd1QxKMbxF095kroVJH7C0myWnZ3+03qud53234jx53 M+uuiylC15HHpbnJ7lmw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qqicG-00GwgL-1l; Wed, 11 Oct 2023 23:27:48 +0000 Received: from mail-dm6nam10on20625.outbound.protection.outlook.com ([2a01:111:f400:7e88::625] helo=NAM10-DM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qqib8-00GvP6-2g for linux-arm-kernel@lists.infradead.org; Wed, 11 Oct 2023 23:26:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k8nTpzw/l7/u+EEH6vK+bn8NwnF+QYCusQyQjzPJEd+88DgIOcVUvtHt2z3Naw5zzKayci1dUDVBo05aBk/1zAK9xLcXOuHAQwn7z7/L/sWjEy6yFHguiTWh3Pym6h3qGEST64qHXdDQ2S4/6l16avx3g8h8U3Ui4guhKgQGxaHe1HB9j2rFw9rQwAdoFdXatfbcFbvDqrdWKzEh0wdX/HZLNv9XhLXHo2H+Se8wdWQLMvshqKKJNGadSle4p1Vl8kLraUD7r+45HMyJ0rVBkO2xATkJgKIQmIyWZbukoPov9kt1GDNNy8EdFEHeOWPNZL4uZfBH/L0IAjg4hAKprQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Nuw1dvdvpjKmN0pGaLmUCOQNM9gnEw2izq/8rixVPCg=; b=GAaxxo6n0BBcz+BReFbntstXtyCaZenZPYzmGFtoOMrIGSqpW5RzZptss5fzF3pFTrti42q0yFywbYMIIq7cewq6mp/SdYE8/0J7RhJh9p7/ehFueFUBvFVB1zy/6RToeHnN9HKEh+/15YPCIeOnEurDRi7Dfej5eOTZ0COdDiHXsbovYNYinS8IVpj41UhIf3gKBfhJrOrhHznAKuFj7EoFeu10wfEvBJPBNjoBKWU1SxgwakjFrZMaCLkLJYnydAk8p7J7rCnXpsyOTeVnsPwyyumMJ5LBHEmURwbHAbxo6UU+Fe4hdpDOJzuhQcAPiQ08vqnJ3++i/FvcDNZ+lA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none 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=Nuw1dvdvpjKmN0pGaLmUCOQNM9gnEw2izq/8rixVPCg=; b=IwJVIR2JSPZBH+n9eEQzh1ApvVIEmCyMH4Aiwv5OL6e5MBopfcetC4nFz494XIUyeivpgW+4dAlWrHPQkhdqdfZdS9mRDLgCu5dHX8FTShloY5foCXQXDI9EQ0YJ1SErQgj9Jd+kDCxzi+bpiyz8lKdqaNEkyPlKiqfwomwA3BbbdiZfTVDAlioakKuav3iImN/m315Cnj1eHHyVoSbAEUr7f4UGRJvlct0s97dBUbEXPk27n8R10ABZop2+5G+uKbf44b8z2o3+ZE4yx6JVfiZxinqRbyt1hagRfIbGdN1epaJaj64nhkkms/VFPnoF9MbhJr82LTUm+ZKlsg7CbA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by CH0PR12MB8488.namprd12.prod.outlook.com (2603:10b6:610:18d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6863.38; Wed, 11 Oct 2023 23:26:15 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::3f66:c2b6:59eb:78c2]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::3f66:c2b6:59eb:78c2%6]) with mapi id 15.20.6863.032; Wed, 11 Oct 2023 23:26:15 +0000 From: Jason Gunthorpe To: iommu@lists.linux.dev, Joerg Roedel , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon Cc: Jean-Philippe Brucker , Michael Shavit , Nicolin Chen Subject: [PATCH 19/27] iommu/arm-smmu-v3: Keep track of arm_smmu_master_domain for SVA Date: Wed, 11 Oct 2023 20:25:55 -0300 Message-ID: <19-v1-afbb86647bbd+5-smmuv3_newapi_p2_jgg@nvidia.com> In-Reply-To: <0-v1-afbb86647bbd+5-smmuv3_newapi_p2_jgg@nvidia.com> References: X-ClientProxiedBy: MN2PR20CA0041.namprd20.prod.outlook.com (2603:10b6:208:235::10) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|CH0PR12MB8488:EE_ X-MS-Office365-Filtering-Correlation-Id: 4076ea42-cca6-4ce8-2fdd-08dbcab17127 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6mWfsUORkMLlhrdlyiF9zd0s2rBYTnaALuuqZ1s25ncWAbAn66PFcCZnvqTjxvKChtXw5uBEQJwvhJSSCofQo4BYnjCyudARdw4Ff405d5A3Uvc/evxN+q50SpvMDi/oVu1/Iu9LjCjtAEkjBYK1INZOdOfPwYL1AUJ90pK3PM4EsXNhZaI5rCmpTk4u0W+u9k2ULD4FxwI8obBytW+t6wv/lHqdYSzZCHpDUQ7+wf/szwSerAtRO+pHYVrNVUqbQls2syMfDFUNsK0aVBgYpnF2+mpvzM7u9rAYHLBJCW54ReSzhSL51GHlkaOcSiu7S1OXXGm1MpmgV2xnusUJ17qg3OzLo+uTTfxaWV/MhrzKy4E74tFcyIZ91gjymdHD3nrwk82FLR8ShrZlWvkcYiazzIADjVlRDSFJp1jaQ6Sy/1OX/BAZstAkrN58BWD0bQrDxNi7nl6xmcltl7gVxdM92t3qfnMEl/rEPOKGjc0OVxXbKidsE12sTrxqlV29aND8qh0iNZ5K96tbxX9nYx2I4IflUaIUUjGveoz5dYJOTuJuZUczpIRiUiuF2Z/L X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV2PR12MB5869.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(39860400002)(376002)(346002)(136003)(230922051799003)(1800799009)(451199024)(64100799003)(186009)(66476007)(66556008)(8936002)(66946007)(316002)(54906003)(110136005)(2906002)(5660300002)(41300700001)(8676002)(4326008)(6486002)(38100700002)(2616005)(6666004)(107886003)(36756003)(26005)(6512007)(83380400001)(478600001)(86362001)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: g7JT7+apIdNPG3WL93OFdoPZJUS5VDOV7cbVbBcDAwA27HE1SANbqI4K7wdEFRPBSSt9VNplsmZz9eQ4kYh0+B3zUM6xzqDIvrBgxE8WbOkfLdq2pA2ibJ6JTndWg5lcbJ21N4O8wuKXG99eN1hurD105FYxI2fyrXXV/bY/imxOlPF2MB1Fhy1dxyKzWqy8PqNeD0g46l1W4jWiHicb5JhRVKAuu20VjUKsJJy/7NOmT5Q/nbXrbgw4RjDGOs4peC69HReXI9VKT956JjA80wfd8X3KTBhj/fyQyuvE1/KzSJnd6hXiBK6Po4Lcj6BfP+ppPZvDFlONOVlBiK+USbOh+eowo/OP2Fit37Wxf2MXH5Jszo2ma0VgL5nvB0AK/GSF4LKvomMP7XAGBi8EstA7ZQsDOEODR91DJ26+udfLXV3hp1/SxdA02oDCS0r5/mJiqab0Xz2MnFFAge6Vp7UNt0izItojKNn0HBAdHUNcTFUqSKCNH1eI0p0JH+03J7o6XPWI6I+MLy7q+4feRkvCz/Bq1SgFWj4fOckjS5LGOs4CM+s8JJc7HlIZXSijIaaN+UFQykuLSoOyq2EXlWYZukO2o3W5rMLhD2ZLJDqVTi/DXhcIHER5rcJw8jOKgE1RuCmRjr9+r686MxmVjqte3Pi3cjV/rpLX6JpgFDNjYVr5HEZ74D00GnCRFGIpKyWJ5SzOIV2MvxZOIyqap01He5wTl5y7UbG4H46z4/jNfE/Hwsdx241pLd8H5ErUxasyssMJ9V9Lo0IJFXn3/3AxtPRV/WV8vhZa4lgPQi5Ji3yUqfQXxQsdnlseLIBHv62GGGfP42VQrUrKRcxuQdgXMmuSCT66OviDi7uYE/dWKDY6V4BxFHNQD9SYvrJ2jveyw6d4q2Cn4eacT9XSQ66ZXz7lVjqQ+BCHfhwr3xKjxkTIlJzBH3iu4ngftQN+7m9TuTQ3Ky81lJpGpm0TVXx0uR7804fs5Aez8nAqJyMkWNWrUBBR7MQFeRuFpe19e6qdEfY1UWz9/QUd/lC46jDmvkiaqN5BLJzD+AKxd1kilZIatVWxGBSeYD4I7wvCRf3ZCBr3sB3j+ZX5Mpj9Y/l9F3CQY0+21ldUnLAqwY8Qyh5arB9sAt3UBQnLI0b7rF+3GtcL5+24p+0tZMcmU67tIJbG9wWBr8ZU1C1qjT8MqomBMbHk5ovnErl+Xo6AVDyXLkz+or58ZLCwLZS5JV+G/s3sA33Y0fD1aa84hfajkkkN6VuEYCWk/AcecF969BUH63HaihmMpWe2r2jmg5wkjc28Q8hxzjUOCK/TS/z4BjA8qietiidOnlMHXASJ8aghoena4flzkXNqYw2vWl2cZRQnwoPK/r68HSvltpt7UQX5llTE5C0XWMhOIJM6ITjCrpUuKf8sVFbfX/kfLiKhPScY+u79qxaiHsMX2N4xMw+ppBKEyr+TZBfZ0BzIR2TFHVkeqA5ZOsfaiwE5HsyhM463xQv/K/LzPancuZAMQ9K/cYc3axrBhK0gupRbifnb0GhUqlRozFLcablTG3o1Lu+hR/C2rlDImmseVPHsLHpRMfM6DBzhchKyr4Pt X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4076ea42-cca6-4ce8-2fdd-08dbcab17127 X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2023 23:26:06.0215 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: q3ov6dO2aK7QoNgMU4GvdItc3LXnXJ/xSzPlpkFhCBhZrcAQ08xZ++FInet7GBah X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB8488 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231011_162638_911179_BFDC83E7 X-CRM114-Status: UNSURE ( 9.06 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Currently the smmu_domain->devices list is unused for SVA domains. Fill it in with the SSID and master of every arm_smmu_set_pasid() using the same logic as the RID attach. Signed-off-by: Jason Gunthorpe --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c index 08eac534cffd36..540666986a0a39 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -2724,6 +2724,8 @@ int arm_smmu_set_pasid(struct arm_smmu_master *master, struct arm_smmu_domain *old_smmu_domain = to_smmu_domain_safe(iommu_get_domain_for_dev(master->dev)); struct arm_smmu_cd *cdptr; + struct attach_state state; + int ret; if (!old_smmu_domain || old_smmu_domain->stage != ARM_SMMU_DOMAIN_S1) return -ENODEV; @@ -2731,14 +2733,32 @@ int arm_smmu_set_pasid(struct arm_smmu_master *master, cdptr = arm_smmu_get_cd_ptr(master, id); if (!cdptr) return -ENOMEM; + + mutex_lock(&arm_smmu_asid_lock); + ret = arm_smmu_attach_prepare(master, smmu_domain, id, &state); + if (ret) + goto out_unlock; + arm_smmu_write_cd_entry(master, id, cdptr, cd); + + arm_smmu_attach_commit( + master, + to_smmu_domain_safe( + iommu_get_domain_for_dev_pasid(master->dev, id, 0)), + smmu_domain, id, &state); + +out_unlock: + mutex_unlock(&arm_smmu_asid_lock); return 0; } void arm_smmu_remove_pasid(struct arm_smmu_master *master, struct arm_smmu_domain *smmu_domain, ioasid_t id) { + mutex_lock(&arm_smmu_asid_lock); + arm_smmu_attach_remove(master, smmu_domain, id); arm_smmu_clear_cd(master, id); + mutex_unlock(&arm_smmu_asid_lock); } static int arm_smmu_attach_dev_ste(struct device *dev,