Paul E. McKenney de078d875c rcu: Need to update rnp->gpnum if preemptable RCU is to be reliable
Without this patch, tasks preempted in RCU read-side critical
sections can fail to block the grace period, given that
rnp->gpnum is used to determine which rnp->blocked_tasks[]
element the preempted task is enqueued on.

Before the patch, rnp->gpnum is always zero, so preempted tasks
are always enqueued on rnp->blocked_tasks[0], which is correct
only when the current CPU has not checked into the current
grace period and the grace-period number is even, or,
similarly, if the current CPU -has- checked into the current
grace period and the grace-period number is odd.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: laijs@cn.fujitsu.com
Cc: dipankar@in.ibm.com
Cc: akpm@linux-foundation.org
Cc: mathieu.desnoyers@polymtl.ca
Cc: josht@linux.vnet.ibm.com
Cc: dvhltc@us.ibm.com
Cc: niv@us.ibm.com
Cc: peterz@infradead.org
LKML-Reference: <12524504771622-git-send-email->
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-09-18 00:04:54 +02:00
..
2009-08-20 10:29:28 +10:00
2009-09-14 20:26:59 +02:00
2009-06-24 00:02:38 -04:00
2009-06-24 00:02:38 -04:00
2009-06-16 19:47:48 -07:00
2009-08-28 23:41:29 -07:00
2009-05-15 07:56:24 -05:00
2009-07-24 10:53:29 +02:00
2009-01-14 18:09:02 +01:00
2009-06-18 13:03:56 -07:00
2009-07-24 15:30:45 -04:00
2009-06-18 13:03:55 -07:00
2009-09-14 17:41:42 -07:00
2009-07-14 00:30:40 +10:00
2009-09-02 08:44:08 +02:00
2009-08-01 11:18:56 -07:00
2009-08-26 17:24:28 -07:00
2009-06-16 19:47:48 -07:00
2009-07-12 14:03:27 -07:00
2009-06-15 21:30:23 -07:00
2009-06-18 13:03:55 -07:00