Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 3089

kernel-2.6.18-194.11.1.el5.src.rpm

From: Hans-Joachim Picht <hpicht@redhat.com>
Date: Tue, 1 Jul 2008 15:13:46 +0200
Subject: [s390] cio: I/O error after cable pulls
Message-id: 20080701131346.GF20922@redhat.com
O-Subject: [RHEL5 U3 PATCH 6/6] s390 - cio: I/O error after cable pulls
Bugzilla: 451281
RH-Acked-by: Pete Zaitcev <zaitcev@redhat.com>

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

After some cables to a dasd have been pulled, dasd unsuccessfully
tries to submit I/O. After the retries for the error recovery
have been exhausted, an I/O error is generated.

When the common I/O layer tries to start delayed path
verification, it detects a pending status and remembers to delay
path verification further. However, the pending interrupt is an
unsolicited interrupt, and no action is triggered.

Solution:

Restart path verification when an unsolicited interrupt occurs
if the doverify bit is set.

Bugzilla
=========

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

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

Patch is contained in linux-2.6 as git commit
18374d376c7eb30b6359759e767cd99397b377d2

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/device_fsm.c b/drivers/s390/cio/device_fsm.c
index c2c326b..ff267ea 100644
--- a/drivers/s390/cio/device_fsm.c
+++ b/drivers/s390/cio/device_fsm.c
@@ -828,6 +828,8 @@ ccw_device_irq(struct ccw_device *cdev, enum dev_event dev_event)
 call_handler_unsol:
 		if (cdev->handler)
 			cdev->handler (cdev, 0, irb);
+		if (cdev->private->flags.doverify)
+			ccw_device_online_verify(cdev, 0);
 		return;
 	}
 	/* Accumulate status and find out if a basic sense is needed. */