summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2006-12-06 20:33:24 -0800
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-07 08:39:25 -0800
commit5bcd234d881d83ac0259c6d42d98f134e31c60a8 (patch)
tree40d58218ce224200336c449ba035bcb6ec119d89 /fs
parent1b1cec4bbc59feac89670d5d6d222a02545bac94 (diff)
downloadop-kernel-dev-5bcd234d881d83ac0259c6d42d98f134e31c60a8.zip
op-kernel-dev-5bcd234d881d83ac0259c6d42d98f134e31c60a8.tar.gz
[PATCH] slab: fix two issues in kmalloc_node / __cache_alloc_node
This addresses two issues: 1. Kmalloc_node() may intermittently return NULL if we are allocating from the current node and are unable to obtain memory for the current node from the page allocator. This is because we call ___cache_alloc() if nodeid == numa_node_id() and ____cache_alloc is not able to fallback to other nodes. This was introduced in the 2.6.19 development cycle. <= 2.6.18 in that case does not do a restricted allocation and blindly trusts the page allocator to have given us memory from the indicated node. It inserts the page regardless of the node it came from into the queues for the current node. 2. If kmalloc_node() is used on a node that has not been bootstrapped yet then we may try to pass an invalid node number to ____cache_alloc_node() triggering a BUG(). Change the function to call fallback_alloc() instead. Only call fallback_alloc() if we are allowed to fallback at all. The need to handle a node not bootstrapped yet also first surfaced in the 2.6.19 cycle. Update the comments since they were still describing the old kmalloc_node from 2.6.12. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud