Re: [cleanup] do_general_protection doesn't disable irq

From: Andrea Arcangeli
Date: Thu Jul 29 2004 - 23:47:41 EST


On Fri, Jul 30, 2004 at 12:22:05AM -0400, Brian Gerst wrote:
> Andrea Arcangeli wrote:
> >A trap gate shouldn't affect the irq status at all.
> >
> >This should be a valid cleanup that removes a slightly confusing noop:
> >
> >Index: linux-2.5/arch/i386/kernel/traps.c
> >===================================================================
> >RCS file: /home/andrea/crypto/cvs/linux-2.5/arch/i386/kernel/traps.c,v
> >retrieving revision 1.77
> >diff -u -p -r1.77 traps.c
> >--- linux-2.5/arch/i386/kernel/traps.c 13 Jul 2004 18:02:33 -0000
> >1.77
> >+++ linux-2.5/arch/i386/kernel/traps.c 30 Jul 2004 02:44:23 -0000
> >@@ -431,9 +431,6 @@ DO_ERROR_INFO(17, SIGBUS, "alignment che
> >
> > asmlinkage void do_general_protection(struct pt_regs * regs, long
> > error_code)
> > {
> >- if (regs->eflags & X86_EFLAGS_IF)
> >- local_irq_enable();
> >-
> > if (regs->eflags & VM_MASK)
> > goto gp_in_vm86;
> >
> >
> >Thanks to Karsten for noticing a trap gate doesn't actually enable irq
> >by default either (offtopic issue with the above patch, but while
> >reading the 2.6 code I found the above bit which just confused me more
> >since it's a noop, either that or you meant to use set_intr_gate, not
> >set_trap_gate on the do_general_protection handler, but it seems not
> >needed to use a trap gate since a trap gate shouldn't enable irqs by
> >default). Please correct me if wrong.
>
> This is there for vm86 mode. See http://tinyurl.com/3m5nr

and the one for vm86 mode is still there, this was the only needed bit
from the tinyurl you quoted:

gp_in_vm86:
+ local_irq_enable();

the regs->eflags & X86_EFLAGS_IF I removed is still a noop and in turn
it cannot help vm86 as far as I can tell.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/