From: Ursula Braun Date: Thu, 17 Apr 2008 05:46:03 +0000 (+0200) Subject: [S390] qdio: Unrecognized inbound traffic if many FCP devices are online X-Git-Tag: v2.6.26-rc1~1158^2~28 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=35b58b028dfc99dd390a09f66945947c4945fa64;p=linux-2.6 [S390] qdio: Unrecognized inbound traffic if many FCP devices are online Problem: Usually every FCP device has its own indicator field the adapter uses to signal outstanding work. Once a certain limit of devices is reached, a common indicator field is used. In certain scenarios qdio resets this common indicator field, but handles only part of the FCP-devices sharing the common indicator field. Thus inbound traffic on the non-processed shared FCP-devices is not recognized immediately. Solution: Make sure common indicator field is reset only, if all FCP-devices sharing the indicator are processed. Signed-off-by: Ursula Braun Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens --- diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c index 2b5bfb7c69..b1d18aa471 100644 --- a/drivers/s390/cio/qdio.c +++ b/drivers/s390/cio/qdio.c @@ -1399,7 +1399,7 @@ __tiqdio_inbound_processing(struct qdio_q *q, int spare_ind_was_set) * q->dev_st_chg_ind is the indicator, be it shared or not. * only clear it, if indicator is non-shared */ - if (!spare_ind_was_set) + if (q->dev_st_chg_ind != &spare_indicator) tiqdio_clear_summary_bit((__u32*)q->dev_st_chg_ind); if (q->hydra_gives_outbound_pcis) {