i386: Rework root IRQ handler invocation
PATCH 2/3 i386: Rework root IRQ handler invocation
i386 port of the earlier posted x86_64 patch.
Jan
Quoted 2 lines · Jan Kiszka
i386 port of the earlier posted
x86_64patch.
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
@@ -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