Patch "arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
arm64-kvm-fix-decoding-of-rt-rt2-when-trapping-aarch32-cp-accesses.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
c667186f1c01ca8970c785888868b7ffd74e51eeMon Sep 17 00:00:00 2001
From: Marc Zyngier <[email protected]>
Date: Thu, 27 Apr 2017 19:06:48 +0100
Subject: arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
From: Marc Zyngier <[email protected]>
commit c667186f1c01ca8970c785888868b7ffd74e51ee upstream.
Our 32bit CP14/15 handling inherited some of the ARMv7 code for handling the trapped system registers, completely missing the fact that the fields for Rt and Rt2 are now 5 bit wide, and not 4...
Let's fix it, and provide an accessor for the most common Rt case.
--- arch/arm64/include/asm/kvm_emulate.h | 6 ++++++ arch/arm64/kvm/sys_regs.c | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-)
arch/arm64/include/asm/kvm_emulate.h +6 -0
@@ -217,6 +217,12 @@ static inline u8 kvm_vcpu_trap_get_faultreturn kvm_vcpu_get_hsr (vcpu) & ESR_ELx_FSC_TYPE; } +static inline int kvm_vcpu_sys_get_rt (struct kvm_vcpu *vcpu) +{ +u32 esr =kvm_vcpu_get_hsr (vcpu); +return (esr & ESR_ELx_SYS64_ISS_RT_MASK) >> ESR_ELx_SYS64_ISS_RT_SHIFT; +} +static inline unsigned long kvm_vcpu_get_mpidr_aff (struct kvm_vcpu *vcpu) {return vcpu_sys_reg (vcpu,MPIDR_EL1 ) &MPIDR_HWID_BITMASK ;
arch/arm64/kvm/sys_regs.c +4 -4
@@ -1054,8 +1054,8 @@ static int kvm_handle_cp_64(struct kvm_v {struct sys_reg_params params;u32 hsr =kvm_vcpu_get_hsr (vcpu); -int Rt = (hsr >>5 ) &0xf ; -int Rt2 = (hsr >>10 ) &0xf ; +int Rt =kvm_vcpu_sys_get_rt (vcpu); +int Rt2 = (hsr >>10 ) &0x1f ; params.is_aarch32 = true; params.is_32bit = false;
@@ -1106,7 +1106,7 @@ static int kvm_handle_cp_32(struct kvm_v {struct sys_reg_params params;u32 hsr =kvm_vcpu_get_hsr (vcpu); -int Rt = (hsr >>5 ) &0xf ; +int Rt =kvm_vcpu_sys_get_rt (vcpu); params.is_aarch32 = true; params.is_32bit = true;
@@ -1221,7 +1221,7 @@ int kvm_handle_sys_reg(struct kvm_vcpu * {struct sys_reg_params params;unsigned long esr =kvm_vcpu_get_hsr (vcpu); -int Rt = (esr >>5 ) &0x1f ; +int Rt =kvm_vcpu_sys_get_rt (vcpu);int ret;trace_kvm_handle_sys_reg (esr);
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/arm64-kvm-fix-decoding-of-rt-rt2-when-trapping-aarch32-cp-accesses.patch queue-4.4/kvm-arm-arm64-fix-races-in-kvm_psci_vcpu_on.patch
Hi Greg,
Quoted 7 lines · On Tue, May 16 2017 at 11:53:26 AM, <[email protected]> wrote:
This is a note to let you know that I've just added the patch titled
arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
Quoted 6 lines
The filename of the patch is:
arm64-kvm-fix-decoding-of-rt-rt2-when-trapping-aarch32-cp-accesses.patch
and it can be found in the queue-4.4 subdirectory.If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Please drop this patch from 4.4, it doesn't compile (missing crucial dependencies, reported by the kbuild robot). I'll provide an updated patch early next week (unless someone beats me to it -- I'm traveling ATM).
Thanks,
M.
Signature · 1 line
Jazz is not dead. It just smells funny.
Greg KH
maintainerQuoted 14 lines · Marc Zyngier
Hi Greg,
Quoted 11 lines · On Tue, May 16 2017 at 11:53:26 AM, <[email protected]> wrote:
This is a note to let you know that I've just added the patch titled
arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summaryThe filename of the patch is:
arm64-kvm-fix-decoding-of-rt-rt2-when-trapping-aarch32-cp-accesses.patch
and it can be found in the queue-4.4 subdirectory.
Quoted 7 lines
Quoted 2 lines
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Please drop this patch from 4.4, it doesn't compile (missing crucial dependencies, reported by the kbuild robot). I'll provide an updated patch early next week (unless someone beats me to it -- I'm traveling ATM).
Ok, now dropped, thanks for letting me know.
greg k-h
Quoted 18 lines · Greg KH
Quoted 17 lines · Marc Zyngier
Hi Greg,
Quoted 13 lines · On Tue, May 16 2017 at 11:53:26 AM, <[email protected]> wrote:
This is a note to let you know that I've just added the patch titled
arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summaryThe filename of the patch is:
arm64-kvm-fix-decoding-of-rt-rt2-when-trapping-aarch32-cp-accesses.patch
and it can be found in the queue-4.4 subdirectory.If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 6 lines
Quoted 4 lines
Please drop this patch from 4.4, it doesn't compile (missing crucial dependencies, reported by the kbuild robot). I'll provide an updated patch early next week (unless someone beats me to it -- I'm traveling ATM).
Ok, now dropped, thanks for letting me know.
Here's the updated patch that compiles for 4.4.
Thanks,
M.
Quoted 1 line
From
8cafd49862b5f88f68392c4623ec2d275b573d53Mon Sep 17 00:00:00 2001
From: Marc Zyngier <[email protected]>
Date: Thu, 27 Apr 2017 19:06:48 +0100
Subject: [PATCH] arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP
accesses
commit c667186f1c01ca8970c785888868b7ffd74e51ee upstream.
Our 32bit CP14/15 handling inherited some of the ARMv7 code for handling the trapped system registers, completely missing the fact that the fields for Rt and Rt2 are now 5 bit wide, and not 4...
--- arch/arm64/kvm/sys_regs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
arch/arm64/kvm/sys_regs.c +3 -3
@@ -1054,8 +1054,8 @@ static int kvm_handle_cp_64(struct kvm_vcpu *vcpu, {struct sys_reg_params params;u32 hsr =kvm_vcpu_get_hsr (vcpu); -int Rt = (hsr >>5 ) &0xf ; -int Rt2 = (hsr >>10 ) &0xf ; +int Rt = (hsr >>5 ) &0x1f ; +int Rt2 = (hsr >>10 ) &0x1f ; params.is_aarch32 = true; params.is_32bit = false;
@@ -1106,7 +1106,7 @@ static int kvm_handle_cp_32(struct kvm_vcpu *vcpu, {struct sys_reg_params params;u32 hsr =kvm_vcpu_get_hsr (vcpu); -int Rt = (hsr >>5 ) &0xf ; +int Rt = (hsr >>5 ) &0x1f ; params.is_aarch32 = true; params.is_32bit = true;
Signature · 5 lines
2.7.4 -- Jazz is not dead. It just smells funny.
Greg KH
maintainerQuoted 19 lines · Marc Zyngier
Quoted 18 lines · Greg KH
Quoted 17 lines · Marc Zyngier
Hi Greg,
Quoted 13 lines · On Tue, May 16 2017 at 11:53:26 AM, <[email protected]> wrote:
This is a note to let you know that I've just added the patch titled
arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summaryThe filename of the patch is:
arm64-kvm-fix-decoding-of-rt-rt2-when-trapping-aarch32-cp-accesses.patch
and it can be found in the queue-4.4 subdirectory.If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 8 lines
Quoted 6 lines
Quoted 4 lines
Please drop this patch from 4.4, it doesn't compile (missing crucial dependencies, reported by the kbuild robot). I'll provide an updated patch early next week (unless someone beats me to it -- I'm traveling ATM).
Ok, now dropped, thanks for letting me know.
Here's the updated patch that compiles for 4.4.
Thanks, now queued up.
greg k-h