Skip to content

Commit

Permalink
kvm: require KVM_CAP_INTERNAL_ERROR_DATA
Browse files Browse the repository at this point in the history
This was introduced in KVM in Linux 2.6.33, we can require it unconditionally.

Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
bonzini committed Oct 25, 2023
1 parent cd08948 commit aacec9a
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions accel/kvm/kvm-all.c
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ static const KVMCapabilityInfo kvm_required_capabilites[] = {
KVM_CAP_INFO(USER_MEMORY),
KVM_CAP_INFO(DESTROY_MEMORY_REGION_WORKS),
KVM_CAP_INFO(JOIN_MEMORY_REGIONS_WORKS),
KVM_CAP_INFO(INTERNAL_ERROR_DATA),
KVM_CAP_LAST_INFO
};

Expand Down Expand Up @@ -2794,16 +2795,14 @@ static void kvm_handle_io(uint16_t port, MemTxAttrs attrs, void *data, int direc

static int kvm_handle_internal_error(CPUState *cpu, struct kvm_run *run)
{
int i;

fprintf(stderr, "KVM internal error. Suberror: %d\n",
run->internal.suberror);

if (kvm_check_extension(kvm_state, KVM_CAP_INTERNAL_ERROR_DATA)) {
int i;

for (i = 0; i < run->internal.ndata; ++i) {
fprintf(stderr, "extra data[%d]: 0x%016"PRIx64"\n",
i, (uint64_t)run->internal.data[i]);
}
for (i = 0; i < run->internal.ndata; ++i) {
fprintf(stderr, "extra data[%d]: 0x%016"PRIx64"\n",
i, (uint64_t)run->internal.data[i]);
}
if (run->internal.suberror == KVM_INTERNAL_ERROR_EMULATION) {
fprintf(stderr, "emulation failure\n");
Expand Down

0 comments on commit aacec9a

Please sign in to comment.