Re: Fix broken kmalloc_node in rc1/rc2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux