How does [=rcu_dereference_protected(ptr, 1)] differ from simple [=ptr]?
May 15, 2019
5:17 p.m.
Hi, according to the documentation, [rcu_dereference_protected( ptr, condition )] is the "update-side primitive" that reads the ptr, "allowing the code to verify that the required locks really are held". Given that, I expect that literal `1' as `condition' would imply just "reading the ptr". Indeed, the macro expansion of = rcu_dereference_protected( ptr, 1 ) is roughly equals to just = ({ (typeof(*ptr) *)ptr; }) i.e. simple = ptr that agrees with my expectation. So, coding [rcu_dereference_protected( ..., 1 )] looks like a waste of key presses. However, expression [rcu_dereference_protected( ..., 1 )] routinely appears in the kernel sources, many times. Why? Did I miss something? Regards, Konstantin.
2648
Age (days ago)
2648
Last active (days ago)
0 comments
1 participants
participants (1)
-
Konstantin Andreev