[S390] cio: Disable channel measurements (cmf) on shutdown/reboot.
Disable channel measurements for all ccw devices via the ccw bus's shutdown method. Clear residual cmf related information that may be in the schib when setting up a new subchannel. Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
committed by
Martin Schwidefsky
parent
958974fb59
commit
1842f2b184
@@ -619,6 +619,11 @@ cio_validate_subchannel (struct subchannel *sch, struct subchannel_id schid)
|
|||||||
sch->schib.pmcw.ena = 0;
|
sch->schib.pmcw.ena = 0;
|
||||||
if ((sch->lpm & (sch->lpm - 1)) != 0)
|
if ((sch->lpm & (sch->lpm - 1)) != 0)
|
||||||
sch->schib.pmcw.mp = 1; /* multipath mode */
|
sch->schib.pmcw.mp = 1; /* multipath mode */
|
||||||
|
/* clean up possible residual cmf stuff */
|
||||||
|
sch->schib.pmcw.mme = 0;
|
||||||
|
sch->schib.pmcw.mbfc = 0;
|
||||||
|
sch->schib.pmcw.mbi = 0;
|
||||||
|
sch->schib.mba = 0;
|
||||||
return 0;
|
return 0;
|
||||||
out:
|
out:
|
||||||
if (!cio_is_console(schid))
|
if (!cio_is_console(schid))
|
||||||
|
@@ -21,6 +21,7 @@
|
|||||||
#include <asm/ccwdev.h>
|
#include <asm/ccwdev.h>
|
||||||
#include <asm/cio.h>
|
#include <asm/cio.h>
|
||||||
#include <asm/param.h> /* HZ */
|
#include <asm/param.h> /* HZ */
|
||||||
|
#include <asm/cmb.h>
|
||||||
|
|
||||||
#include "cio.h"
|
#include "cio.h"
|
||||||
#include "cio_debug.h"
|
#include "cio_debug.h"
|
||||||
@@ -1440,6 +1441,7 @@ static void ccw_device_shutdown(struct device *dev)
|
|||||||
cdev = to_ccwdev(dev);
|
cdev = to_ccwdev(dev);
|
||||||
if (cdev->drv && cdev->drv->shutdown)
|
if (cdev->drv && cdev->drv->shutdown)
|
||||||
cdev->drv->shutdown(cdev);
|
cdev->drv->shutdown(cdev);
|
||||||
|
disable_cmf(cdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct bus_type ccw_bus_type = {
|
struct bus_type ccw_bus_type = {
|
||||||
|
Reference in New Issue
Block a user