Commit 6810a2bc authored by Cornelia Huck's avatar Cornelia Huck Committed by Linus Torvalds
Browse files

[PATCH] s390: re-activated path detection



If we receive path not operational indications (pnom in pmcw nonzero), we
switch off those paths.  To catch them becoming available again, we have to
recalculate the lpm from the pmcw each time we start path verification.
Signed-off-by: default avatarCornelia Huck <cohuck@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 089545f0
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "cio_debug.h" #include "cio_debug.h"
#include "css.h" #include "css.h"
#include "device.h" #include "device.h"
#include "ioasm.h"
/* /*
* Start Sense Path Group ID helper function. Used in ccw_device_recog * Start Sense Path Group ID helper function. Used in ccw_device_recog
...@@ -364,8 +365,22 @@ ccw_device_verify_irq(struct ccw_device *cdev, enum dev_event dev_event) ...@@ -364,8 +365,22 @@ ccw_device_verify_irq(struct ccw_device *cdev, enum dev_event dev_event)
void void
ccw_device_verify_start(struct ccw_device *cdev) ccw_device_verify_start(struct ccw_device *cdev)
{ {
struct subchannel *sch = to_subchannel(cdev->dev.parent);
cdev->private->flags.pgid_single = 0; cdev->private->flags.pgid_single = 0;
cdev->private->iretry = 5; cdev->private->iretry = 5;
/*
* Update sch->lpm with current values to catch paths becoming
* available again.
*/
if (stsch(sch->irq, &sch->schib)) {
ccw_device_verify_done(cdev, -ENODEV);
return;
}
sch->lpm = sch->schib.pmcw.pim &
sch->schib.pmcw.pam &
sch->schib.pmcw.pom &
sch->opm;
__ccw_device_verify_start(cdev); __ccw_device_verify_start(cdev);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment