[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [qemu-s390x] [PATCH] s390x/css: disabled subchannels cannot be statu
From: |
Thomas Huth |
Subject: |
Re: [qemu-s390x] [PATCH] s390x/css: disabled subchannels cannot be status pending |
Date: |
Fri, 4 May 2018 15:39:40 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 |
On 04.05.2018 15:16, Cornelia Huck wrote:
> The 3270 code will try to post an attention interrupt when the
> 3270 emulator (e.g. x3270) attaches. If the guest has not yet
> enabled the subchannel for the 3270 device, we will give it a
> spurious status during msch when it does so later.
>
> To fix this, just don't do anything in css_conditional_io_interrupt()
> if the subchannel is not enabled. The 3270 code will work fine with
> that, and the other user of this function (virtio-ccw) never
> attempts to post an interrupt for a disabled device to begin with.
>
> Reported-by: Thomas Huth <address@hidden>
> Signed-off-by: Cornelia Huck <address@hidden>
> ---
> hw/s390x/css.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/hw/s390x/css.c b/hw/s390x/css.c
> index 301bf1772f..56c3fa8c89 100644
> --- a/hw/s390x/css.c
> +++ b/hw/s390x/css.c
> @@ -616,6 +616,14 @@ void css_inject_io_interrupt(SubchDev *sch)
>
> void css_conditional_io_interrupt(SubchDev *sch)
> {
> + /*
> + * If the subchannel is not enabled, it is not made status pending
> + * (see PoP p. 16-17, "Status Control").
> + */
> + if (!(sch->curr_status.pmcw.flags & PMCW_FLAGS_MASK_ENA)) {
> + return;
> + }
> +
> /*
> * If the subchannel is not currently status pending, make it pending
> * with alert status.
>
Tested-by: Thomas Huth <address@hidden>