Conny, et al, Here is a (significantly larger) set of patches to address the problem with building passsthrough sense data in an IRB, using a subchannel-specific callback.
The first three patches are primarily code refactoring. But, since patch 3 doesn't implement the callback for vfio-ccw subchannels, it fixes the problem encountered with "dasdfmt -M quick" failing to run correctly in the guest because we no longer fill out the other stuff in the IRB associated with the sense data. Patch 4 implements that for vfio-ccw. v2->v3: - [EF] Drop Fixes tag - [CH] Implement a callback for the IRB sense data - [CH] Copy IRB.ESW from passthrough hardware - [CH] Only put sense in IRB.ECW if passthrough device did v1->v2: - [MR] Add Fixes: tags - [CH] Reinstate the memcpy(sch->sense_data, irb.ecw) in vfio_ccw - [CH] Look at IRB.SCSW.E before copying sense into guest IRB v2: https://lore.kernel.org/qemu-devel/[email protected]/ v1: https://lore.kernel.org/qemu-devel/[email protected]/ Eric Farman (4): s390x/css: Introduce an ESW struct s390x/css: Split out the IRB sense data s390x/css: Refactor IRB construction s390x/css: Add passthrough IRB hw/s390x/3270-ccw.c | 1 + hw/s390x/css.c | 84 ++++++++++++++++++++++++++++----------- hw/s390x/s390-ccw.c | 1 + hw/s390x/virtio-ccw.c | 1 + hw/vfio/ccw.c | 4 ++ include/hw/s390x/css.h | 5 +++ include/hw/s390x/ioinst.h | 12 +++++- 7 files changed, 83 insertions(+), 25 deletions(-) -- 2.25.1
