From: Lai Jiangshan Date: Thu, 15 Sep 2011 15:01:38 +0000 (-0400) Subject: init maxcpus before use X-Git-Tag: v0.6.5~20 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=f377678692caa9f589275eae4f2774104f26a8c6;p=userspace-rcu.git init maxcpus before use [ Edit: Covers the per-cpu call_rcu data setup (not all_cpus helper, which is why we did not trigger it in our tests. ] Signed-off-by: Lai Jiangshan Signed-off-by: Mathieu Desnoyers --- diff --git a/urcu-call-rcu-impl.h b/urcu-call-rcu-impl.h index 700d128..e0a8fd8 100644 --- a/urcu-call-rcu-impl.h +++ b/urcu-call-rcu-impl.h @@ -386,6 +386,7 @@ int set_cpu_call_rcu_data(int cpu, struct call_rcu_data *crdp) static int warned = 0; call_rcu_lock(&call_rcu_mutex); + alloc_cpu_call_rcu_data(); if (cpu < 0 || maxcpus <= cpu) { if (!warned) { fprintf(stderr, "[error] liburcu: set CPU # out of range\n"); @@ -395,7 +396,6 @@ int set_cpu_call_rcu_data(int cpu, struct call_rcu_data *crdp) errno = EINVAL; return -EINVAL; } - alloc_cpu_call_rcu_data(); call_rcu_unlock(&call_rcu_mutex); if (per_cpu_call_rcu_data == NULL) { errno = ENOMEM;