From patchwork Fri Jul 7 01:34:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhang, Tina" X-Patchwork-Id: 116901 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp2955050vqx; Thu, 6 Jul 2023 18:48:48 -0700 (PDT) X-Google-Smtp-Source: APBJJlFxB4vPAgMhJVcNRZnG4fMmVhJL9WxhfIWIsbAopMMXXVrYtFINeZbUIqZzt9I0i4T6k2ky X-Received: by 2002:a17:902:c407:b0:1b8:862:74ee with SMTP id k7-20020a170902c40700b001b8086274eemr4938229plk.11.1688694528504; Thu, 06 Jul 2023 18:48:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688694528; cv=none; d=google.com; s=arc-20160816; b=ZR+w/CDp49mm8+5ExJ1BCiAGE7UO979wSLeY0MO8hv8+RWoIxZJG0OdQvfjMjIv7em Y00j5rHXxGx2IgI23tzvcVO/rB9szvVmjacfi8yQG98AgxUtFNAIN1Nm036GGDnWFtKr wAeNYIGVtLSjdY6rb6CHUBycn+ECYcjVC14q9v7I1+8TLuOnylDYrmlwmNlyyV3/H4EQ 9l5/T8nbAgE5G3CLvClrTWaQ7nqWw7fks9prbGHaDCskAWkd8l3zXp9GLVb0g2+WnY22 JKeW54bGToOZvQk6cJdtfOltF0+agCL53IBTIOg8/qa24Mzn1/g5O16VcUc6lAaUSL+z rwKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=9TP+ZihLKz4yadXoJwG8HSp5GNv75e/DczGEyoHV274=; fh=YLwvJdOekjmHJibOqKattcm/709ZiAsNlTvjC0MrDUo=; b=jrlfgRBtRmqN2ZvcbtUZVBa9elP1mlr+JKQZ8JdguS7Ebkgf2KScYlxXV0jpC/QyuX +hgZGo1+M8K1X+CcHKQDviJIOZ6Ii7/OWnNMaktEmUpgfjMTHf7Qs3fqAel2Nq926xX1 NXlaoakOsvRU2WCEOZACL27TOvawf68lvVrP40G/0So0PZUX50NdVPe8MiNoS79Pb23/ Cv2ijlQo8mLaoXk9Rj/3RgPHJAKteFTGyNUzhcaB1ilawQ8Ldlu2zFlFkQ8ZzXSV2t4O jPNhRFn700sl7euYGC9FVM86KDBylvIalRJ60u0suuOH7VoMfoAq7Q5hHFE59Jt9Nj4U L8aw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=nubovSnn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n8-20020a170902e54800b001b20e2ba8e1si2840063plf.23.2023.07.06.18.48.34; Thu, 06 Jul 2023 18:48:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=nubovSnn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231895AbjGGBfP (ORCPT + 99 others); Thu, 6 Jul 2023 21:35:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42236 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231918AbjGGBfN (ORCPT ); Thu, 6 Jul 2023 21:35:13 -0400 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B61751BFC for ; Thu, 6 Jul 2023 18:35:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1688693709; x=1720229709; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=JfdYLppNc9eLDWu4uhQ6N/Y+k4M58Rts/UgDTo8w0sg=; b=nubovSnnAYjxeAk/5Effg9ptGHCTnHx0xH1eRB6LtoUUs0h6pLiSIq7+ 3ekT+u8MTk8pOhVdMIh4/zJrENAhX0ggFDS0N7Jz8kNNK79c1e6HuuvI5 8BSpsaS6KP/gLRTsgKTtpX5oY6PjpAKKF3jxYJzBKquBiidCJ1wfxrDtf XxCV7d/N92YdMWIbVxDPj5rkW5oSFEGCL5ZcGZLBqyTPnyBec7SVq6fb6 fKcOSq+lFjg0KxVvovXzqF4OB2PZT/itAU6comSL3uyGD/M3gtSLPr62b CaynUUMwvvUDynEa2iVxK3n8G0AGfNgDNwz7uzneHc7Hc0DD0SJ2tK+6n Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10763"; a="429832273" X-IronPort-AV: E=Sophos;i="6.01,187,1684825200"; d="scan'208";a="429832273" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2023 18:35:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10763"; a="893791324" X-IronPort-AV: E=Sophos;i="6.01,187,1684825200"; d="scan'208";a="893791324" Received: from fengj-mobl.ccr.corp.intel.com (HELO tinazhan-desk1.www.tendawifi.com) ([10.254.210.124]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2023 18:35:05 -0700 From: Tina Zhang To: Jason Gunthorpe , Kevin Tian , Joerg Roedel , Will Deacon , Lu Baolu , Michael Shavit Cc: iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Tina Zhang Subject: [RFC PATCH 3/6] iommu: Introduce struct iommu_mm_data Date: Fri, 7 Jul 2023 09:34:38 +0800 Message-Id: <20230707013441.365583-4-tina.zhang@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230707013441.365583-1-tina.zhang@intel.com> References: <20230707013441.365583-1-tina.zhang@intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770724553575401712?= X-GMAIL-MSGID: =?utf-8?q?1770724553575401712?= To make sva domain 1:1 with mm pasid, mm needs to keep reference to the sva domain as well as keeping the information of mm pasid. Introduce struct iommu_mm_data to wrap the information up. When a process is created, the mm pasid is initialized as IOMMU_PASID_ INVALID. The default_iommu_mms is introduced to initialize an mm pasid with that default value. Signed-off-by: Tina Zhang --- drivers/iommu/iommu.c | 2 ++ include/linux/iommu.h | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index f1dcfa3f1a1b4..35fa1c1b12826 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -83,6 +83,8 @@ static const char * const iommu_group_resv_type_string[] = { [IOMMU_RESV_SW_MSI] = "msi", }; +struct iommu_mm_data default_iommu_mm = { IOMMU_PASID_INVALID, NULL }; + #define IOMMU_CMD_LINE_DMA_API BIT(0) #define IOMMU_CMD_LINE_STRICT BIT(1) diff --git a/include/linux/iommu.h b/include/linux/iommu.h index d39e647219eb8..20135912584ba 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -42,6 +42,8 @@ struct iommu_sva; struct iommu_fault_event; struct iommu_dma_cookie; +extern struct iommu_mm_data default_iommu_mm; + /* iommu fault flags */ #define IOMMU_FAULT_READ 0x0 #define IOMMU_FAULT_WRITE 0x1 @@ -664,6 +666,11 @@ struct iommu_sva { struct iommu_domain *domain; }; +struct iommu_mm_data { + u32 pasid; + struct iommu_domain *sva_domain; +}; + int iommu_fwspec_init(struct device *dev, struct fwnode_handle *iommu_fwnode, const struct iommu_ops *ops); void iommu_fwspec_free(struct device *dev);