Here is a new pass at the channel-path handling code for vfio-ccw. Changes from previous versions are recorded in git notes for each patch. I dropped the "Remove inline get_schid()" patch from this version. When I made the change suggested in v2, it seemed rather frivolous and better to just drop it for the time being. I suspect that patches 5 and 7 would be better squashed together, but I have not done that here. For future versions, I guess. 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. v2: https://lore.kernel.org/kvm/20200206213825.11444-1-farman@xxxxxxxxxxxxx/ v1: https://lore.kernel.org/kvm/20191115025620.19593-1-farman@xxxxxxxxxxxxx/ Eric Farman (3): vfio-ccw: Refactor the unregister of the async regions vfio-ccw: Refactor IRQ handlers vfio-ccw: Add trace for CRW event Farhan Ali (5): vfio-ccw: Introduce new helper functions to free/destroy regions vfio-ccw: Register a chp_event callback for vfio-ccw vfio-ccw: Introduce a new schib region vfio-ccw: Introduce a new CRW region vfio-ccw: Wire up the CRW irq and CRW region Documentation/s390/vfio-ccw.rst | 35 +++++- drivers/s390/cio/Makefile | 2 +- drivers/s390/cio/vfio_ccw_chp.c | 148 +++++++++++++++++++++++++ drivers/s390/cio/vfio_ccw_drv.c | 163 ++++++++++++++++++++++++++-- drivers/s390/cio/vfio_ccw_ops.c | 65 ++++++++--- drivers/s390/cio/vfio_ccw_private.h | 16 +++ 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 | 18 +++ 10 files changed, 453 insertions(+), 28 deletions(-) create mode 100644 drivers/s390/cio/vfio_ccw_chp.c -- 2.17.1