diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-19 13:40:00 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-19 13:40:00 -0500 |
commit | 4007162647b3b2e2e438904471b620aba013c4af (patch) | |
tree | 2798671e1fd62b632ccae6e03eda9c49ab95763a /arch/m32r | |
parent | 801a76050bcf8d4e500eb8d048ff6265f37a61c8 (diff) | |
parent | 00d1a39e69d5afa7523dad515a05b21abd17c389 (diff) |
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq cleanups from Ingo Molnar:
"This is a multi-arch cleanup series from Thomas Gleixner, which we
kept to near the end of the merge window, to not interfere with
architecture updates.
This series (motivated by the -rt kernel) unifies more aspects of IRQ
handling and generalizes PREEMPT_ACTIVE"
* 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
preempt: Make PREEMPT_ACTIVE generic
sparc: Use preempt_schedule_irq
ia64: Use preempt_schedule_irq
m32r: Use preempt_schedule_irq
hardirq: Make hardirq bits generic
m68k: Simplify low level interrupt handling code
genirq: Prevent spurious detection for unconditionally polled interrupts
Diffstat (limited to 'arch/m32r')
-rw-r--r-- | arch/m32r/include/asm/hardirq.h | 16 | ||||
-rw-r--r-- | arch/m32r/include/asm/thread_info.h | 2 | ||||
-rw-r--r-- | arch/m32r/kernel/entry.S | 8 |
3 files changed, 1 insertions, 25 deletions
diff --git a/arch/m32r/include/asm/hardirq.h b/arch/m32r/include/asm/hardirq.h index 4c31c0ae215e..5f2ac4f64ddf 100644 --- a/arch/m32r/include/asm/hardirq.h +++ b/arch/m32r/include/asm/hardirq.h | |||
@@ -3,22 +3,6 @@ | |||
3 | #define __ASM_HARDIRQ_H | 3 | #define __ASM_HARDIRQ_H |
4 | 4 | ||
5 | #include <asm/irq.h> | 5 | #include <asm/irq.h> |
6 | |||
7 | #if NR_IRQS > 256 | ||
8 | #define HARDIRQ_BITS 9 | ||
9 | #else | ||
10 | #define HARDIRQ_BITS 8 | ||
11 | #endif | ||
12 | |||
13 | /* | ||
14 | * The hardirq mask has to be large enough to have | ||
15 | * space for potentially all IRQ sources in the system | ||
16 | * nesting on a single CPU: | ||
17 | */ | ||
18 | #if (1 << HARDIRQ_BITS) < NR_IRQS | ||
19 | # error HARDIRQ_BITS is too low! | ||
20 | #endif | ||
21 | |||
22 | #include <asm-generic/hardirq.h> | 6 | #include <asm-generic/hardirq.h> |
23 | 7 | ||
24 | #endif /* __ASM_HARDIRQ_H */ | 8 | #endif /* __ASM_HARDIRQ_H */ |
diff --git a/arch/m32r/include/asm/thread_info.h b/arch/m32r/include/asm/thread_info.h index c074f4c2e858..00171703402f 100644 --- a/arch/m32r/include/asm/thread_info.h +++ b/arch/m32r/include/asm/thread_info.h | |||
@@ -53,8 +53,6 @@ struct thread_info { | |||
53 | 53 | ||
54 | #endif | 54 | #endif |
55 | 55 | ||
56 | #define PREEMPT_ACTIVE 0x10000000 | ||
57 | |||
58 | #define THREAD_SIZE (PAGE_SIZE << 1) | 56 | #define THREAD_SIZE (PAGE_SIZE << 1) |
59 | #define THREAD_SIZE_ORDER 1 | 57 | #define THREAD_SIZE_ORDER 1 |
60 | /* | 58 | /* |
diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S index 0c01543f10cd..7c3db9940ce1 100644 --- a/arch/m32r/kernel/entry.S +++ b/arch/m32r/kernel/entry.S | |||
@@ -182,13 +182,7 @@ need_resched: | |||
182 | ld r4, PSW(sp) ; interrupts off (exception path) ? | 182 | ld r4, PSW(sp) ; interrupts off (exception path) ? |
183 | and3 r4, r4, #0x4000 | 183 | and3 r4, r4, #0x4000 |
184 | beqz r4, restore_all | 184 | beqz r4, restore_all |
185 | LDIMM (r4, PREEMPT_ACTIVE) | 185 | bl preempt_schedule_irq |
186 | st r4, @(TI_PRE_COUNT, r8) | ||
187 | ENABLE_INTERRUPTS(r4) | ||
188 | bl schedule | ||
189 | ldi r4, #0 | ||
190 | st r4, @(TI_PRE_COUNT, r8) | ||
191 | DISABLE_INTERRUPTS(r4) | ||
192 | bra need_resched | 186 | bra need_resched |
193 | #endif | 187 | #endif |
194 | 188 | ||