diff options
author | gVisor bot <gvisor-bot@google.com> | 2021-05-01 06:11:37 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-05-01 06:11:37 +0000 |
commit | 7e11a1532fdb66a9e89d55a7d3f951c602315c17 (patch) | |
tree | 1f27f9c516d8e16bbec7b7d436b428b4ebee3e96 /pkg/sentry/platform | |
parent | 4685f645de890131158be0290c470edb59484105 (diff) | |
parent | cde8e8b7a905ce53fe72a1a71b86e9ef352bbc3a (diff) |
Merge release-20210419.0-50-gcde8e8b7a (automated)
Diffstat (limited to 'pkg/sentry/platform')
-rw-r--r-- | pkg/sentry/platform/kvm/machine_amd64.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/pkg/sentry/platform/kvm/machine_amd64.go b/pkg/sentry/platform/kvm/machine_amd64.go index d7abfefb4..f727e61b0 100644 --- a/pkg/sentry/platform/kvm/machine_amd64.go +++ b/pkg/sentry/platform/kvm/machine_amd64.go @@ -351,6 +351,10 @@ func (c *vCPU) SwitchToUser(switchOpts ring0.SwitchOpts, info *arch.SignalInfo) // allocations occur. entersyscall() bluepill(c) + // The root table physical page has to be mapped to not fault in iret + // or sysret after switching into a user address space. sysret and + // iret are in the upper half that is global and already mapped. + switchOpts.PageTables.PrefaultRootTable() prefaultFloatingPointState(switchOpts.FloatingPointState) vector = c.CPU.SwitchToUser(switchOpts) exitsyscall() |