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/sparc | |
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/sparc')
-rw-r--r-- | arch/sparc/include/asm/hardirq_32.h | 1 | ||||
-rw-r--r-- | arch/sparc/include/asm/hardirq_64.h | 2 | ||||
-rw-r--r-- | arch/sparc/include/asm/thread_info_32.h | 2 | ||||
-rw-r--r-- | arch/sparc/include/asm/thread_info_64.h | 2 | ||||
-rw-r--r-- | arch/sparc/kernel/rtrap_64.S | 6 |
5 files changed, 2 insertions, 11 deletions
diff --git a/arch/sparc/include/asm/hardirq_32.h b/arch/sparc/include/asm/hardirq_32.h index 162007643cdc..ee93923b7f82 100644 --- a/arch/sparc/include/asm/hardirq_32.h +++ b/arch/sparc/include/asm/hardirq_32.h | |||
@@ -7,7 +7,6 @@ | |||
7 | #ifndef __SPARC_HARDIRQ_H | 7 | #ifndef __SPARC_HARDIRQ_H |
8 | #define __SPARC_HARDIRQ_H | 8 | #define __SPARC_HARDIRQ_H |
9 | 9 | ||
10 | #define HARDIRQ_BITS 8 | ||
11 | #include <asm-generic/hardirq.h> | 10 | #include <asm-generic/hardirq.h> |
12 | 11 | ||
13 | #endif /* __SPARC_HARDIRQ_H */ | 12 | #endif /* __SPARC_HARDIRQ_H */ |
diff --git a/arch/sparc/include/asm/hardirq_64.h b/arch/sparc/include/asm/hardirq_64.h index 7c29fd1a87aa..f478ff1ddd02 100644 --- a/arch/sparc/include/asm/hardirq_64.h +++ b/arch/sparc/include/asm/hardirq_64.h | |||
@@ -14,6 +14,4 @@ | |||
14 | 14 | ||
15 | void ack_bad_irq(unsigned int irq); | 15 | void ack_bad_irq(unsigned int irq); |
16 | 16 | ||
17 | #define HARDIRQ_BITS 8 | ||
18 | |||
19 | #endif /* !(__SPARC64_HARDIRQ_H) */ | 17 | #endif /* !(__SPARC64_HARDIRQ_H) */ |
diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h index dd3807599bb9..96efa7adc223 100644 --- a/arch/sparc/include/asm/thread_info_32.h +++ b/arch/sparc/include/asm/thread_info_32.h | |||
@@ -105,8 +105,6 @@ register struct thread_info *current_thread_info_reg asm("g6"); | |||
105 | #define TI_W_SAVED 0x250 | 105 | #define TI_W_SAVED 0x250 |
106 | /* #define TI_RESTART_BLOCK 0x25n */ /* Nobody cares */ | 106 | /* #define TI_RESTART_BLOCK 0x25n */ /* Nobody cares */ |
107 | 107 | ||
108 | #define PREEMPT_ACTIVE 0x4000000 | ||
109 | |||
110 | /* | 108 | /* |
111 | * thread information flag bit numbers | 109 | * thread information flag bit numbers |
112 | */ | 110 | */ |
diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h index 5d9292ab1077..a5f01ac6d0f1 100644 --- a/arch/sparc/include/asm/thread_info_64.h +++ b/arch/sparc/include/asm/thread_info_64.h | |||
@@ -111,8 +111,6 @@ struct thread_info { | |||
111 | #define THREAD_SHIFT PAGE_SHIFT | 111 | #define THREAD_SHIFT PAGE_SHIFT |
112 | #endif /* PAGE_SHIFT == 13 */ | 112 | #endif /* PAGE_SHIFT == 13 */ |
113 | 113 | ||
114 | #define PREEMPT_ACTIVE 0x10000000 | ||
115 | |||
116 | /* | 114 | /* |
117 | * macros/functions for gaining access to the thread information structure | 115 | * macros/functions for gaining access to the thread information structure |
118 | */ | 116 | */ |
diff --git a/arch/sparc/kernel/rtrap_64.S b/arch/sparc/kernel/rtrap_64.S index a954eb81881b..39f0c662f4c8 100644 --- a/arch/sparc/kernel/rtrap_64.S +++ b/arch/sparc/kernel/rtrap_64.S | |||
@@ -312,12 +312,10 @@ to_kernel: | |||
312 | nop | 312 | nop |
313 | cmp %l4, 0 | 313 | cmp %l4, 0 |
314 | bne,pn %xcc, kern_fpucheck | 314 | bne,pn %xcc, kern_fpucheck |
315 | sethi %hi(PREEMPT_ACTIVE), %l6 | 315 | nop |
316 | stw %l6, [%g6 + TI_PRE_COUNT] | 316 | call preempt_schedule_irq |
317 | call schedule | ||
318 | nop | 317 | nop |
319 | ba,pt %xcc, rtrap | 318 | ba,pt %xcc, rtrap |
320 | stw %g0, [%g6 + TI_PRE_COUNT] | ||
321 | #endif | 319 | #endif |
322 | kern_fpucheck: ldub [%g6 + TI_FPDEPTH], %l5 | 320 | kern_fpucheck: ldub [%g6 + TI_FPDEPTH], %l5 |
323 | brz,pt %l5, rt_continue | 321 | brz,pt %l5, rt_continue |