diff options
Diffstat (limited to 'include/linux/preempt_mask.h')
| -rw-r--r-- | include/linux/preempt_mask.h | 16 | 
1 files changed, 15 insertions, 1 deletions
diff --git a/include/linux/preempt_mask.h b/include/linux/preempt_mask.h index d169820203dd..dbeec4d4a3be 100644 --- a/include/linux/preempt_mask.h +++ b/include/linux/preempt_mask.h @@ -2,7 +2,6 @@  #define LINUX_PREEMPT_MASK_H  #include <linux/preempt.h> -#include <asm/hardirq.h>  /*   * We put the hardirq and softirq counter into the preemption @@ -79,6 +78,21 @@  #endif  /* + * The preempt_count offset needed for things like: + * + *  spin_lock_bh() + * + * Which need to disable both preemption (CONFIG_PREEMPT_COUNT) and + * softirqs, such that unlock sequences of: + * + *  spin_unlock(); + *  local_bh_enable(); + * + * Work as expected. + */ +#define SOFTIRQ_LOCK_OFFSET (SOFTIRQ_DISABLE_OFFSET + PREEMPT_CHECK_OFFSET) + +/*   * 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  |