mirror of
https://github.com/adulau/aha.git
synced 2025-01-03 22:53:18 +00:00
[S390] dasd: fix timeout handling in interrupt handler
When the dasd_int_handler is called with an error code instead of an irb, the associated request should be restarted. This handling was missing from the -ETIMEDOUT case. In fact it should be done in any case. Signed-off-by: Stefan Weinhuber <wein@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
5cbbf16a0f
commit
f16f584350
1 changed files with 3 additions and 2 deletions
|
@ -925,6 +925,8 @@ static void dasd_handle_killed_request(struct ccw_device *cdev,
|
||||||
struct dasd_ccw_req *cqr;
|
struct dasd_ccw_req *cqr;
|
||||||
struct dasd_device *device;
|
struct dasd_device *device;
|
||||||
|
|
||||||
|
if (!intparm)
|
||||||
|
return;
|
||||||
cqr = (struct dasd_ccw_req *) intparm;
|
cqr = (struct dasd_ccw_req *) intparm;
|
||||||
if (cqr->status != DASD_CQR_IN_IO) {
|
if (cqr->status != DASD_CQR_IN_IO) {
|
||||||
MESSAGE(KERN_DEBUG,
|
MESSAGE(KERN_DEBUG,
|
||||||
|
@ -976,17 +978,16 @@ void dasd_int_handler(struct ccw_device *cdev, unsigned long intparm,
|
||||||
if (IS_ERR(irb)) {
|
if (IS_ERR(irb)) {
|
||||||
switch (PTR_ERR(irb)) {
|
switch (PTR_ERR(irb)) {
|
||||||
case -EIO:
|
case -EIO:
|
||||||
dasd_handle_killed_request(cdev, intparm);
|
|
||||||
break;
|
break;
|
||||||
case -ETIMEDOUT:
|
case -ETIMEDOUT:
|
||||||
printk(KERN_WARNING"%s(%s): request timed out\n",
|
printk(KERN_WARNING"%s(%s): request timed out\n",
|
||||||
__func__, cdev->dev.bus_id);
|
__func__, cdev->dev.bus_id);
|
||||||
//FIXME - dasd uses own timeout interface...
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printk(KERN_WARNING"%s(%s): unknown error %ld\n",
|
printk(KERN_WARNING"%s(%s): unknown error %ld\n",
|
||||||
__func__, cdev->dev.bus_id, PTR_ERR(irb));
|
__func__, cdev->dev.bus_id, PTR_ERR(irb));
|
||||||
}
|
}
|
||||||
|
dasd_handle_killed_request(cdev, intparm);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue