diff options
author | Mark Fasheh <mfasheh@suse.com> | 2008-04-10 13:55:21 -0700 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2008-04-11 13:21:14 -0600 |
commit | 14dadf1d5eb5bea2dd115852cfee880505c1c169 (patch) | |
tree | 03a1060a8191483dbd93964a6909f5c103d75ce4 /Documentation/spinlocks.txt | |
parent | d396c5f158547e50c2b78bc984cb4a72d76e969b (diff) | |
download | lwn-14dadf1d5eb5bea2dd115852cfee880505c1c169.tar.gz lwn-14dadf1d5eb5bea2dd115852cfee880505c1c169.zip |
Add additional examples in Documentation/spinlocks.txt
Checkpatch will throw an error if code doesn't use the correct initializers
for static spinlocks:
ERROR: Use of SPIN_LOCK_UNLOCKED is deprecated: see Documentation/spinlocks.txt
This is fine, but Documentation/spinlocks.txt isn't very clear on how to
_use_ the new initializers for static variables. To save people time in the
future, I added two small examples of how to fix old-style static
initializers to be more lockdep friendly.
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Diffstat (limited to 'Documentation/spinlocks.txt')
-rw-r--r-- | Documentation/spinlocks.txt | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Documentation/spinlocks.txt b/Documentation/spinlocks.txt index 471e75389778..619699dde593 100644 --- a/Documentation/spinlocks.txt +++ b/Documentation/spinlocks.txt @@ -5,6 +5,28 @@ Please use DEFINE_SPINLOCK()/DEFINE_RWLOCK() or __SPIN_LOCK_UNLOCKED()/__RW_LOCK_UNLOCKED() as appropriate for static initialization. +Most of the time, you can simply turn: + + static spinlock_t xxx_lock = SPIN_LOCK_UNLOCKED; + +into: + + static DEFINE_SPINLOCK(xxx_lock); + +Static structure member variables go from: + + struct foo bar { + .lock = SPIN_LOCK_UNLOCKED; + }; + +to: + + struct foo bar { + .lock = __SPIN_LOCK_UNLOCKED(bar.lock); + }; + +Declaration of static rw_locks undergo a similar transformation. + Dynamic initialization, when necessary, may be performed as demonstrated below. |