summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@armlinux.org.uk>2016-05-13 12:26:10 +0300
committerRussell King <rmk+kernel@armlinux.org.uk>2016-06-22 21:55:05 +0300
commit5fa9da5043a81b9eea5d4522d1371455bf64894a (patch)
tree8d34aa442332ab6b7e71d9edf99341db70590e51
parente6a9dc6129d23cd3025e841c4e13a70910a37135 (diff)
downloadlinux-5fa9da5043a81b9eea5d4522d1371455bf64894a.tar.xz
ARM: get rid of horrible *(unsigned int *)(regs + 1)
Get rid of the horrible "*(unsigned int *)(regs + 1)" to get at the parent context domain access register value, instead using the newly introduced svc_pt_regs structure. Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
-rw-r--r--arch/arm/include/asm/ptrace.h2
-rw-r--r--arch/arm/kernel/process.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/arch/arm/include/asm/ptrace.h b/arch/arm/include/asm/ptrace.h
index 5194cf79c90f..0ef0093800f2 100644
--- a/arch/arm/include/asm/ptrace.h
+++ b/arch/arm/include/asm/ptrace.h
@@ -25,6 +25,8 @@ struct svc_pt_regs {
u32 unused;
};
+#define to_svc_pt_regs(r) container_of(r, struct svc_pt_regs, regs)
+
#define user_mode(regs) \
(((regs)->ARM_cpsr & 0xf) == 0)
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index 4a803c5a1ff7..f1c720c0d568 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -106,7 +106,7 @@ void __show_regs(struct pt_regs *regs)
if (user_mode(regs))
domain = DACR_UACCESS_ENABLE;
else
- domain = *(unsigned int *)(regs + 1);
+ domain = to_svc_pt_regs(regs)->dacr;
#else
domain = get_domain();
#endif