On 22.11.2017 15:26, Christian Borntraeger wrote: > valgrind pointed out that we call KVM_S390_GET_IRQ_STATE with an > undefined value for flags. Right now this is unused, but we > better play safe. > The same is true for SET_IRQ_STATE. While QEMU is now fixed in > that regard, we should make sure to not use the flag and pad > fields in the kernel. A corresponding kernel documentation patch > will be submitted later. > > Signed-off-by: Christian Borntraeger <borntrae...@de.ibm.com> > --- > target/s390x/kvm.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c > index 343fcec..76065ec 100644 > --- a/target/s390x/kvm.c > +++ b/target/s390x/kvm.c > @@ -2069,7 +2069,10 @@ int kvm_s390_set_cpu_state(S390CPU *cpu, uint8_t > cpu_state) > > void kvm_s390_vcpu_interrupt_pre_save(S390CPU *cpu) > { > - struct kvm_s390_irq_state irq_state; > + struct kvm_s390_irq_state irq_state = { > + .buf = (uint64_t) cpu->irqstate, > + .len = VCPU_IRQ_BUF_SIZE, > + }; > CPUState *cs = CPU(cpu); > int32_t bytes; > > @@ -2077,9 +2080,6 @@ void kvm_s390_vcpu_interrupt_pre_save(S390CPU *cpu) > return; > } > > - irq_state.buf = (uint64_t) cpu->irqstate; > - irq_state.len = VCPU_IRQ_BUF_SIZE; > - > bytes = kvm_vcpu_ioctl(cs, KVM_S390_GET_IRQ_STATE, &irq_state); > if (bytes < 0) { > cpu->irqstate_saved_size = 0; > @@ -2093,7 +2093,10 @@ void kvm_s390_vcpu_interrupt_pre_save(S390CPU *cpu) > int kvm_s390_vcpu_interrupt_post_load(S390CPU *cpu) > { > CPUState *cs = CPU(cpu); > - struct kvm_s390_irq_state irq_state; > + struct kvm_s390_irq_state irq_state = { > + .buf = (uint64_t) cpu->irqstate, > + .len = cpu->irqstate_saved_size, > + }; > int r; > > if (cpu->irqstate_saved_size == 0) { > @@ -2104,9 +2107,6 @@ int kvm_s390_vcpu_interrupt_post_load(S390CPU *cpu) > return -ENOSYS; > } > > - irq_state.buf = (uint64_t) cpu->irqstate; > - irq_state.len = cpu->irqstate_saved_size; > - > r = kvm_vcpu_ioctl(cs, KVM_S390_SET_IRQ_STATE, &irq_state); > if (r) { > error_report("Setting interrupt state failed %d", r); >
Reviewed-by: Thomas Huth <th...@redhat.com> IMHO that would still be fine for 2.11, too. Thomas