xfrm: use vmalloc_node() for percpu scratches
authorEric Dumazet <edumazet@google.com>
Fri, 18 Oct 2013 10:54:16 +0000 (03:54 -0700)
committerSteffen Klassert <steffen.klassert@secunet.com>
Mon, 21 Oct 2013 07:38:24 +0000 (09:38 +0200)
scratches are per cpu, we can use vmalloc_node() for proper
NUMA affinity.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_ipcomp.c

index 2906d520eea7c2b7636fc94f3a60f5131701f57d..b943c7fc5ed2d9289846cca35f01822a5d88c772 100644 (file)
@@ -220,8 +220,8 @@ static void ipcomp_free_scratches(void)
 
 static void * __percpu *ipcomp_alloc_scratches(void)
 {
-       int i;
        void * __percpu *scratches;
+       int i;
 
        if (ipcomp_scratch_users++)
                return ipcomp_scratches;
@@ -233,7 +233,9 @@ static void * __percpu *ipcomp_alloc_scratches(void)
        ipcomp_scratches = scratches;
 
        for_each_possible_cpu(i) {
-               void *scratch = vmalloc(IPCOMP_SCRATCH_SIZE);
+               void *scratch;
+
+               scratch = vmalloc_node(IPCOMP_SCRATCH_SIZE, cpu_to_node(i));
                if (!scratch)
                        return NULL;
                *per_cpu_ptr(scratches, i) = scratch;