aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/dev-replace.c
diff options
context:
space:
mode:
authorVitaly Kuznetsov <[email protected]>2018-01-25 15:37:07 +0000
committerRadim Krčmář <[email protected]>2018-01-31 17:25:34 +0000
commitd391f1207067268261add0485f0f34503539c5b0 (patch)
treeb6fbb28c52ff362013c2ca10763369febb2db1e9 /fs/btrfs/dev-replace.c
parentkvm: embed vcpu id to dentry of vcpu anon inode (diff)
downloadkernel-d391f1207067268261add0485f0f34503539c5b0.tar.gz
kernel-d391f1207067268261add0485f0f34503539c5b0.zip
x86/kvm/vmx: do not use vm-exit instruction length for fast MMIO when running nested
I was investigating an issue with seabios >= 1.10 which stopped working for nested KVM on Hyper-V. The problem appears to be in handle_ept_violation() function: when we do fast mmio we need to skip the instruction so we do kvm_skip_emulated_instruction(). This, however, depends on VM_EXIT_INSTRUCTION_LEN field being set correctly in VMCS. However, this is not the case. Intel's manual doesn't mandate VM_EXIT_INSTRUCTION_LEN to be set when EPT MISCONFIG occurs. While on real hardware it was observed to be set, some hypervisors follow the spec and don't set it; we end up advancing IP with some random value. I checked with Microsoft and they confirmed they don't fill VM_EXIT_INSTRUCTION_LEN on EPT MISCONFIG. Fix the issue by doing instruction skip through emulator when running nested. Fixes: 68c3b4d1676d870f0453c31d5a52e7e65c7448ae Suggested-by: Radim Krčmář <[email protected]> Suggested-by: Paolo Bonzini <[email protected]> Signed-off-by: Vitaly Kuznetsov <[email protected]> Acked-by: Michael S. Tsirkin <[email protected]> Signed-off-by: Radim Krčmář <[email protected]>
Diffstat (limited to 'fs/btrfs/dev-replace.c')
0 files changed, 0 insertions, 0 deletions