diff options
Diffstat (limited to 'kernel/sched_debug.c')
-rw-r--r-- | kernel/sched_debug.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/sched_debug.c b/kernel/sched_debug.c index e6fb392e5164..415e5c385542 100644 --- a/kernel/sched_debug.c +++ b/kernel/sched_debug.c | |||
@@ -80,6 +80,7 @@ print_task(struct seq_file *m, struct rq *rq, struct task_struct *p) | |||
80 | static void print_rq(struct seq_file *m, struct rq *rq, int rq_cpu) | 80 | static void print_rq(struct seq_file *m, struct rq *rq, int rq_cpu) |
81 | { | 81 | { |
82 | struct task_struct *g, *p; | 82 | struct task_struct *g, *p; |
83 | unsigned long flags; | ||
83 | 84 | ||
84 | SEQ_printf(m, | 85 | SEQ_printf(m, |
85 | "\nrunnable tasks:\n" | 86 | "\nrunnable tasks:\n" |
@@ -88,7 +89,7 @@ static void print_rq(struct seq_file *m, struct rq *rq, int rq_cpu) | |||
88 | "------------------------------------------------------" | 89 | "------------------------------------------------------" |
89 | "----------------------------------------------------\n"); | 90 | "----------------------------------------------------\n"); |
90 | 91 | ||
91 | read_lock_irq(&tasklist_lock); | 92 | read_lock_irqsave(&tasklist_lock, flags); |
92 | 93 | ||
93 | do_each_thread(g, p) { | 94 | do_each_thread(g, p) { |
94 | if (!p->se.on_rq || task_cpu(p) != rq_cpu) | 95 | if (!p->se.on_rq || task_cpu(p) != rq_cpu) |
@@ -97,7 +98,7 @@ static void print_rq(struct seq_file *m, struct rq *rq, int rq_cpu) | |||
97 | print_task(m, rq, p); | 98 | print_task(m, rq, p); |
98 | } while_each_thread(g, p); | 99 | } while_each_thread(g, p); |
99 | 100 | ||
100 | read_unlock_irq(&tasklist_lock); | 101 | read_unlock_irqrestore(&tasklist_lock, flags); |
101 | } | 102 | } |
102 | 103 | ||
103 | void print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq) | 104 | void print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq) |