From 7101fee04504edf9bae6a0de395dbc2de26c1ee1 Mon Sep 17 00:00:00 2001 From: Will Deacon Date: Thu, 7 Jul 2022 15:51:49 +0100 Subject: [PATCH] Revert "ANDROID: KVM: arm64: Create empty S2MPU driver" This reverts commit d907ef4ba571f3030a470611b27f9c966c5ff311. Bug: 233587962 Signed-off-by: Will Deacon Change-Id: Ia5ff3af0762f01243ab6b39317d993c24933d6b8 --- arch/arm64/include/asm/kvm_host.h | 7 ------- arch/arm64/include/asm/kvm_hyp.h | 1 - arch/arm64/kvm/Kconfig | 9 --------- arch/arm64/kvm/Makefile | 2 +- arch/arm64/kvm/arm.c | 8 +------- arch/arm64/kvm/hyp/nvhe/Makefile | 2 -- arch/arm64/kvm/hyp/nvhe/iommu/s2mpu.c | 11 ----------- arch/arm64/kvm/hyp/nvhe/setup.c | 6 ------ arch/arm64/kvm/iommu/Makefile | 6 ------ arch/arm64/kvm/iommu/s2mpu.c | 13 ------------- 10 files changed, 2 insertions(+), 63 deletions(-) delete mode 100644 arch/arm64/kvm/hyp/nvhe/iommu/s2mpu.c delete mode 100644 arch/arm64/kvm/iommu/Makefile delete mode 100644 arch/arm64/kvm/iommu/s2mpu.c diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index a81b7f8907de..99def074c1dd 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -273,15 +273,8 @@ extern u64 kvm_nvhe_sym(hyp_cpu_logical_map)[NR_CPUS]; enum kvm_iommu_driver { KVM_IOMMU_DRIVER_NONE, - KVM_IOMMU_DRIVER_S2MPU, }; -#ifdef CONFIG_KVM_S2MPU -int kvm_s2mpu_init(void); -#else -static inline int kvm_s2mpu_init(void) { return -ENODEV; } -#endif - struct vcpu_reset_state { unsigned long pc; unsigned long r0; diff --git a/arch/arm64/include/asm/kvm_hyp.h b/arch/arm64/include/asm/kvm_hyp.h index c8d51e2db879..021b46310271 100644 --- a/arch/arm64/include/asm/kvm_hyp.h +++ b/arch/arm64/include/asm/kvm_hyp.h @@ -135,6 +135,5 @@ struct kvm_iommu_ops { }; extern struct kvm_iommu_ops kvm_iommu_ops; -extern const struct kvm_iommu_ops kvm_s2mpu_ops; #endif /* __ARM64_KVM_HYP_H__ */ diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig index 2f36f3469ca2..8ffcbe29395e 100644 --- a/arch/arm64/kvm/Kconfig +++ b/arch/arm64/kvm/Kconfig @@ -54,13 +54,4 @@ config NVHE_EL2_DEBUG If unsure, say N. -config KVM_S2MPU - bool "Stage-2 Memory Protection Unit support" - depends on KVM - help - Support for the Stage-2 Memory Protection Unit (S2MPU) and Stream - Security Mapping Table (SSMT) devices in KVM. This allows the - hypervisor to restrict DMA access to its memory and the memory of - protected guests. - endif # VIRTUALIZATION diff --git a/arch/arm64/kvm/Makefile b/arch/arm64/kvm/Makefile index d0058919a2d5..8ca8cf6f5619 100644 --- a/arch/arm64/kvm/Makefile +++ b/arch/arm64/kvm/Makefile @@ -8,7 +8,7 @@ ccflags-y += -I $(srctree)/$(src) KVM=../../../virt/kvm obj-$(CONFIG_KVM) += kvm.o -obj-$(CONFIG_KVM) += hyp/ iommu/ +obj-$(CONFIG_KVM) += hyp/ kvm-y := $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o \ $(KVM)/vfio.o $(KVM)/irqchip.o $(KVM)/binary_stats.o \ diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c index 790a7be796ba..71871722b573 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c @@ -1770,13 +1770,7 @@ static bool init_psci_relay(void) static int init_stage2_iommu(void) { - int ret; - - ret = kvm_s2mpu_init(); - if (!ret) - return KVM_IOMMU_DRIVER_S2MPU; - - return (ret == -ENODEV) ? KVM_IOMMU_DRIVER_NONE : ret; + return KVM_IOMMU_DRIVER_NONE; } static int init_subsystems(void) diff --git a/arch/arm64/kvm/hyp/nvhe/Makefile b/arch/arm64/kvm/hyp/nvhe/Makefile index 35d5afe6fbec..2765ec38a269 100644 --- a/arch/arm64/kvm/hyp/nvhe/Makefile +++ b/arch/arm64/kvm/hyp/nvhe/Makefile @@ -24,8 +24,6 @@ obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \ ../fpsimd.o ../hyp-entry.o ../exception.o ../pgtable.o obj-y += $(lib-objs) -obj-$(CONFIG_KVM_S2MPU) += iommu/s2mpu.o - ## ## Build rules for compiling nVHE hyp code ## Output of this folder is `kvm_nvhe.o`, a partially linked object diff --git a/arch/arm64/kvm/hyp/nvhe/iommu/s2mpu.c b/arch/arm64/kvm/hyp/nvhe/iommu/s2mpu.c deleted file mode 100644 index 1731300e0bec..000000000000 --- a/arch/arm64/kvm/hyp/nvhe/iommu/s2mpu.c +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * Copyright (C) 2021 - Google LLC - * Author: David Brazdil - */ - -#include - -#include - -const struct kvm_iommu_ops kvm_s2mpu_ops = (struct kvm_iommu_ops){}; diff --git a/arch/arm64/kvm/hyp/nvhe/setup.c b/arch/arm64/kvm/hyp/nvhe/setup.c index 471500c769e5..d234f5797b2e 100644 --- a/arch/arm64/kvm/hyp/nvhe/setup.c +++ b/arch/arm64/kvm/hyp/nvhe/setup.c @@ -238,12 +238,6 @@ int select_iommu_ops(enum kvm_iommu_driver driver) switch (driver) { case KVM_IOMMU_DRIVER_NONE: return 0; - case KVM_IOMMU_DRIVER_S2MPU: - if (IS_ENABLED(CONFIG_KVM_S2MPU)) { - kvm_iommu_ops = kvm_s2mpu_ops; - return 0; - } - break; } return -EINVAL; diff --git a/arch/arm64/kvm/iommu/Makefile b/arch/arm64/kvm/iommu/Makefile deleted file mode 100644 index 2a51f8cb2848..000000000000 --- a/arch/arm64/kvm/iommu/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -# -# Makefile for Kernel-based Virtual Machine module -# - -obj-$(CONFIG_KVM_S2MPU) += s2mpu.o diff --git a/arch/arm64/kvm/iommu/s2mpu.c b/arch/arm64/kvm/iommu/s2mpu.c deleted file mode 100644 index 800d264e4be1..000000000000 --- a/arch/arm64/kvm/iommu/s2mpu.c +++ /dev/null @@ -1,13 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * Copyright (C) 2021 - Google LLC - * Author: David Brazdil - */ - -#include - -int kvm_s2mpu_init(void) -{ - kvm_info("S2MPU driver initialized\n"); - return 0; -}