lkml.org 
[lkml]   [2005]   [Jul]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Fix broken kmalloc_node in rc1/rc2
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 <christoph@lameter.com>
>
> 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 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/

\
 
 \ /
  Last update: 2005-07-09 08:27    [W:0.049 / U:1.600 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site