summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pkg/sentry/platform/kvm/bluepill_unsafe.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/pkg/sentry/platform/kvm/bluepill_unsafe.go b/pkg/sentry/platform/kvm/bluepill_unsafe.go
index 85703ff18..9e252af64 100644
--- a/pkg/sentry/platform/kvm/bluepill_unsafe.go
+++ b/pkg/sentry/platform/kvm/bluepill_unsafe.go
@@ -105,7 +105,11 @@ func bluepillHandler(context unsafe.Pointer) {
case _KVM_EXIT_IO:
throw("I/O")
case _KVM_EXIT_INTERNAL_ERROR:
- throw("internal error")
+ // An internal error is typically thrown when emulation
+ // fails. This can occur via the MMIO path below (and
+ // it might fail because we have multiple regions that
+ // are not mapped). We would actually prefer that no
+ // emulation occur, and don't mind at all if it fails.
case _KVM_EXIT_HYPERCALL:
throw("hypercall")
case _KVM_EXIT_DEBUG: