Message ID | 20180917163103.6113-24-cota@braap.org |
---|---|
State | New |
Headers | show |
Series | exec: drop BQL from interrupt handling | expand |
Am 17.09.18 um 18:30 schrieb Emilio G. Cota: > From: Paolo Bonzini <pbonzini@redhat.com> > > Cc: Cornelia Huck <cohuck@redhat.com> > Cc: Christian Borntraeger <borntraeger@de.ibm.com> > Cc: Alexander Graf <agraf@suse.de> > Cc: Richard Henderson <rth@twiddle.net> > Cc: David Hildenbrand <david@redhat.com> > Cc: qemu-s390x@nongnu.org > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > Signed-off-by: Emilio G. Cota <cota@braap.org> > --- > hw/intc/s390_flic.c | 2 +- > target/s390x/cpu.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c > index 5f8168f0f0..bce07c8a1e 100644 > --- a/hw/intc/s390_flic.c > +++ b/hw/intc/s390_flic.c > @@ -189,7 +189,7 @@ static void qemu_s390_flic_notify(uint32_t type) > CPU_FOREACH(cs) { > S390CPU *cpu = S390_CPU(cs); > > - cs->interrupt_request |= CPU_INTERRUPT_HARD; > + atomic_or(&cs->interrupt_request, CPU_INTERRUPT_HARD); > > /* ignore CPUs that are not sleeping */ > if (s390_cpu_get_state(cpu) != S390_CPU_STATE_OPERATING && > diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c > index 8ed4823d6e..d4c93abc29 100644 > --- a/target/s390x/cpu.c > +++ b/target/s390x/cpu.c > @@ -65,7 +65,7 @@ static bool s390_cpu_has_work(CPUState *cs) > return false; > } > > - if (!(cs->interrupt_request & CPU_INTERRUPT_HARD)) { > + if (!(atomic_read(&cs->interrupt_request) & CPU_INTERRUPT_HARD)) { > return false; > } > > Reviewed-by: David Hildenbrand <david@redhat.com>
On Mon, 17 Sep 2018 12:30:51 -0400 "Emilio G. Cota" <cota@braap.org> wrote: > From: Paolo Bonzini <pbonzini@redhat.com> > > Cc: Cornelia Huck <cohuck@redhat.com> > Cc: Christian Borntraeger <borntraeger@de.ibm.com> > Cc: Alexander Graf <agraf@suse.de> > Cc: Richard Henderson <rth@twiddle.net> > Cc: David Hildenbrand <david@redhat.com> > Cc: qemu-s390x@nongnu.org > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > Signed-off-by: Emilio G. Cota <cota@braap.org> > --- > hw/intc/s390_flic.c | 2 +- > target/s390x/cpu.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Cornelia Huck <cohuck@redhat.com>
diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c index 5f8168f0f0..bce07c8a1e 100644 --- a/hw/intc/s390_flic.c +++ b/hw/intc/s390_flic.c @@ -189,7 +189,7 @@ static void qemu_s390_flic_notify(uint32_t type) CPU_FOREACH(cs) { S390CPU *cpu = S390_CPU(cs); - cs->interrupt_request |= CPU_INTERRUPT_HARD; + atomic_or(&cs->interrupt_request, CPU_INTERRUPT_HARD); /* ignore CPUs that are not sleeping */ if (s390_cpu_get_state(cpu) != S390_CPU_STATE_OPERATING && diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index 8ed4823d6e..d4c93abc29 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -65,7 +65,7 @@ static bool s390_cpu_has_work(CPUState *cs) return false; } - if (!(cs->interrupt_request & CPU_INTERRUPT_HARD)) { + if (!(atomic_read(&cs->interrupt_request) & CPU_INTERRUPT_HARD)) { return false; }