The goal of this series is to test some of the I/O instructions, SSCH, CSCH and HSCH for errors like invalid parameters, addressing, timing etc. We can not test the sending of an instruction before the last instruction has been proceeded by QEMU due to the QEMU serialization but we can check the behavior of an instruction if it is started before the status of the last instruction is read. To do this we first separate the waiting for the interruption and the checking of the IRB and enable the subchannel without an I/O ISC to avoid interruptions at this subchannel and second, we add an argument to the routine in charge to check the IRB representing the expected SCSW control field of the IRB. We also need several other enhancements to the testing environment: - definitions for the SCSW control bits - a new function to disable a subchannel - a macro to simplify skiping tests when no device is present (I know the warning about return in macro, can we accept it?) In the new tests we assume that all the test preparation is working and use asserts for all function for which we do not expect a failure. regards, Pierre PS: Sorry, I needed to modify patches 4 and 5 for which I already had RB or AB. I removed them even I hope you will agree with my modifications. Pierre Morel (16): s390x: lib: css: disabling a subchannel s390x: lib: css: SCSW bit definitions s390x: css: simplify skipping tests on no device s390x: lib: css: separate wait for IRQ and check I/O completion s390x: lib: css: add SCSW ctrl expectations to check I/O completion s390x: lib: css: checking I/O errors s390x: css: testing ssch errors s390x: css: ssch check for cpa zero s390x: css: ssch with mis aligned ORB s390x: css: ssch checking addressing errors s390x: css: No support for MIDAW s390x: css: Check ORB reserved bits s390x: css: checking for CSS extensions s390x: css: issuing SSCH when the channel is status pending s390x: css: testing halt subchannel s390x: css: testing clear subchannel lib/s390x/css.h | 42 ++++- lib/s390x/css_lib.c | 138 ++++++++++++-- s390x/css.c | 425 +++++++++++++++++++++++++++++++++++++++++--- s390x/unittests.cfg | 8 +- 4 files changed, 565 insertions(+), 48 deletions(-) -- 2.17.1 log: from v2: - modified the patch 3 simplifying the check for no device to move the check once for all in the main (Thomas) - modified the patch 4 separate wait for IRQ.. to move the check for IRQ parameters inside the IRQ routine (Pierre) - modified the patch 5 checking for expectations on I/O to return with success if the expectation is matched without further checks. (Pierre) - rewords patch 5 commet and commit message (Connie) - reworked patches on SSCH addressing memory (Claudio) from v1: - rework the buggy interrupt handling (Connie) - identation and comments changes in "disabling subchannel" (Janosch) - Bit definition naming (Connie) - use get_ram_size() to get the maximal address (Janosch) - better comments for SSCH (hopefully) (Pierre)