diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c index dadff1838fec1..e2026d54dd375 100644 --- a/drivers/s390/cio/css.c +++ b/drivers/s390/cio/css.c @@ -581,6 +581,11 @@ static int slow_eval_known_fn(struct subchannel *sch, void *data) rc = css_evaluate_known_subchannel(sch, 1); if (rc == -EAGAIN) css_schedule_eval(sch->schid); + /* + * The loop might take long time for platforms with lots of + * known devices. Allow scheduling here. + */ + cond_resched(); } return 0; }