Spotted by Al Viro, there was some bogosity in the UML/x86_64 modify_ltd.

Signed-off-by: Jeff Dike <[EMAIL PROTECTED]>

Index: linux-2.6.11/arch/um/sys-x86_64/syscalls.c
===================================================================
--- linux-2.6.11.orig/arch/um/sys-x86_64/syscalls.c     2005-03-05 
12:07:31.000000000 -0500
+++ linux-2.6.11/arch/um/sys-x86_64/syscalls.c  2005-03-05 12:21:27.000000000 
-0500
@@ -36,15 +36,11 @@
 #endif
 
 #ifdef CONFIG_MODE_SKAS
-extern int userspace_pid;
-
-#ifndef __NR_mm_indirect
-#define __NR_mm_indirect 241
-#endif
+extern int userspace_pid[];
 
 long sys_modify_ldt_skas(int func, void *ptr, unsigned long bytecount)
 {
-       unsigned long args[6];
+       struct ptrace_ldt ldt;
         void *buf;
         int res, n;
 
@@ -66,12 +62,11 @@
                 goto out;
         }
 
-       args[0] = func;
-       args[1] = (unsigned long) buf;
-       args[2] = bytecount;
-       res = syscall(__NR_mm_indirect, &current->mm->context.u,
-                     __NR_modify_ldt, args);
-
+       ldt = ((struct ptrace_ldt) { .func      = func,
+                                    .ptr       = buf,
+                                    .bytecount = bytecount });
+#warning Need to look up userspace_pid by cpu
+       res = ptrace(PTRACE_LDT, userspace_pid[0], 0, (unsigned long) &ldt);
         if(res < 0)
                 goto out;
 

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to