Mark functions that s390 can use to implement arm on s390 as shared functions. No functional change. Signed-off-by: Steffen Eiden --- arch/arm64/kvm/arm.c | 3 +++ arch/arm64/kvm/guest.c | 3 +++ arch/arm64/kvm/handle_exit.c | 6 ++++++ arch/arm64/kvm/mmio.c | 14 ++++++++++++++ arch/arm64/kvm/reset.c | 3 +++ 5 files changed, 29 insertions(+) diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c index 50adfff75be8..c992308b2dce 100644 --- a/arch/arm64/kvm/arm.c +++ b/arch/arm64/kvm/arm.c @@ -1580,6 +1580,7 @@ static unsigned long system_supported_vcpu_features(void) return features; } +#ifdef ARM64_S390_COMMON static int kvm_vcpu_init_check_features(struct kvm_vcpu *vcpu, const struct kvm_vcpu_init *init) { @@ -1628,6 +1629,8 @@ static bool kvm_vcpu_init_changed(struct kvm_vcpu *vcpu, KVM_VCPU_MAX_FEATURES); } +#endif /* ARM64_S390_COMMON */ + static int kvm_setup_vcpu(struct kvm_vcpu *vcpu) { struct kvm *kvm = vcpu->kvm; diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c index b01d6622b872..5a202cfd27bc 100644 --- a/arch/arm64/kvm/guest.c +++ b/arch/arm64/kvm/guest.c @@ -543,6 +543,7 @@ int kvm_arch_vcpu_ioctl_set_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs) return -EINVAL; } +#ifdef ARM64_S390_COMMON static int copy_core_reg_indices(const struct kvm_vcpu *vcpu, u64 __user *uindices) { @@ -591,6 +592,8 @@ static unsigned long num_core_regs(const struct kvm_vcpu *vcpu) return copy_core_reg_indices(vcpu, NULL); } +#endif /* ARM64_S390_COMMON */ + static unsigned long num_sve_regs(const struct kvm_vcpu *vcpu) { const unsigned int slices = vcpu_sve_slices(vcpu); diff --git a/arch/arm64/kvm/handle_exit.c b/arch/arm64/kvm/handle_exit.c index 54aedf93c78b..d511af145ee6 100644 --- a/arch/arm64/kvm/handle_exit.c +++ b/arch/arm64/kvm/handle_exit.c @@ -213,6 +213,7 @@ static int kvm_handle_guest_debug(struct kvm_vcpu *vcpu) return 0; } +#ifdef ARM64_S390_COMMON static int kvm_handle_unknown_ec(struct kvm_vcpu *vcpu) { u64 esr = kvm_vcpu_get_esr(vcpu); @@ -224,6 +225,8 @@ static int kvm_handle_unknown_ec(struct kvm_vcpu *vcpu) return 1; } +#endif /* ARM64_S390_COMMON */ + /* * Guest access to SVE registers should be routed to this handler only * when the system doesn't support SVE. @@ -404,6 +407,7 @@ static exit_handle_fn arm_exit_handlers[] = { [ESR_ELx_EC_GCS] = kvm_handle_gcs, }; +#ifdef ARM64_S390_COMMON static exit_handle_fn kvm_get_exit_handler(struct kvm_vcpu *vcpu) { u64 esr = kvm_vcpu_get_esr(vcpu); @@ -439,6 +443,8 @@ static int handle_trap_exceptions(struct kvm_vcpu *vcpu) return handled; } +#endif /* ARM64_S390_COMMON */ + /* * Return > 0 to return to guest, < 0 on error, 0 (and set exit_reason) on * proper exit to userspace. diff --git a/arch/arm64/kvm/mmio.c b/arch/arm64/kvm/mmio.c index e2285ed8c91d..876d56dd5b64 100644 --- a/arch/arm64/kvm/mmio.c +++ b/arch/arm64/kvm/mmio.c @@ -10,6 +10,7 @@ #include "trace.h" +#ifdef ARM64_S390_COMMON void kvm_mmio_write_buf(void *buf, unsigned int len, unsigned long data) { void *datap = NULL; @@ -135,8 +136,11 @@ int kvm_handle_mmio_return(struct kvm_vcpu *vcpu) if (!kvm_vcpu_dabt_issf(vcpu)) data = data & 0xffffffff; +#endif /* ARM64_S390_COMMON */ trace_kvm_mmio(KVM_TRACE_MMIO_READ, len, run->mmio.phys_addr, &data); + //TODO tracing +#ifdef ARM64_S390_COMMON data = vcpu_data_host_to_guest(vcpu, data, len); vcpu_set_reg(vcpu, kvm_vcpu_dabt_get_rd(vcpu), data); } @@ -171,8 +175,11 @@ int io_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa) * though, so directly deliver an exception to the guest. */ if (!kvm_vcpu_dabt_isvalid(vcpu)) { +#endif /* ARM64_S390_COMMON */ trace_kvm_mmio_nisv(*vcpu_pc(vcpu), esr, kvm_vcpu_get_hfar(vcpu), fault_ipa); + //TODO tracing +#ifdef ARM64_S390_COMMON if (vcpu_is_protected(vcpu)) return kvm_inject_sea_dabt(vcpu, kvm_vcpu_get_hfar(vcpu)); @@ -223,14 +230,20 @@ int io_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa) data = vcpu_data_guest_to_host(vcpu, vcpu_get_reg(vcpu, rt), len); +#endif /* ARM64_S390_COMMON */ trace_kvm_mmio(KVM_TRACE_MMIO_WRITE, len, fault_ipa, &data); + //TODO tracing +#ifdef ARM64_S390_COMMON kvm_mmio_write_buf(data_buf, len, data); ret = kvm_io_bus_write(vcpu, KVM_MMIO_BUS, fault_ipa, len, data_buf); } else { +#endif /* ARM64_S390_COMMON */ trace_kvm_mmio(KVM_TRACE_MMIO_READ_UNSATISFIED, len, fault_ipa, NULL); + //TODO tracing +#ifdef ARM64_S390_COMMON ret = kvm_io_bus_read(vcpu, KVM_MMIO_BUS, fault_ipa, len, data_buf); @@ -257,3 +270,4 @@ int io_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa) run->exit_reason = KVM_EXIT_MMIO; return 0; } +#endif /* ARM64_S390_COMMON */ diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c index b963fd975aac..faab6f03f365 100644 --- a/arch/arm64/kvm/reset.c +++ b/arch/arm64/kvm/reset.c @@ -34,6 +34,7 @@ static u32 __ro_after_init kvm_ipa_limit; unsigned int __ro_after_init kvm_host_sve_max_vl; +#ifdef ARM64_S390_COMMON /* * ARMv8 Reset Values */ @@ -46,6 +47,8 @@ unsigned int __ro_after_init kvm_host_sve_max_vl; #define VCPU_RESET_PSTATE_SVC (PSR_AA32_MODE_SVC | PSR_AA32_A_BIT | \ PSR_AA32_I_BIT | PSR_AA32_F_BIT) +#endif /* ARM64_S390_COMMON */ + unsigned int __ro_after_init kvm_sve_max_vl; int __init kvm_arm_init_sve(void) -- 2.53.0