Abstract ======= The basic idea is: tell how to handle an unusual condition where it's identified, instead of mapping it to an errno (more or less arbitrarily), then possibly mapping these errnos around, to finally (mentally) map the errno back to the condition and take appropriate action.
According to Dong Jia the patch-set also has a functional value: for ccw pass-through, he is planing to pass-through the instruction completion information (cc or interruption condition) from the kernel, and this patch set can pretty much be seen as a preparation for that. Changelog ========= Patch 1 should be already applied to Conny's tree. I've included it nevertheless so guys working on top of current master have everything in place. v2 -> v3: * somewhat uwillingly traded the type safe struct to a somewhat type safe enum (because considered ugly) (Thomas, Conny) * dropped 'template approach' patch which intended to further consolidate IO inst. handlers having lot's of logic and code in common (Conny) * added warning if vfio-ccw ORB does not have the flags required by the vfio-ccw implementation as suggested (Dong Jia) * got rid of some unintentional changes (Dong Jia) * reworded some stuff (comments, commit messages) (Dong Jia) v1 -> v2: * use assert if do_subchannel_work without any functions being accepted * generate unit-exception if ccw-vfio can't handle an otherwise good channel program (due to extra limitations) * keep using return values opposed to recording into SubchDev * split out 'add infrastructure' from 'refactor first handler' * reworded some commit messanges and comments * rebased on top of current master * dropped r-b's and acks because of the magnitude of the changes Testing ======= Nothing happened since v2 except for a quick smoke test. Dong Jia gave v2 a spin with a focus on vfio-ccw. @Dong Jia I would appreciate some proper testing, especially regarding the changes in vfio-ccw (patch #3). Halil Pasic (7): s390x/css: be more consistent if broken beyond repair s390x/css: IO instr handler ending control s390x: improve error handling for SSCH and RSCH s390x: refactor error handling for XSCH handler s390x: refactor error handling for CSCH handler s390x: refactor error handling for HSCH handler s390x: refactor error handling for MSCH handler hw/s390x/css.c | 163 ++++++++++++-------------------------------- hw/s390x/s390-ccw.c | 11 ++- hw/vfio/ccw.c | 28 ++++++-- include/hw/s390x/css.h | 47 ++++++++++--- include/hw/s390x/s390-ccw.h | 2 +- target/s390x/ioinst.c | 136 +++++++----------------------------- 6 files changed, 132 insertions(+), 255 deletions(-) -- 2.13.5