|
@@ -17,10 +17,11 @@
|
|
|
* there are a few palaeontologic drivers which reenable interrupts in
|
|
|
* the handler, so we need more than one bit here.
|
|
|
*
|
|
|
- * PREEMPT_MASK: 0x000000ff
|
|
|
- * SOFTIRQ_MASK: 0x0000ff00
|
|
|
- * HARDIRQ_MASK: 0x000f0000
|
|
|
- * NMI_MASK: 0x00100000
|
|
|
+ * PREEMPT_MASK: 0x000000ff
|
|
|
+ * SOFTIRQ_MASK: 0x0000ff00
|
|
|
+ * HARDIRQ_MASK: 0x000f0000
|
|
|
+ * NMI_MASK: 0x00100000
|
|
|
+ * PREEMPT_ACTIVE: 0x00200000
|
|
|
*/
|
|
|
#define PREEMPT_BITS 8
|
|
|
#define SOFTIRQ_BITS 8
|
|
@@ -46,15 +47,9 @@
|
|
|
|
|
|
#define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET)
|
|
|
|
|
|
-#ifndef PREEMPT_ACTIVE
|
|
|
#define PREEMPT_ACTIVE_BITS 1
|
|
|
#define PREEMPT_ACTIVE_SHIFT (NMI_SHIFT + NMI_BITS)
|
|
|
#define PREEMPT_ACTIVE (__IRQ_MASK(PREEMPT_ACTIVE_BITS) << PREEMPT_ACTIVE_SHIFT)
|
|
|
-#endif
|
|
|
-
|
|
|
-#if PREEMPT_ACTIVE < (1 << (NMI_SHIFT + NMI_BITS))
|
|
|
-#error PREEMPT_ACTIVE is too low!
|
|
|
-#endif
|
|
|
|
|
|
#define hardirq_count() (preempt_count() & HARDIRQ_MASK)
|
|
|
#define softirq_count() (preempt_count() & SOFTIRQ_MASK)
|