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: Justin Terry (VM) <juterry@microsoft.com> Message-Id: <1519665216-1078-8-git-send-email-juterry@microsoft.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Justin Terry (VM) via Qemu-devel <qemu-devel@nongnu.org>
This commit is contained in:
		
							parent
							
								
									2bf3e74de4
								
							
						
					
					
						commit
						e2940978fc
					
				| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue