On Tue, May 14, 2013 at 03:13:43PM +0100, Marc Zyngier wrote:
> --- /dev/null
> +++ b/arch/arm64/kvm/hyp-init.S
...
> +     .text
> +     .pushsection    .hyp.idmap.text, "ax"
> +
> +     .align  11
> +
> +__kvm_hyp_init:
> +     .global __kvm_hyp_init
> +
> +ENTRY(__kvm_hyp_init_vector)

Why do you need both __kvm_hyp_init and __kvm_hyp_init_vector? You could
drop the former.

> +__do_hyp_init:
> +
> +     msr     ttbr0_el2, x0
> +
> +     mrs     x4, tcr_el1
> +     ldr     x5, =TCR_EL2_MASK
> +     and     x4, x4, x5
> +     ldr     x5, =TCR_EL2_FLAGS
> +     orr     x4, x4, x5
> +     msr     tcr_el2, x4
> +
> +     ldr     x4, =VTCR_EL2_FLAGS
> +     msr     vtcr_el2, x4
> +
> +     mrs     x4, mair_el1
> +     msr     mair_el2, x4
> +     isb
> +
> +     mov     x4, #SCTLR_EL2_FLAGS
> +     msr     sctlr_el2, x4
> +     isb
> +
> +     /* MMU is now enabled. Get ready for the trampoline dance */
> +     ldr     x4, =TRAMPOLINE_VA
> +     adr     x5, target
> +     bfi     x4, x5, #0, #PAGE_SHIFT
> +     br      x4
> +
> +     nop

What is this nop for?

-- 
Catalin
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to