Fix: rcu_barrier(): uninitialized futex field
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 18 Apr 2014 16:01:04 +0000 (12:01 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 18 Apr 2014 16:04:24 +0000 (12:04 -0400)
This uninitialized futex field can lead to rcu_barrier() hang. This
issue has been found with Valgrind.

Fixes #787

Reported-by: Keir Fraser <keir@cohodata.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
urcu-call-rcu-impl.h

index c2e175b7524982ab341f73865248404e8e303542..f0751f538b4b66c829d4d988b0d5102192ad889b 100644 (file)
@@ -814,6 +814,7 @@ void rcu_barrier(void)
                count++;
 
        completion.barrier_count = count;
+       completion.futex = 0;
 
        cds_list_for_each_entry(crdp, &call_rcu_data_list, list) {
                struct call_rcu_completion_work *work;
This page took 0.029577 seconds and 4 git commands to generate.