Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cf0ba18a authored by Christoffer Dall's avatar Christoffer Dall
Browse files

KVM: arm/arm64: Get rid of exported aliases to static functions



When rewriting the assembly code to C code, it was useful to have
exported aliases or static functions so that we could keep the existing
common C code unmodified and at the same time rewrite arm64 from
assembly to C code, and later do the arm part.

Now when both are done, we really don't need this level of indirection
anymore, and it's time to save a few lines and brain cells.

Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
parent 777c1557
Loading
Loading
Loading
Loading
+1 −3
Original line number Original line Diff line number Diff line
@@ -134,7 +134,7 @@ static bool __hyp_text __populate_fault_info(struct kvm_vcpu *vcpu)
	return true;
	return true;
}
}


static int __hyp_text __guest_run(struct kvm_vcpu *vcpu)
int __hyp_text __kvm_vcpu_run(struct kvm_vcpu *vcpu)
{
{
	struct kvm_cpu_context *host_ctxt;
	struct kvm_cpu_context *host_ctxt;
	struct kvm_cpu_context *guest_ctxt;
	struct kvm_cpu_context *guest_ctxt;
@@ -191,8 +191,6 @@ static int __hyp_text __guest_run(struct kvm_vcpu *vcpu)
	return exit_code;
	return exit_code;
}
}


__alias(__guest_run) int __kvm_vcpu_run(struct kvm_vcpu *vcpu);

static const char * const __hyp_panic_string[] = {
static const char * const __hyp_panic_string[] = {
	[ARM_EXCEPTION_RESET]      = "\nHYP panic: RST   PC:%08x CPSR:%08x",
	[ARM_EXCEPTION_RESET]      = "\nHYP panic: RST   PC:%08x CPSR:%08x",
	[ARM_EXCEPTION_UNDEFINED]  = "\nHYP panic: UNDEF PC:%08x CPSR:%08x",
	[ARM_EXCEPTION_UNDEFINED]  = "\nHYP panic: UNDEF PC:%08x CPSR:%08x",
+4 −11
Original line number Original line Diff line number Diff line
@@ -34,7 +34,7 @@
 * As v7 does not support flushing per IPA, just nuke the whole TLB
 * As v7 does not support flushing per IPA, just nuke the whole TLB
 * instead, ignoring the ipa value.
 * instead, ignoring the ipa value.
 */
 */
static void __hyp_text __tlb_flush_vmid(struct kvm *kvm)
void __hyp_text __kvm_tlb_flush_vmid(struct kvm *kvm)
{
{
	dsb(ishst);
	dsb(ishst);


@@ -50,21 +50,14 @@ static void __hyp_text __tlb_flush_vmid(struct kvm *kvm)
	write_sysreg(0, VTTBR);
	write_sysreg(0, VTTBR);
}
}


__alias(__tlb_flush_vmid) void __kvm_tlb_flush_vmid(struct kvm *kvm);
void __hyp_text __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa)

static void __hyp_text __tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa)
{
{
	__tlb_flush_vmid(kvm);
	__kvm_tlb_flush_vmid(kvm);
}
}


__alias(__tlb_flush_vmid_ipa) void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm,
void __hyp_text __kvm_flush_vm_context(void)
							    phys_addr_t ipa);

static void __hyp_text __tlb_flush_vm_context(void)
{
{
	write_sysreg(0, TLBIALLNSNHIS);
	write_sysreg(0, TLBIALLNSNHIS);
	write_sysreg(0, ICIALLUIS);
	write_sysreg(0, ICIALLUIS);
	dsb(ish);
	dsb(ish);
}
}

__alias(__tlb_flush_vm_context) void __kvm_flush_vm_context(void);
+1 −3
Original line number Original line Diff line number Diff line
@@ -131,9 +131,7 @@ void __hyp_text __debug_cond_restore_host_state(struct kvm_vcpu *vcpu)
		vcpu->arch.debug_flags &= ~KVM_ARM64_DEBUG_DIRTY;
		vcpu->arch.debug_flags &= ~KVM_ARM64_DEBUG_DIRTY;
}
}


static u32 __hyp_text __debug_read_mdcr_el2(void)
u32 __hyp_text __kvm_get_mdcr_el2(void)
{
{
	return read_sysreg(mdcr_el2);
	return read_sysreg(mdcr_el2);
}
}

__alias(__debug_read_mdcr_el2) u32 __kvm_get_mdcr_el2(void);
+1 −3
Original line number Original line Diff line number Diff line
@@ -232,7 +232,7 @@ static bool __hyp_text __populate_fault_info(struct kvm_vcpu *vcpu)
	return true;
	return true;
}
}


static int __hyp_text __guest_run(struct kvm_vcpu *vcpu)
int __hyp_text __kvm_vcpu_run(struct kvm_vcpu *vcpu)
{
{
	struct kvm_cpu_context *host_ctxt;
	struct kvm_cpu_context *host_ctxt;
	struct kvm_cpu_context *guest_ctxt;
	struct kvm_cpu_context *guest_ctxt;
@@ -293,8 +293,6 @@ static int __hyp_text __guest_run(struct kvm_vcpu *vcpu)
	return exit_code;
	return exit_code;
}
}


__alias(__guest_run) int __kvm_vcpu_run(struct kvm_vcpu *vcpu);

static const char __hyp_panic_string[] = "HYP panic:\nPS:%08llx PC:%016llx ESR:%08llx\nFAR:%016llx HPFAR:%016llx PAR:%016llx\nVCPU:%p\n";
static const char __hyp_panic_string[] = "HYP panic:\nPS:%08llx PC:%016llx ESR:%08llx\nFAR:%016llx HPFAR:%016llx PAR:%016llx\nVCPU:%p\n";


static void __hyp_text __hyp_call_panic_nvhe(u64 spsr, u64 elr, u64 par)
static void __hyp_text __hyp_call_panic_nvhe(u64 spsr, u64 elr, u64 par)
+3 −10
Original line number Original line Diff line number Diff line
@@ -17,7 +17,7 @@


#include <asm/kvm_hyp.h>
#include <asm/kvm_hyp.h>


static void __hyp_text __tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa)
void __hyp_text __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa)
{
{
	dsb(ishst);
	dsb(ishst);


@@ -48,10 +48,7 @@ static void __hyp_text __tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa)
	write_sysreg(0, vttbr_el2);
	write_sysreg(0, vttbr_el2);
}
}


__alias(__tlb_flush_vmid_ipa) void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm,
void __hyp_text __kvm_tlb_flush_vmid(struct kvm *kvm)
							    phys_addr_t ipa);

static void __hyp_text __tlb_flush_vmid(struct kvm *kvm)
{
{
	dsb(ishst);
	dsb(ishst);


@@ -67,14 +64,10 @@ static void __hyp_text __tlb_flush_vmid(struct kvm *kvm)
	write_sysreg(0, vttbr_el2);
	write_sysreg(0, vttbr_el2);
}
}


__alias(__tlb_flush_vmid) void __kvm_tlb_flush_vmid(struct kvm *kvm);
void __hyp_text __kvm_flush_vm_context(void)

static void __hyp_text __tlb_flush_vm_context(void)
{
{
	dsb(ishst);
	dsb(ishst);
	asm volatile("tlbi alle1is	\n"
	asm volatile("tlbi alle1is	\n"
		     "ic ialluis	  ": : );
		     "ic ialluis	  ": : );
	dsb(ish);
	dsb(ish);
}
}

__alias(__tlb_flush_vm_context) void __kvm_flush_vm_context(void);
Loading