]> rtime.felk.cvut.cz Git - jailhouse.git/commitdiff
x86: Remove cpu_data parameter from vcpu_park
authorJan Kiszka <jan.kiszka@siemens.com>
Fri, 3 Apr 2015 17:51:51 +0000 (19:51 +0200)
committerJan Kiszka <jan.kiszka@siemens.com>
Fri, 10 Apr 2015 07:00:51 +0000 (09:00 +0200)
The function only works against the current CPU, thus should avoid to
take the misleading parameter. The implementations can obtain the
reference inline as needed.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
hypervisor/arch/x86/control.c
hypervisor/arch/x86/include/asm/vcpu.h
hypervisor/arch/x86/svm.c
hypervisor/arch/x86/vmx.c

index 8e2f66ded470b2c334b277cc14158bea18e7ff36..a9e21728bc2852d0b303f8e0760b47d54759c46c 100644 (file)
@@ -265,7 +265,7 @@ int x86_handle_events(struct per_cpu *cpu_data)
        /* wait_for_sipi is only modified on this CPU, so checking outside of
         * control_lock is fine */
        if (cpu_data->wait_for_sipi)
-               vcpu_park(cpu_data);
+               vcpu_park();
        else if (sipi_vector >= 0)
                apic_clear();
 
@@ -304,5 +304,5 @@ void arch_panic_park(void)
        x86_enter_wait_for_sipi(cpu_data);
        spin_unlock(&cpu_data->control_lock);
 
-       vcpu_park(cpu_data);
+       vcpu_park();
 }
index e8f5b471a16da1d85129a2d614915e43c1fa2f76..1ec14e2b84339e9b015b22acf3a705f801fbfe54 100644 (file)
@@ -72,7 +72,7 @@ vcpu_deactivate_vmm(struct registers *guest_regs);
 
 void vcpu_handle_exit(struct registers *guest_regs, struct per_cpu *cpu_data);
 
-void vcpu_park(struct per_cpu *cpu_data);
+void vcpu_park(void);
 
 void vcpu_nmi_handler(void);
 
index f65d61c17a1d7f40ca425204bba342e83d1bbe92..88cf47fe0d8861ca3bd87de01aee138d46141580 100644 (file)
@@ -1027,13 +1027,11 @@ void vcpu_handle_exit(struct registers *guest_regs, struct per_cpu *cpu_data)
        panic_park();
 }
 
-void vcpu_park(struct per_cpu *cpu_data)
+void vcpu_park(void)
 {
-       struct vmcb *vmcb = &cpu_data->vmcb;
-
-       svm_vcpu_reset(cpu_data, APIC_BSP_PSEUDO_SIPI);
+       svm_vcpu_reset(this_cpu_data(), APIC_BSP_PSEUDO_SIPI);
        /* No need to clear VMCB Clean bit: vcpu_reset() already does this */
-       vmcb->n_cr3 = paging_hvirt2phys(parked_mode_npt);
+       this_cpu_data()->vmcb.n_cr3 = paging_hvirt2phys(parked_mode_npt);
 
        vcpu_tlb_flush();
 }
index 3a2456ff957da31ce35a2610961258eb7cc2e8b3..931856c68992a775ad369855843e9a55fd0490cf 100644 (file)
@@ -861,7 +861,7 @@ void vcpu_nmi_handler(void)
        vmcs_write32(PIN_BASED_VM_EXEC_CONTROL, pin_based_ctrl);
 }
 
-void vcpu_park(struct per_cpu *cpu_data)
+void vcpu_park(void)
 {
        vmx_vcpu_reset(0);
        vmcs_write32(GUEST_ACTIVITY_STATE, GUEST_ACTIVITY_HLT);