diff options
author | David Rientjes <rientjes@google.com> | 2012-11-14 04:15:19 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-11-15 20:13:48 -0500 |
commit | 5318609519800617323b5fdb17c1d4fe12c3d794 (patch) | |
tree | a02e56d063ea89db60f1d92e41df09cf738a2c60 /drivers/tty | |
parent | 18e0749aa825b8af12990521536f617d1405c37f (diff) |
mm, oom: ensure sysrq+f always passes valid zonelist
With hotpluggable and memoryless nodes, it's possible that node 0 will
not be online, so use the first online node's zonelist rather than
hardcoding node 0 to pass a zonelist with all zones to the oom killer.
Signed-off-by: David Rientjes <rientjes@google.com>
Reviewed-by: Michal Hocko <mhocko@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty')
-rw-r--r-- | drivers/tty/sysrq.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c index 16ee6cee07da..b3c4a250ff86 100644 --- a/drivers/tty/sysrq.c +++ b/drivers/tty/sysrq.c | |||
@@ -346,7 +346,8 @@ static struct sysrq_key_op sysrq_term_op = { | |||
346 | 346 | ||
347 | static void moom_callback(struct work_struct *ignored) | 347 | static void moom_callback(struct work_struct *ignored) |
348 | { | 348 | { |
349 | out_of_memory(node_zonelist(0, GFP_KERNEL), GFP_KERNEL, 0, NULL, true); | 349 | out_of_memory(node_zonelist(first_online_node, GFP_KERNEL), GFP_KERNEL, |
350 | 0, NULL, true); | ||
350 | } | 351 | } |
351 | 352 | ||
352 | static DECLARE_WORK(moom_work, moom_callback); | 353 | static DECLARE_WORK(moom_work, moom_callback); |