arm64: hyp-stub: Implement HVC_RESET_VECTORS stub hypercall
Let's define a new stub hypercall that resets the HYP configuration to its default: hyp-stub vectors, and MMU disabled. Of course, for the hyp-stub itself, this is a trivial no-op. Hypervisors will have a bit more work to do. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Reviewed-by: James Morse <james.morse@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Christoffer Dall <cdall@linaro.org>
This commit is contained in:

committed by
Christoffer Dall

parent
810c86ee4e
commit
fd0e0c6170
@@ -73,8 +73,11 @@ el1_sync:
|
||||
mov x1, x3
|
||||
br x4 // no return
|
||||
|
||||
3: cmp x0, #HVC_RESET_VECTORS
|
||||
beq 9f // Nothing to reset!
|
||||
|
||||
/* Someone called kvm_call_hyp() against the hyp-stub... */
|
||||
3: ldr x0, =HVC_STUB_ERR
|
||||
ldr x0, =HVC_STUB_ERR
|
||||
|
||||
9: eret
|
||||
ENDPROC(el1_sync)
|
||||
@@ -127,3 +130,9 @@ ENTRY(__hyp_set_vectors)
|
||||
hvc #0
|
||||
ret
|
||||
ENDPROC(__hyp_set_vectors)
|
||||
|
||||
ENTRY(__hyp_reset_vectors)
|
||||
mov x0, #HVC_RESET_VECTORS
|
||||
hvc #0
|
||||
ret
|
||||
ENDPROC(__hyp_reset_vectors)
|
||||
|
Reference in New Issue
Block a user