Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753609Ab0LHDDZ (ORCPT ); Tue, 7 Dec 2010 22:03:25 -0500 Received: from g5t0008.atlanta.hp.com ([15.192.0.45]:31171 "EHLO g5t0008.atlanta.hp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752943Ab0LHDDX (ORCPT ); Tue, 7 Dec 2010 22:03:23 -0500 Subject: Re: [06/44] numa: fix slab_node(MPOL_BIND) From: Lee Schermerhorn To: Greg KH Cc: linux-kernel@vger.kernel.org, stable@kernel.org, stable-review@kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk, Eric Dumazet , Mel Gorman , Christoph Lameter In-Reply-To: <20101208000640.115606851@clark.site> References: <20101208000640.115606851@clark.site> Content-Type: text/plain; charset="UTF-8" Organization: HP/LKTT Date: Tue, 07 Dec 2010 22:03:42 -0500 Message-ID: <1291777422.26147.70.camel@zaphod> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1937 Lines: 60 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 > > 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 > Cc: Mel Gorman > Cc: Christoph Lameter > Cc: Lee Schermerhorn > Cc: Andrew Morton > Signed-off-by: Linus Torvalds > Signed-off-by: Greg Kroah-Hartman > > --- > 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: > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/