A second step when testing the channel subsystem is to prepare a channel for use. This tests the success of the MSCH instruction by enabling a channel. Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx> --- s390x/css.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/s390x/css.c b/s390x/css.c index 8186f55..e42dc2f 100644 --- a/s390x/css.c +++ b/s390x/css.c @@ -62,11 +62,38 @@ static void test_enumerate(void) return; } +static void set_schib(void) +{ + struct pmcw *p = &schib.pmcw; + + p->intparm = 0xdeadbeef; + p->flags |= PMCW_ENABLE; +} + +static void test_enable(void) +{ + int ret; + + if (!test_device_sid) { + report_skip("No device"); + return; + } + set_schib(); + dump_schib(&schib); + + ret = msch(test_device_sid, &schib); + if (ret) + report("msch cc=%d", 0, ret); + else + report("Tested", 1); +} + static struct { const char *name; void (*func)(void); } tests[] = { { "enumerate (stsch)", test_enumerate }, + { "enable (msch)", test_enable }, { NULL, NULL } }; -- 2.17.0