On Fri, Jun 18 2021, Eric Farman <farman@linux.ibm.com> wrote:
> 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.
Thanks, applied (with the discussed modifications in patch 1).
[s390-next is getting full; I plan to send a pull req on Monday, as it
is a bit late in the day for me already.]
>
> 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-farman@linux.ibm.com/
> v2: https://lore.kernel.org/qemu-devel/20210611202151.615410-1-farman@linux.ibm.com/
> v1: https://lore.kernel.org/qemu-devel/20210610202011.391029-1-farman@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(-)