Project

General

Profile

Feature #3245

Updated by Denis Efremov almost 12 years ago

From documentation: 
 
         Note that the value returned by rcu_dereference() is valid 
 
         only within the enclosing RCU read-side critical section. 
 
         For example, the following is -not- legal: 

                 rcu_read_lock(); 
                 p = rcu_dereference(head.next); 
                 rcu_read_unlock(); 
                 x = p->address; 
                 rcu_read_lock(); 
                 y = p->data; 
                 rcu_read_unlock(); 

 

         Holding a reference from one RCU read-side critical section 
 
         to another is just as illegal as holding a reference from 
 
         one lock-based critical section to another!    Similarly, 
 
         using a reference outside of the critical section in which 
 
         it was acquired is just as illegal as doing so with normal 
 
         locking.

Back