sched/numa: Fix NULL pointer dereference in task_numa_migrate()
authorRik van Riel <riel@redhat.com>
Tue, 12 Nov 2013 00:29:25 +0000 (19:29 -0500)
committerIngo Molnar <mingo@kernel.org>
Wed, 13 Nov 2013 12:33:51 +0000 (13:33 +0100)
commit46a73e8a1c1720f7713b5e2df68e9dd272015b5d
treea119f949799e3cd7382548eac2b41fa060c29ac5
parent106dd5afde3cd10db7e1370b6ddc77f0b2496a75
sched/numa: Fix NULL pointer dereference in task_numa_migrate()

The cpusets code can split up the scheduler's domain tree into
smaller domains.  Some of those smaller domains may not cross
NUMA nodes at all, leading to a NULL pointer dereference on the
per-cpu sd_numa pointer.

Tasks cannot be migrated out of their domain, so the patch
also sets p->numa_preferred_nid to whereever they are, to
prevent the migration from being retried over and over again.

Reported-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Cc: Mel Gorman <mgorman@suse.de>
Link: http://lkml.kernel.org/n/tip-oosqomw0Jput0Jkvoowhrqtu@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/sched/fair.c