summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/state/state_unsafe.go
diff options
context:
space:
mode:
authorAndrei Vagin <avagin@google.com>2021-08-09 12:30:01 -0700
committergVisor bot <gvisor-bot@google.com>2021-08-09 12:32:31 -0700
commit14d6cb4436f19d0500e98179c3215517f1a77b08 (patch)
treedacdececd2bd9aceb154eaa44e684920b7341ada /pkg/sentry/state/state_unsafe.go
parent34ec00c5e775479b15ae8ad69456cef02f0a545a (diff)
platform/kvm: fix a race condition in vCPU.unlock()
Right now, it contains the code: origState := atomic.LoadUint32(&c.state) atomicbitops.AndUint32(&c.state, ^vCPUUser) The problem here is that vCPU.bounce that is called from another thread can add vCPUWaiter when origState has been read but vCPUUser isn't cleared yet. In this case, vCPU.unlock doesn't notify other threads about changes and c.bounce will be stuck in the futex_wait call. PiperOrigin-RevId: 389697411
Diffstat (limited to 'pkg/sentry/state/state_unsafe.go')
0 files changed, 0 insertions, 0 deletions