Commit 8c703d35 authored by Jonathan Corbet's avatar Jonathan Corbet Committed by Linus Torvalds
Browse files

in_atomic(): document why it is unsuitable for general use



Discourage people from inappropriately using in_atomic()

Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f67e74ca
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -72,6 +72,13 @@
#define in_softirq()		(softirq_count())
#define in_interrupt()		(irq_count())

/*
 * Are we running in atomic context?  WARNING: this macro cannot
 * always detect atomic context; in particular, it cannot know about
 * held spinlocks in non-preemptible kernels.  Thus it should not be
 * used in the general case to determine whether sleeping is possible.
 * Do not use in_atomic() in driver code.
 */
#define in_atomic()		((preempt_count() & ~PREEMPT_ACTIVE) != 0)

#ifdef CONFIG_PREEMPT