Skip to contentSkip to conversation

i386: Rework root IRQ handler invocation

PATCH In review Jan Kiszka 1 participant 2 messages Dec 26, 2007

lore
Share & tools
lore

Jan Kiszka

author
#0 lore raw

PATCH 2/3 i386: Rework root IRQ handler invocation

i386 port of the earlier posted x86_64 patch.

Jan

author
#1 lore raw
Quoted 2 lines · Jan Kiszka

i386 port of the earlier posted x86_64 patch.

The usual mistake...

---
 arch/i386/kernel/ipipe.c |   22 ++++++++-------
 include/asm-i386/ipipe.h |   65 +++++++++++++++++++++++++++--------------------
 2 files changed, 50 insertions(+), 37 deletions(-)
arch/i386/kernel/ipipe.c +12 -10
Index: linux-2.6.23.12-xeno/arch/i386/kernel/ipipe.c
===================================================================
@@ -764,17 +764,19 @@ int __ipipe_handle_irq(struct pt_regs re
 
 finalize:
 
-	/* Given our deferred dispatching model for regular IRQs, we
-	 * only record CPU regs for the last timer interrupt, so that
-	 * the timer handler charges CPU times properly. It is assumed
-	 * that other interrupt handlers don't actually care for such
-	 * information. */
-
+	/*
+	 * Given our deferred dispatching model for regular IRQs, we only
+	 * record relevant registers for the last timer interrupt, so that the
+	 * timer handler charges CPU times properly. It is assumed that other
+	 * interrupt handlers don't actually care for such information.
+	 */
 	if (irq == __ipipe_tick_irq) {
-		__raw_get_cpu_var(__ipipe_tick_regs).eflags = regs.eflags;
-		__raw_get_cpu_var(__ipipe_tick_regs).eip = regs.eip;
-		__raw_get_cpu_var(__ipipe_tick_regs).xcs = regs.xcs;
-		__raw_get_cpu_var(__ipipe_tick_regs).ebp = regs.ebp;
+		struct pt_regs *tick_regs =
+			&__raw_get_cpu_var(__ipipe_tick_regs);
+		tick_regs->eflags = regs.eflags;
+		tick_regs->xcs = regs.xcs;
+		tick_regs->eip = regs.eip;
+		tick_regs->ebp = regs.ebp;
 	}
 
 	/*
include/asm-i386/ipipe.h +38 -27

77 lines not on this page · raw message