diff options
| author | Michael Ernst <mernst@de.ibm.com> | 2008-05-15 10:52:29 -0400 |
|---|---|---|
| committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-05-15 10:52:37 -0400 |
| commit | 32aff5732a11739e81994b3bcd7a9d0e8b1ea06e (patch) | |
| tree | 62f39dbfbbe618e00099d950b2d418ea6a316db6 | |
| parent | 8f40f672e6bb071812f61bfbd30efc3fc1263ad1 (diff) | |
[S390] cio: Remove CCW_CMD_SUSPEND_RECONN in front of CCW_CMD_SET_PGID.
CCW_CMD_SUSPEND_RECONN causes a system hang if the cable of a
reserved DASD is disconnected and connected again.
Signed-off-by: Michael Ernst <mernst@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| -rw-r--r-- | drivers/s390/cio/device_pgid.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/s390/cio/device_pgid.c b/drivers/s390/cio/device_pgid.c index ba559053402e..5cf7be008e98 100644 --- a/drivers/s390/cio/device_pgid.c +++ b/drivers/s390/cio/device_pgid.c | |||
| @@ -243,16 +243,10 @@ __ccw_device_do_pgid(struct ccw_device *cdev, __u8 func) | |||
| 243 | /* Setup sense path group id channel program. */ | 243 | /* Setup sense path group id channel program. */ |
| 244 | cdev->private->pgid[0].inf.fc = func; | 244 | cdev->private->pgid[0].inf.fc = func; |
| 245 | ccw = cdev->private->iccws; | 245 | ccw = cdev->private->iccws; |
| 246 | if (!cdev->private->flags.pgid_single) { | 246 | if (cdev->private->flags.pgid_single) |
| 247 | cdev->private->pgid[0].inf.fc |= SPID_FUNC_MULTI_PATH; | ||
| 248 | ccw->cmd_code = CCW_CMD_SUSPEND_RECONN; | ||
| 249 | ccw->cda = 0; | ||
| 250 | ccw->count = 0; | ||
| 251 | ccw->flags = CCW_FLAG_SLI | CCW_FLAG_CC; | ||
| 252 | ccw++; | ||
| 253 | } else | ||
| 254 | cdev->private->pgid[0].inf.fc |= SPID_FUNC_SINGLE_PATH; | 247 | cdev->private->pgid[0].inf.fc |= SPID_FUNC_SINGLE_PATH; |
| 255 | 248 | else | |
| 249 | cdev->private->pgid[0].inf.fc |= SPID_FUNC_MULTI_PATH; | ||
| 256 | ccw->cmd_code = CCW_CMD_SET_PGID; | 250 | ccw->cmd_code = CCW_CMD_SET_PGID; |
| 257 | ccw->cda = (__u32) __pa (&cdev->private->pgid[0]); | 251 | ccw->cda = (__u32) __pa (&cdev->private->pgid[0]); |
| 258 | ccw->count = sizeof (struct pgid); | 252 | ccw->count = sizeof (struct pgid); |
