|
@@ -63,6 +63,10 @@ void do_syscall(void *task, int pid, int local_using_sysemu)
|
|
|
|
|
|
UPT_SYSCALL_NR(TASK_REGS(task)) = PT_SYSCALL_NR(proc_regs);
|
|
UPT_SYSCALL_NR(TASK_REGS(task)) = PT_SYSCALL_NR(proc_regs);
|
|
|
|
|
|
|
|
+#ifdef UPT_ORIGGPR2
|
|
|
|
+ UPT_ORIGGPR2(TASK_REGS(task)) = REGS_ORIGGPR2(proc_regs);
|
|
|
|
+#endif
|
|
|
|
+
|
|
if(((unsigned long *) PT_IP(proc_regs) >= &_stext) &&
|
|
if(((unsigned long *) PT_IP(proc_regs) >= &_stext) &&
|
|
((unsigned long *) PT_IP(proc_regs) <= &_etext))
|
|
((unsigned long *) PT_IP(proc_regs) <= &_etext))
|
|
tracer_panic("I'm tracing myself and I can't get out");
|
|
tracer_panic("I'm tracing myself and I can't get out");
|