lkml.org 
[lkml]   [2006]   [Feb]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patches in this message
/
SubjectRe: [patch 16/17] s390: multiple subchannel sets support.
From
Date
Running linux-2.6.16-rc4 on the hercules s390x emulator we noticed a
boatload of program checks on the stsch instruction, 192K to be exact.
Hercules does not support multiple subchannel sets at this time.
However, __init_channel_subsystem does not recognize the -EIO return
code from css_alloc_subchannel.

Further investigation shows that this would have been avoided if the
response code from the chsc instruction was properly handled. In this
case chsc_enable_facility should have returned -EINVAL causing
init_channel_subsystem to set max_ssid to zero. But the response code
0x0002 (invalid request) is not checked and chsc_enable_facility returns
0 causing max_ssid to be set to __MAX_SSID.

I have verified that on a real machine that does not support multiple
channel sets (a 9672) the CHSC_SDA_OC_MSS chsc request gets response
code 0x0002. The emulator also sets the response code to 0x0002.

Users of the emulator can do `pgmtrace -15' to supress the 3.7 million
or so lines it spits out ;-)

Greg Smith

--- linux-2.6.16-rc4/drivers/s390/cio/css.c.orig 2006-02-23 17:59:08.000000000 -0500
+++ linux-2.6.16-rc4/drivers/s390/cio/css.c 2006-02-24 12:44:09.000000000 -0500
@@ -409,6 +409,9 @@
/* -ENXIO: no more subchannels. */
case -ENXIO:
return ret;
+ /* -EIO: this subchannel set not supported. */
+ case -EIO:
+ return ret;
default:
return 0;
}

--- linux-2.6.16-rc4/drivers/s390/cio/chsc.c.orig 2006-02-23 17:59:08.000000000 -0500
+++ linux-2.6.16-rc4/drivers/s390/cio/chsc.c 2006-02-25 05:43:24.000000000 -0500
@@ -1115,6 +1115,7 @@
goto out;
}
switch (sda_area->response.code) {
+ case 0x0002: /* invalid request */
case 0x0003: /* invalid request block */
case 0x0007:
ret = -EINVAL;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-02-25 12:15    [W:1.169 / U:0.328 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site