Message ID | 1405064267-11678-11-git-send-email-jiang.liu@linux.intel.com |
---|---|
State | RFC, archived |
Delegated to: | David Miller |
Headers | show |
diff --git a/net/xfrm/xfrm_ipcomp.c b/net/xfrm/xfrm_ipcomp.c index ccfdc7115a83..129f469ae75d 100644 --- a/net/xfrm/xfrm_ipcomp.c +++ b/net/xfrm/xfrm_ipcomp.c @@ -235,7 +235,7 @@ static void * __percpu *ipcomp_alloc_scratches(void) for_each_possible_cpu(i) { void *scratch; - scratch = vmalloc_node(IPCOMP_SCRATCH_SIZE, cpu_to_node(i)); + scratch = vmalloc_node(IPCOMP_SCRATCH_SIZE, cpu_to_mem(i)); if (!scratch) return NULL; *per_cpu_ptr(scratches, i) = scratch;
When CONFIG_HAVE_MEMORYLESS_NODES is enabled, cpu_to_node()/numa_node_id() may return a node without memory, and later cause system failure/panic when calling kmalloc_node() and friends with returned node id. So use cpu_to_mem()/numa_mem_id() instead to get the nearest node with memory for the/current cpu. If CONFIG_HAVE_MEMORYLESS_NODES is disabled, cpu_to_mem()/numa_mem_id() is the same as cpu_to_node()/numa_node_id(). Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> --- net/xfrm/xfrm_ipcomp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)