]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
numa: fix slab_node(MPOL_BIND)
authorEric Dumazet <eric.dumazet@gmail.com>
Wed, 27 Oct 2010 17:33:43 +0000 (19:33 +0200)
committerAndi Kleen <ak@linux.intel.com>
Tue, 14 Dec 2010 22:40:06 +0000 (23:40 +0100)
commit 800416f799e0723635ac2d720ad4449917a1481c upstream.

When a node contains only HighMem memory, slab_node(MPOL_BIND)
dereferences a NULL pointer.

[ This code seems to go back all the way to commit 19770b32609b: "mm:
  filter based on a nodemask as well as a gfp_mask".  Which was back in
  April 2008, and it got merged into 2.6.26.  - Linus ]

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: Christoph Lameter <cl@linux.com>
Cc: Lee Schermerhorn <lee.schermerhorn@hp.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
mm/mempolicy.c

index 5bc0a96beb51b550b69389998fc3e09053ee5a2f..407cda2d753f9948f55204a5200f489d832a18b6 100644 (file)
@@ -1576,7 +1576,7 @@ unsigned slab_node(struct mempolicy *policy)
                (void)first_zones_zonelist(zonelist, highest_zoneidx,
                                                        &policy->v.nodes,
                                                        &zone);
-               return zone->node;
+               return zone ? zone->node : numa_node_id();
        }
 
        default: