Messages in this thread | | | Subject | Re: [06/44] numa: fix slab_node(MPOL_BIND) | From | Lee Schermerhorn <> | Date | Tue, 07 Dec 2010 22:03:42 -0500 |
| |
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 <eric.dumazet@gmail.com> > > 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> > > --- > 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: > >
| |