mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 22:50:41 +00:00
Revert "um: Fix wait_stub_done() error handling"
This reverts commit 0974a9cadc7886f7baaa458bb0c89f5c5f9d458e. The real for for that issue is to release current->mm->mmap_sem in fix_range_common(). Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
parent
d057190925
commit
ae5db6d123
@ -54,7 +54,7 @@ static int ptrace_dump_regs(int pid)
|
|||||||
|
|
||||||
void wait_stub_done(int pid)
|
void wait_stub_done(int pid)
|
||||||
{
|
{
|
||||||
int n, status, err, bad_stop = 0;
|
int n, status, err;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED | __WALL));
|
CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED | __WALL));
|
||||||
@ -74,8 +74,6 @@ void wait_stub_done(int pid)
|
|||||||
|
|
||||||
if (((1 << WSTOPSIG(status)) & STUB_DONE_MASK) != 0)
|
if (((1 << WSTOPSIG(status)) & STUB_DONE_MASK) != 0)
|
||||||
return;
|
return;
|
||||||
else
|
|
||||||
bad_stop = 1;
|
|
||||||
|
|
||||||
bad_wait:
|
bad_wait:
|
||||||
err = ptrace_dump_regs(pid);
|
err = ptrace_dump_regs(pid);
|
||||||
@ -85,10 +83,7 @@ bad_wait:
|
|||||||
printk(UM_KERN_ERR "wait_stub_done : failed to wait for SIGTRAP, "
|
printk(UM_KERN_ERR "wait_stub_done : failed to wait for SIGTRAP, "
|
||||||
"pid = %d, n = %d, errno = %d, status = 0x%x\n", pid, n, errno,
|
"pid = %d, n = %d, errno = %d, status = 0x%x\n", pid, n, errno,
|
||||||
status);
|
status);
|
||||||
if (bad_stop)
|
fatal_sigsegv();
|
||||||
kill(pid, SIGKILL);
|
|
||||||
else
|
|
||||||
fatal_sigsegv();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extern unsigned long current_stub_stack(void);
|
extern unsigned long current_stub_stack(void);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user