aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCornelia Huck <cornelia.huck@de.ibm.com>2007-02-05 15:17:36 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2007-02-05 15:17:36 -0500
commit758976f9a55cb22ddc602a0690d67f9546e3e43f (patch)
tree760b3e46fb3e3eb793b8744dca8541c9e82a6375
parentd8c351a97e492dcf24021a0875bf138bfa1374f9 (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>
-rw-r--r--drivers/s390/cio/chsc.c2
-rw-r--r--drivers/s390/cio/css.c2
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 }