Re: [PATCH] mm: fix dma_poor_create

From: Ingo Molnar
Date: Wed Feb 20 2008 - 01:52:56 EST



* Yinghai Lu <Yinghai.Lu@xxxxxxx> wrote:

> dev_to_node could return node that without RAM. So check it before use
> it in kmalloc_node

> - retval = kmalloc_node(sizeof(*retval), GFP_KERNEL, dev_to_node(dev));
> + node = dev_to_node(dev);
> + if (node == -1 || !node_online(node))
> + node = numa_node_id();
> +
> + retval = kmalloc_node(sizeof(*retval), GFP_KERNEL, node);

so this is about not crashing during bootup on nodes that have CPUs but
which have no node-specific memory attached, right?

Shouldnt kmalloc_node() be made more robust instead? I.e. push the same
code into kmalloc_node() - and make sure it will allocate _something_?
That would probably also fix a similar bug in net/core/skbuff.c's
__netdev_alloc_skb(), which too passes a dev_to_node() result to an
allocator.

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/