[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>

authored by Cornelia Huck and committed by Martin Schwidefsky f1ee3281 b05e3703

+13
+2
drivers/s390/cio/device_fsm.c
··· 349 349 350 350 sch = to_subchannel(cdev->dev.parent); 351 351 352 + ccw_device_set_timeout(cdev, 0); 353 + 352 354 if (state != DEV_STATE_ONLINE) 353 355 cio_disable_subchannel(sch); 354 356
+3
drivers/s390/cio/device_ops.c
··· 216 216 (stctl & SCSW_STCTL_PRIM_STATUS))) 217 217 return 0; 218 218 219 + /* Clear pending timers for device driver initiated I/O. */ 220 + if (ending_status) 221 + ccw_device_set_timeout(cdev, 0); 219 222 /* 220 223 * Now we are ready to call the device driver interrupt handler. 221 224 */
+8
drivers/s390/cio/device_pgid.c
··· 96 96 { 97 97 int ret; 98 98 99 + /* Set a timeout of 60s */ 100 + ccw_device_set_timeout(cdev, 60*HZ); 101 + 99 102 cdev->private->state = DEV_STATE_SENSE_PGID; 100 103 cdev->private->imask = 0x80; 101 104 cdev->private->iretry = 5; ··· 483 480 ccw_device_verify_done(cdev, -ENODEV); 484 481 return; 485 482 } 483 + /* After 60s path verification is considered to have failed. */ 484 + ccw_device_set_timeout(cdev, 60*HZ); 486 485 __ccw_device_verify_start(cdev); 487 486 } 488 487 ··· 559 554 void 560 555 ccw_device_disband_start(struct ccw_device *cdev) 561 556 { 557 + /* After 60s disbanding is considered to have failed. */ 558 + ccw_device_set_timeout(cdev, 60*HZ); 559 + 562 560 cdev->private->flags.pgid_single = 0; 563 561 cdev->private->iretry = 5; 564 562 cdev->private->imask = 0x80;