mirror of
https://github.com/torvalds/linux.git
synced 2024-11-07 20:51:47 +00:00
KVM: arm/arm64: rename pause into power_off
The kvm_vcpu_arch pause field is renamed into power_off to prepare for the introduction of a new pause field. Also vcpu_pause is renamed into vcpu_sleep since we will sleep until both power_off and pause are false. Signed-off-by: Eric Auger <eric.auger@linaro.org> Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
This commit is contained in:
parent
75755c6d02
commit
3781528e30
@ -126,8 +126,8 @@ struct kvm_vcpu_arch {
|
|||||||
* here.
|
* here.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Don't run the guest on this vcpu */
|
/* vcpu power-off state */
|
||||||
bool pause;
|
bool power_off;
|
||||||
|
|
||||||
/* IO related fields */
|
/* IO related fields */
|
||||||
struct kvm_decode mmio_decode;
|
struct kvm_decode mmio_decode;
|
||||||
|
@ -318,7 +318,7 @@ void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)
|
|||||||
int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
|
int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
|
||||||
struct kvm_mp_state *mp_state)
|
struct kvm_mp_state *mp_state)
|
||||||
{
|
{
|
||||||
if (vcpu->arch.pause)
|
if (vcpu->arch.power_off)
|
||||||
mp_state->mp_state = KVM_MP_STATE_STOPPED;
|
mp_state->mp_state = KVM_MP_STATE_STOPPED;
|
||||||
else
|
else
|
||||||
mp_state->mp_state = KVM_MP_STATE_RUNNABLE;
|
mp_state->mp_state = KVM_MP_STATE_RUNNABLE;
|
||||||
@ -331,10 +331,10 @@ int kvm_arch_vcpu_ioctl_set_mpstate(struct kvm_vcpu *vcpu,
|
|||||||
{
|
{
|
||||||
switch (mp_state->mp_state) {
|
switch (mp_state->mp_state) {
|
||||||
case KVM_MP_STATE_RUNNABLE:
|
case KVM_MP_STATE_RUNNABLE:
|
||||||
vcpu->arch.pause = false;
|
vcpu->arch.power_off = false;
|
||||||
break;
|
break;
|
||||||
case KVM_MP_STATE_STOPPED:
|
case KVM_MP_STATE_STOPPED:
|
||||||
vcpu->arch.pause = true;
|
vcpu->arch.power_off = true;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -478,11 +478,11 @@ bool kvm_arch_intc_initialized(struct kvm *kvm)
|
|||||||
return vgic_initialized(kvm);
|
return vgic_initialized(kvm);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vcpu_pause(struct kvm_vcpu *vcpu)
|
static void vcpu_sleep(struct kvm_vcpu *vcpu)
|
||||||
{
|
{
|
||||||
wait_queue_head_t *wq = kvm_arch_vcpu_wq(vcpu);
|
wait_queue_head_t *wq = kvm_arch_vcpu_wq(vcpu);
|
||||||
|
|
||||||
wait_event_interruptible(*wq, !vcpu->arch.pause);
|
wait_event_interruptible(*wq, !vcpu->arch.power_off);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int kvm_vcpu_initialized(struct kvm_vcpu *vcpu)
|
static int kvm_vcpu_initialized(struct kvm_vcpu *vcpu)
|
||||||
@ -532,8 +532,8 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
|
|||||||
|
|
||||||
update_vttbr(vcpu->kvm);
|
update_vttbr(vcpu->kvm);
|
||||||
|
|
||||||
if (vcpu->arch.pause)
|
if (vcpu->arch.power_off)
|
||||||
vcpu_pause(vcpu);
|
vcpu_sleep(vcpu);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Disarming the background timer must be done in a
|
* Disarming the background timer must be done in a
|
||||||
@ -780,12 +780,12 @@ static int kvm_arch_vcpu_ioctl_vcpu_init(struct kvm_vcpu *vcpu,
|
|||||||
vcpu_reset_hcr(vcpu);
|
vcpu_reset_hcr(vcpu);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handle the "start in power-off" case by marking the VCPU as paused.
|
* Handle the "start in power-off" case.
|
||||||
*/
|
*/
|
||||||
if (test_bit(KVM_ARM_VCPU_POWER_OFF, vcpu->arch.features))
|
if (test_bit(KVM_ARM_VCPU_POWER_OFF, vcpu->arch.features))
|
||||||
vcpu->arch.pause = true;
|
vcpu->arch.power_off = true;
|
||||||
else
|
else
|
||||||
vcpu->arch.pause = false;
|
vcpu->arch.power_off = false;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,7 @@ static unsigned long kvm_psci_vcpu_suspend(struct kvm_vcpu *vcpu)
|
|||||||
|
|
||||||
static void kvm_psci_vcpu_off(struct kvm_vcpu *vcpu)
|
static void kvm_psci_vcpu_off(struct kvm_vcpu *vcpu)
|
||||||
{
|
{
|
||||||
vcpu->arch.pause = true;
|
vcpu->arch.power_off = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned long kvm_psci_vcpu_on(struct kvm_vcpu *source_vcpu)
|
static unsigned long kvm_psci_vcpu_on(struct kvm_vcpu *source_vcpu)
|
||||||
@ -87,7 +87,7 @@ static unsigned long kvm_psci_vcpu_on(struct kvm_vcpu *source_vcpu)
|
|||||||
*/
|
*/
|
||||||
if (!vcpu)
|
if (!vcpu)
|
||||||
return PSCI_RET_INVALID_PARAMS;
|
return PSCI_RET_INVALID_PARAMS;
|
||||||
if (!vcpu->arch.pause) {
|
if (!vcpu->arch.power_off) {
|
||||||
if (kvm_psci_version(source_vcpu) != KVM_ARM_PSCI_0_1)
|
if (kvm_psci_version(source_vcpu) != KVM_ARM_PSCI_0_1)
|
||||||
return PSCI_RET_ALREADY_ON;
|
return PSCI_RET_ALREADY_ON;
|
||||||
else
|
else
|
||||||
@ -115,7 +115,7 @@ static unsigned long kvm_psci_vcpu_on(struct kvm_vcpu *source_vcpu)
|
|||||||
* the general puspose registers are undefined upon CPU_ON.
|
* the general puspose registers are undefined upon CPU_ON.
|
||||||
*/
|
*/
|
||||||
*vcpu_reg(vcpu, 0) = context_id;
|
*vcpu_reg(vcpu, 0) = context_id;
|
||||||
vcpu->arch.pause = false;
|
vcpu->arch.power_off = false;
|
||||||
smp_mb(); /* Make sure the above is visible */
|
smp_mb(); /* Make sure the above is visible */
|
||||||
|
|
||||||
wq = kvm_arch_vcpu_wq(vcpu);
|
wq = kvm_arch_vcpu_wq(vcpu);
|
||||||
@ -153,7 +153,7 @@ static unsigned long kvm_psci_vcpu_affinity_info(struct kvm_vcpu *vcpu)
|
|||||||
mpidr = kvm_vcpu_get_mpidr_aff(tmp);
|
mpidr = kvm_vcpu_get_mpidr_aff(tmp);
|
||||||
if ((mpidr & target_affinity_mask) == target_affinity) {
|
if ((mpidr & target_affinity_mask) == target_affinity) {
|
||||||
matching_cpus++;
|
matching_cpus++;
|
||||||
if (!tmp->arch.pause)
|
if (!tmp->arch.power_off)
|
||||||
return PSCI_0_2_AFFINITY_LEVEL_ON;
|
return PSCI_0_2_AFFINITY_LEVEL_ON;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -179,7 +179,7 @@ static void kvm_prepare_system_event(struct kvm_vcpu *vcpu, u32 type)
|
|||||||
* re-initialized.
|
* re-initialized.
|
||||||
*/
|
*/
|
||||||
kvm_for_each_vcpu(i, tmp, vcpu->kvm) {
|
kvm_for_each_vcpu(i, tmp, vcpu->kvm) {
|
||||||
tmp->arch.pause = true;
|
tmp->arch.power_off = true;
|
||||||
kvm_vcpu_kick(tmp);
|
kvm_vcpu_kick(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,8 +149,8 @@ struct kvm_vcpu_arch {
|
|||||||
u32 mdscr_el1;
|
u32 mdscr_el1;
|
||||||
} guest_debug_preserved;
|
} guest_debug_preserved;
|
||||||
|
|
||||||
/* Don't run the guest */
|
/* vcpu power-off state */
|
||||||
bool pause;
|
bool power_off;
|
||||||
|
|
||||||
/* IO related fields */
|
/* IO related fields */
|
||||||
struct kvm_decode mmio_decode;
|
struct kvm_decode mmio_decode;
|
||||||
|
Loading…
Reference in New Issue
Block a user