On Tue, 2010-12-07 at 16:04 -0800, Greg KH wrote: > 2.6.27-stable review patch. If anyone has any objections, please let us know. > > ------------------ > > From: Eric Dumazet <[email protected]> > > 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 <[email protected]> > Cc: Mel Gorman <[email protected]> > Cc: Christoph Lameter <[email protected]> > Cc: Lee Schermerhorn <[email protected]> > Cc: Andrew Morton <[email protected]> > Signed-off-by: Linus Torvalds <[email protected]> > Signed-off-by: Greg Kroah-Hartman <[email protected]> > > --- > mm/mempolicy.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- a/mm/mempolicy.c > +++ b/mm/mempolicy.c > @@ -1404,7 +1404,7 @@ unsigned slab_node(struct mempolicy *pol > (void)first_zones_zonelist(zonelist, highest_zoneidx, > &policy->v.nodes, > &zone); > - return zone->node; > + return zone ? zone->node : numa_node_id();
I think this should be numa_mem_id(). Given the documented purpose of slab_node(), we want a node from which page allocation is likely to succeed. numa_node_id() can return a memoryless node for, e.g., some configurations of some HP ia64 platforms. numa_mem_id() was introduced to return that same node from which "local" mempolicy would allocate pages. Lee > } > > default: > > _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
