Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp16775pxv; Wed, 21 Jul 2021 14:11:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzY7+GQozjsCeug0UeUISkRcxwJn7YpreWZBW4W5ObTAtWOWNmUuQgMuCpVWS/HnHAFYMwh X-Received: by 2002:a92:d388:: with SMTP id o8mr24997470ilo.247.1626901527251; Wed, 21 Jul 2021 14:05:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626901527; cv=none; d=google.com; s=arc-20160816; b=G0cRLSmqdU/l1YqIeJt0Z7A6CHPfLoJE1s3LOqPCYPYuJj0R09GCHkqI2GqAN/JKH6 Io3v3OqHfPIgCJp/EYvxFD4gEiDNY3da9cDPKbW2HniVil9/sH5nEfiTjBxwjAbGyAPw VLmyF4sswypDYOjOnC+qxG4bu5kzmg6VKArf4f1vF8Z63iLDLAc8nCJDIuONOTB9veja 8jlQaycELwiVAdOyBf8ScHzsQg+/oLxw8OBASEJiIBapaSaTD6a8DaNZsG9Kq0qUlJhL mMzpfZbu3LE+zK/6/JGSK4P0L65RK356gtx+2HDYPCLnGj7S/u8tGsOIL86DTqglS9T5 nUdQ== 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; bh=ogVimNUCG8TK+jLagf6d8EXOVXd5KC0wRbr/IdbW1Vs=; b=RYG/bMb2eEl8kb2rpa4fk3kD4rc+V8H4jToF8MlWQsJInaKVR+cOf8ZeZuBvg9K/ln IFDTrwhjFsViSeeX+/uvxMe/cagpiWg8HSZR4AxWyEVRfK+hoqbZk6pS8xZjo7LEfBk7 7gQa0xtw+oOUBVCI++l1D6Y+xngYtp4lUbtpDBCokWeqFpE4YKUH8PyG5LBmC7OD8BiO 1a3Drkk/V+4uD66hWaZHK1cOPPUxAmy6UDkHi9xGAJOlh3BOnrFtWP+vkNFdBKA+fDzb /NpM7qmHN/CSymfnZvz4LnnNYmc7YBkS+qT6CvjJBt/h++/rvHT06laRyUabLR87h/cC /mAA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u5si31931304jad.124.2021.07.21.14.05.15; Wed, 21 Jul 2021 14:05:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238838AbhGURlE (ORCPT + 99 others); Wed, 21 Jul 2021 13:41:04 -0400 Received: from foss.arm.com ([217.140.110.172]:33418 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238302AbhGURkh (ORCPT ); Wed, 21 Jul 2021 13:40:37 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4452111FB; Wed, 21 Jul 2021 11:21:13 -0700 (PDT) Received: from 010265703453.arm.com (unknown [10.57.36.146]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id C87973F694; Wed, 21 Jul 2021 11:21:11 -0700 (PDT) From: Robin Murphy To: joro@8bytes.org, will@kernel.org Cc: iommu@lists.linux-foundation.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, suravee.suthikulpanit@amd.com, baolu.lu@linux.intel.com, john.garry@huawei.com, dianders@chromium.org Subject: [PATCH 16/23] iommu/arm-smmu: Prepare for multiple DMA domain types Date: Wed, 21 Jul 2021 19:20:27 +0100 Message-Id: <04220b3420c2c513490450f37de109182364f235.1626888445.git.robin.murphy@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In preparation for the strict vs. non-strict decision for DMA domains to be expressed in the domain type, make sure we expose our flush queue awareness by accepting the new domain type, and test the specific feature flag where we want to identify DMA domains in general. Signed-off-by: Robin Murphy --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 1 + drivers/iommu/arm/arm-smmu/arm-smmu.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) 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 039f371d2f8b..fa41026d272e 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -1972,6 +1972,7 @@ static struct iommu_domain *arm_smmu_domain_alloc(unsigned type) if (type != IOMMU_DOMAIN_UNMANAGED && type != IOMMU_DOMAIN_DMA && + type != IOMMU_DOMAIN_DMA_FQ && type != IOMMU_DOMAIN_IDENTITY) return NULL; diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu.c b/drivers/iommu/arm/arm-smmu/arm-smmu.c index 354be8f4c0ef..dbc14c265b15 100644 --- a/drivers/iommu/arm/arm-smmu/arm-smmu.c +++ b/drivers/iommu/arm/arm-smmu/arm-smmu.c @@ -870,10 +870,11 @@ static struct iommu_domain *arm_smmu_domain_alloc(unsigned type) if (type != IOMMU_DOMAIN_UNMANAGED && type != IOMMU_DOMAIN_DMA && + type != IOMMU_DOMAIN_DMA_FQ && type != IOMMU_DOMAIN_IDENTITY) return NULL; - if (type == IOMMU_DOMAIN_DMA && using_legacy_binding) + if ((type & __IOMMU_DOMAIN_DMA_API) && using_legacy_binding) return NULL; /* * Allocate the domain and initialise some of its data structures. -- 2.25.1