diff options
author | Mark Rutland <mark.rutland@arm.com> | 2018-07-05 16:16:51 +0200 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2018-07-05 18:24:14 +0200 |
commit | 76fc52bd07d3e9cb708f1a50b60c825c96acd606 (patch) | |
tree | 02e3ae3a9a2244cb74504f72b63cebcd99ca88ba | |
parent | arm64: compat: map SPSR_ELx<->PSR for signals (diff) | |
download | linux-76fc52bd07d3e9cb708f1a50b60c825c96acd606.tar.xz linux-76fc52bd07d3e9cb708f1a50b60c825c96acd606.zip |
arm64: ptrace: map SPSR_ELx<->PSR for compat tasks
The SPSR_ELx format for exceptions taken from AArch32 is slightly
different to the AArch32 PSR format.
Map between the two in the compat ptrace code.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Fixes: 7206dc93a58fb764 ("arm64: Expose Arm v8.4 features")
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Suzuki Poulose <suzuki.poulose@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
-rw-r--r-- | arch/arm64/kernel/ptrace.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c index 5df75ab6a3c8..2c4b09f84dd0 100644 --- a/arch/arm64/kernel/ptrace.c +++ b/arch/arm64/kernel/ptrace.c @@ -1076,6 +1076,7 @@ static int compat_gpr_get(struct task_struct *target, break; case 16: reg = task_pt_regs(target)->pstate; + reg = pstate_to_compat_psr(reg); break; case 17: reg = task_pt_regs(target)->orig_x0; @@ -1143,6 +1144,7 @@ static int compat_gpr_set(struct task_struct *target, newregs.pc = reg; break; case 16: + reg = compat_psr_to_pstate(reg); newregs.pstate = reg; break; case 17: |