summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/platform/kvm/context.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/sentry/platform/kvm/context.go')
-rw-r--r--pkg/sentry/platform/kvm/context.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/pkg/sentry/platform/kvm/context.go b/pkg/sentry/platform/kvm/context.go
index be902be88..c75a4b415 100644
--- a/pkg/sentry/platform/kvm/context.go
+++ b/pkg/sentry/platform/kvm/context.go
@@ -29,6 +29,9 @@ type context struct {
// machine is the parent machine, and is immutable.
machine *machine
+ // info is the arch.SignalInfo cached for this context.
+ info arch.SignalInfo
+
// interrupt is the interrupt context.
interrupt interrupt.Forwarder
}
@@ -65,7 +68,7 @@ func (c *context) Switch(as platform.AddressSpace, ac arch.Context, _ int32) (*a
}
// Take the blue pill.
- si, at, err := cpu.SwitchToUser(switchOpts)
+ at, err := cpu.SwitchToUser(switchOpts, &c.info)
// Clear the address space.
cpu.active.set(nil)
@@ -75,7 +78,7 @@ func (c *context) Switch(as platform.AddressSpace, ac arch.Context, _ int32) (*a
// All done.
c.interrupt.Disable()
- return si, at, err
+ return &c.info, at, err
}
// Interrupt interrupts the running context.