sched: Constify function scope static struct sched_param usage
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Fri, 7 Jan 2011 12:41:40 +0000 (13:41 +0100)
committerIngo Molnar <mingo@elte.hu>
Fri, 7 Jan 2011 14:55:45 +0000 (15:55 +0100)
Function-scope statics are discouraged because they are
easily overlooked and can cause subtle bugs/races due to
their global (non-SMP safe) nature.

Linus noticed that we did this for sched_param - at minimum
make the const.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: Message-ID: <AANLkTinotRxScOHEb0HgFgSpGPkq_6jKTv5CfvnQM=ee@mail.gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/irq/manage.c
kernel/kthread.c
kernel/softirq.c
kernel/trace/trace_selftest.c

index 91a5fa25054e1d14d62339749f3229fae49f3766..0caa59f747dda2e97677c0d9a203715e98e90048 100644 (file)
@@ -577,7 +577,7 @@ irq_thread_check_affinity(struct irq_desc *desc, struct irqaction *action) { }
  */
 static int irq_thread(void *data)
 {
-       static struct sched_param param = {
+       static const struct sched_param param = {
                .sched_priority = MAX_USER_RT_PRIO/2,
        };
        struct irqaction *action = data;
index 5355cfd44a3fd21cd767c13d053410ec338f2ede..c55afba990a384ae0c17abd6f826878ad300a7cf 100644 (file)
@@ -148,7 +148,7 @@ struct task_struct *kthread_create(int (*threadfn)(void *data),
        wait_for_completion(&create.done);
 
        if (!IS_ERR(create.result)) {
-               static struct sched_param param = { .sched_priority = 0 };
+               static const struct sched_param param = { .sched_priority = 0 };
                va_list args;
 
                va_start(args, namefmt);
index d4d918a91881407acd8abbde6691f77197cd013c..c10150cb456bc0316d81e3acd5ccdebb772df394 100644 (file)
@@ -853,7 +853,7 @@ static int __cpuinit cpu_callback(struct notifier_block *nfb,
                             cpumask_any(cpu_online_mask));
        case CPU_DEAD:
        case CPU_DEAD_FROZEN: {
-               static struct sched_param param = {
+               static const struct sched_param param = {
                        .sched_priority = MAX_RT_PRIO-1
                };
 
index 562c56e048fdbc34b18dded38cd21ccb3cd87f08..659732eba07cf4bd6bdd35e1cec416de042c4cae 100644 (file)
@@ -558,7 +558,7 @@ trace_selftest_startup_nop(struct tracer *trace, struct trace_array *tr)
 static int trace_wakeup_test_thread(void *data)
 {
        /* Make this a RT thread, doesn't need to be too high */
-       static struct sched_param param = { .sched_priority = 5 };
+       static const struct sched_param param = { .sched_priority = 5 };
        struct completion *x = data;
 
        sched_setscheduler(current, SCHED_FIFO, &param);