Messages in this thread | | | Date | Wed, 20 Feb 2008 07:52:30 +0100 | From | Ingo Molnar <> | Subject | Re: [PATCH] mm: fix dma_poor_create |
| |
* Yinghai Lu <Yinghai.Lu@Sun.COM> 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
| |