[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [qemu-s390x] [PATCH 1/2] s390x/migration: use zero flag parameter
From: |
Thomas Huth |
Subject: |
Re: [qemu-s390x] [PATCH 1/2] s390x/migration: use zero flag parameter |
Date: |
Wed, 22 Nov 2017 15:37:55 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 |
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 <address@hidden>
> ---
> 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 <address@hidden>
IMHO that would still be fine for 2.11, too.
Thomas
- [qemu-s390x] [PATCH 0/2] s390x fixes (post 2.11), Christian Borntraeger, 2017/11/22
- [qemu-s390x] [PATCH 2/2] pc-bios/s390-ccw: zero out bss section, Christian Borntraeger, 2017/11/22
- [qemu-s390x] [PATCH 1/2] s390x/migration: use zero flag parameter, Christian Borntraeger, 2017/11/22
- Re: [qemu-s390x] [PATCH 0/2] s390x fixes (post 2.11), Cornelia Huck, 2017/11/22
- Re: [qemu-s390x] [Qemu-devel] [PATCH 0/2] s390x fixes (post 2.11), no-reply, 2017/11/22
- Re: [qemu-s390x] [PATCH 0/2] s390x fixes (post 2.11), Cornelia Huck, 2017/11/22