2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-18 10:13:57 +08:00

arm64: hyp-stub/KVM: Kill __hyp_get_vectors

Nobody is using __hyp_get_vectors anymore, so let's remove both
implementations (hyp-stub and KVM).

Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@linaro.org>
This commit is contained in:
Marc Zyngier 2017-04-03 19:38:04 +01:00 committed by Christoffer Dall
parent ecb5d61daa
commit 0b51c547fd
4 changed files with 7 additions and 27 deletions

View File

@ -29,28 +29,25 @@
* indirection of a function call (as implemented in hyp-stub.S). * indirection of a function call (as implemented in hyp-stub.S).
*/ */
/* HVC_GET_VECTORS - Return the value of the vbar_el2 register. */
#define HVC_GET_VECTORS 0
/* /*
* HVC_SET_VECTORS - Set the value of the vbar_el2 register. * HVC_SET_VECTORS - Set the value of the vbar_el2 register.
* *
* @x1: Physical address of the new vector table. * @x1: Physical address of the new vector table.
*/ */
#define HVC_SET_VECTORS 1 #define HVC_SET_VECTORS 0
/* /*
* HVC_SOFT_RESTART - CPU soft reset, used by the cpu_soft_restart routine. * HVC_SOFT_RESTART - CPU soft reset, used by the cpu_soft_restart routine.
*/ */
#define HVC_SOFT_RESTART 2 #define HVC_SOFT_RESTART 1
/* /*
* HVC_RESET_VECTORS - Restore the vectors to the original HYP stubs * HVC_RESET_VECTORS - Restore the vectors to the original HYP stubs
*/ */
#define HVC_RESET_VECTORS 3 #define HVC_RESET_VECTORS 2
/* Max number of HYP stub hypercalls */ /* Max number of HYP stub hypercalls */
#define HVC_STUB_HCALL_NR 4 #define HVC_STUB_HCALL_NR 3
/* Error returned when an invalid stub number is passed into x0 */ /* Error returned when an invalid stub number is passed into x0 */
#define HVC_STUB_ERR 0xbadca11 #define HVC_STUB_ERR 0xbadca11
@ -77,7 +74,6 @@
extern u32 __boot_cpu_mode[2]; extern u32 __boot_cpu_mode[2];
void __hyp_set_vectors(phys_addr_t phys_vector_base); void __hyp_set_vectors(phys_addr_t phys_vector_base);
phys_addr_t __hyp_get_vectors(void);
void __hyp_reset_vectors(void); void __hyp_reset_vectors(void);
/* Reports the availability of HYP mode */ /* Reports the availability of HYP mode */

View File

@ -55,12 +55,7 @@ ENDPROC(__hyp_stub_vectors)
.align 11 .align 11
el1_sync: el1_sync:
cmp x0, #HVC_GET_VECTORS cmp x0, #HVC_SET_VECTORS
b.ne 1f
mrs x0, vbar_el2
b 9f
1: cmp x0, #HVC_SET_VECTORS
b.ne 2f b.ne 2f
msr vbar_el2, x1 msr vbar_el2, x1
b 9f b 9f
@ -118,12 +113,6 @@ ENDPROC(\label)
* initialisation entry point. * initialisation entry point.
*/ */
ENTRY(__hyp_get_vectors)
mov x0, #HVC_GET_VECTORS
hvc #0
ret
ENDPROC(__hyp_get_vectors)
ENTRY(__hyp_set_vectors) ENTRY(__hyp_set_vectors)
mov x1, x0 mov x1, x0
mov x0, #HVC_SET_VECTORS mov x0, #HVC_SET_VECTORS

View File

@ -124,12 +124,7 @@ __do_hyp_init:
ENDPROC(__kvm_hyp_init) ENDPROC(__kvm_hyp_init)
ENTRY(__kvm_handle_stub_hvc) ENTRY(__kvm_handle_stub_hvc)
cmp x0, #HVC_GET_VECTORS cmp x0, #HVC_SOFT_RESTART
b.ne 1f
mrs x0, vbar_el2
b exit
1: cmp x0, #HVC_SOFT_RESTART
b.ne 1f b.ne 1f
/* This is where we're about to jump, staying at EL2 */ /* This is where we're about to jump, staying at EL2 */

View File

@ -36,7 +36,7 @@
* passed in x0. * passed in x0.
* *
* A function pointer with a value less than 0xfff has a special meaning, * A function pointer with a value less than 0xfff has a special meaning,
* and is used to implement __hyp_get_vectors in the same way as in * and is used to implement hyp stubs in the same way as in
* arch/arm64/kernel/hyp_stub.S. * arch/arm64/kernel/hyp_stub.S.
*/ */
ENTRY(__kvm_call_hyp) ENTRY(__kvm_call_hyp)