diff options
-rw-r--r-- | drivers/s390/cio/device_pgid.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/s390/cio/device_pgid.c b/drivers/s390/cio/device_pgid.c index 6f2987d8da99..f12beb72f263 100644 --- a/drivers/s390/cio/device_pgid.c +++ b/drivers/s390/cio/device_pgid.c | |||
@@ -70,8 +70,8 @@ static void nop_do(struct ccw_device *cdev) | |||
70 | struct subchannel *sch = to_subchannel(cdev->dev.parent); | 70 | struct subchannel *sch = to_subchannel(cdev->dev.parent); |
71 | struct ccw_request *req = &cdev->private->req; | 71 | struct ccw_request *req = &cdev->private->req; |
72 | 72 | ||
73 | /* Adjust lpm. */ | 73 | req->lpm = lpm_adjust(req->lpm, sch->schib.pmcw.pam & sch->opm & |
74 | req->lpm = lpm_adjust(req->lpm, sch->schib.pmcw.pam & sch->opm); | 74 | ~cdev->private->path_noirq_mask); |
75 | if (!req->lpm) | 75 | if (!req->lpm) |
76 | goto out_nopath; | 76 | goto out_nopath; |
77 | nop_build_cp(cdev); | 77 | nop_build_cp(cdev); |
@@ -345,8 +345,9 @@ static void snid_done(struct ccw_device *cdev, int rc) | |||
345 | else { | 345 | else { |
346 | donepm = pgid_to_donepm(cdev); | 346 | donepm = pgid_to_donepm(cdev); |
347 | sch->vpm = donepm & sch->opm; | 347 | sch->vpm = donepm & sch->opm; |
348 | cdev->private->pgid_todo_mask &= ~donepm; | ||
349 | cdev->private->pgid_reset_mask |= reset; | 348 | cdev->private->pgid_reset_mask |= reset; |
349 | cdev->private->pgid_todo_mask &= | ||
350 | ~(donepm | cdev->private->path_noirq_mask); | ||
350 | pgid_fill(cdev, pgid); | 351 | pgid_fill(cdev, pgid); |
351 | } | 352 | } |
352 | out: | 353 | out: |
@@ -400,8 +401,8 @@ static void snid_do(struct ccw_device *cdev) | |||
400 | struct subchannel *sch = to_subchannel(cdev->dev.parent); | 401 | struct subchannel *sch = to_subchannel(cdev->dev.parent); |
401 | struct ccw_request *req = &cdev->private->req; | 402 | struct ccw_request *req = &cdev->private->req; |
402 | 403 | ||
403 | /* Adjust lpm if paths are not set in pam. */ | 404 | req->lpm = lpm_adjust(req->lpm, sch->schib.pmcw.pam & |
404 | req->lpm = lpm_adjust(req->lpm, sch->schib.pmcw.pam); | 405 | ~cdev->private->path_noirq_mask); |
405 | if (!req->lpm) | 406 | if (!req->lpm) |
406 | goto out_nopath; | 407 | goto out_nopath; |
407 | snid_build_cp(cdev); | 408 | snid_build_cp(cdev); |