lkml.org 
[lkml]   [2014]   [Jul]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC Patch V1 04/30] mm, netfilter: Use cpu_to_mem()/numa_mem_id() to support memoryless node
    Date
    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/netfilter/x_tables.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c
    index 227aa11e8409..6e7d4bc81422 100644
    --- a/net/netfilter/x_tables.c
    +++ b/net/netfilter/x_tables.c
    @@ -692,10 +692,10 @@ struct xt_table_info *xt_alloc_table_info(unsigned int size)
    if (size <= PAGE_SIZE)
    newinfo->entries[cpu] = kmalloc_node(size,
    GFP_KERNEL,
    - cpu_to_node(cpu));
    + cpu_to_mem(cpu));
    else
    newinfo->entries[cpu] = vmalloc_node(size,
    - cpu_to_node(cpu));
    + cpu_to_mem(cpu));

    if (newinfo->entries[cpu] == NULL) {
    xt_free_table_info(newinfo);
    @@ -801,10 +801,10 @@ static int xt_jumpstack_alloc(struct xt_table_info *i)
    for_each_possible_cpu(cpu) {
    if (size > PAGE_SIZE)
    i->jumpstack[cpu] = vmalloc_node(size,
    - cpu_to_node(cpu));
    + cpu_to_mem(cpu));
    else
    i->jumpstack[cpu] = kmalloc_node(size,
    - GFP_KERNEL, cpu_to_node(cpu));
    + GFP_KERNEL, cpu_to_mem(cpu));
    if (i->jumpstack[cpu] == NULL)
    /*
    * Freeing will be done later on by the callers. The
    --
    1.7.10.4


    \
     
     \ /
      Last update: 2014-07-11 10:21    [W:2.707 / U:0.188 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site