diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2007-02-05 15:17:36 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-02-05 15:17:36 -0500 |
commit | 758976f9a55cb22ddc602a0690d67f9546e3e43f (patch) | |
tree | 760b3e46fb3e3eb793b8744dca8541c9e82a6375 /drivers/s390/cio | |
parent | d8c351a97e492dcf24021a0875bf138bfa1374f9 (diff) |
[S390] cio: Catch operand exceptions on stsch.
If we have a subchannel id which has been generated via
for_each_subchannel(), it might contain an invalid subchannel set id.
We need to catch the ensuing operand exception by using stsch_err()
instead of stsch() in all possible cases.
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio')
-rw-r--r-- | drivers/s390/cio/chsc.c | 2 | ||||
-rw-r--r-- | drivers/s390/cio/css.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c index 15b0e6329cf3..514daeaba705 100644 --- a/drivers/s390/cio/chsc.c +++ b/drivers/s390/cio/chsc.c | |||
@@ -608,7 +608,7 @@ __chp_add_new_sch(struct subchannel_id schid) | |||
608 | struct schib schib; | 608 | struct schib schib; |
609 | int ret; | 609 | int ret; |
610 | 610 | ||
611 | if (stsch(schid, &schib)) | 611 | if (stsch_err(schid, &schib)) |
612 | /* We're through */ | 612 | /* We're through */ |
613 | return need_rescan ? -EAGAIN : -ENXIO; | 613 | return need_rescan ? -EAGAIN : -ENXIO; |
614 | 614 | ||
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c index 2da01b7a3b0a..bdf13699fe0d 100644 --- a/drivers/s390/cio/css.c +++ b/drivers/s390/cio/css.c | |||
@@ -296,7 +296,7 @@ static int css_evaluate_new_subchannel(struct subchannel_id schid, int slow) | |||
296 | /* Will be done on the slow path. */ | 296 | /* Will be done on the slow path. */ |
297 | return -EAGAIN; | 297 | return -EAGAIN; |
298 | } | 298 | } |
299 | if (stsch(schid, &schib) || !schib.pmcw.dnv) { | 299 | if (stsch_err(schid, &schib) || !schib.pmcw.dnv) { |
300 | /* Unusable - ignore. */ | 300 | /* Unusable - ignore. */ |
301 | return 0; | 301 | return 0; |
302 | } | 302 | } |