aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2007-04-25 23:50:03 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-04-27 13:46:51 -0400
commit39bc89fd4019b164002adaacef92c4140e37955a (patch)
tree34ff87b8d8c2984af2015dd8c01177df88815214
parent20f09390b2da2432309afe8aaa0bd64ec64c4584 (diff)
make SysRq-T show all tasks again
show_state() (SysRq-T) developed the buggy habbit of not showing TASK_RUNNING tasks. This was due to the mistaken belief that state_filter == -1 would be a pass-through filter - while in reality it did not let TASK_RUNNING == 0 p->state values through. Fix this by restoring the original '!state_filter means all tasks' special-case i had in the original version. Test-built and test-booted on i686, SysRq-T now works as intended. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--include/linux/sched.h4
-rw-r--r--kernel/sched.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 49fe2997a016..a1707583de49 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -196,13 +196,13 @@ extern void init_idle(struct task_struct *idle, int cpu);
196extern cpumask_t nohz_cpu_mask; 196extern cpumask_t nohz_cpu_mask;
197 197
198/* 198/*
199 * Only dump TASK_* tasks. (-1 for all tasks) 199 * Only dump TASK_* tasks. (0 for all tasks)
200 */ 200 */
201extern void show_state_filter(unsigned long state_filter); 201extern void show_state_filter(unsigned long state_filter);
202 202
203static inline void show_state(void) 203static inline void show_state(void)
204{ 204{
205 show_state_filter(-1); 205 show_state_filter(0);
206} 206}
207 207
208extern void show_regs(struct pt_regs *); 208extern void show_regs(struct pt_regs *);
diff --git a/kernel/sched.c b/kernel/sched.c
index b9a683730148..960d7c5fca39 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -4746,7 +4746,7 @@ void show_state_filter(unsigned long state_filter)
4746 * console might take alot of time: 4746 * console might take alot of time:
4747 */ 4747 */
4748 touch_nmi_watchdog(); 4748 touch_nmi_watchdog();
4749 if (p->state & state_filter) 4749 if (!state_filter || (p->state & state_filter))
4750 show_task(p); 4750 show_task(p);
4751 } while_each_thread(g, p); 4751 } while_each_thread(g, p);
4752 4752