lkml.org 
[lkml]   [2000]   [Sep]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [User-mode-linux-user] Ptrace broken since 2.4.0-test8pre4?...
On Tue, 19 Sep 2000, Jeff Dike wrote:

> yur@asplinux.ru said:
> > I tested vanilla test7 with ptrace() patch. It breaks uml exactly
> > like I see with any kernel > test7.
>
> > exec_user.c:29 ptrace(PTRACE_SYSCALL, 4901, 0, 0) = 0
> > And voila, we got SIGSEGV instead of happy running child:
> > Child 4901 exited with signal 11
>
> Yuri, I apologize for doubting you. That's about the best evidence possible
> that the test8 ptrace fix is what's breaking UML and not the thread group
> stuff.
>
> If anyone has any idea why that fix breaks PTRACE_SYSCALL, I'd love to know.
> I'm kind of short on time at the moment, so I'm not in a great position to
> delve into this at the moment.
>
> Until this is fixed, UML doesn't work on any host kernels beyond test7.

As a further verification that this change is causing problems for
UML, test9-pre5 allows uml to run if the ptrace.c change is
reverted. I do understand that this is not the correct fix for the
problem, but for those who would like to independently verify this, the
(incorrect) patch is attached.

Cheers,
- Bill

---------------------------------------------------------------------------
Things you Do Not Want To See On IRC: your husband commenting on the
S390 port and in the next comment, announcing that he expects a new toy.
He tells me the two are unrelated. I do hope so.
- Telsa Gwynn, Alan Cox' wife
--------------------------------------------------------------------------
William Stearns (wstearns@pobox.com). Mason, Buildkernel, named2hosts,
and ipfwadm2ipchains are at: http://www.pobox.com/~wstearns
LinuxMonth; articles for Linux Enthusiasts! http://www.linuxmonth.com
--------------------------------------------------------------------------

diff -u --recursive --new-file linux/arch/i386/kernel/ptrace.c.orig linux/arch/i386/kernel/ptrace.c
--- linux/arch/i386/kernel/ptrace.c.orig Thu Sep 21 00:34:03 2000
+++ linux/arch/i386/kernel/ptrace.c Thu Sep 21 11:44:36 2000
@@ -100,10 +100,10 @@
value &= FLAG_MASK;
value |= get_stack_long(child, EFL_OFFSET) & ~FLAG_MASK;
break;
- case EIP:
- /* Mark us as not being in a system call, so that no restart issues happen */
- put_stack_long(child, 4*ORIG_EAX - sizeof(struct pt_regs), -1);
- break;
+// case EIP:
+// /* Mark us as not being in a system call, so that no restart issues happen */
+// put_stack_long(child, 4*ORIG_EAX - sizeof(struct pt_regs), -1);
+// break;
}
if (regno > GS*4)
regno -= 2*4;
\
 
 \ /
  Last update: 2005-03-22 12:57    [W:0.092 / U:0.152 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site