diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
index e045021..6e2f0a8 100644
--- a/kernel/rcutorture.c
+++ b/kernel/rcutorture.c
@@ -117,6 +117,7 @@
 static atomic_t n_rcu_torture_free;
 static atomic_t n_rcu_torture_mberror;
 static atomic_t n_rcu_torture_error;
+static struct list_head rcu_torture_removed;
 
 /*
  * Allocate an element from the rcu_tortures pool.
@@ -270,6 +271,32 @@
 	.name = "rcu"
 };
 
+static void rcu_sync_torture_deferred_free(struct rcu_torture *p)
+{
+	int i;
+	struct rcu_torture *rp;
+	struct rcu_torture *rp1;
+
+	cur_ops->sync();
+	list_add(&p->rtort_free, &rcu_torture_removed);
+	list_for_each_entry_safe(rp, rp1, &rcu_torture_removed, rtort_free) {
+		i = rp->rtort_pipe_count;
+		if (i > RCU_TORTURE_PIPE_LEN)
+			i = RCU_TORTURE_PIPE_LEN;
+		atomic_inc(&rcu_torture_wcount[i]);
+		if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) {
+			rp->rtort_mbtest = 0;
+			list_del(&rp->rtort_free);
+			rcu_torture_free(rp);
+		}
+	}
+}
+
+static void rcu_sync_torture_init(void)
+{
+	INIT_LIST_HEAD(&rcu_torture_removed);
+}
+
 /*
  * Definitions for rcu_bh torture testing.
  */
@@ -335,12 +362,11 @@
  */
 
 static struct srcu_struct srcu_ctl;
-static struct list_head srcu_removed;
 
 static void srcu_torture_init(void)
 {
 	init_srcu_struct(&srcu_ctl);
-	INIT_LIST_HEAD(&srcu_removed);
+	rcu_sync_torture_init();
 }
 
 static void srcu_torture_cleanup(void)
@@ -377,27 +403,6 @@
 	return srcu_batches_completed(&srcu_ctl);
 }
 
-static void srcu_torture_deferred_free(struct rcu_torture *p)
-{
-	int i;
-	struct rcu_torture *rp;
-	struct rcu_torture *rp1;
-
-	synchronize_srcu(&srcu_ctl);
-	list_add(&p->rtort_free, &srcu_removed);
-	list_for_each_entry_safe(rp, rp1, &srcu_removed, rtort_free) {
-		i = rp->rtort_pipe_count;
-		if (i > RCU_TORTURE_PIPE_LEN)
-			i = RCU_TORTURE_PIPE_LEN;
-		atomic_inc(&rcu_torture_wcount[i]);
-		if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) {
-			rp->rtort_mbtest = 0;
-			list_del(&rp->rtort_free);
-			rcu_torture_free(rp);
-		}
-	}
-}
-
 static void srcu_torture_synchronize(void)
 {
 	synchronize_srcu(&srcu_ctl);
@@ -427,7 +432,7 @@
 	.readdelay = srcu_read_delay,
 	.readunlock = srcu_torture_read_unlock,
 	.completed = srcu_torture_completed,
-	.deferredfree = srcu_torture_deferred_free,
+	.deferredfree = rcu_sync_torture_deferred_free,
 	.sync = srcu_torture_synchronize,
 	.stats = srcu_torture_stats,
 	.name = "srcu"
