From: Lai Jiangshan Date: Thu, 29 Nov 2012 08:46:02 +0000 (+0800) Subject: srcu: Simplify __srcu_read_unlock() via this_cpu_dec() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=5a41344a3d83ef2c08e40bfce1efa5795def9b82;p=GitHub%2FLineageOS%2Fandroid_kernel_samsung_universal7580.git srcu: Simplify __srcu_read_unlock() via this_cpu_dec() This commit replaces disabling of preemption and decrement of a per-CPU variable with this_cpu_dec(), which avoids preemption disabling on x86 and shortens the code on all platforms. Signed-off-by: Lai Jiangshan Signed-off-by: Paul E. McKenney --- diff --git a/kernel/srcu.c b/kernel/srcu.c index 2b859828cdc..c9d003bc6c4 100644 --- a/kernel/srcu.c +++ b/kernel/srcu.c @@ -321,10 +321,8 @@ EXPORT_SYMBOL_GPL(__srcu_read_lock); */ void __srcu_read_unlock(struct srcu_struct *sp, int idx) { - preempt_disable(); smp_mb(); /* C */ /* Avoid leaking the critical section. */ - ACCESS_ONCE(this_cpu_ptr(sp->per_cpu_ref)->c[idx]) -= 1; - preempt_enable(); + this_cpu_dec(sp->per_cpu_ref->c[idx]); } EXPORT_SYMBOL_GPL(__srcu_read_unlock);