From: Satyam Sharma Introduce a write_trylock_irqsave() implementation. Similar in style to the implementation of spin_trylock_irqsave() in mainline. Signed-off-by: Satyam Sharma Cc: Sripathi Kodi Cc: Ingo Molnar Signed-off-by: Andrew Morton --- include/linux/spinlock.h | 7 +++++++ 1 files changed, 7 insertions(+) diff -puN include/linux/spinlock.h~introduce-write_trylock_irqsave include/linux/spinlock.h --- a/include/linux/spinlock.h~introduce-write_trylock_irqsave +++ a/include/linux/spinlock.h @@ -282,6 +282,13 @@ do { \ 1 : ({ local_irq_restore(flags); 0; }); \ }) +#define write_trylock_irqsave(lock, flags) \ +({ \ + local_irq_save(flags); \ + write_trylock(lock) ? \ + 1 : ({ local_irq_restore(flags); 0; }); \ +}) + /* * Locks two spinlocks l1 and l2. * l1_first indicates if spinlock l1 should be taken first. _