lkml.org 
[lkml]   [2007]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjecthow exactly is the macro SPIN_LOCK_UNLOCKED going to be removed?

(the following applies equally well to RW_LOCK_UNLOCKED.)

according to Documentation/spinlocks.txt:

======================================
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:

spinlock_t xxx_lock;
rwlock_t xxx_rw_lock;

static int __init xxx_init(void)
{
spin_lock_init(&xxx_lock);
rwlock_init(&xxx_rw_lock);
...
}

module_init(xxx_init);
...
======================================

fair enough, i can see how *some* of that replacement is going to be
done. new spinlocks can be created based on the macro:

#define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)

so i'm assuming that the underlying macro __SPIN_LOCK_UNLOCKED is
sticking around.

also, since defining a spinlock that way requires a lock name,
things like this:

...
.lock = SPIN_LOCK_UNLOCKED,
...

will have to be replaced with the form:

...
.death_lock = __SPIN_LOCK_UNLOCKED(tcp_death_row.death_lock)
...

is that correct so far? but i'm not sure what's going to happen with
stuff like this:

spinlock_t cris_atomic_locks[] =
{ [0 ... LOCK_COUNT - 1] = SPIN_LOCK_UNLOCKED};

what's the deal with *that*? or am i misunderstanding this
completely?

rday
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-01-16 16:13    [W:0.095 / U:0.052 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site