From patchwork Wed May 8 18:57:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 13659066 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 C6FA2C25B5F for ; Wed, 8 May 2024 18:58:06 +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=b/fNP2YVNlHLeRtKozAij7HN6ck0wqSZ3ehLmk5QhTs=; b=4SM5jHbCypfT8E 49mF/7utNyxNgbNH0uSWR9DW7V9IXS7fsjCmstVYvfUc9fyLV16Jy1KAerJPYEM9Ffm/TyHkChdZz Nuzbo5xUIPPbnbQ7mcQSWwA/Z8lCJbaNv1txShf8+CKJT5vy08wLMBxENCNUjbSGwSfGo8yqab7Yz nHW9buZF1jetTYTrwmcvxxUwGGZFbOaUwQQfpZhDPuhhltw6lSz1Svc/LbnHN5anoiG6we9sIGr+U UwZE+43YpcEzXUaFAiGoj3i6RE6XBU0QVdSOgW5uncXtpcPRwu2GKgbsnV5pA35Ms0ay1UJ0Qiqsl gOtE6VTJhCCO1elWo3dQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s4mU9-0000000GcG8-3niq; Wed, 08 May 2024 18:57:49 +0000 Received: from mail-dm6nam11on20600.outbound.protection.outlook.com ([2a01:111:f403:2415::600] helo=NAM11-DM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s4mTy-0000000Gc7U-1kus for linux-arm-kernel@lists.infradead.org; Wed, 08 May 2024 18:57:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WoOQ0Gf0c+FzBoh1uOkLFql0ew+CKN1i1tPCy2+j5O37viVvz1vYywXgXjZH7+ajA69F4u747AHw+NdExRX3GgbyCpmBgd99VX2VqNPMtnumCNYn1YzrAsatKHWdZcUUXb4Wve0CdyASg4BlM/dssWjKOP8k6RjuebGc0wJ4dhFm/zV77+oG6I4oIV2Is3hC3egAKF83Xrk3mCouUa2fOoi//rp48ZdoZLHkI+O8kydGC1QIO91pje+3pL5lEAwgJVNpigHPgYu2q58SqZWMHiEO0tPBep6ATiwjQYox2lUiRdyv4AD4U75fSggFEUYBaSXA711mY5FbkeLWgv01+A== 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=zA4LpcSGupkkN6Fq3FTszpjZ3K+o8PFd02Wzq1eQV8o=; b=NfQtKIkHOqZ4s6zlgSp0wzcc2hCcWnxtPwV42IXUcUh0OKb+/lZ1r2Cz0nlq8qH3xwyrLIjFGRizKyjUmuwvQpsKVvUH8EdhWZkRb2ulpjOsE1NR9pQYTHQ/QJQGKkIgyJ+I3C7znU4RpDcB5PWb08ja8q9jJYX1LeFW9avtvSshBb0mxYTkv6wqZm5mHIEbGqSOwbiQTi/heVW3yN2QO6W6Vc2z81iwmCr94HyV8PskXpoFRMvLuwOIRXz+PmOVxYIOq3Ho7yyjjG4Zp0GqdJ3+mXqxA26+W8XK31qHb+/2xQK/EWpJTzWL0eWcEItJPOzFBO7W2H2dpNh/ibQr8Q== 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=zA4LpcSGupkkN6Fq3FTszpjZ3K+o8PFd02Wzq1eQV8o=; b=c7K50nfUN12xrG/E6q7x/PGHiUv3uJosZMVLRxTZNdbMqllqmdwrhnU0wAUXxe8tTFMgjDGPI9fUoYCy56+opAQSpWCOTTRAvTqi7sr12tGinZN4xvLgjI6iFcwCoFiLmvbejn0eoCM0oRjreukBH82ojmT1ZaS68FOl5IYuCoTrm6McSNH+WmFe6VwnMpXzIiOP2FwKGzM0zljAD36SjCbOkiSDKQPTPCbNKLb2pn+8CwwxaaPtqzqnEYe8rCufqP+yZdMyQQH4dsjqm0/SlOWBW30aJ10d7hcmWY4NcPKCqy4J23865rrxafxfUwpU0YxnfFkvfz1KxOfrjjT5Zw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM6PR12MB3849.namprd12.prod.outlook.com (2603:10b6:5:1c7::26) by CY8PR12MB7514.namprd12.prod.outlook.com (2603:10b6:930:92::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.46; Wed, 8 May 2024 18:57:24 +0000 Received: from DM6PR12MB3849.namprd12.prod.outlook.com ([fe80::c296:774b:a5fc:965e]) by DM6PR12MB3849.namprd12.prod.outlook.com ([fe80::c296:774b:a5fc:965e%3]) with mapi id 15.20.7544.045; Wed, 8 May 2024 18:57:24 +0000 From: Jason Gunthorpe To: iommu@lists.linux.dev, Joerg Roedel , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon Cc: Eric Auger , Jean-Philippe Brucker , Moritz Fischer , Michael Shavit , Nicolin Chen , patches@lists.linux.dev, Shameerali Kolothum Thodi Subject: [PATCH v7 01/14] iommu/arm-smmu-v3: Convert to domain_alloc_sva() Date: Wed, 8 May 2024 15:57:09 -0300 Message-ID: <1-v7-9597c885796c+d2-smmuv3_newapi_p2b_jgg@nvidia.com> In-Reply-To: <0-v7-9597c885796c+d2-smmuv3_newapi_p2b_jgg@nvidia.com> References: X-ClientProxiedBy: BL1P221CA0022.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:2c5::16) To DM6PR12MB3849.namprd12.prod.outlook.com (2603:10b6:5:1c7::26) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR12MB3849:EE_|CY8PR12MB7514:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b3f0850-b106-4bf7-2237-08dc6f90b28d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|366007|7416005|1800799015|376005; X-Microsoft-Antispam-Message-Info: pF3r7IQ4dohks5tT5YKmgjHm4DLejXSJlq+3MmqATRf0q0bB4GALePOHs2+J23xRRzllKBJojqyTC5ON0k7ekgV8VkeLSf1K7IS0DIDTO+VX6nr+hbfPyBufyErRNs80OTKFNC4/XrHlIaZZHT7+JUIaFU10Am9ONonxYDm/Jt+80vFWAovz4pWyRcXuwNoinUvDTO3IklV5e2S1tW25pu7E77duHeJ6IW1MZBfDFU8hlCLg9aTeKose7Z5dvd8TNT8aj6kwGd+vq8n4wvwZ5Aq5VG1FHjjU4ACddJRsQ0mS3BK3Q9O00kCDzWQaakanro2f688KYr42ZjhmhRLOIxH8/nsStEuda49hrEjWZh+mS+HDrwvnTnfDAH4bJoiD8pz0TDpynjBuqudE1M0IwoeWZ/Xr30mfht/pglx/BRlCRJMQYlq1Igu1sKeAq07M1iWoIukyboOVeuPdoHPx5ivkf/421xa6fdcRPNus8Iq2855FZsulYXnHTksDXWGC/mFZaq56pBtVrBYUIdpefVe2RoSSCdmpSTLjagXbprkLFIzK9MrZ7U9va5lBq/JFZqyB6ffAvTy0PODv9oinOFVEMBm7irVWVZfYiQMVAUW5C9gjzRAZGMvyUCDmMSwLE5Rla29LDkHPEZrUKXvpKlFyR+QDuP3aP859GXZzIT1ngWqd2NTd4DJsgbWNzAI/60QhMkzoJZPZwlYH9dTfQM9qQgZ1VVCljG4GF2NUOavNRZbIBnaA0Sfk8WJQBBybw4plRKh9cOwcqB22TGwc7gLdM3Cg8l+thbXgPicAP8YG6o4zq5TydpYtZN72JPRXgiYW1GkJih1+vsjFQ62YRgdy2UM/RdimBMtVmJqLnJujFsBOXCZGBi/ML/7GeN/OnywzpxQD/yDWKx193ttV9jHeEFri0BGbyFGvOKO3J4ThOX4UhpztrB3Nnruja/J08q4a2iqL92ZuaAOcjizYmzMxAr9hLtjwcD8bbvutOenjqsZCyM79FZEoI2+KeEjQoFNPpI++rfD8wRKWuZy1hfpzvJJB5rBbzkktloNTZWtyQNmgReY6DnJMSsYZ0niYFjKn+AStfZNb7Br8NY6ccgfgnJxq6VTaoQaVXgwxUabbT1Kwd0PWIF2o4B55JGTjr2YZeTkckXM+5/9wuFNhpfnIlx+1kzjjFDQb1pXVN+2oTwsXMsdDr64nnyiSRk00Ser6OVQV+kWG/Ju99sBocSfRLZdzrfDa1Mp+rcJGqAaHaNKhkmAFJMNmp38V9gLvcrjl6TiO/5uy/XcK2HAyJw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB3849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(7416005)(1800799015)(376005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AqEoZUUqR+1N61bL046esm6RsqXRo5W+xXuePUCpsWV2aUDs5bnc5UaomwMwMFNw1Q9Uhssv4Nb1B0qddqI1jqJDhfl43rpxrAG+Yprusghio3UAUGmZ6lsPPSpmRA07g6MurVQw420uUQ8ufxpHmxJlql0qE9sMoEsOCL+Zd4KbGcwkdhKntnzSSdqV0lPc1/ittbH6LJyoSiMDkAcGwaf0EEJUUxjTzv34c1nSxSN8uQFEu957cO04HExNjQACGOyzN24KhRcDqyTJur3CCo+qkPW+u9FWJ8opqlbBIrpBUkwLNaT52pv/B+fvBkjiuhBYRQFL1aYWH2wRnLX2FYvGPxeB4BiZDhDxTcg0BTl1QxcAakQDPnnBhnZVeQZtxfqfOwgLG8JWgQLnafYDaRML2UNjvbzi31BCI2Szw4l7ZggaPFw3vg4RjNij4SnZzR7R1ySbbUKU9MHC2Z7w++9sMkHgyFLCu7Daht97S/G2njLCXEOR3gmg/C49xRJEu0Nw8g1xtqeLqbtVDex8i/1An4BDrJqAceMWf+GkTGedWKgUKUr/O89JvHFMG088GSflJP1CHwFe+ubyyey0wzF4DsRMQb1F44tIKELGl5v56IevB7UftMDr0XaR7O9QWbY5Uer2kk2vycOU0caOiDtZ0KTu2DKtOameXVkndxTeI11WXVZlj36N0X4mxoVpw6GtlRAwpzBkX0m+4S6843WiW0c7WZmoi4ft7UytYWVSSw5pr7MfknmT0/imj6vyGPPWfLg7AqTE38YiBbJ6YSNBZ74W3ZqNKXM7EpPYkRBpnpvIRo0I5WGfUitQcFIlqqTnVlhdM+b9ae58cuk35kTat3x281QyTELU6b2lray0crnzVkU8OsxCfvrsrmd/DfnybInTIly8vvQoJM3uRP7yrBpvnZ105wgJaoLnFwGjk+5yTORkQrTLREu/gs73F8ljkKXHfVuKPgI9OFkLGWipw4xgc4NslQQ/sFLYRCvURgwx/GgwrseytaqHQdBV4MTO6wHT3GI8zzW9IVzuE/kpoSVbhuLDqf1wb891iKIW0nDraksxVENGigabjr/p5Ia7sStNRq4NbIeUBJapcguxZcomjK+wOv+aG4B/i4a63B1Rax+Czy82b8pkiRWMiwHe/d1DnzPG0MrSijufGjXd335EfTa1s9fvjCxulXFbrM/FJFTFb29LheMoe4LKZIcTRsx0Ocgs4AUPdvIhTe+2fTNTE1TEuqBu0ziNH4qbttDAaT5tN0VzRkt4Kq63wWxfjWPFqtJZ9YCwAcUVtIEnm4DlZaeOWXMqG53NoDld1jts9/gKBaGrt2yTuRHmGBoX8MMgkcsQ+QTGidd83z2u1Ef6SDJgTgC+76W1de8IA/5fo9JXMAQoRf6EtvxYNgZBWyBD3EChjFRYeA/dqURRbcDg5DevUrm/Sgneo4lbmWaISTuK6vyespH7TWvEhQB06gsKyF4wwg8xZPPy+2NIFrrxX2+SwIQMX0LrP453cj0Um4kiyKxOL+rbZIecmL3LjQTf1oLNIIOmeEW/to7xqQKq5lst66XMrbYTBZSVx3Z9up2yEmcjMmGrdxsD X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b3f0850-b106-4bf7-2237-08dc6f90b28d X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3849.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2024 18:57:24.3283 (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: NddKqfuEeunMHL07fynZFbndX6uLiGdMciXq7RE5T2ySZsoHzHOe7qhEFcsMqrAN X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7514 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240508_115738_903325_07FC6209 X-CRM114-Status: GOOD ( 12.47 ) 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 This allows the driver the receive the mm and a always a device during allocation. Later patches need this to properly setup the notifier when the domain is first allocated. Remove ops->domain_alloc() as SVA was the only remaining purpose. Tested-by: Nicolin Chen Tested-by: Shameer Kolothum Reviewed-by: Michael Shavit Signed-off-by: Jason Gunthorpe --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 6 ++++-- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 10 +--------- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 6 +++++- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c index e490ffb3801545..28f8bf4327f69a 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c @@ -656,13 +656,15 @@ static const struct iommu_domain_ops arm_smmu_sva_domain_ops = { .free = arm_smmu_sva_domain_free }; -struct iommu_domain *arm_smmu_sva_domain_alloc(void) +struct iommu_domain *arm_smmu_sva_domain_alloc(struct device *dev, + struct mm_struct *mm) { struct iommu_domain *domain; domain = kzalloc(sizeof(*domain), GFP_KERNEL); if (!domain) - return NULL; + return ERR_PTR(-ENOMEM); + domain->type = IOMMU_DOMAIN_SVA; domain->ops = &arm_smmu_sva_domain_ops; return domain; 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 ab415e107054c1..bd79422f7b6f50 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -2237,14 +2237,6 @@ static bool arm_smmu_capable(struct device *dev, enum iommu_cap cap) } } -static struct iommu_domain *arm_smmu_domain_alloc(unsigned type) -{ - - if (type == IOMMU_DOMAIN_SVA) - return arm_smmu_sva_domain_alloc(); - return ERR_PTR(-EOPNOTSUPP); -} - static struct iommu_domain *arm_smmu_domain_alloc_paging(struct device *dev) { struct arm_smmu_domain *smmu_domain; @@ -3097,8 +3089,8 @@ static struct iommu_ops arm_smmu_ops = { .identity_domain = &arm_smmu_identity_domain, .blocked_domain = &arm_smmu_blocked_domain, .capable = arm_smmu_capable, - .domain_alloc = arm_smmu_domain_alloc, .domain_alloc_paging = arm_smmu_domain_alloc_paging, + .domain_alloc_sva = arm_smmu_sva_domain_alloc, .probe_device = arm_smmu_probe_device, .release_device = arm_smmu_release_device, .device_group = arm_smmu_device_group, diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h index 1242a086c9f948..4c6c843669aaf9 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h @@ -802,7 +802,8 @@ int arm_smmu_master_enable_sva(struct arm_smmu_master *master); int arm_smmu_master_disable_sva(struct arm_smmu_master *master); bool arm_smmu_master_iopf_supported(struct arm_smmu_master *master); void arm_smmu_sva_notifier_synchronize(void); -struct iommu_domain *arm_smmu_sva_domain_alloc(void); +struct iommu_domain *arm_smmu_sva_domain_alloc(struct device *dev, + struct mm_struct *mm); void arm_smmu_sva_remove_dev_pasid(struct iommu_domain *domain, struct device *dev, ioasid_t id); #else /* CONFIG_ARM_SMMU_V3_SVA */ @@ -848,5 +849,8 @@ static inline void arm_smmu_sva_remove_dev_pasid(struct iommu_domain *domain, ioasid_t id) { } + +#define arm_smmu_sva_domain_alloc NULL + #endif /* CONFIG_ARM_SMMU_V3_SVA */ #endif /* _ARM_SMMU_V3_H */