diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2021-12-21 12:51:09 -0500 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2021-12-21 12:51:09 -0500 |
commit | 855fb0384a3db2ae33b42f7b9bb6ecb753a40880 (patch) | |
tree | 9efb13c53c30cd895c430a8f3593f67a51ecb90e /arch/x86/kvm/mmu/tdp_iter.c | |
parent | 5a213b9220e0bf4c924412d83d7c9a90acb553e8 (diff) | |
parent | fdba608f15e2427419997b0898750a49a735afcb (diff) |
Merge remote-tracking branch 'kvm/master' into HEAD
Pick commit fdba608f15e2 ("KVM: VMX: Wake vCPU when delivering posted
IRQ even if vCPU == this vCPU"). In addition to fixing a bug, it
also aligns the non-nested and nested usage of triggering posted
interrupts, allowing for additional cleanups.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/mmu/tdp_iter.c')
-rw-r--r-- | arch/x86/kvm/mmu/tdp_iter.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/kvm/mmu/tdp_iter.c b/arch/x86/kvm/mmu/tdp_iter.c index b3ed302c1a35..caa96c270b95 100644 --- a/arch/x86/kvm/mmu/tdp_iter.c +++ b/arch/x86/kvm/mmu/tdp_iter.c @@ -26,6 +26,7 @@ static gfn_t round_gfn_for_level(gfn_t gfn, int level) */ void tdp_iter_restart(struct tdp_iter *iter) { + iter->yielded = false; iter->yielded_gfn = iter->next_last_level_gfn; iter->level = iter->root_level; @@ -160,6 +161,11 @@ static bool try_step_up(struct tdp_iter *iter) */ void tdp_iter_next(struct tdp_iter *iter) { + if (iter->yielded) { + tdp_iter_restart(iter); + return; + } + if (try_step_down(iter)) return; |