aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/ptrace_32.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2008-09-12 09:56:35 -0400
committerPaul Mundt <lethal@linux-sh.org>2008-09-12 09:56:35 -0400
commit72461997c3c66c29775afa68ca31bea16bf17f39 (patch)
treeef400b44fe51a5a8fa10a8cbf3ee7f95a0176377 /arch/sh/kernel/ptrace_32.c
parentf9540ececaa2cf94b6760741c82f25097e662383 (diff)
sh: Check SR.DSP bit for DSP regset validity.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/ptrace_32.c')
-rw-r--r--arch/sh/kernel/ptrace_32.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/sh/kernel/ptrace_32.c b/arch/sh/kernel/ptrace_32.c
index 92fe2034f74a..0f44f2b51a60 100644
--- a/arch/sh/kernel/ptrace_32.c
+++ b/arch/sh/kernel/ptrace_32.c
@@ -179,6 +179,14 @@ static int dspregs_set(struct task_struct *target,
179 179
180 return ret; 180 return ret;
181} 181}
182
183static int dspregs_active(struct task_struct *target,
184 const struct user_regset *regset)
185{
186 struct pt_regs *regs = task_pt_regs(target);
187
188 return regs->sr & SR_DSP ? regset->n : 0;
189}
182#endif 190#endif
183 191
184/* 192/*
@@ -213,6 +221,7 @@ static const struct user_regset sh_regsets[] = {
213 .align = sizeof(long), 221 .align = sizeof(long),
214 .get = dspregs_get, 222 .get = dspregs_get,
215 .set = dspregs_set, 223 .set = dspregs_set,
224 .active = dspregs_active,
216 }, 225 },
217#endif 226#endif
218}; 227};