Skip to contentSkip to conversation

srcu-3: improved comment and code-style improvements from Joe Perches

PATCH New Paul E. McKenney 1 participant 1 message Jul 7, 2006

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 srcu-3: improved comment and code-style improvements from Joe Perches

An improved comment for synchronize_srcu() and fixes for code-style bugs pointed out by off-list by Joe Perches.

---

 srcu.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)
kernel/srcu.c +7 -7
diff -urpNa -X dontdiff linux-2.6.17-srcu-LKML-3/kernel/srcu.c linux-2.6.17-srcu-LKML-4/kernel/srcu.c
@@ -62,7 +62,7 @@ static int srcu_readers_active_idx(struc
 	sum = 0;
 	for_each_possible_cpu(cpu)
 		sum += per_cpu_ptr(sp->per_cpu_ref, cpu)->c[idx];
-	return (sum);
+	return sum;
 }
 
 /**
@@ -144,11 +144,15 @@ void srcu_read_unlock(struct srcu_struct
  * As with classic RCU, the updater must use some separate means of
  * synchronizing concurrent updates.  Can block; must be called from
  * process context.
+ *
+ * Note that it is illegal to call synchornize_srcu() from the corresponding
+ * SRCU read-side critical section; doing so will result in deadlock.
+ * However, it is perfectly legal to call synchronize_srcu() on one
+ * srcu_struct from some other srcu_struct's read-side critical section.
  */
 void synchronize_srcu(struct srcu_struct *sp)
 {
 	int idx;
-	int sum;
 
 	idx = sp->completed;
 	mutex_lock(&sp->mutex);
@@ -195,12 +199,8 @@ void synchronize_srcu(struct srcu_struct
 	 * will have finished executing.
 	 */
 
-	for (;;) {
-		sum = srcu_readers_active_idx(sp, idx);
-		if (sum == 0)
-			break;
+	while (srcu_readers_active_idx(sp, idx))
 		schedule_timeout_interruptible(1);
-	}
 
 	synchronize_sched();  /* Force memory barrier on all CPUs. */