Commit e2940978 authored by Justin Terry (VM)'s avatar Justin Terry (VM) Committed by Paolo Bonzini
Browse files

WHXP Removes the use of WHvGetExitContextSize



The use of WHvGetExitContextSize will break ABI compatibility if the platform
changes the context size while a qemu compiled executable does not recompile.
To avoid this we now use sizeof and let the platform determine which version
of the struction was passed for ABI compatibility.

Signed-off-by: default avatarJustin Terry (VM) <juterry@microsoft.com>
Message-Id: <1519665216-1078-8-git-send-email-juterry@microsoft.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarJustin Terry (VM) via Qemu-devel <qemu-devel@nongnu.org>
parent 2bf3e74d
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@
struct whpx_state {
    uint64_t mem_quota;
    WHV_PARTITION_HANDLE partition;
    uint32_t exit_ctx_size;
};

static const WHV_REGISTER_NAME whpx_register_names[] = {
@@ -899,7 +898,7 @@ static int whpx_vcpu_run(CPUState *cpu)
        }

        hr = WHvRunVirtualProcessor(whpx->partition, cpu->cpu_index,
                                    &vcpu->exit_ctx, whpx->exit_ctx_size);
                                    &vcpu->exit_ctx, sizeof(vcpu->exit_ctx));

        if (FAILED(hr)) {
            error_report("WHPX: Failed to exec a virtual processor,"
@@ -1042,8 +1041,7 @@ int whpx_init_vcpu(CPUState *cpu)
        }
    }

    vcpu = g_malloc0(FIELD_OFFSET(struct whpx_vcpu, exit_ctx) +
                     whpx->exit_ctx_size);
    vcpu = g_malloc0(sizeof(struct whpx_vcpu));

    if (!vcpu) {
        error_report("WHPX: Failed to allocte VCPU context.");
@@ -1300,9 +1298,6 @@ static int whpx_accel_init(MachineState *ms)
        goto error;
    }

    whpx->exit_ctx_size = WHvGetRunExitContextSize();
    assert(whpx->exit_ctx_size);

    whpx_memory_init();

    cpu_interrupt_handler = whpx_handle_interrupt;