should drivers avoid the use of in_atomic()?
Robert P. J. Day
rpjday at crashcourse.ca
Sun May 15 15:22:10 EDT 2011
perusing some timer-related kernel stuff and i ran across this in
include/linux/hardirq.h:
/*
* 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) != PREEMPT_INATOMIC_BASE)
but a quick check shows a sprinkling of in_atomic() checks in the
drivers/ directory. is that admonition overly strict? or what?
rday
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
More information about the Kernelnewbies
mailing list