[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20110927165920.14b00e8595d10135d2a4397a@canb.auug.org.au>
Date: Tue, 27 Sep 2011 16:59:20 +1000
From: Stephen Rothwell <sfr@...b.auug.org.au>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: linux-next@...r.kernel.org, linux-kernel@...r.kernel.org,
Vaibhav Nagarnaik <vnagarnaik@...gle.com>,
Frederic Weisbecker <fweisbec@...il.com>,
"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
Subject: linux-next: manual merge of the akpm tree with the tree
Hi Andrew,
Today's linux-next merge of the scsi-post-merge tree got conflicts in
arch/x86/kernel/apic/apic.c, arch/x86/kernel/cpu/mcheck/therm_throt.c,
arch/x86/kernel/cpu/mcheck/threshold.c and arch/x86/kernel/irq.c between
commit ef14aea88fee ("x86: Call idle notifier after irq_enter()") from
the rcu tree and commit 6a541324a31f ("The current interrupt traces from
irq_handler_entry and irq_handler_exit") from the akpm tree.
Just context changes. I fixed them up (see below) and can carry the fixes
as necessary.
--
Cheers,
Stephen Rothwell sfr@...b.auug.org.au
diff --cc arch/x86/kernel/apic/apic.c
index 4af04d4,0fe559f..0000000
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@@ -857,9 -858,11 +858,11 @@@ void __irq_entry smp_apic_timer_interru
* Besides, if we don't timer interrupts ignore the global
* interrupt lock, which is the WrongThing (tm) to do.
*/
- exit_idle();
irq_enter();
+ exit_idle();
+ trace_irq_vector_entry(LOCAL_TIMER_VECTOR);
local_apic_timer_interrupt();
+ trace_irq_vector_exit(LOCAL_TIMER_VECTOR);
irq_exit();
set_irq_regs(old_regs);
@@@ -1790,8 -1794,9 +1793,9 @@@ void smp_spurious_interrupt(struct pt_r
{
u32 v;
- exit_idle();
irq_enter();
+ exit_idle();
+ trace_irq_vector_entry(SPURIOUS_APIC_VECTOR);
/*
* Check if this really is a spurious interrupt and ACK it
* if it is a vectored one. Just in case...
@@@ -1827,8 -1833,9 +1832,9 @@@ void smp_error_interrupt(struct pt_reg
"Illegal register address", /* APIC Error Bit 7 */
};
- exit_idle();
irq_enter();
+ exit_idle();
+ trace_irq_vector_entry(ERROR_APIC_VECTOR);
/* First tickle the hardware, only then report what went on. -- REW */
v0 = apic_read(APIC_ESR);
apic_write(APIC_ESR, 0);
diff --cc arch/x86/kernel/cpu/mcheck/therm_throt.c
index ce21561,6b7edb5..0000000
--- a/arch/x86/kernel/cpu/mcheck/therm_throt.c
+++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c
@@@ -397,10 -398,12 +398,12 @@@ static void (*smp_thermal_vector)(void
asmlinkage void smp_thermal_interrupt(struct pt_regs *regs)
{
- exit_idle();
irq_enter();
+ exit_idle();
+ trace_irq_vector_entry(THERMAL_APIC_VECTOR);
inc_irq_stat(irq_thermal_count);
smp_thermal_vector();
+ trace_irq_vector_exit(THERMAL_APIC_VECTOR);
irq_exit();
/* Ack only at the end to avoid potential reentry */
ack_APIC_irq();
diff --cc arch/x86/kernel/cpu/mcheck/threshold.c
index aa578ca,ffde17b..0000000
--- a/arch/x86/kernel/cpu/mcheck/threshold.c
+++ b/arch/x86/kernel/cpu/mcheck/threshold.c
@@@ -19,10 -20,12 +20,12 @@@ void (*mce_threshold_vector)(void) = de
asmlinkage void smp_threshold_interrupt(void)
{
- exit_idle();
irq_enter();
+ exit_idle();
+ trace_irq_vector_entry(THRESHOLD_APIC_VECTOR);
inc_irq_stat(irq_threshold_count);
mce_threshold_vector();
+ trace_irq_vector_exit(THRESHOLD_APIC_VECTOR);
irq_exit();
/* Ack only at the end to avoid potential reentry */
ack_APIC_irq();
diff --cc arch/x86/kernel/irq.c
index 5d31e5b,64aad37..0000000
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@@ -209,10 -212,10 +212,9 @@@ void smp_x86_platform_ipi(struct pt_reg
ack_APIC_irq();
- exit_idle();
-
irq_enter();
-
+ exit_idle();
-
+ trace_irq_vector_entry(X86_PLATFORM_IPI_VECTOR);
inc_irq_stat(x86_platform_ipis);
if (x86_platform_ipi_callback)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists