Here is a first pass at the channel-path handling code for vfio-ccw. This was initially developed by Farhan Ali this past summer, and picked up by me. For my own benefit/sanity, I made a small changelog in the commit message for each patch, describing the changes I've made to his original code beyond just rebasing to master. I did split a couple of his patches, to (hopefully) make them a little more understandable. The entire series is based on top of the trace rework patches from a few weeks ago, which are currently pending. But really, the only cause for overlap is the trace patch here. The bulk of it is really self-contained. With this, and the corresponding QEMU series (to be posted momentarily), applied I am able to configure off/on a CHPID (for example, by issuing "chchp -c 0/1 xx" on the host), and the guest is able to see both the events and reflect the updated path masks in its structures. For reasons that are hopefully obvious, issuing chchp within the guest only works for the logical vary. Configuring it off/on does not work, which I think is fine. Eric Farman (4): vfio-ccw: Refactor the unregister of the async regions vfio-ccw: Refactor IRQ handlers vfio-ccw: Add trace for CRW event vfio-ccw: Remove inline get_schid() routine Farhan Ali (6): vfio-ccw: Introduce new helper functions to free/destroy regions vfio-ccw: Register a chp_event callback for vfio-ccw vfio-ccw: Use subchannel lpm in the orb vfio-ccw: Introduce a new schib region vfio-ccw: Introduce a new CRW region vfio-ccw: Wire up the CRW irq and CRW region drivers/s390/cio/Makefile | 2 +- drivers/s390/cio/vfio_ccw_chp.c | 128 +++++++++++++++++++++++++ drivers/s390/cio/vfio_ccw_cp.c | 4 +- drivers/s390/cio/vfio_ccw_drv.c | 140 ++++++++++++++++++++++++++-- drivers/s390/cio/vfio_ccw_fsm.c | 8 +- drivers/s390/cio/vfio_ccw_ops.c | 65 +++++++++---- drivers/s390/cio/vfio_ccw_private.h | 11 +++ drivers/s390/cio/vfio_ccw_trace.c | 1 + drivers/s390/cio/vfio_ccw_trace.h | 30 ++++++ include/uapi/linux/vfio.h | 3 + include/uapi/linux/vfio_ccw.h | 10 ++ 11 files changed, 366 insertions(+), 36 deletions(-) create mode 100644 drivers/s390/cio/vfio_ccw_chp.c -- 2.17.1