Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp248943pxj; Fri, 7 May 2021 07:53:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzkTjLe4gWLR+KjqX0qk6m0D3lmZUwzvQ3lMojXexyXW5BseX4cH2KSHdehbmYtX38xdxtP X-Received: by 2002:aa7:94af:0:b029:28e:80ff:cc1d with SMTP id a15-20020aa794af0000b029028e80ffcc1dmr10690818pfl.63.1620399185096; Fri, 07 May 2021 07:53:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620399185; cv=none; d=google.com; s=arc-20160816; b=rPC/5Cxdk12tvlyxHj8iYO4ErtDd1XNMDWklRaOm3+tiOywl1oik5JgSyQRnX2hphT PgO/WFXK39CsYMGcF97DfttvDRXE0GMztaGPOpoEYdk/8soRhjoo0dPsdyigsyJiXBw/ mzghmY0kksAIDym8qGx/qwk3HcD6i4hpvSPXykKqS97Je99XmJsMEnuwyVimxPK6um60 suuwydXbxEUyyerMZ/WMvtgKISMJ4cSMs53vrCxWJS3JWXpizNc+pHYjFgReMjc2soTn L1Z8oFsssj722ScWcam2EHAYlOZYUW0D5ScwQKBEgFkR4FX2ss5WseTARz7MA3R0nGxZ pKng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=jKLBq+t1vE94gUY8mUmDPjBh5xT4CNxTD3ijHGg6haE=; b=pdMuVekW0+DjGOOFmZohBKggPCsT12X7XGUGokbrb3e+CVxOgyfashAUh0btsaDDN1 zmsnWlVqQh3Ds5WEG3jPQm1fPqK2ReU9FUHShsa3L0l43nUw8FgwSs+lUi1QJbP7iF91 QGFjT6Cj/l/CdkubneSzsY0Xgd8LQjpKCrhuCqWIDUEP/06B1KB3zHRlXu0Q8I+9zE+A PCbkgnv6e33U8rVE2iikW31YM+A8QixOTXIAVEVl3Gq2v5MLqeyZuIF1nQQZ5I1jHqSF j+njUTf/r8J4ryCwZG7kqIWridwEFRwvQoF5BCM+vT+um5xZVbEoDESbE6Ap0CIEiKF6 yonw== 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=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y20si6881988pfe.48.2021.05.07.07.52.52; Fri, 07 May 2021 07:53:05 -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=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236648AbhEGKYw (ORCPT + 99 others); Fri, 7 May 2021 06:24:52 -0400 Received: from szxga07-in.huawei.com ([45.249.212.35]:18349 "EHLO szxga07-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236037AbhEGKYR (ORCPT ); Fri, 7 May 2021 06:24:17 -0400 Received: from DGGEMS408-HUB.china.huawei.com (unknown [172.30.72.58]) by szxga07-in.huawei.com (SkyGuard) with ESMTP id 4Fc5zw4Fn0zCr6W; Fri, 7 May 2021 18:20:12 +0800 (CST) Received: from DESKTOP-5IS4806.china.huawei.com (10.174.187.224) by DGGEMS408-HUB.china.huawei.com (10.3.19.208) with Microsoft SMTP Server id 14.3.498.0; Fri, 7 May 2021 18:22:42 +0800 From: Keqian Zhu To: , , , Robin Murphy , "Will Deacon" , Joerg Roedel , "Jean-Philippe Brucker" , Lu Baolu , "Yi Sun" , Tian Kevin CC: Alex Williamson , Kirti Wankhede , Cornelia Huck , Jonathan Cameron , , , , Subject: [RFC PATCH v4 13/13] iommu/arm-smmu-v3: Realize support_dirty_log iommu ops Date: Fri, 7 May 2021 18:22:11 +0800 Message-ID: <20210507102211.8836-14-zhukeqian1@huawei.com> X-Mailer: git-send-email 2.8.4.windows.1 In-Reply-To: <20210507102211.8836-1-zhukeqian1@huawei.com> References: <20210507102211.8836-1-zhukeqian1@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.174.187.224] X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kunkun Jiang We have implemented these interfaces required to support iommu dirty log tracking. The last step is reporting this feature to upper user, then the user can perform higher policy base on it. For arm smmuv3, it is equal to ARM_SMMU_FEAT_HD. Co-developed-by: Keqian Zhu Signed-off-by: Kunkun Jiang --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 8 ++++++++ 1 file changed, 8 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 9b4739247dbb..59d11f084199 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -2684,6 +2684,13 @@ static int arm_smmu_merge_page(struct iommu_domain *domain, unsigned long iova, return ret; } +static bool arm_smmu_support_dirty_log(struct iommu_domain *domain) +{ + struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); + + return !!(smmu_domain->smmu->features & ARM_SMMU_FEAT_HD); +} + static int arm_smmu_switch_dirty_log(struct iommu_domain *domain, bool enable, unsigned long iova, size_t size, int prot) { @@ -2872,6 +2879,7 @@ static struct iommu_ops arm_smmu_ops = { .release_device = arm_smmu_release_device, .device_group = arm_smmu_device_group, .enable_nesting = arm_smmu_enable_nesting, + .support_dirty_log = arm_smmu_support_dirty_log, .switch_dirty_log = arm_smmu_switch_dirty_log, .sync_dirty_log = arm_smmu_sync_dirty_log, .clear_dirty_log = arm_smmu_clear_dirty_log, -- 2.19.1