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/ia64 | |
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/ia64')
-rw-r--r-- | arch/ia64/include/asm/thread_info.h | 3 | ||||
-rw-r--r-- | arch/ia64/kernel/entry.S | 15 |
2 files changed, 1 insertions, 17 deletions
diff --git a/arch/ia64/include/asm/thread_info.h b/arch/ia64/include/asm/thread_info.h index cade13dd0299..5957cf61f898 100644 --- a/arch/ia64/include/asm/thread_info.h +++ b/arch/ia64/include/asm/thread_info.h | |||
@@ -11,9 +11,6 @@ | |||
11 | #include <asm/processor.h> | 11 | #include <asm/processor.h> |
12 | #include <asm/ptrace.h> | 12 | #include <asm/ptrace.h> |
13 | 13 | ||
14 | #define PREEMPT_ACTIVE_BIT 30 | ||
15 | #define PREEMPT_ACTIVE (1 << PREEMPT_ACTIVE_BIT) | ||
16 | |||
17 | #ifndef __ASSEMBLY__ | 14 | #ifndef __ASSEMBLY__ |
18 | 15 | ||
19 | /* | 16 | /* |
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S index 7a53530f22c2..ddea607f948a 100644 --- a/arch/ia64/kernel/entry.S +++ b/arch/ia64/kernel/entry.S | |||
@@ -1169,21 +1169,8 @@ skip_rbs_switch: | |||
1169 | .work_pending: | 1169 | .work_pending: |
1170 | tbit.z p6,p0=r31,TIF_NEED_RESCHED // is resched not needed? | 1170 | tbit.z p6,p0=r31,TIF_NEED_RESCHED // is resched not needed? |
1171 | (p6) br.cond.sptk.few .notify | 1171 | (p6) br.cond.sptk.few .notify |
1172 | #ifdef CONFIG_PREEMPT | 1172 | br.call.spnt.many rp=preempt_schedule_irq |
1173 | (pKStk) dep r21=-1,r0,PREEMPT_ACTIVE_BIT,1 | ||
1174 | ;; | ||
1175 | (pKStk) st4 [r20]=r21 | ||
1176 | #endif | ||
1177 | SSM_PSR_I(p0, p6, r2) // enable interrupts | ||
1178 | br.call.spnt.many rp=schedule | ||
1179 | .ret9: cmp.eq p6,p0=r0,r0 // p6 <- 1 (re-check) | 1173 | .ret9: cmp.eq p6,p0=r0,r0 // p6 <- 1 (re-check) |
1180 | RSM_PSR_I(p0, r2, r20) // disable interrupts | ||
1181 | ;; | ||
1182 | #ifdef CONFIG_PREEMPT | ||
1183 | (pKStk) adds r20=TI_PRE_COUNT+IA64_TASK_SIZE,r13 | ||
1184 | ;; | ||
1185 | (pKStk) st4 [r20]=r0 // preempt_count() <- 0 | ||
1186 | #endif | ||
1187 | (pLvSys)br.cond.sptk.few __paravirt_pending_syscall_end | 1174 | (pLvSys)br.cond.sptk.few __paravirt_pending_syscall_end |
1188 | br.cond.sptk.many .work_processed_kernel | 1175 | br.cond.sptk.many .work_processed_kernel |
1189 | 1176 | ||