aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/device_pgid.c
diff options
context:
space:
mode:
authorCornelia Huck <cornelia.huck@de.ibm.com>2006-10-04 14:02:02 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2006-10-04 14:02:02 -0400
commitf1ee3281bedbbca70a1f53bc715ea6f27c616052 (patch)
treef5615111db312f3a429a66aa62119803d781078a /drivers/s390/cio/device_pgid.c
parentb05e37035298148b6c311eccf06ac50fd389f0b2 (diff)
[S390] Add timeouts during sense PGID, path verification and disband PGID.
While the machine owns us an interrupt in these cases (and we should get one), reality isn't always like that... Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/device_pgid.c')
-rw-r--r--drivers/s390/cio/device_pgid.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/s390/cio/device_pgid.c b/drivers/s390/cio/device_pgid.c
index 8ca2d078848c..84917b39de45 100644
--- a/drivers/s390/cio/device_pgid.c
+++ b/drivers/s390/cio/device_pgid.c
@@ -96,6 +96,9 @@ ccw_device_sense_pgid_start(struct ccw_device *cdev)
96{ 96{
97 int ret; 97 int ret;
98 98
99 /* Set a timeout of 60s */
100 ccw_device_set_timeout(cdev, 60*HZ);
101
99 cdev->private->state = DEV_STATE_SENSE_PGID; 102 cdev->private->state = DEV_STATE_SENSE_PGID;
100 cdev->private->imask = 0x80; 103 cdev->private->imask = 0x80;
101 cdev->private->iretry = 5; 104 cdev->private->iretry = 5;
@@ -480,6 +483,8 @@ ccw_device_verify_start(struct ccw_device *cdev)
480 ccw_device_verify_done(cdev, -ENODEV); 483 ccw_device_verify_done(cdev, -ENODEV);
481 return; 484 return;
482 } 485 }
486 /* After 60s path verification is considered to have failed. */
487 ccw_device_set_timeout(cdev, 60*HZ);
483 __ccw_device_verify_start(cdev); 488 __ccw_device_verify_start(cdev);
484} 489}
485 490
@@ -554,6 +559,9 @@ ccw_device_disband_irq(struct ccw_device *cdev, enum dev_event dev_event)
554void 559void
555ccw_device_disband_start(struct ccw_device *cdev) 560ccw_device_disband_start(struct ccw_device *cdev)
556{ 561{
562 /* After 60s disbanding is considered to have failed. */
563 ccw_device_set_timeout(cdev, 60*HZ);
564
557 cdev->private->flags.pgid_single = 0; 565 cdev->private->flags.pgid_single = 0;
558 cdev->private->iretry = 5; 566 cdev->private->iretry = 5;
559 cdev->private->imask = 0x80; 567 cdev->private->imask = 0x80;