aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUrsula Braun <braunu@de.ibm.com>2008-04-17 01:46:03 -0400
committerHeiko Carstens <heiko.carstens@de.ibm.com>2008-04-17 01:46:58 -0400
commit35b58b028dfc99dd390a09f66945947c4945fa64 (patch)
treee4199f925608e366448b24880e081bd129a08e77
parentd1e23375bf5d1079cd54a1c6bc8592c42061f1e1 (diff)
[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 <braunu@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
-rw-r--r--drivers/s390/cio/qdio.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c
index 2b5bfb7c69e5..b1d18aa471c9 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)
1399 * q->dev_st_chg_ind is the indicator, be it shared or not. 1399 * q->dev_st_chg_ind is the indicator, be it shared or not.
1400 * only clear it, if indicator is non-shared 1400 * only clear it, if indicator is non-shared
1401 */ 1401 */
1402 if (!spare_ind_was_set) 1402 if (q->dev_st_chg_ind != &spare_indicator)
1403 tiqdio_clear_summary_bit((__u32*)q->dev_st_chg_ind); 1403 tiqdio_clear_summary_bit((__u32*)q->dev_st_chg_ind);
1404 1404
1405 if (q->hydra_gives_outbound_pcis) { 1405 if (q->hydra_gives_outbound_pcis) {