diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2013-09-17 14:53:09 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2013-11-13 14:21:47 -0500 |
| commit | 00d1a39e69d5afa7523dad515a05b21abd17c389 (patch) | |
| tree | 7cc9ab44899be1b50d05f0154345bd0c9e9c0f96 /include/linux | |
| parent | 9385d949d5bd0eb642ed05ea263c3638c9f4e372 (diff) | |
preempt: Make PREEMPT_ACTIVE generic
No point in having this bit defined by architecture.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20130917183629.090698799@linutronix.de
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/preempt_mask.h | 15 | ||||
| -rw-r--r-- | include/linux/sched.h | 2 |
2 files changed, 6 insertions, 11 deletions
diff --git a/include/linux/preempt_mask.h b/include/linux/preempt_mask.h index 810d7e386f20..d169820203dd 100644 --- a/include/linux/preempt_mask.h +++ b/include/linux/preempt_mask.h | |||
| @@ -17,10 +17,11 @@ | |||
| 17 | * there are a few palaeontologic drivers which reenable interrupts in | 17 | * there are a few palaeontologic drivers which reenable interrupts in |
| 18 | * the handler, so we need more than one bit here. | 18 | * the handler, so we need more than one bit here. |
| 19 | * | 19 | * |
| 20 | * PREEMPT_MASK: 0x000000ff | 20 | * PREEMPT_MASK: 0x000000ff |
| 21 | * SOFTIRQ_MASK: 0x0000ff00 | 21 | * SOFTIRQ_MASK: 0x0000ff00 |
| 22 | * HARDIRQ_MASK: 0x000f0000 | 22 | * HARDIRQ_MASK: 0x000f0000 |
| 23 | * NMI_MASK: 0x00100000 | 23 | * NMI_MASK: 0x00100000 |
| 24 | * PREEMPT_ACTIVE: 0x00200000 | ||
| 24 | */ | 25 | */ |
| 25 | #define PREEMPT_BITS 8 | 26 | #define PREEMPT_BITS 8 |
| 26 | #define SOFTIRQ_BITS 8 | 27 | #define SOFTIRQ_BITS 8 |
| @@ -46,15 +47,9 @@ | |||
| 46 | 47 | ||
| 47 | #define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET) | 48 | #define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET) |
| 48 | 49 | ||
| 49 | #ifndef PREEMPT_ACTIVE | ||
| 50 | #define PREEMPT_ACTIVE_BITS 1 | 50 | #define PREEMPT_ACTIVE_BITS 1 |
| 51 | #define PREEMPT_ACTIVE_SHIFT (NMI_SHIFT + NMI_BITS) | 51 | #define PREEMPT_ACTIVE_SHIFT (NMI_SHIFT + NMI_BITS) |
| 52 | #define PREEMPT_ACTIVE (__IRQ_MASK(PREEMPT_ACTIVE_BITS) << PREEMPT_ACTIVE_SHIFT) | 52 | #define PREEMPT_ACTIVE (__IRQ_MASK(PREEMPT_ACTIVE_BITS) << PREEMPT_ACTIVE_SHIFT) |
| 53 | #endif | ||
| 54 | |||
| 55 | #if PREEMPT_ACTIVE < (1 << (NMI_SHIFT + NMI_BITS)) | ||
| 56 | #error PREEMPT_ACTIVE is too low! | ||
| 57 | #endif | ||
| 58 | 53 | ||
| 59 | #define hardirq_count() (preempt_count() & HARDIRQ_MASK) | 54 | #define hardirq_count() (preempt_count() & HARDIRQ_MASK) |
| 60 | #define softirq_count() (preempt_count() & SOFTIRQ_MASK) | 55 | #define softirq_count() (preempt_count() & SOFTIRQ_MASK) |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 045b0d227846..55080df48b70 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -22,7 +22,7 @@ struct sched_param { | |||
| 22 | #include <linux/errno.h> | 22 | #include <linux/errno.h> |
| 23 | #include <linux/nodemask.h> | 23 | #include <linux/nodemask.h> |
| 24 | #include <linux/mm_types.h> | 24 | #include <linux/mm_types.h> |
| 25 | #include <linux/preempt.h> | 25 | #include <linux/preempt_mask.h> |
| 26 | 26 | ||
| 27 | #include <asm/page.h> | 27 | #include <asm/page.h> |
| 28 | #include <asm/ptrace.h> | 28 | #include <asm/ptrace.h> |
