From: Cornelia Huck Date: Mon, 5 Feb 2007 20:17:36 +0000 (+0100) Subject: [S390] cio: Catch operand exceptions on stsch. X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=758976f9a55cb22ddc602a0690d67f9546e3e43f;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git [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 Signed-off-by: Martin Schwidefsky --- 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) struct schib schib; int ret; - if (stsch(schid, &schib)) + if (stsch_err(schid, &schib)) /* We're through */ return need_rescan ? -EAGAIN : -ENXIO; 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) /* Will be done on the slow path. */ return -EAGAIN; } - if (stsch(schid, &schib) || !schib.pmcw.dnv) { + if (stsch_err(schid, &schib) || !schib.pmcw.dnv) { /* Unusable - ignore. */ return 0; }