X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=lib%2Fatomic64.c;h=08a4f068e61e7689f4246ec77683d71b18f72a76;hb=8dd6e147b0c29723ec10d0e836c7f3466d61a19b;hp=978537809d84c4c18c469e1a38005872cdf165f1;hpb=9a64e8e0ace51b309fdcff4b4754b3649250382a;p=~andy%2Flinux diff --git a/lib/atomic64.c b/lib/atomic64.c index 978537809d8..08a4f068e61 100644 --- a/lib/atomic64.c +++ b/lib/atomic64.c @@ -31,7 +31,11 @@ static union { raw_spinlock_t lock; char pad[L1_CACHE_BYTES]; -} atomic64_lock[NR_LOCKS] __cacheline_aligned_in_smp; +} atomic64_lock[NR_LOCKS] __cacheline_aligned_in_smp = { + [0 ... (NR_LOCKS - 1)] = { + .lock = __RAW_SPIN_LOCK_UNLOCKED(atomic64_lock.lock), + }, +}; static inline raw_spinlock_t *lock_addr(const atomic64_t *v) { @@ -173,14 +177,3 @@ int atomic64_add_unless(atomic64_t *v, long long a, long long u) return ret; } EXPORT_SYMBOL(atomic64_add_unless); - -static int init_atomic64_lock(void) -{ - int i; - - for (i = 0; i < NR_LOCKS; ++i) - raw_spin_lock_init(&atomic64_lock[i].lock); - return 0; -} - -pure_initcall(init_atomic64_lock);