diff options
Diffstat (limited to 'include/linux/seqlock.h')
| -rw-r--r-- | include/linux/seqlock.h | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h index 7bc5c7c12b54..46000936f8f1 100644 --- a/include/linux/seqlock.h +++ b/include/linux/seqlock.h @@ -38,9 +38,17 @@ typedef struct {   * These macros triggered gcc-3.x compile-time problems.  We think these are   * OK now.  Be cautious.   */ -#define SEQLOCK_UNLOCKED { 0, SPIN_LOCK_UNLOCKED } -#define seqlock_init(x)	do { *(x) = (seqlock_t) SEQLOCK_UNLOCKED; } while (0) +#define __SEQLOCK_UNLOCKED(lockname) \ +		 { 0, __SPIN_LOCK_UNLOCKED(lockname) } +#define SEQLOCK_UNLOCKED \ +		 __SEQLOCK_UNLOCKED(old_style_seqlock_init) + +#define seqlock_init(x) \ +		do { *(x) = (seqlock_t) __SEQLOCK_UNLOCKED(x); } while (0) + +#define DEFINE_SEQLOCK(x) \ +		seqlock_t x = __SEQLOCK_UNLOCKED(x)  /* Lock out other writers and update the count.   * Acts like a normal spin_lock/unlock. | 
