aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/s390/cio/device_pgid.c11
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 }
352out: 353out:
@@ -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);