Pass nice as a value to proc_sched_autogroup_set_nice()
Subsystems (2)
PATCH 1/1 Pass nice as a value to proc_sched_autogroup_set_nice()
From: Hiroshi Shimamoto <[email protected]>
No side effect is expected, and the variable err will be overwritten with return value.
Signed-off-by Hiroshi Shimamoto <[email protected]>
--- fs/proc/base.c | 3 +-- include/linux/sched.h | 2 +- kernel/sched/auto_group.c | 12 ++++++------ 3 files changed, 8 insertions(+), 9 deletions(-)
fs/proc/base.c +1 -2
@@ -1310,8 +1310,7 @@ sched_autogroup_write(struct file *file, const char __user *buf,if (!p)return -ESRCH ; - err = nice; - err =proc_sched_autogroup_set_nice (p, &err); + err =proc_sched_autogroup_set_nice (p, nice);if (err) count = err;
include/linux/sched.h +1 -1
@@ -2064,7 +2064,7 @@ extern void sched_autogroup_fork(struct signal_struct *sig);extern void sched_autogroup_exit (struct signal_struct *sig);#ifdef CONFIG_PROC_FS extern void proc_sched_autogroup_show_task (struct task_struct *p,struct seq_file *m); -extern int proc_sched_autogroup_set_nice (struct task_struct *p,int *nice); +extern int proc_sched_autogroup_set_nice (struct task_struct *p,int nice);#endif #else static inline void sched_autogroup_create_attach (struct task_struct *p) { }
kernel/sched/auto_group.c +6 -6
@@ -195,20 +195,20 @@ __setup("noautogroup", setup_autogroup);#ifdef CONFIG_PROC_FS -int proc_sched_autogroup_set_nice (struct task_struct *p,int *nice) +int proc_sched_autogroup_set_nice (struct task_struct *p,int nice) {static unsigned long next =INITIAL_JIFFIES ;struct autogroup *ag;int err; -if (*nice <-20 || *nice >19 ) +if (nice <-20 || nice >19 )return -EINVAL ; - err =security_task_setnice (current, *nice); + err =security_task_setnice (current, nice);if (err)return err; -if (*nice <0 && !can_nice (current, *nice)) +if (nice <0 && !can_nice (current, nice))return -EPERM ;/* this is a heavy operation taking global locks.. */
@@ -219,9 +219,9 @@ int proc_sched_autogroup_set_nice(struct task_struct *p, int *nice) ag =autogroup_task_get (p);down_write (&ag->lock); - err =sched_group_set_shares (ag->tg, prio_to_weight[*nice +20 ]); + err =sched_group_set_shares (ag->tg, prio_to_weight[nice +20 ]);if (!err) - ag->nice = *nice; + ag->nice = nice;up_write (&ag->lock);autogroup_kref_put (ag);
Signature · 1 line
1.7.7.6
[tip:sched/core] sched: Clean up parameter passing of proc_sched_autogroup_set_nice()
Commit-ID: 2e5b5b3a1b7768c89fbfeca18e75f8ee377e924c Gitweb: http://git.kernel.org/tip/2e5b5b3a1b7768c89fbfeca18e75f8ee377e924c Author: Hiroshi Shimamoto <[email protected]> AuthorDate: Thu, 23 Feb 2012 17:41:27 +0900 Committer: Ingo Molnar <[email protected]> CommitDate: Fri, 2 Mar 2012 12:23:49 +0100
sched: Clean up parameter passing of proc_sched_autogroup_set_nice()
Pass nice as a value to proc_sched_autogroup_set_nice().
No side effect is expected, and the variable err will be overwritten with the return value.
Signed-off-by Hiroshi Shimamoto <[email protected]>
Signed-off-by Peter Zijlstra <[email protected]>
Signed-off-by Ingo Molnar <[email protected]>
--- fs/proc/base.c | 3 +-- include/linux/sched.h | 2 +- kernel/sched/auto_group.c | 12 ++++++------ 3 files changed, 8 insertions(+), 9 deletions(-)
fs/proc/base.c +1 -2
@@ -1310,8 +1310,7 @@ sched_autogroup_write(struct file *file, const char __user *buf,if (!p)return -ESRCH ; - err = nice; - err =proc_sched_autogroup_set_nice (p, &err); + err =proc_sched_autogroup_set_nice (p, nice);if (err) count = err;
include/linux/sched.h +1 -1
@@ -2065,7 +2065,7 @@ extern void sched_autogroup_fork(struct signal_struct *sig);extern void sched_autogroup_exit (struct signal_struct *sig);#ifdef CONFIG_PROC_FS extern void proc_sched_autogroup_show_task (struct task_struct *p,struct seq_file *m); -extern int proc_sched_autogroup_set_nice (struct task_struct *p,int *nice); +extern int proc_sched_autogroup_set_nice (struct task_struct *p,int nice);#endif #else static inline void sched_autogroup_create_attach (struct task_struct *p) { }
kernel/sched/auto_group.c +6 -6
@@ -195,20 +195,20 @@ __setup("noautogroup", setup_autogroup);#ifdef CONFIG_PROC_FS -int proc_sched_autogroup_set_nice (struct task_struct *p,int *nice) +int proc_sched_autogroup_set_nice (struct task_struct *p,int nice) {static unsigned long next =INITIAL_JIFFIES ;struct autogroup *ag;int err; -if (*nice <-20 || *nice >19 ) +if (nice <-20 || nice >19 )return -EINVAL ; - err =security_task_setnice (current, *nice); + err =security_task_setnice (current, nice);if (err)return err; -if (*nice <0 && !can_nice (current, *nice)) +if (nice <0 && !can_nice (current, nice))return -EPERM ;/* this is a heavy operation taking global locks.. */
@@ -219,9 +219,9 @@ int proc_sched_autogroup_set_nice(struct task_struct *p, int *nice) ag =autogroup_task_get (p);down_write (&ag->lock); - err =sched_group_set_shares (ag->tg, prio_to_weight[*nice +20 ]); + err =sched_group_set_shares (ag->tg, prio_to_weight[nice +20 ]);if (!err) - ag->nice = *nice; + ag->nice = nice;up_write (&ag->lock);autogroup_kref_put (ag);