qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [qemu-s390x] [PATCH] s390x/css: disabled subchannels cannot be statu


From: Christian Borntraeger
Subject: Re: [qemu-s390x] [PATCH] s390x/css: disabled subchannels cannot be status pending
Date: Fri, 4 May 2018 15:44:01 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0


On 05/04/2018 03:39 PM, Thomas Huth wrote:
> 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>

I agree with your understanding of the PoP.

Acked-by: Christian Borntraeger <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>
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]