summaryrefslogtreecommitdiff
path: root/drivers/virtio/virtio_pci_modern.c
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2015-04-01 06:02:20 +0300
committerRusty Russell <rusty@rustcorp.com.au>2015-04-01 07:07:15 +0300
commit3eebd233fcb392286d385e764eb91e90d6218cdf (patch)
treee3e1eb107605792e28ddb26db668bab580b9c625 /drivers/virtio/virtio_pci_modern.c
parent012665391dfe12bf8a88d1000e627be012c39dbf (diff)
downloadlinux-3eebd233fcb392286d385e764eb91e90d6218cdf.tar.xz
lguest: handle traps on the "interrupt suppressed" iret instruction.
Lguest's "iret" is non-atomic, as it needs to restore the interrupt state before the real iret (the guest can't actually suppress interrupts). For this reason, the host discards an interrupt if it occurs in this (1-instruction) window. We can do better, by emulating the iret execution, then immediately setting up the interrupt handler. In fact, we don't need to do much, as emulating the iret and setting up th stack for the interrupt handler basically cancel each other out. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/virtio/virtio_pci_modern.c')
0 files changed, 0 insertions, 0 deletions