(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 [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/