Commit 017f021c authored by Ed L. Cashin's avatar Ed L. Cashin Committed by Linus Torvalds
Browse files

docs: static initialization of spinlocks is OK



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: default avatarEd L. Cashin <ecashin@coraid.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 7e7d136e
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
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;
@@ -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.

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