diff -Naur -X exclude-files ac_cur/arch/um/drivers/mconsole_kern.c ac/arch/um/drivers/mconsole_kern.c
--- ac_cur/arch/um/drivers/mconsole_kern.c	Sat Aug  4 15:57:57 2001
+++ ac/arch/um/drivers/mconsole_kern.c	Sat Aug  4 16:09:26 2001
@@ -4,7 +4,7 @@
  */
 
 #include "linux/kernel.h"
-#include "linux/malloc.h"
+#include "linux/slab.h"
 #include "linux/init.h"
 #include "linux/notifier.h"
 #include "linux/reboot.h"
diff -Naur -X exclude-files ac_cur/arch/um/kernel/exec_kern.c ac/arch/um/kernel/exec_kern.c
--- ac_cur/arch/um/kernel/exec_kern.c	Sat Aug  4 15:57:57 2001
+++ ac/arch/um/kernel/exec_kern.c	Sat Aug  4 16:10:04 2001
@@ -3,7 +3,7 @@
  * Licensed under the GPL
  */
 
-#include "linux/malloc.h"
+#include "linux/slab.h"
 #include "linux/smp_lock.h"
 #include "asm/ptrace.h"
 #include "asm/pgtable.h"
diff -Naur -X exclude-files ac_cur/arch/um/kernel/process_kern.c ac/arch/um/kernel/process_kern.c
--- ac_cur/arch/um/kernel/process_kern.c	Sat Aug  4 15:57:57 2001
+++ ac/arch/um/kernel/process_kern.c	Sat Aug  4 16:12:11 2001
@@ -7,7 +7,7 @@
 #include "linux/sched.h"
 #include "linux/interrupt.h"
 #include "linux/mm.h"
-#include "linux/malloc.h"
+#include "linux/slab.h"
 #include "linux/utsname.h"
 #include "linux/fs.h"
 #include "linux/utime.h"
diff -Naur -X exclude-files ac_cur/arch/um/kernel/ptrace.c ac/arch/um/kernel/ptrace.c
--- ac_cur/arch/um/kernel/ptrace.c	Sat Aug  4 15:57:57 2001
+++ ac/arch/um/kernel/ptrace.c	Sat Aug  4 16:11:06 2001
@@ -41,32 +41,7 @@
 		goto out_tsk;
 
 	if (request == PTRACE_ATTACH) {
-		if (child == current)
-			goto out_tsk;
-		if ((!child->dumpable ||
-		     (current->uid != child->euid) ||
-		     (current->uid != child->suid) ||
-		     (current->uid != child->uid) ||
-		     (current->gid != child->egid) ||
-		     (current->gid != child->sgid) ||
-		     (!cap_issubset(child->cap_permitted, current->cap_permitted)) ||
-		     (current->gid != child->gid)) && !capable(CAP_SYS_PTRACE))
-			goto out_tsk;
-		/* the same process cannot be attached many times */
-		if (child->ptrace & PT_PTRACED)
-			goto out_tsk;
-		child->ptrace |= PT_PTRACED;
-
-		write_lock_irq(&tasklist_lock);
-		if (child->p_pptr != current) {
-			REMOVE_LINKS(child);
-			child->p_pptr = current;
-			SET_LINKS(child);
-		}
-		write_unlock_irq(&tasklist_lock);
-
-		send_sig(SIGSTOP, child, 1);
-		ret = 0;
+		ret = ptrace_attach(child);
 		goto out_tsk;
 	}
 	ret = -ESRCH;
diff -Naur -X exclude-files ac_cur/arch/um/kernel/tlb.c ac/arch/um/kernel/tlb.c
--- ac_cur/arch/um/kernel/tlb.c	Sat Aug  4 15:57:57 2001
+++ ac/arch/um/kernel/tlb.c	Sat Aug  4 16:11:44 2001
@@ -4,7 +4,7 @@
  */
 
 #include "linux/sched.h"
-#include "linux/malloc.h"
+#include "linux/slab.h"
 #include "linux/bootmem.h"
 #include "asm/pgtable.h"
 #include "asm/pgalloc.h"
diff -Naur -X exclude-files ac_cur/arch/um/link.ld.in ac/arch/um/link.ld.in
--- ac_cur/arch/um/link.ld.in	Sat Aug  4 15:57:57 2001
+++ ac/arch/um/link.ld.in	Sat Aug  4 16:17:48 2001
@@ -43,6 +43,7 @@
   .remap : { arch/um/kernel/unmap_fin.o (.text) }
 
   . = ALIGN(4096);		/* Init code and data */
+  _stext = .;
   __init_begin = .;
   .text.init : { *(.text.init) }
   .data.init : { *(.data.init) }
@@ -59,7 +60,6 @@
   .exitcall : { *(.exitcall.exit) }
   __exitcall_end = .;
 
-  _stext = .;
   .text      :
   {
     *(.text)