Pull kvm fixes from Paolo Bonzini: "ARM64: - Fix pKVM error path on init, making sure we do not change critical system registers as we're about to fail - Make sure that the host's vector length is at capped by a value common to all CPUs - Fix kvm_has_feat*() handling of "negative" features, as the current code is pretty broken - Promote Joey to the status of official reviewer, while James steps down -- hopefully only temporarly x86: - Fix compilation with KVM_INTEL=KVM_AMD=n - Fix disabling KVM_X86_QUIRK_SLOT_ZAP_ALL when shadow MMU is in use Selftests: - Fix compilation on non-x86 architectures" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: x86/reboot: emergency callbacks are now registered by common KVM code KVM: x86: leave kvm.ko out of the build if no vendor module is requested KVM: x86/mmu: fix KVM_X86_QUIRK_SLOT_ZAP_ALL for shadow MMU KVM: arm64: Fix kvm_has_feat*() handling of negative features KVM: selftests: Fix build on architectures other than x86_64 KVM: arm64: Another reviewer reshuffle KVM: arm64: Constrain the host to the maximum shared SVE VL with pKVM KVM: arm64: Fix __pkvm_init_vcpu cptr_el2 error path
Showing the changes to tools/testing (2 of 12 files). Show all
Unified · Split
| @@ -169,12 +169,14 @@ int main(int argc, char *argv[]) · 168 unmodified lines | ||
| 169 | 169 | case 'i': |
| 170 | 170 | p.nr_iterations = atoi_positive("Number of iterations", optarg); |
| 171 | 171 | break; |
| 172 | +#ifdef __x86_64__ | |
| 172 | 173 | case 'q': |
| 173 | 174 | p.disable_slot_zap_quirk = true; |
| 174 | 175 | |
| 175 | 176 | TEST_REQUIRE(kvm_check_cap(KVM_CAP_DISABLE_QUIRKS2) & |
| 176 | 177 | KVM_X86_QUIRK_SLOT_ZAP_ALL); |
| 177 | 178 | break; |
| 179 | +#endif | |
| 178 | 180 | case 'h': |
| 179 | 181 | default: |
| 180 | 182 | help(argv[0]); |
| @@ -113,7 +113,9 @@ static_assert(ATOMIC_BOOL_LOCK_FREE == 2, "atomic bool is not lockless"); · 112 unmodified lines | ||
| 113 | 113 | static sem_t vcpu_ready; |
| 114 | 114 | |
| 115 | 115 | static bool map_unmap_verify; |
| 116 | +#ifdef __x86_64__ | |
| 116 | 117 | static bool disable_slot_zap_quirk; |
| 118 | +#endif | |
| 117 | 119 | |
| 118 | 120 | static bool verbose; |
| 119 | 121 | #define pr_info_v(...) \ |
| @@ -579,8 +581,10 @@ static bool test_memslot_move_prepare(struct vm_data *data, · 459 unmodified lines | ||
| 579 | 581 | uint32_t guest_page_size = data->vm->page_size; |
| 580 | 582 | uint64_t movesrcgpa, movetestgpa; |
| 581 | 583 | |
| 584 | +#ifdef __x86_64__ | |
| 582 | 585 | if (disable_slot_zap_quirk) |
| 583 | 586 | vm_enable_cap(data->vm, KVM_CAP_DISABLE_QUIRKS2, KVM_X86_QUIRK_SLOT_ZAP_ALL); |
| 587 | +#endif | |
| 584 | 588 | |
| 585 | 589 | movesrcgpa = vm_slot2gpa(data, data->nslots - 1); |
| 586 | 590 | |
| @@ -971,11 +975,13 @@ static bool parse_args(int argc, char *argv[], · 384 unmodified lines | ||
| 971 | 975 | case 'd': |
| 972 | 976 | map_unmap_verify = true; |
| 973 | 977 | break; |
| 978 | +#ifdef __x86_64__ | |
| 974 | 979 | case 'q': |
| 975 | 980 | disable_slot_zap_quirk = true; |
| 976 | 981 | TEST_REQUIRE(kvm_check_cap(KVM_CAP_DISABLE_QUIRKS2) & |
| 977 | 982 | KVM_X86_QUIRK_SLOT_ZAP_ALL); |
| 978 | 983 | break; |
| 984 | +#endif | |
| 979 | 985 | case 's': |
| 980 | 986 | targs->nslots = atoi_paranoid(optarg); |
| 981 | 987 | if (targs->nslots <= 1 && targs->nslots != -1) { |