Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 89877e42827f16fa5f86b1df0c2860b1 > files > 1981

kernel-2.6.18-128.1.10.el5.src.rpm

From: Hans-Joachim Picht <hpicht@redhat.com>
Date: Fri, 25 Apr 2008 15:07:44 +0200
Subject: [s390] qdio: missed inb. traffic with online FCP devices
Message-id: 20080425130744.GC22728@redhat.com
O-Subject: [RHEL5 U3 PATCH 3/5] s390 - qdio: Undetected inb. traffic with many online FCP devices
Bugzilla: 444146
RH-Acked-by: Alan Cox <alan@redhat.com>
RH-Acked-by: Pete Zaitcev <zaitcev@redhat.com>

Description
============

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.

Now we make sure the common indicator field is reset only,
if all FCP-devices sharing the indicator are processed.

Bugzilla
=========

BZ 444082
https://bugzilla.redhat.com/show_bug.cgi?id=444082

Upstream status of the patch:
=============================

Patch is contained in linux-2.6 as git commit
35b58b028dfc99dd390a09f66945947c4945fa64

Test status:
============

The patch has been tested and fixes the problem.
The fix has been verified by the IBM test department.

Please ACK.

With best regards,

Hans

diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c
index 8cfb11c..cb6037c 100644
--- a/drivers/s390/cio/qdio.c
+++ b/drivers/s390/cio/qdio.c
@@ -1392,7 +1392,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) {