git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
arch
/
ppc
/
kernel
/
ptrace.c
diff --git
a/arch/ppc/kernel/ptrace.c
b/arch/ppc/kernel/ptrace.c
index
c243674
..
1f370cb
100644
(file)
--- a/
arch/ppc/kernel/ptrace.c
+++ b/
arch/ppc/kernel/ptrace.c
@@
-35,7
+35,7
@@
/*
* Set of msr bits that gdb can change on behalf of a process.
*/
/*
* Set of msr bits that gdb can change on behalf of a process.
*/
-#if defined(CONFIG_4
x
x) || defined(CONFIG_BOOKE)
+#if defined(CONFIG_4
0
x) || defined(CONFIG_BOOKE)
#define MSR_DEBUGCHANGE 0
#else
#define MSR_DEBUGCHANGE (MSR_SE | MSR_BE)
#define MSR_DEBUGCHANGE 0
#else
#define MSR_DEBUGCHANGE (MSR_SE | MSR_BE)
@@
-201,9
+201,9
@@
set_single_step(struct task_struct *task)
struct pt_regs *regs = task->thread.regs;
if (regs != NULL) {
struct pt_regs *regs = task->thread.regs;
if (regs != NULL) {
-#if defined(CONFIG_4
x
x) || defined(CONFIG_BOOKE)
+#if defined(CONFIG_4
0
x) || defined(CONFIG_BOOKE)
task->thread.dbcr0 = DBCR0_IDM | DBCR0_IC;
task->thread.dbcr0 = DBCR0_IDM | DBCR0_IC;
- /* MSR.DE should already be set */
+ regs->msr |= MSR_DE;
#else
regs->msr |= MSR_SE;
#endif
#else
regs->msr |= MSR_SE;
#endif
@@
-216,8
+216,9
@@
clear_single_step(struct task_struct *task)
struct pt_regs *regs = task->thread.regs;
if (regs != NULL) {
struct pt_regs *regs = task->thread.regs;
if (regs != NULL) {
-#if defined(CONFIG_4
x
x) || defined(CONFIG_BOOKE)
+#if defined(CONFIG_4
0
x) || defined(CONFIG_BOOKE)
task->thread.dbcr0 = 0;
task->thread.dbcr0 = 0;
+ regs->msr &= ~MSR_DE;
#else
regs->msr &= ~MSR_SE;
#endif
#else
regs->msr &= ~MSR_SE;
#endif
@@
-379,7
+380,7
@@
int sys_ptrace(long request, long pid, long addr, long data)
*/
case PTRACE_KILL: {
ret = 0;
*/
case PTRACE_KILL: {
ret = 0;
- if (child->
state == TASK_ZOMBIE)
/* already dead */
+ if (child->
exit_state == EXIT_ZOMBIE)
/* already dead */
break;
child->exit_code = SIGKILL;
/* make sure the single step bit is not set. */
break;
child->exit_code = SIGKILL;
/* make sure the single step bit is not set. */