]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/mips/kernel/mips-mt-fpaff.c
Merge branch 'linux-2.6'
[linux-2.6-omap-h63xx.git] / arch / mips / kernel / mips-mt-fpaff.c
index ede5d73d652e3d47c280c035aa52ad18def60539..df4d3f2f740c54fa73b413e8b8c8d91601b95c74 100644 (file)
@@ -36,7 +36,7 @@ unsigned long mt_fpemul_threshold = 0;
  */
 static inline struct task_struct *find_process_by_pid(pid_t pid)
 {
-       return pid ? find_task_by_pid(pid) : current;
+       return pid ? find_task_by_vpid(pid) : current;
 }
 
 
@@ -50,6 +50,7 @@ asmlinkage long mipsmt_sys_sched_setaffinity(pid_t pid, unsigned int len,
        cpumask_t effective_mask;
        int retval;
        struct task_struct *p;
+       struct thread_info *ti;
 
        if (len < sizeof(new_mask))
                return -EINVAL;
@@ -57,13 +58,13 @@ asmlinkage long mipsmt_sys_sched_setaffinity(pid_t pid, unsigned int len,
        if (copy_from_user(&new_mask, user_mask_ptr, sizeof(new_mask)))
                return -EFAULT;
 
-       lock_cpu_hotplug();
+       get_online_cpus();
        read_lock(&tasklist_lock);
 
        p = find_process_by_pid(pid);
        if (!p) {
                read_unlock(&tasklist_lock);
-               unlock_cpu_hotplug();
+               put_online_cpus();
                return -ESRCH;
        }
 
@@ -93,19 +94,19 @@ asmlinkage long mipsmt_sys_sched_setaffinity(pid_t pid, unsigned int len,
        read_unlock(&tasklist_lock);
 
        /* Compute new global allowed CPU set if necessary */
-       if ((p->thread.mflags & MF_FPUBOUND)
-       && cpus_intersects(new_mask, mt_fpu_cpumask)) {
+       ti = task_thread_info(p);
+       if (test_ti_thread_flag(ti, TIF_FPUBOUND) &&
+           cpus_intersects(new_mask, mt_fpu_cpumask)) {
                cpus_and(effective_mask, new_mask, mt_fpu_cpumask);
                retval = set_cpus_allowed(p, effective_mask);
        } else {
-               p->thread.mflags &= ~MF_FPUBOUND;
+               clear_ti_thread_flag(ti, TIF_FPUBOUND);
                retval = set_cpus_allowed(p, new_mask);
        }
 
-
 out_unlock:
        put_task_struct(p);
-       unlock_cpu_hotplug();
+       put_online_cpus();
        return retval;
 }
 
@@ -124,7 +125,7 @@ asmlinkage long mipsmt_sys_sched_getaffinity(pid_t pid, unsigned int len,
        if (len < real_len)
                return -EINVAL;
 
-       lock_cpu_hotplug();
+       get_online_cpus();
        read_lock(&tasklist_lock);
 
        retval = -ESRCH;
@@ -139,7 +140,7 @@ asmlinkage long mipsmt_sys_sched_getaffinity(pid_t pid, unsigned int len,
 
 out_unlock:
        read_unlock(&tasklist_lock);
-       unlock_cpu_hotplug();
+       put_online_cpus();
        if (retval)
                return retval;
        if (copy_to_user(user_mask_ptr, &mask, real_len))