[POWERPC] Fix ppc32 single-stepping out of syscalls
The ppc32 kernel didn't properly set/clear the TIF_SINGLESTEP flag, causing return from syscalls to not SIGTRAP, thus executing one more instruction before stopping again. This fixes it. The ptrace code is a bit of a mess, and is overdue for at least a -proper- 32/64 bits split and possibly more cleanups but this minimum fix should be ok for 2.6.22 Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
committed by
Paul Mackerras
parent
5169b8a165
commit
7d43e57764
@@ -218,6 +218,7 @@ set_single_step(struct task_struct *task)
|
|||||||
regs->msr |= MSR_SE;
|
regs->msr |= MSR_SE;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
set_tsk_thread_flag(task, TIF_SINGLESTEP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
@@ -233,6 +234,7 @@ clear_single_step(struct task_struct *task)
|
|||||||
regs->msr &= ~MSR_SE;
|
regs->msr &= ~MSR_SE;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
clear_tsk_thread_flag(task, TIF_SINGLESTEP);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_PPC32 */
|
#endif /* CONFIG_PPC32 */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user