Conny, et al, Here is a quick update to the series for fixing passthrough sense data in the irb, using a subchannel-specific callback.
As before, the first three patches are code refactoring. 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. Since the callback isn't invoked for passthrough subchannels the SCSW and ERW bits don't get set indicating sense data is present, even though the sense data itself is still zero. Patch 4 implements that for vfio-ccw. v3->v4: - [CH] Rename ESW.sublog to ESW.word0 - [CH] Add comment that ESW.f_addr and .s_addr are only Fmt0 ESW - [CH] Always copy ECW data into IRB to include mysterious "model-dependent information" that could exist there - [TH] Added r-b to patch 2 (thank you!!) 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 v3: https://lore.kernel.org/qemu-devel/20210616014749.2460133-1-far...@linux.ibm.com/ v2: https://lore.kernel.org/qemu-devel/20210611202151.615410-1-far...@linux.ibm.com/ v1: https://lore.kernel.org/qemu-devel/20210610202011.391029-1-far...@linux.ibm.com/ 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 | 87 ++++++++++++++++++++++++++++----------- 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, 86 insertions(+), 25 deletions(-) -- 2.25.1