From patchwork Tue Jul 5 17:08:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robin Murphy X-Patchwork-Id: 12906873 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7DD76CCA47B for ; Tue, 5 Jul 2022 17:09:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=C6IMKV2YkO99DGP1nwTjdhQHyaZPUa3TwJ6CNu+YkLs=; b=po1GGKlXaT2/AG 78DMFvZ+tTu1fwBk4x1xDovBFc08fY4WgLFt2iL6jSxqREkBj+OUtMSIVuwTE1vk8fyVBL/OJGA2L 7IxWMDl3+0ZwVWPW+w8a7/odvmtsNHKU7WYBcONkoo50vGdd7Vrw+aYvmlAzZ3BaPGxkZOtpMw7MD NMM5COLPusBOjka8eEXBuY+aeZ8D1dUqngqb3/6DLMoaJg6/VjV20pdiAXzqyKHp0nCfI+LzYpya5 YhGBI+hFpsipXk9J1lXqTF77bjYHe4jftxNTTAEVZIKLqO5BfvrRxQlE6gVMGwni2qMehRQsPmMqY 0RuFnkFHY+UeYt9CrGag==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o8m2c-001gKh-WB; Tue, 05 Jul 2022 17:08:51 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o8m2Z-001gHH-OV for linux-arm-kernel@lists.infradead.org; Tue, 05 Jul 2022 17:08:50 +0000 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 CE246152B; Tue, 5 Jul 2022 10:08:43 -0700 (PDT) Received: from e121345-lin.cambridge.arm.com (e121345-lin.cambridge.arm.com [10.1.196.40]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id ED1E73F66F; Tue, 5 Jul 2022 10:08:41 -0700 (PDT) From: Robin Murphy To: joro@8bytes.org Cc: will@kernel.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, baolu.lu@linux.intel.com, suravee.suthikulpanit@amd.com, vasant.hegde@amd.com, mjrosato@linux.ibm.com, gerald.schaefer@linux.ibm.com, schnelle@linux.ibm.com, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 00/15] iommu: Retire bus_set_iommu() Date: Tue, 5 Jul 2022 18:08:23 +0100 Message-Id: X-Mailer: git-send-email 2.36.1.dirty MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220705_100847_881613_6F5EE47A X-CRM114-Status: GOOD ( 10.64 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org v2: https://lore.kernel.org/linux-iommu/cover.1650890638.git.robin.murphy@arm.com/ Hi all, Here's v3, now with working x86! Having finally made sense of how I broke Intel, I've given AMD the same fix by inspection. I'm still not 100% sure about s390, but it looks like it should probably be OK since it seems to register an IOMMU instance for each PCI device (?!) before disappearing into PCI hotplug code, wherein I assume we should never see a PCI device appear without its IOMMU already registered. Otherwise, the only other updates are hooking up the new host1x context bus (noting that it now takes all of 4 lines to support a whole new bus, yay!), and a slight tweak to make sure we keep rejecting registration of conflicting iommu_ops rather than needlessly change that just yet. Thanks, Robin. Robin Murphy (15): iommu/vt-d: Handle race between registration and device probe iommu/amd: Handle race between registration and device probe iommu: Always register bus notifiers iommu: Move bus setup to IOMMU device registration iommu/amd: Clean up bus_set_iommu() iommu/arm-smmu: Clean up bus_set_iommu() iommu/arm-smmu-v3: Clean up bus_set_iommu() iommu/dart: Clean up bus_set_iommu() iommu/exynos: Clean up bus_set_iommu() iommu/ipmmu-vmsa: Clean up bus_set_iommu() iommu/mtk: Clean up bus_set_iommu() iommu/omap: Clean up bus_set_iommu() iommu/tegra-smmu: Clean up bus_set_iommu() iommu/virtio: Clean up bus_set_iommu() iommu: Clean up bus_set_iommu() drivers/iommu/amd/amd_iommu.h | 1 - drivers/iommu/amd/init.c | 9 +- drivers/iommu/amd/iommu.c | 25 +---- drivers/iommu/apple-dart.c | 30 +---- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 53 +-------- drivers/iommu/arm/arm-smmu/arm-smmu.c | 84 +------------- drivers/iommu/arm/arm-smmu/qcom_iommu.c | 4 - drivers/iommu/exynos-iommu.c | 9 -- drivers/iommu/fsl_pamu_domain.c | 4 - drivers/iommu/intel/iommu.c | 4 +- drivers/iommu/iommu.c | 117 +++++++++----------- drivers/iommu/ipmmu-vmsa.c | 35 +----- drivers/iommu/msm_iommu.c | 2 - drivers/iommu/mtk_iommu.c | 24 +--- drivers/iommu/mtk_iommu_v1.c | 13 +-- drivers/iommu/omap-iommu.c | 6 - drivers/iommu/rockchip-iommu.c | 2 - drivers/iommu/s390-iommu.c | 6 - drivers/iommu/sprd-iommu.c | 5 - drivers/iommu/sun50i-iommu.c | 2 - drivers/iommu/tegra-smmu.c | 29 +---- drivers/iommu/virtio-iommu.c | 25 ----- include/linux/iommu.h | 1 - 23 files changed, 75 insertions(+), 415 deletions(-) Tested-by: Niklas Schnelle