s390x/kvm: always ignore empty vcpu interrupt state
kvm_s390_vcpu_interrupt_pre_save() and kvm_s390_vcpu_interrupt_post_load() are essentially no-ops on hosts without KVM_CAP_S390_IRQ_STATE. Move the capability check after the check for saved IRQ state in kvm_s390_vcpu_interrupt_post_load() so that migration between hosts without KVM_CAP_S390_IRQ_STATE (including save / restore on the same host) continues to work. Fixes: 3cda44f7bae5 ("s390x/kvm: migrate vcpu interrupt state") Signed-off-by: Sascha Silbe <silbe@linux.vnet.ibm.com> Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Reviewed-by: Jens Freimann <jfrei@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
parent
2a72ea5f66
commit
b853d4cbf2
@ -2175,13 +2175,14 @@ int kvm_s390_vcpu_interrupt_post_load(S390CPU *cpu)
|
|||||||
struct kvm_s390_irq_state irq_state;
|
struct kvm_s390_irq_state irq_state;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
|
if (cpu->irqstate_saved_size == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (!kvm_check_extension(kvm_state, KVM_CAP_S390_IRQ_STATE)) {
|
if (!kvm_check_extension(kvm_state, KVM_CAP_S390_IRQ_STATE)) {
|
||||||
return -ENOSYS;
|
return -ENOSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cpu->irqstate_saved_size == 0) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
irq_state.buf = (uint64_t) cpu->irqstate;
|
irq_state.buf = (uint64_t) cpu->irqstate;
|
||||||
irq_state.len = cpu->irqstate_saved_size;
|
irq_state.len = cpu->irqstate_saved_size;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user