[PATCH] arm64: KVM: Fix HCR_EL2 and VTCR_EL2 configuration bits

Marc Zyngier marc.zyngier at arm.com
Thu May 9 08:35:14 EDT 2013


Hi Pranav,

On 09/05/13 12:40, Pranavkumar Sawargaonkar wrote:
> This patch does following fixes:
> 
> 1. Make HCR_* flags as unsigned long long constants
> Reason : By default, compiler assumes numeric constants as
> signed hence sign extending it when assigned to unsigned variable
> such as hcr_el2 (in VCPU context). This accidently sets HCR_ID and
> HCR_CD making entire guest memory non-cacheable. On real HW, this
> breaks Stage2 ttbl walks and also breaks VirtIO.

Ah. Nice one. I fixed a couple of similar bugs already, but didn't
notice that one yet, for obvious reasons...

I'll probably rewrite that patch to use the UL(x) macro instead of
_AC(), as we don't need to have an unsigned long long, and that makes
the code look much nicer (sort of).

> 2. VTCR_EL2_ORGN0_WBWA and VTCR_EL2_IRGN0_WBWA macros.

Blah. Copy paste. Fucks me all the time.

> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar at linaro.org>
> Signed-off-by: Anup Patel <anup.patel at linaro.org>
> ---
>  arch/arm64/include/asm/kvm_arm.h |   73 +++++++++++++++++++-------------------
>  1 file changed, 37 insertions(+), 36 deletions(-)

Thanks a lot,

	M.
-- 
Jazz is not dead. It just smells funny...




More information about the linux-arm-kernel mailing list