diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-03-28 16:40:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-03-28 16:48:38 -0400 |
commit | 7c730ccdc1188b97f5c8cb690906242c7ed75c22 (patch) | |
tree | 17ccd927e70dadaf59104c53cce892474eb539b2 /arch/ia64/kernel/irq_ia64.c | |
parent | 8d735b4148d46446e64d72b22ef0344ee8dc02fa (diff) | |
parent | 82268da1b130f763d22d04f7d016bbf6fc8815c2 (diff) |
Merge branch 'percpu-cpumask-x86-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'percpu-cpumask-x86-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (682 commits)
percpu: fix spurious alignment WARN in legacy SMP percpu allocator
percpu: generalize embedding first chunk setup helper
percpu: more flexibility for @dyn_size of pcpu_setup_first_chunk()
percpu: make x86 addr <-> pcpu ptr conversion macros generic
linker script: define __per_cpu_load on all SMP capable archs
x86: UV: remove uv_flush_tlb_others() WARN_ON
percpu: finer grained locking to break deadlock and allow atomic free
percpu: move fully free chunk reclamation into a work
percpu: move chunk area map extension out of area allocation
percpu: replace pcpu_realloc() with pcpu_mem_alloc() and pcpu_mem_free()
x86, percpu: setup reserved percpu area for x86_64
percpu, module: implement reserved allocation and use it for module percpu variables
percpu: add an indirection ptr for chunk page map access
x86: make embedding percpu allocator return excessive free space
percpu: use negative for auto for pcpu_setup_first_chunk() arguments
percpu: improve first chunk initial area map handling
percpu: cosmetic renames in pcpu_setup_first_chunk()
percpu: clean up percpu constants
x86: un-__init fill_pud/pmd/pte
x86: remove vestigial fix_ioremap prototypes
...
Manually merge conflicts in arch/ia64/kernel/irq_ia64.c
Diffstat (limited to 'arch/ia64/kernel/irq_ia64.c')
-rw-r--r-- | arch/ia64/kernel/irq_ia64.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index 977a6ef13320..acc4d19ae62a 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c | |||
@@ -493,16 +493,15 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs) | |||
493 | saved_tpr = ia64_getreg(_IA64_REG_CR_TPR); | 493 | saved_tpr = ia64_getreg(_IA64_REG_CR_TPR); |
494 | ia64_srlz_d(); | 494 | ia64_srlz_d(); |
495 | while (vector != IA64_SPURIOUS_INT_VECTOR) { | 495 | while (vector != IA64_SPURIOUS_INT_VECTOR) { |
496 | struct irq_desc *desc; | ||
497 | int irq = local_vector_to_irq(vector); | 496 | int irq = local_vector_to_irq(vector); |
497 | struct irq_desc *desc = irq_to_desc(irq); | ||
498 | 498 | ||
499 | desc = irq_desc + irq; | ||
500 | if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) { | 499 | if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) { |
501 | smp_local_flush_tlb(); | 500 | smp_local_flush_tlb(); |
502 | kstat_incr_irqs_this_cpu(irq, desc); | 501 | kstat_incr_irqs_this_cpu(irq, desc); |
503 | } else if (unlikely(IS_RESCHEDULE(vector))) | 502 | } else if (unlikely(IS_RESCHEDULE(vector))) { |
504 | kstat_incr_irqs_this_cpu(irq, desc); | 503 | kstat_incr_irqs_this_cpu(irq, desc); |
505 | else { | 504 | } else { |
506 | ia64_setreg(_IA64_REG_CR_TPR, vector); | 505 | ia64_setreg(_IA64_REG_CR_TPR, vector); |
507 | ia64_srlz_d(); | 506 | ia64_srlz_d(); |
508 | 507 | ||
@@ -553,16 +552,15 @@ void ia64_process_pending_intr(void) | |||
553 | * Perform normal interrupt style processing | 552 | * Perform normal interrupt style processing |
554 | */ | 553 | */ |
555 | while (vector != IA64_SPURIOUS_INT_VECTOR) { | 554 | while (vector != IA64_SPURIOUS_INT_VECTOR) { |
556 | struct irq_desc *desc; | ||
557 | int irq = local_vector_to_irq(vector); | 555 | int irq = local_vector_to_irq(vector); |
558 | desc = irq_desc + irq; | 556 | struct irq_desc *desc = irq_to_desc(irq); |
559 | 557 | ||
560 | if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) { | 558 | if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) { |
561 | smp_local_flush_tlb(); | 559 | smp_local_flush_tlb(); |
562 | kstat_incr_irqs_this_cpu(irq, desc); | 560 | kstat_incr_irqs_this_cpu(irq, desc); |
563 | } else if (unlikely(IS_RESCHEDULE(vector))) | 561 | } else if (unlikely(IS_RESCHEDULE(vector))) { |
564 | kstat_incr_irqs_this_cpu(irq, desc); | 562 | kstat_incr_irqs_this_cpu(irq, desc); |
565 | else { | 563 | } else { |
566 | struct pt_regs *old_regs = set_irq_regs(NULL); | 564 | struct pt_regs *old_regs = set_irq_regs(NULL); |
567 | 565 | ||
568 | ia64_setreg(_IA64_REG_CR_TPR, vector); | 566 | ia64_setreg(_IA64_REG_CR_TPR, vector); |