]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
arm: KVM: Allow unaligned accesses at HYP
authorMarc Zyngier <marc.zyngier@arm.com>
Tue, 6 Jun 2017 18:08:35 +0000 (19:08 +0100)
committerChristoffer Dall <cdall@linaro.org>
Tue, 6 Jun 2017 20:20:02 +0000 (22:20 +0200)
We currently have the HSCTLR.A bit set, trapping unaligned accesses
at HYP, but we're not really prepared to deal with it.

Since the rest of the kernel is pretty happy about that, let's follow
its example and set HSCTLR.A to zero. Modern CPUs don't really care.

Cc: stable@vger.kernel.org
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@linaro.org>
arch/arm/kvm/init.S

index 570ed4a9c2618ba7810f96af0b106c8cfbdfd2cc..5386528665b54fc191cdf0e456a133531c78b626 100644 (file)
@@ -104,7 +104,6 @@ __do_hyp_init:
        @  - Write permission implies XN: disabled
        @  - Instruction cache: enabled
        @  - Data/Unified cache: enabled
-       @  - Memory alignment checks: enabled
        @  - MMU: enabled (this code must be run from an identity mapping)
        mrc     p15, 4, r0, c1, c0, 0   @ HSCR
        ldr     r2, =HSCTLR_MASK
@@ -112,8 +111,8 @@ __do_hyp_init:
        mrc     p15, 0, r1, c1, c0, 0   @ SCTLR
        ldr     r2, =(HSCTLR_EE | HSCTLR_FI | HSCTLR_I | HSCTLR_C)
        and     r1, r1, r2
- ARM(  ldr     r2, =(HSCTLR_M | HSCTLR_A)                      )
- THUMB(        ldr     r2, =(HSCTLR_M | HSCTLR_A | HSCTLR_TE)          )
+ ARM(  ldr     r2, =(HSCTLR_M)                                 )
+ THUMB(        ldr     r2, =(HSCTLR_M | HSCTLR_TE)                     )
        orr     r1, r1, r2
        orr     r0, r0, r1
        mcr     p15, 4, r0, c1, c0, 0   @ HSCR