patch-2.4.5 linux/arch/ppc/kernel/process.c
Next file: linux/arch/ppc/kernel/prom.c
Previous file: linux/arch/ppc/kernel/proc_rtas.c
Back to the patch index
Back to the overall index
- Lines: 64
- Date:
Mon May 21 17:04:47 2001
- Orig file:
v2.4.4/linux/arch/ppc/kernel/process.c
- Orig date:
Fri Feb 9 11:29:44 2001
diff -u --recursive --new-file v2.4.4/linux/arch/ppc/kernel/process.c linux/arch/ppc/kernel/process.c
@@ -1,6 +1,7 @@
/*
- * $Id: process.c,v 1.97 1999/09/14 19:07:42 cort Exp $
- *
+ * BK Id: SCCS/s.process.c 1.15 05/17/01 18:14:22 cort
+ */
+/*
* linux/arch/ppc/kernel/process.c
*
* Derived from "arch/i386/kernel/process.c"
@@ -378,45 +379,6 @@
}
/*
- * XXX ld.so expects the auxiliary table to start on
- * a 16-byte boundary, so we have to find it and
- * move it up. :-(
- */
-static inline void shove_aux_table(unsigned long sp)
-{
- int argc;
- char *p;
- unsigned long e;
- unsigned long aux_start, offset;
-
- if (__get_user(argc, (int *)sp))
- return;
- sp += sizeof(int) + (argc + 1) * sizeof(char *);
- /* skip over the environment pointers */
- do {
- if (__get_user(p, (char **)sp))
- return;
- sp += sizeof(char *);
- } while (p != NULL);
- aux_start = sp;
- /* skip to the end of the auxiliary table */
- do {
- if (__get_user(e, (unsigned long *)sp))
- return;
- sp += 2 * sizeof(unsigned long);
- } while (e != AT_NULL);
- offset = ((aux_start + 15) & ~15) - aux_start;
- if (offset != 0) {
- do {
- sp -= sizeof(unsigned long);
- if (__get_user(e, (unsigned long *)sp)
- || __put_user(e, (unsigned long *)(sp + offset)))
- return;
- } while (sp > aux_start);
- }
-}
-
-/*
* Set up a thread for executing a new program
*/
void start_thread(struct pt_regs *regs, unsigned long nip, unsigned long sp)
@@ -425,7 +387,6 @@
regs->nip = nip;
regs->gpr[1] = sp;
regs->msr = MSR_USER;
- shove_aux_table(sp);
if (last_task_used_math == current)
last_task_used_math = 0;
if (last_task_used_altivec == current)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)