--- linux/include/asm-alpha/mman.h~ Mon Mar 18 15:37:03 2002 +++ linux/include/asm-alpha/mman.h Wed Mar 20 08:04:42 2002 @@ -4,6 +4,7 @@ #define PROT_READ 0x1 /* page can be read */ #define PROT_WRITE 0x2 /* page can be written */ #define PROT_EXEC 0x4 /* page can be executed */ +#define PROT_SEM 0x8 /* page may be used for atomic ops */ #define PROT_NONE 0x0 /* page can not be accessed */ #define MAP_SHARED 0x01 /* Share changes */ --- linux/arch/alpha/kernel/osf_sys.c~ Mon Mar 18 15:37:01 2002 +++ linux/arch/alpha/kernel/osf_sys.c Wed Mar 20 09:45:40 2002 @@ -219,7 +219,7 @@ * isn't actually going to matter, as if the parent happens * to change we can happily return either of the pids. */ - (®s)->r20 = tsk->p_opptr->pid; + (®s)->r20 = tsk->real_parent->pid; return tsk->pid; } --- linux/arch/alpha/kernel/ptrace.c~ Mon Mar 18 15:37:18 2002 +++ linux/arch/alpha/kernel/ptrace.c Wed Mar 20 09:29:27 2002 @@ -292,7 +292,7 @@ if (request != PTRACE_KILL) goto out; } - if (child->p_pptr != current) { + if (child->parent != current) { DBG(DBG_MEM, ("child not parent of this process\n")); goto out; } --- linux/include/asm-alpha/siginfo.h~ Wed Mar 20 05:07:16 2002 +++ linux/include/asm-alpha/siginfo.h Wed Mar 20 08:10:44 2002 @@ -108,6 +108,7 @@ #define SI_ASYNCIO -4 /* sent by AIO completion */ #define SI_SIGIO -5 /* sent by queued SIGIO */ #define SI_TKILL -6 /* sent by tkill system call */ +#define SI_DETHREAD -7 /* sent by execve() killing subsidiary threads */ #define SI_FROMUSER(siptr) ((siptr)->si_code <= 0) #define SI_FROMKERNEL(siptr) ((siptr)->si_code > 0) --- linux/arch/alpha/kernel/signal.c~ Mon Mar 18 15:37:14 2002 +++ linux/arch/alpha/kernel/signal.c Wed Mar 20 09:27:47 2002 @@ -661,8 +661,8 @@ info.si_signo = signr; info.si_errno = 0; info.si_code = SI_USER; - info.si_pid = current->p_pptr->pid; - info.si_uid = current->p_pptr->uid; + info.si_pid = current->parent->pid; + info.si_uid = current->parent->uid; } /* If the (new) signal is now blocked, requeue it. */ @@ -701,7 +701,7 @@ case SIGSTOP: current->state = TASK_STOPPED; current->exit_code = signr; - if (!(current->p_pptr->sig->action[SIGCHLD-1] + if (!(current->parent->sig->action[SIGCHLD-1] .sa.sa_flags & SA_NOCLDSTOP)) notify_parent(current, SIGCHLD); schedule(); --- linux/include/asm-alpha/thread_info.h~ Wed Mar 20 05:07:15 2002 +++ linux/include/asm-alpha/thread_info.h Wed Mar 20 11:38:27 2002 @@ -20,6 +20,7 @@ struct exec_domain *exec_domain; /* execution domain */ mm_segment_t addr_limit; /* thread address space */ int cpu; /* current CPU */ + int preempt_count; /* 0 => preemptable, <0 => BUG */ int bpt_nsaved; unsigned long bpt_addr[2]; /* breakpoint handling */