diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2018-10-04 04:35:35 -0400 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2018-10-09 06:55:47 -0400 |
commit | ec876f4b252c4084acad259ce3e65ad97f44f040 (patch) | |
tree | f580cd3c4bc0e6476ca6fc7da78c927fedf31edb | |
parent | 7876320f88802b22d4e2daf7eb027dd14175a0f8 (diff) |
ARM: KVM: Correctly order SGI register entries in the cp15 array
The ICC_ASGI1R and ICC_SGI0R register entries in the cp15 array
are not correctly ordered, leading to a BUG() at boot time.
Move them to their natural location.
Fixes: 3e8a8a50c7ef ("KVM: arm: vgic-v3: Add support for ICC_SGI0R and ICC_ASGI1R accesses")
Reported-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
-rw-r--r-- | arch/arm/kvm/coproc.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/kvm/coproc.c b/arch/arm/kvm/coproc.c index 450c7a4fbc8a..cb094e55dc5f 100644 --- a/arch/arm/kvm/coproc.c +++ b/arch/arm/kvm/coproc.c | |||
@@ -478,15 +478,15 @@ static const struct coproc_reg cp15_regs[] = { | |||
478 | 478 | ||
479 | /* ICC_SGI1R */ | 479 | /* ICC_SGI1R */ |
480 | { CRm64(12), Op1( 0), is64, access_gic_sgi}, | 480 | { CRm64(12), Op1( 0), is64, access_gic_sgi}, |
481 | /* ICC_ASGI1R */ | ||
482 | { CRm64(12), Op1( 1), is64, access_gic_sgi}, | ||
483 | /* ICC_SGI0R */ | ||
484 | { CRm64(12), Op1( 2), is64, access_gic_sgi}, | ||
485 | 481 | ||
486 | /* VBAR: swapped by interrupt.S. */ | 482 | /* VBAR: swapped by interrupt.S. */ |
487 | { CRn(12), CRm( 0), Op1( 0), Op2( 0), is32, | 483 | { CRn(12), CRm( 0), Op1( 0), Op2( 0), is32, |
488 | NULL, reset_val, c12_VBAR, 0x00000000 }, | 484 | NULL, reset_val, c12_VBAR, 0x00000000 }, |
489 | 485 | ||
486 | /* ICC_ASGI1R */ | ||
487 | { CRm64(12), Op1( 1), is64, access_gic_sgi}, | ||
488 | /* ICC_SGI0R */ | ||
489 | { CRm64(12), Op1( 2), is64, access_gic_sgi}, | ||
490 | /* ICC_SRE */ | 490 | /* ICC_SRE */ |
491 | { CRn(12), CRm(12), Op1( 0), Op2(5), is32, access_gic_sre }, | 491 | { CRn(12), CRm(12), Op1( 0), Op2(5), is32, access_gic_sre }, |
492 | 492 | ||