Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp256057pxt; Wed, 4 Aug 2021 10:17:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx/p3rSI+TrsgryK1i1lKUBGjcoo7jsOMhiw4x736hX2/z/tLiZ9Kqz60gpVgVnD6VXd49e X-Received: by 2002:a5d:8456:: with SMTP id w22mr324578ior.63.1628097432062; Wed, 04 Aug 2021 10:17:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628097432; cv=none; d=google.com; s=arc-20160816; b=viGHhoVtUDuhtmd3vv+pKXuGipcTjc6jUMqNj4hYGIV18FUvDaYzbv1YZexB15qBME 2tgs2+2+syvFV08jnFPkU8ABvrCqJoyHQNu4FlzKgI0EohnAnLmZj9rGSi22YoY2BFml zYaYXEtE9/COAYlJFCmF+g9Ne9oPI2Fnij+g8qPI0Pu4TbUW2L3jWmo7Dg+2LNsfbCTw Qh8Skq5Hog0uNiB/NznTnasyd5slnbhcbwP+Ea7ZSRiPqEfTOtejR+wZ4bfyU+w/Kz7B ju/01+/VGoIZ/4XbJpfQzGbp8UYC44zuGdsON3/EX0EVEgcV8KzvqoIyYHVQk/1t0J92 VMQA== 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 :message-id:date:subject:cc:to:from; bh=0BkPwuxQBfURWSnXH8bR1JPPUG2VJc8/K2BDaqw2zX0=; b=fwQOvvGqSnn8EeiICeKwPvPHuuamf7jScEdvo1i0eDRQ7wrKaAFbDaoFUjXgJWfalR OBapL/Zz6Vd/8FIuRsvZujNBHMFFJ4tYNHa7s+1LKs+3jd5daeP89Ww3IwMauYEeWEhu GSMAOfcx2dBLwf2GiEBFJtQmbInl9U+3v4nYy+S/Vk/tNUUBSoKLilJkMaczYGoAWH6/ TbF2bsgP2h5qfuZ2x4Vok80+b/PWpgtf1aO8I6rJ3FNYXdCOG6mHQP5+XwmvIUySFKRu tRPzJSHHku/vSFt8dLvqoRFj2O+AFA8FyzyCkcmOJGjsea6K8yAOuRyDW37dwIoagZHY OEzQ== 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 v8si2736918jas.68.2021.08.04.10.16.58; Wed, 04 Aug 2021 10:17:12 -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 S239812AbhHDRQR (ORCPT + 99 others); Wed, 4 Aug 2021 13:16:17 -0400 Received: from foss.arm.com ([217.140.110.172]:34724 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239695AbhHDRQR (ORCPT ); Wed, 4 Aug 2021 13:16:17 -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 DFDA831B; Wed, 4 Aug 2021 10:16:03 -0700 (PDT) Received: from 010265703453.arm.com (unknown [10.57.36.146]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 017C73F66F; Wed, 4 Aug 2021 10:16:00 -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, rajatja@google.com, chenxiang66@hisilicon.com, Marek Szyprowski , Yoshihiro Shimoda , Geert Uytterhoeven , Yong Wu , Heiko Stuebner , Chunyan Zhang , Maxime Ripard , Jean-Philippe Brucker , Sai Praneeth Prakhya Subject: [PATCH v3 00/25] iommu: Refactor DMA domain strictness Date: Wed, 4 Aug 2021 18:15:28 +0100 Message-Id: X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org v1: https://lore.kernel.org/linux-iommu/cover.1626888444.git.robin.murphy@arm.com/ v2: https://lore.kernel.org/linux-iommu/cover.1627468308.git.robin.murphy@arm.com/ Hi all, Round 3, and the patch count has crept up yet again. But the overall diffstat is even more negative, so that's good, right? :) Once again, to driver/platform maintainers CC'd on cookie cleanup patches this is just a heads-up and the rest of the changes should not affect your platforms. I hope I've now fixed the silly bug which broke bisection between patches #1 and #12 on 32-bit Arm. The new patches are in the middle, reworking how the SMMU drivers and io-pgtable implement non-strict mode such that the later changes fall into place even more easily. Turns out I didn't need the major refactoring of io-pgtable that I had in mind, and I'm almost kicking myself that as soon as I put the option of *not* using the existing quirk on the table, an even cleaner and more logical solution was staring right out at me. Due to that signifcant change and the consequent redesign of the final patch to make dynamic switching look viable in the face of concurrency, I have not applied the tested-by tags from v2. They were very much appreciated though, thanks! Proper changelogs on the individual patches this time since otherwise I'd have lost track... Cheers, Robin. CC: Marek Szyprowski CC: Yoshihiro Shimoda CC: Geert Uytterhoeven CC: Yong Wu CC: Heiko Stuebner CC: Chunyan Zhang CC: Maxime Ripard CC: Jean-Philippe Brucker CC: Sai Praneeth Prakhya Robin Murphy (25): iommu: Pull IOVA cookie management into the core iommu/amd: Drop IOVA cookie management iommu/arm-smmu: Drop IOVA cookie management iommu/vt-d: Drop IOVA cookie management iommu/exynos: Drop IOVA cookie management iommu/ipmmu-vmsa: Drop IOVA cookie management iommu/mtk: Drop IOVA cookie management iommu/rockchip: Drop IOVA cookie management iommu/sprd: Drop IOVA cookie management iommu/sun50i: Drop IOVA cookie management iommu/virtio: Drop IOVA cookie management iommu/dma: Unexport IOVA cookie management iommu/dma: Remove redundant "!dev" checks iommu: Indicate queued flushes via gather data iommu/io-pgtable: Remove non-strict quirk iommu: Introduce explicit type for non-strict DMA domains iommu/amd: Prepare for multiple DMA domain types iommu/arm-smmu: Prepare for multiple DMA domain types iommu/vt-d: Prepare for multiple DMA domain types iommu: Express DMA strictness via the domain type iommu: Expose DMA domain strictness via sysfs iommu: Only log strictness for DMA domains iommu: Merge strictness and domain type configs iommu/dma: Factor out flush queue init iommu: Allow enabling non-strict mode dynamically .../ABI/testing/sysfs-kernel-iommu_groups | 6 +- .../admin-guide/kernel-parameters.txt | 8 +- drivers/iommu/Kconfig | 80 +++++++++---------- drivers/iommu/amd/iommu.c | 22 +---- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 11 +-- rivers/iommu/arm/arm-smmu/arm-smmu.c | 19 ++--- drivers/iommu/arm/arm-smmu/qcom_iommu.c | 9 --- drivers/iommu/dma-iommu.c | 63 +++++++++------ drivers/iommu/exynos-iommu.c | 19 +---- drivers/iommu/intel/iommu.c | 23 ++---- drivers/iommu/io-pgtable-arm-v7s.c | 12 +-- drivers/iommu/io-pgtable-arm.c | 12 +-- drivers/iommu/iommu.c | 55 ++++++++----- drivers/iommu/iova.c | 12 ++- drivers/iommu/ipmmu-vmsa.c | 28 +------ drivers/iommu/mtk_iommu.c | 7 -- drivers/iommu/mtk_iommu_v1.c | 1 - drivers/iommu/rockchip-iommu.c | 12 +-- drivers/iommu/sprd-iommu.c | 7 -- drivers/iommu/sun50i-iommu.c | 13 +-- drivers/iommu/virtio-iommu.c | 8 -- include/linux/dma-iommu.h | 9 ++- include/linux/io-pgtable.h | 5 -- include/linux/iommu.h | 23 +++++- 24 files changed, 187 insertions(+), 277 deletions(-) -- 2.25.1