From: Shan Wei davidshan@tencent.com
this_cpu_add is an atomic operation. and be more faster than per_cpu_ptr operation.
Signed-off-by: Shan Wei davidshan@tencent.com Reviewed-by: Christoph Lameter cl@linux.com --- v4: no changes vs v3. --- net/batman-adv/main.h | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h index 897ba6a..3aef5b2 100644 --- a/net/batman-adv/main.h +++ b/net/batman-adv/main.h @@ -263,9 +263,7 @@ static inline bool batadv_has_timed_out(unsigned long timestamp, static inline void batadv_add_counter(struct batadv_priv *bat_priv, size_t idx, size_t count) { - int cpu = get_cpu(); - per_cpu_ptr(bat_priv->bat_counters, cpu)[idx] += count; - put_cpu(); + this_cpu_add(bat_priv->bat_counters[idx], count); }
#define batadv_inc_counter(b, i) batadv_add_counter(b, i, 1)