]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] {get,set}affinity unification
authorRandolph Chung <randolph@tausq.org>
Mon, 14 Apr 2003 16:07:21 +0000 (09:07 -0700)
committerRichard Henderson <rth@are.twiddle.net>
Mon, 14 Apr 2003 16:07:21 +0000 (09:07 -0700)
This one gets rid of sys32_{get,set}affinity in favor of a unified
compat implementation.

arch/ia64/ia32/ia32_entry.S
arch/parisc/kernel/syscall.S
arch/ppc64/kernel/misc.S
arch/ppc64/kernel/sys_ppc32.c
arch/sparc64/kernel/sys_sparc32.c
arch/sparc64/kernel/systbls.S
arch/x86_64/ia32/ia32entry.S
arch/x86_64/ia32/sys_ia32.c
kernel/compat.c

index a737824c7d5e000be508b3104e34c6da7599f0f5..a13ffb194ddfea4ce1fdcdeca4bc6c09114c7b7b 100644 (file)
@@ -439,8 +439,8 @@ ia32_syscall_table:
        data8 sys_ni_syscall
        data8 sys_ni_syscall
        data8 compat_sys_futex  /* 240 */
-       data8 sys_ni_syscall
-       data8 sys_ni_syscall
+       data8 compat_sys_setaffinity
+       data8 compat_sys_getaffinity
        data8 sys_ni_syscall
        data8 sys_ni_syscall
        data8 sys_ni_syscall    /* 245 */
index c0883e270f3c672edc55cd3f1b5f216442dd95ab..929a4a3cb695fbbe4be6d746d5af00a970276557 100644 (file)
@@ -598,8 +598,8 @@ sys_call_table:
 
        ENTRY_SAME(sendfile64)
        ENTRY_COMP(futex)               /* 210 */
-       ENTRY_SAME(sched_setaffinity)
-       ENTRY_SAME(sched_getaffinity)
+       ENTRY_COMP(sched_setaffinity)
+       ENTRY_COMP(sched_getaffinity)
        ENTRY_SAME(ni_syscall)
        ENTRY_SAME(ni_syscall)
        ENTRY_SAME(io_setup)            /* 215 */
index 81200e28f16b92c3028b89e19d51b42873a5a40e..2af247e0e7a1645baddc16716380d87446c67e53 100644 (file)
@@ -724,8 +724,8 @@ _GLOBAL(sys_call_table32)
        .llong .sys_lremovexattr
        .llong .sys_fremovexattr        /* 220 */
        .llong .compat_sys_futex
-       .llong .sys32_sched_setaffinity
-       .llong .sys32_sched_getaffinity
+       .llong .compat_sys_sched_setaffinity
+       .llong .compat_sys_sched_getaffinity
        .llong .sys_ni_syscall
        .llong .sys_ni_syscall          /* 225 - reserved for tux */
        .llong .sys32_sendfile64
index 5cab55ad74c4a6abab0b3acf25e350e42d9e1b1b..a7c67d5da6b26e146ed608dce63d6ea9494fdd8f 100644 (file)
@@ -2780,56 +2780,6 @@ asmlinkage long sys32_time(compat_time_t* tloc)
        return secs;
 }
 
-extern asmlinkage long sys_sched_setaffinity(pid_t pid, unsigned int len,
-                                           unsigned long *user_mask_ptr);
-
-asmlinkage long sys32_sched_setaffinity(compat_pid_t pid, unsigned int len,
-                                      u32 *user_mask_ptr)
-{
-       unsigned long kernel_mask;
-       mm_segment_t old_fs;
-       int ret;
-
-       if (get_user(kernel_mask, user_mask_ptr))
-               return -EFAULT;
-
-       old_fs = get_fs();
-       set_fs(KERNEL_DS);
-       ret = sys_sched_setaffinity(pid,
-                                   /* XXX Nice api... */
-                                   sizeof(kernel_mask),
-                                   &kernel_mask);
-       set_fs(old_fs);
-
-       return ret;
-}
-
-extern asmlinkage long sys_sched_getaffinity(pid_t pid, unsigned int len,
-                                           unsigned long *user_mask_ptr);
-
-asmlinkage long sys32_sched_getaffinity(compat_pid_t pid, unsigned int len,
-                                      u32 *user_mask_ptr)
-{
-       unsigned long kernel_mask;
-       mm_segment_t old_fs;
-       int ret;
-
-       old_fs = get_fs();
-       set_fs(KERNEL_DS);
-       ret = sys_sched_getaffinity(pid,
-                                   /* XXX Nice api... */
-                                   sizeof(kernel_mask),
-                                   &kernel_mask);
-       set_fs(old_fs);
-
-       if (ret > 0) {
-               if (put_user(kernel_mask, user_mask_ptr))
-                       ret = -EFAULT;
-       }
-
-       return ret;
-}
-
 int sys32_olduname(struct oldold_utsname * name)
 {
        int error;
index 92dd1c31297f148d812eaccd04748b5eefc76a27..9122aa000ad51db4a3c4efc0d1a73fc51714b8bd 100644 (file)
@@ -2831,56 +2831,6 @@ asmlinkage long sys32_sysctl(struct __sysctl_args32 *args)
        return error;
 }
 
-extern asmlinkage long sys_sched_setaffinity(pid_t pid, unsigned int len,
-                                           unsigned long *user_mask_ptr);
-
-asmlinkage long sys32_sched_setaffinity(compat_pid_t pid, unsigned int len,
-                                      u32 *user_mask_ptr)
-{
-       unsigned long kernel_mask;
-       mm_segment_t old_fs;
-       int ret;
-
-       if (get_user(kernel_mask, user_mask_ptr))
-               return -EFAULT;
-
-       old_fs = get_fs();
-       set_fs(KERNEL_DS);
-       ret = sys_sched_setaffinity(pid,
-                                   /* XXX Nice api... */
-                                   sizeof(kernel_mask),
-                                   &kernel_mask);
-       set_fs(old_fs);
-
-       return ret;
-}
-
-extern asmlinkage long sys_sched_getaffinity(pid_t pid, unsigned int len,
-                                           unsigned long *user_mask_ptr);
-
-asmlinkage long sys32_sched_getaffinity(compat_pid_t pid, unsigned int len,
-                                      u32 *user_mask_ptr)
-{
-       unsigned long kernel_mask;
-       mm_segment_t old_fs;
-       int ret;
-
-       old_fs = get_fs();
-       set_fs(KERNEL_DS);
-       ret = sys_sched_getaffinity(pid,
-                                   /* XXX Nice api... */
-                                   sizeof(kernel_mask),
-                                   &kernel_mask);
-       set_fs(old_fs);
-
-       if (ret > 0) {
-               if (put_user(kernel_mask, user_mask_ptr))
-                       ret = -EFAULT;
-       }
-
-       return ret;
-}
-
 extern long sys_lookup_dcookie(u64 cookie64, char *buf, size_t len);
 
 long sys32_lookup_dcookie(u32 cookie_high, u32 cookie_low, char *buf, size_t len)
index bd29d83a7ba55d5f5bd829c7bbd7a8d89f7e8037..31efe79e77c94afca9940766494ceba476b76718 100644 (file)
@@ -51,7 +51,7 @@ sys_call_table32:
        .word sys32_setrlimit, sys_pivot_root, sys32_prctl, sys32_pciconfig_read, sys32_pciconfig_write
 /*150*/        .word sys_nis_syscall, sys_nis_syscall, sys_nis_syscall, sys_poll, sys_getdents64
        .word compat_sys_fcntl64, sys_ni_syscall, compat_sys_statfs, compat_sys_fstatfs, sys_oldumount
-/*160*/        .word sys32_sched_setaffinity, sys32_sched_getaffinity, sys_getdomainname, sys_setdomainname, sys_nis_syscall
+/*160*/        .word compat_sys_sched_setaffinity, compat_sys_sched_getaffinity, sys_getdomainname, sys_setdomainname, sys_nis_syscall
        .word sys_quotactl, sys_set_tid_address, sys32_mount, sys_ustat, sys_setxattr
 /*170*/        .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys32_getdents
        .word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr
index e1893246c9c4ea8f1076ba8f9e8a976eb1d89c9b..d70801da8afe2c9045e0bdddacba252e79f8ef27 100644 (file)
@@ -445,8 +445,8 @@ ia32_sys_call_table:
        .quad sys_tkill         /* 238 */ 
        .quad sys_sendfile64 
        .quad compat_sys_futex          /* 240 */
-        .quad sys32_sched_setaffinity
-        .quad sys32_sched_getaffinity
+        .quad compat_sys_sched_setaffinity
+        .quad compat_sys_sched_getaffinity
        .quad sys32_set_thread_area
        .quad sys32_get_thread_area
        .quad sys32_io_setup
index 3809473db6d48aac5b55f423fbaf7b208c2df97a..40a88a198c31770b84f64de732063ee7b0608b00 100644 (file)
@@ -2038,41 +2038,6 @@ long sys32_module_warning(void)
        return -ENOSYS ;
 } 
 
-long sys_sched_getaffinity(pid_t pid, unsigned int len, unsigned long *new_mask_ptr); 
-long sys_sched_setaffinity(pid_t pid, unsigned int len, unsigned long *new_mask_ptr); 
-
-/* only works on LE */
-long sys32_sched_setaffinity(pid_t pid, unsigned int len,
-                           unsigned int *new_mask_ptr)
-{
-       mm_segment_t oldfs = get_fs(); 
-       unsigned long mask; 
-       int err;
-       if (get_user(mask, new_mask_ptr)) 
-               return -EFAULT; 
-       set_fs(KERNEL_DS); 
-       err = sys_sched_setaffinity(pid,sizeof(mask),&mask);    
-       set_fs(oldfs); 
-       return err;
-}
-
-/* only works on LE */ 
-long sys32_sched_getaffinity(pid_t pid, unsigned int len,
-                           unsigned int *new_mask_ptr)
-{
-       mm_segment_t oldfs = get_fs(); 
-       unsigned long mask; 
-       int err;
-       mask = 0; 
-       set_fs(KERNEL_DS); 
-       err = sys_sched_getaffinity(pid,sizeof(mask),&mask);    
-       set_fs(oldfs); 
-       if (err > 0) 
-               err = put_user((u32)mask, new_mask_ptr); 
-       return err;
-}
-
-
 extern long sys_io_setup(unsigned nr_reqs, aio_context_t *ctx);
 
 long sys32_io_setup(unsigned nr_reqs, u32 *ctx32p)
index 7b04cf90c847508ccddadf6d97c0280527aa4506..13ab289c0fc5d88a9ea894ba6a18fb2331136f2c 100644 (file)
@@ -226,3 +226,54 @@ asmlinkage long compat_sys_futex(u32 *uaddr, int op, int val,
        }
        return do_futex((unsigned long)uaddr, op, val, timeout);
 }
+
+extern asmlinkage long sys_sched_setaffinity(pid_t pid, unsigned int len,
+                                           unsigned long *user_mask_ptr);
+
+asmlinkage long compat_sys_sched_setaffinity(compat_pid_t pid, 
+                                            unsigned int len,
+                                            compat_ulong_t *user_mask_ptr)
+{
+       unsigned long kernel_mask;
+       mm_segment_t old_fs;
+       int ret;
+
+       if (get_user(kernel_mask, user_mask_ptr))
+               return -EFAULT;
+
+       old_fs = get_fs();
+       set_fs(KERNEL_DS);
+       ret = sys_sched_setaffinity(pid,
+                                   sizeof(kernel_mask),
+                                   &kernel_mask);
+       set_fs(old_fs);
+
+       return ret;
+}
+
+extern asmlinkage long sys_sched_getaffinity(pid_t pid, unsigned int len,
+                                           unsigned long *user_mask_ptr);
+
+asmlinkage int compat_sys_sched_getaffinity(compat_pid_t pid, unsigned int len,
+                                           compat_ulong_t *user_mask_ptr)
+{
+       unsigned long kernel_mask;
+       mm_segment_t old_fs;
+       int ret;
+
+       old_fs = get_fs();
+       set_fs(KERNEL_DS);
+       ret = sys_sched_getaffinity(pid,
+                                   sizeof(kernel_mask),
+                                   &kernel_mask);
+       set_fs(old_fs);
+
+       if (ret > 0) {
+               if (put_user(kernel_mask, user_mask_ptr))
+                       ret = -EFAULT;
+               ret = sizeof(compat_ulong_t);
+       }
+
+       return ret;
+}
+