On Wed, Jul 06 2005, Christoph Lameter wrote: > This patch used to be in Andrew's tree before the NUMA slab allocator went > in. Either this patch or the NUMA slab allocator is needed in order for > kmalloc_node to work correctly. > > pcibus_to_node may be used to generate the node information passed to > kmalloc_node. pcibus_to_node returns -1 if it was not able to determine > on which node a pcibus is located. For that case kmalloc_node must > work like kmalloc. > > Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]> > > Index: linux-2.6.13-rc2/mm/slab.c > =================================================================== > --- linux-2.6.13-rc2.orig/mm/slab.c 2005-07-06 03:46:33.000000000 +0000 > +++ linux-2.6.13-rc2/mm/slab.c 2005-07-06 17:34:19.000000000 +0000 > @@ -2372,6 +2372,9 @@ void *kmem_cache_alloc_node(kmem_cache_t > struct slab *slabp; > kmem_bufctl_t next; > > + if (nodeid == -1) > + return kmem_cache_alloc(cachep, flags); > + > for (loop = 0;;loop++) { > struct list_head *q;
imho, things like this are much cleaner coded as: void *kmem_cache_alloc_node(cachep, flags, node) { if (node != -1) return __kmem_cache_alloc_node(cachep, flags, node); /* no valid node, fall back to regular slab alloc */ return kmem_cache_alloc(cachep, flags); } -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/