From: Peter Oberparleiter Date: Wed, 30 Aug 2006 12:33:37 +0000 (+0200) Subject: [S390] cio: no path after machine check. X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=3b88508a31a77eb3487154922e1eff282dc1d863;p=linux-beck.git [S390] cio: no path after machine check. Devices enter no-path state after disabling a channel path via the SE even though another path has been reenabled at the SE. The devices are set into no-path state before triggering path verification even though other paths may have become available. To fix this trigger path verification before setting a device into no-path state. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky --- diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c index 6405e9bd6eb3..c28444af0919 100644 --- a/drivers/s390/cio/chsc.c +++ b/drivers/s390/cio/chsc.c @@ -238,8 +238,6 @@ s390_subchannel_remove_chpid(struct device *dev, void *data) /* Check for single path devices. */ if (sch->schib.pmcw.pim == 0x80) goto out_unreg; - if (sch->vpm == mask) - goto out_unreg; if ((sch->schib.scsw.actl & SCSW_ACTL_DEVACT) && (sch->schib.scsw.actl & SCSW_ACTL_SCHACT) && @@ -258,6 +256,8 @@ s390_subchannel_remove_chpid(struct device *dev, void *data) /* trigger path verification. */ if (sch->driver && sch->driver->verify) sch->driver->verify(&sch->dev); + else if (sch->vpm == mask) + goto out_unreg; out_unlock: spin_unlock_irq(&sch->lock); return 0;