diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2015-03-24 11:51:39 +1030 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2015-03-24 11:52:08 +1030 |
commit | 2f921b5bb0511fb698681d8ef35c48be7a9116bf (patch) | |
tree | e4f07e4d66f47c7af9142bf13e5851a77acec77f /drivers/lguest/interrupts_and_traps.c | |
parent | 7042cb4eb30967b5eb9eeba04907882f04d6b6e5 (diff) | |
download | op-kernel-dev-2f921b5bb0511fb698681d8ef35c48be7a9116bf.zip op-kernel-dev-2f921b5bb0511fb698681d8ef35c48be7a9116bf.tar.gz |
lguest: suppress interrupts for single insn, not range.
The last patch reduced our interrupt-suppression region to one address,
so simplify the code somewhat.
Also, remove the obsolete undefined instruction ranges and the comment
which refers to lguest_guest.S instead of head_32.S.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/lguest/interrupts_and_traps.c')
-rw-r--r-- | drivers/lguest/interrupts_and_traps.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/lguest/interrupts_and_traps.c b/drivers/lguest/interrupts_and_traps.c index 70dfcdc..6d4c072 100644 --- a/drivers/lguest/interrupts_and_traps.c +++ b/drivers/lguest/interrupts_and_traps.c @@ -204,8 +204,7 @@ void try_deliver_interrupt(struct lg_cpu *cpu, unsigned int irq, bool more) * They may be in the middle of an iret, where they asked us never to * deliver interrupts. */ - if (cpu->regs->eip >= cpu->lg->noirq_start && - (cpu->regs->eip < cpu->lg->noirq_end)) + if (cpu->regs->eip == cpu->lg->noirq_iret) return; /* If they're halted, interrupts restart them. */ @@ -395,8 +394,9 @@ static bool direct_trap(unsigned int num) * The Guest has the ability to turn its interrupt gates into trap gates, * if it is careful. The Host will let trap gates can go directly to the * Guest, but the Guest needs the interrupts atomically disabled for an - * interrupt gate. It can do this by pointing the trap gate at instructions - * within noirq_start and noirq_end, where it can safely disable interrupts. + * interrupt gate. The Host could provide a mechanism to register more + * "no-interrupt" regions, and the Guest could point the trap gate at + * instructions within that region, where it can safely disable interrupts. */ /*M:006 |