Commit 00d1a39e69d5afa7523dad515a05b21abd17c389
1 parent
9385d949d5
Exists in
master
and in
16 other branches
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
Showing 32 changed files with 8 additions and 89 deletions Side-by-side Diff
- arch/alpha/include/asm/thread_info.h
- arch/arc/include/asm/thread_info.h
- arch/arm/include/asm/thread_info.h
- arch/arm64/include/asm/thread_info.h
- arch/avr32/include/asm/thread_info.h
- arch/blackfin/include/asm/thread_info.h
- arch/c6x/include/asm/thread_info.h
- arch/cris/include/asm/thread_info.h
- arch/frv/include/asm/thread_info.h
- arch/hexagon/include/asm/thread_info.h
- arch/ia64/include/asm/thread_info.h
- arch/m32r/include/asm/thread_info.h
- arch/m68k/include/asm/thread_info.h
- arch/metag/include/asm/thread_info.h
- arch/microblaze/include/asm/thread_info.h
- arch/mips/include/asm/thread_info.h
- arch/mn10300/include/asm/thread_info.h
- arch/parisc/include/asm/thread_info.h
- arch/powerpc/include/asm/thread_info.h
- arch/s390/include/asm/thread_info.h
- arch/score/include/asm/thread_info.h
- arch/sh/include/asm/thread_info.h
- arch/sh/kernel/entry-common.S
- arch/sparc/include/asm/thread_info_32.h
- arch/sparc/include/asm/thread_info_64.h
- arch/tile/include/asm/thread_info.h
- arch/um/include/asm/thread_info.h
- arch/unicore32/include/asm/thread_info.h
- arch/x86/include/asm/thread_info.h
- arch/xtensa/include/asm/thread_info.h
- include/linux/preempt_mask.h
- include/linux/sched.h
arch/alpha/include/asm/thread_info.h
arch/arc/include/asm/thread_info.h
arch/arm/include/asm/thread_info.h
... | ... | @@ -141,12 +141,6 @@ |
141 | 141 | #endif |
142 | 142 | |
143 | 143 | /* |
144 | - * We use bit 30 of the preempt_count to indicate that kernel | |
145 | - * preemption is occurring. See <asm/hardirq.h>. | |
146 | - */ | |
147 | -#define PREEMPT_ACTIVE 0x40000000 | |
148 | - | |
149 | -/* | |
150 | 144 | * thread information flags: |
151 | 145 | * TIF_SYSCALL_TRACE - syscall trace active |
152 | 146 | * TIF_SYSCAL_AUDIT - syscall auditing active |
arch/arm64/include/asm/thread_info.h
... | ... | @@ -89,12 +89,6 @@ |
89 | 89 | #endif |
90 | 90 | |
91 | 91 | /* |
92 | - * We use bit 30 of the preempt_count to indicate that kernel | |
93 | - * preemption is occurring. See <asm/hardirq.h>. | |
94 | - */ | |
95 | -#define PREEMPT_ACTIVE 0x40000000 | |
96 | - | |
97 | -/* | |
98 | 92 | * thread information flags: |
99 | 93 | * TIF_SYSCALL_TRACE - syscall trace active |
100 | 94 | * TIF_SIGPENDING - signal pending |
arch/avr32/include/asm/thread_info.h
arch/blackfin/include/asm/thread_info.h
arch/c6x/include/asm/thread_info.h
arch/cris/include/asm/thread_info.h
arch/frv/include/asm/thread_info.h
arch/hexagon/include/asm/thread_info.h
arch/ia64/include/asm/thread_info.h
arch/m32r/include/asm/thread_info.h
arch/m68k/include/asm/thread_info.h
arch/metag/include/asm/thread_info.h
arch/microblaze/include/asm/thread_info.h
arch/mips/include/asm/thread_info.h
arch/mn10300/include/asm/thread_info.h
arch/parisc/include/asm/thread_info.h
arch/powerpc/include/asm/thread_info.h
arch/s390/include/asm/thread_info.h
arch/score/include/asm/thread_info.h
arch/sh/include/asm/thread_info.h
arch/sh/kernel/entry-common.S
... | ... | @@ -108,7 +108,7 @@ |
108 | 108 | and #(0xf0>>1), r0 ! interrupts off (exception path)? |
109 | 109 | cmp/eq #(0xf0>>1), r0 |
110 | 110 | bt noresched |
111 | - mov.l 3f, r0 | |
111 | + mov.l 1f, r0 | |
112 | 112 | jsr @r0 ! call preempt_schedule_irq |
113 | 113 | nop |
114 | 114 | bra need_resched |
... | ... | @@ -119,9 +119,7 @@ |
119 | 119 | nop |
120 | 120 | |
121 | 121 | .align 2 |
122 | -1: .long PREEMPT_ACTIVE | |
123 | -2: .long schedule | |
124 | -3: .long preempt_schedule_irq | |
122 | +1: .long preempt_schedule_irq | |
125 | 123 | #endif |
126 | 124 | |
127 | 125 | ENTRY(resume_userspace) |
arch/sparc/include/asm/thread_info_32.h
arch/sparc/include/asm/thread_info_64.h
arch/tile/include/asm/thread_info.h
arch/um/include/asm/thread_info.h
arch/unicore32/include/asm/thread_info.h
... | ... | @@ -118,12 +118,6 @@ |
118 | 118 | #endif |
119 | 119 | |
120 | 120 | /* |
121 | - * We use bit 30 of the preempt_count to indicate that kernel | |
122 | - * preemption is occurring. See <asm/hardirq.h>. | |
123 | - */ | |
124 | -#define PREEMPT_ACTIVE 0x40000000 | |
125 | - | |
126 | -/* | |
127 | 121 | * thread information flags: |
128 | 122 | * TIF_SYSCALL_TRACE - syscall trace active |
129 | 123 | * TIF_SIGPENDING - signal pending |
arch/x86/include/asm/thread_info.h
arch/xtensa/include/asm/thread_info.h
include/linux/preempt_mask.h
... | ... | @@ -17,10 +17,11 @@ |
17 | 17 | * there are a few palaeontologic drivers which reenable interrupts in |
18 | 18 | * the handler, so we need more than one bit here. |
19 | 19 | * |
20 | - * PREEMPT_MASK: 0x000000ff | |
21 | - * SOFTIRQ_MASK: 0x0000ff00 | |
22 | - * HARDIRQ_MASK: 0x000f0000 | |
23 | - * NMI_MASK: 0x00100000 | |
20 | + * PREEMPT_MASK: 0x000000ff | |
21 | + * SOFTIRQ_MASK: 0x0000ff00 | |
22 | + * HARDIRQ_MASK: 0x000f0000 | |
23 | + * NMI_MASK: 0x00100000 | |
24 | + * PREEMPT_ACTIVE: 0x00200000 | |
24 | 25 | */ |
25 | 26 | #define PREEMPT_BITS 8 |
26 | 27 | #define SOFTIRQ_BITS 8 |
27 | 28 | |
... | ... | @@ -46,15 +47,9 @@ |
46 | 47 | |
47 | 48 | #define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET) |
48 | 49 | |
49 | -#ifndef PREEMPT_ACTIVE | |
50 | 50 | #define PREEMPT_ACTIVE_BITS 1 |
51 | 51 | #define PREEMPT_ACTIVE_SHIFT (NMI_SHIFT + NMI_BITS) |
52 | 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 | 54 | #define hardirq_count() (preempt_count() & HARDIRQ_MASK) |
60 | 55 | #define softirq_count() (preempt_count() & SOFTIRQ_MASK) |
include/linux/sched.h