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: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
This commit is contained in:
parent
777c155772
commit
cf0ba18a44
@ -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 @@ again:
|
|||||||
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",
|
||||||
|
@ -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);
|
|
||||||
|
@ -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);
|
|
||||||
|
@ -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 @@ again:
|
|||||||
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)
|
||||||
|
@ -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);
|
|
||||||
|
@ -335,9 +335,7 @@ void __hyp_text __vgic_v3_init_lrs(void)
|
|||||||
__gic_v3_set_lr(0, i);
|
__gic_v3_set_lr(0, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
static u64 __hyp_text __vgic_v3_read_ich_vtr_el2(void)
|
u64 __hyp_text __vgic_v3_get_ich_vtr_el2(void)
|
||||||
{
|
{
|
||||||
return read_gicreg(ICH_VTR_EL2);
|
return read_gicreg(ICH_VTR_EL2);
|
||||||
}
|
}
|
||||||
|
|
||||||
__alias(__vgic_v3_read_ich_vtr_el2) u64 __vgic_v3_get_ich_vtr_el2(void);
|
|
||||||
|
Loading…
Reference in New Issue
Block a user