Skip to content

Commit

Permalink
docs: static initialization of spinlocks is OK
Browse files Browse the repository at this point in the history
Static initialization of spinlocks is preferable to dynamic initialization
when it is practical.  This patch updates documentation for consistency
with comments in spinlock_types.h.

Signed-off-by: Ed L. Cashin <ecashin@coraid.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Ed L. Cashin authored and Linus Torvalds committed Jul 16, 2007
1 parent 7e7d136 commit 017f021
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions Documentation/spinlocks.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
UPDATE March 21 2005 Amit Gud <gud@eth.net>
SPIN_LOCK_UNLOCKED and RW_LOCK_UNLOCKED defeat lockdep state tracking and
are hence deprecated.

Macros SPIN_LOCK_UNLOCKED and RW_LOCK_UNLOCKED are deprecated and will be
removed soon. So for any new code dynamic initialization should be used:
Please use DEFINE_SPINLOCK()/DEFINE_RWLOCK() or
__SPIN_LOCK_UNLOCKED()/__RW_LOCK_UNLOCKED() as appropriate for static
initialization.

Dynamic initialization, when necessary, may be performed as
demonstrated below.

spinlock_t xxx_lock;
rwlock_t xxx_rw_lock;
Expand All @@ -15,12 +20,9 @@ removed soon. So for any new code dynamic initialization should be used:

module_init(xxx_init);

Reasons for deprecation
- it hurts automatic lock validators
- it becomes intrusive for the realtime preemption patches

Following discussion is still valid, however, with the dynamic initialization
of spinlocks instead of static.
The following discussion is still valid, however, with the dynamic
initialization of spinlocks or with DEFINE_SPINLOCK, etc., used
instead of SPIN_LOCK_UNLOCKED.

-----------------------

Expand Down

0 comments on commit 017f021

Please sign in to comment.