Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2003-10-17 19:29:21 +1000
committerAnton Blanchard <anton@samba.org>2003-10-17 19:29:21 +1000
commitf76ee77d902c10838052d95205a225fd4fa8b136 (patch)
treec85a8e3b0797a317592bd89e10a081fd1bcacbcc
parent6bea8b28a71449cb5f7daceee79ab9276864e420 (diff)
parent01d259fe61c43fe659b9e94d098288c50bdc6c61 (diff)
Merge samba.org:/home/anton/ppc64/linux-2.5
into samba.org:/home/anton/ppc64/for-linus-ppc64
-rw-r--r--arch/i386/kernel/traps.c4
-rw-r--r--arch/i386/mm/fault.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c
index fa0f7505f102..f86037183b98 100644
--- a/arch/i386/kernel/traps.c
+++ b/arch/i386/kernel/traps.c
@@ -374,6 +374,9 @@ DO_ERROR_INFO(17, SIGBUS, "alignment check", alignment_check, BUS_ADRALN, get_cr
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;
@@ -386,6 +389,7 @@ asmlinkage void do_general_protection(struct pt_regs * regs, long error_code)
return;
gp_in_vm86:
+ local_irq_enable();
handle_vm86_fault((struct kernel_vm86_regs *) regs, error_code);
return;
diff --git a/arch/i386/mm/fault.c b/arch/i386/mm/fault.c
index 6ad63aadfaf0..b05a10a9a69f 100644
--- a/arch/i386/mm/fault.c
+++ b/arch/i386/mm/fault.c
@@ -223,7 +223,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code)
__asm__("movl %%cr2,%0":"=r" (address));
/* It's safe to allow irq's after cr2 has been saved */
- if (regs->eflags & X86_EFLAGS_IF)
+ if (regs->eflags & (X86_EFLAGS_IF|VM_MASK))
local_irq_enable();
tsk = current;