On 9/16/26 4:32 PM, Eric Farman wrote: > Both the read and write config paths use wrappers around cds->op_handler, > depending on the direction the I/O is flowing. But they expect opposite > values in the returned variable to indicate success. > > Fix this by unifying those checks, where CCW_CMD_READ_CONF needs to > see !ret as success. The end result is some erroneous data in the > SCSW response data, but the overall success/failure is correct. > > Cc: [email protected] > Fixes: d895d25ae2 ("s390x: css: report errors from ccw_dstream_read/write") > Signed-off-by: Eric Farman <[email protected]>
Reviewed-by: Matthew Rosato <[email protected]> > --- > hw/s390x/virtio-ccw.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c > index d700db405b..4622c5d46d 100644 > --- a/hw/s390x/virtio-ccw.c > +++ b/hw/s390x/virtio-ccw.c > @@ -475,7 +475,7 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw) > } else { > virtio_bus_get_vdev_config(&dev->bus, vdev->config); > ret = ccw_dstream_write_buf(&sch->cds, vdev->config, len); > - if (ret) { > + if (!ret) { > sch->curr_status.scsw.count = ccw.count - len; > } > }
