Received: by 2002:a05:6520:4211:b029:f4:110d:56bc with SMTP id o17csp1548377lkv; Wed, 19 May 2021 12:30:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzRIjLbASduBmgJiyv4nwHWpdqc0Hlc2ixtTNNyaZr7FbUzIS9rgBe0HX8fe1YettC/3Owb X-Received: by 2002:a17:906:4f1a:: with SMTP id t26mr768313eju.280.1621452514917; Wed, 19 May 2021 12:28:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621452514; cv=none; d=google.com; s=arc-20160816; b=K9T1foFG+GEOKaJqmZph+j4moF6lgUAFnX/XtzXwYQSwuLzk2JReX/PTa6YUkpQpHK r7m+PErk9vo5AUKiPn7KPf2TdJMHkBBkN2IytANp+b4cUxSAETc5MTIHII32Ae5Ilzx1 bfOYO6MkAVgeh/wGOzq2LI7dRD9rPI9PltBhdhzL7DD5dbwv3hK0pjWjRBhyrKQJryUV p2zwGOrSFc9vq1HlVD/f4iJhEACyhl3GFxBxWbjPqseXwTHJ6ceGvrxqyaesNzuurL8n 8OwjaM7p3+lS5V0H372Eh76BCwddRamu1oYy9wlHqiWwehxO38yXd10VCKhMXTh0PCeT q0tg== 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=wnlzya3ui+lqz77AcBOjinV91UUjGxTOrd/NQG4xs0A=; b=JAX05IeDlh5gZNpK/hbAXJHPlB2qd4tSMiFQHpjH97+aKvbjZXe4E33E0VICbllaa7 cPsYwuLDtxxidKCLXTbel3IKRpCM8p4mb7KAR1wARTvtfReVHfvQ2FFDQFDOtH3U0xiO 5kaOtQSKX2WdDPlSdJwrhfu4BblzszmKJSFj/+lw4oD/4rFWbildyGG/r9GyC3giTrZz e705XrvkvhBPxOmS365aAhRK3SstluDSweh1eXCfh//0ExUgLoQxg6oT2FPIxnqPO906 zvJ2eUB3e1z5q6GC+A211NECPQ6F7ZW61dJJHdykYGFmEpqDD52K9Xy6yAU/MqJtD2Yv 5PZQ== 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 eb13si123729edb.95.2021.05.19.12.28.10; Wed, 19 May 2021 12:28:34 -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 S1345929AbhESJps (ORCPT + 99 others); Wed, 19 May 2021 05:45:48 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:4679 "EHLO szxga04-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239386AbhESJpo (ORCPT ); Wed, 19 May 2021 05:45:44 -0400 Received: from dggems705-chm.china.huawei.com (unknown [172.30.72.60]) by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4FlSYs1SQnz1BP0l; Wed, 19 May 2021 17:41:37 +0800 (CST) Received: from dggema765-chm.china.huawei.com (10.1.198.207) by dggems705-chm.china.huawei.com (10.3.19.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2176.2; Wed, 19 May 2021 17:44:23 +0800 Received: from DESKTOP-6NKE0BC.china.huawei.com (10.174.185.210) by dggema765-chm.china.huawei.com (10.1.198.207) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2176.2; Wed, 19 May 2021 17:44:22 +0800 From: Kunkun Jiang To: Will Deacon , Robin Murphy , "Eric Auger" , "moderated list:ARM SMMU DRIVERS" , "open list:IOMMU DRIVERS" , open list CC: , Keqian Zhu , "Zenghui Yu" , Kunkun Jiang Subject: [RFC PATCH v1 2/2] iommu/arm-smmu-v3: Standardize granule size when support RIL Date: Wed, 19 May 2021 17:43:07 +0800 Message-ID: <20210519094307.3275-3-jiangkunkun@huawei.com> X-Mailer: git-send-email 2.26.2.windows.1 In-Reply-To: <20210519094307.3275-1-jiangkunkun@huawei.com> References: <20210519094307.3275-1-jiangkunkun@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.174.185.210] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggema765-chm.china.huawei.com (10.1.198.207) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In __arm_smmu_tlb_inv_range(), the field 'ttl' of TLB invalidation command is caculated based on granule size when the SMMU supports RIL. There are some scenarious we need to avoid, which are pointed out in the SMMUv3 spec(page 143-144, Version D.a). Adding a check to ensure that the granule size is supported by the SMMU before set the 'ttl' value. Reported-by: Nianyao Tang Signed-off-by: Kunkun Jiang --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 5 +++++ 1 file changed, 5 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 8a2cacbb1ef8..77ff283ca329 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -1711,6 +1711,11 @@ static void __arm_smmu_tlb_inv_range(struct arm_smmu_cmdq_ent *cmd, cmd->tlbi.tg = (tg - 10) / 2; /* Determine what level the granule is at */ + if (!(granule & smmu_domain->domain.pgsize_bitmap) || + (granule & (granule - 1))) { + granule = leaf_pgsize; + iova = ALIGN_DOWN(iova, leaf_pgsize); + } cmd->tlbi.ttl = 4 - ((ilog2(granule) - 3) / (tg - 3)); /* Align size with the leaf page size upwards */ -- 2.23.0