From: Paul E. McKenney Date: Thu, 14 Aug 2014 23:01:53 +0000 (-0700) Subject: rcu: Remove local_irq_disable() in rcu_preempt_note_context_switch() X-Git-Tag: fixes-against-v3.18-rc2~103^2~1^2~15^2~2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d082fd061884a587c490c4fc8a2056ce1e47624;p=pandora-kernel.git rcu: Remove local_irq_disable() in rcu_preempt_note_context_switch() The rcu_preempt_note_context_switch() function is on a scheduling fast path, so it would be good to avoid disabling irqs. The reason that irqs are disabled is to synchronize process-level and irq-handler access to the task_struct ->rcu_read_unlock_special bitmask. This commit therefore makes ->rcu_read_unlock_special instead be a union of bools with a short allowing single-access checks in RCU's __rcu_read_unlock(). This results in the process-level and irq-handler accesses being simple loads and stores, so that irqs need no longer be disabled. This commit therefore removes the irq disabling from rcu_preempt_note_context_switch(). Reported-by: Peter Zijlstra Signed-off-by: Paul E. McKenney --- Reading git-diff-tree failed