[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/3] s390/css: Fix subchannel detection
From: |
Christian Borntraeger |
Subject: |
Re: [Qemu-devel] [PATCH 2/3] s390/css: Fix subchannel detection |
Date: |
Sun, 24 Feb 2013 12:58:32 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 |
On 24/02/13 12:32, Andreas Färber wrote:
> Am 22.02.2013 20:01, schrieb Jens Freimann:
>> From: Christian Borntraeger <address@hidden>
>>
>> We have to consider the m bit to find the real channel subsystem when
>> determining the last subchannel.
>>
>> If we fail to take this into account, removal of a subchannel in
>> the middle of a big list of devices will stop device detection after
>> a reboot.
>>
>> Signed-off-by: Christian Borntraeger <address@hidden>
>> Signed-off-by: Jens Freimann <address@hidden>
>> Reviewed-by: Cornelia Huck <address@hidden>
>> ---
>> hw/s390x/css.c | 11 +++++++----
>> target-s390x/cpu.h | 2 +-
>> target-s390x/ioinst.c | 2 +-
>> 3 files changed, 9 insertions(+), 6 deletions(-)
>>
>> diff --git a/hw/s390x/css.c b/hw/s390x/css.c
>> index 3244201..8240e48 100644
>> --- a/hw/s390x/css.c
>> +++ b/hw/s390x/css.c
>> @@ -988,15 +988,18 @@ int css_do_rchp(uint8_t cssid, uint8_t chpid)
>> return 0;
>> }
>>
>> -bool css_schid_final(uint8_t cssid, uint8_t ssid, uint16_t schid)
>> +bool css_schid_final(int m, uint8_t cssid, uint8_t ssid, uint16_t schid)
>> {
>> SubchSet *set;
>> + uint8_t real_cssid;
>>
>> - if (cssid > MAX_CSSID || ssid > MAX_SSID || !channel_subsys->css[cssid]
>> ||
>> - !channel_subsys->css[cssid]->sch_set[ssid]) {
>> + real_cssid = (!m && (cssid == 0)) ? channel_subsys->default_cssid :
>> cssid;
>
> If m is a single bit and only used as boolean here, any reason not to
> make the argument a bool?
Consistency - the calling code also has m defined as int (the whole css and
ioinst
code) - making it bool wouldnt fit into that code.
Furthermore, bool doesnt seem to be the perfect fit for a bit, a bit is 0 or 1
and not true or false. If bool, the variable should be called mbitset or
something like that.
Christian
Christian