On 05/09/2017 13:16, Halil Pasic wrote:
Replace direct access which implicitly assumes no IDA
or MIDA with the new ccw data stream interface which should
cope with these transparently in the future.
Signed-off-by: Halil Pasic <address@hidden>
---
hw/s390x/css.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/hw/s390x/css.c b/hw/s390x/css.c
index 87d913f81c..c1bc9944e6 100644
--- a/hw/s390x/css.c
+++ b/hw/s390x/css.c
@@ -890,6 +890,7 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr
ccw_addr,
}
/* Look at the command. */
+ ccw_dstream_init(&sch->cds, &ccw, &(sch->orb));
switch (ccw.cmd_code) {
case CCW_CMD_NOOP:
/* Nothing to do. */
@@ -903,7 +904,7 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr
ccw_addr,
}
}
len = MIN(ccw.count, sizeof(sch->sense_data));
- cpu_physical_memory_write(ccw.cda, sch->sense_data, len);
+ ccw_dstream_write_buf(&sch->cds, sch->sense_data, len);
Don't you need to check the return value ?
sch->curr_status.scsw.count = ccw.count - len;
memset(sch->sense_data, 0, sizeof(sch->sense_data));
ret = 0;
@@ -930,7 +931,7 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr
ccw_addr,
} else {
sense_id.reserved = 0;
}
- cpu_physical_memory_write(ccw.cda, &sense_id, len);
+ ccw_dstream_write_buf(&sch->cds, &sense_id, len);
here too ?
sch->curr_status.scsw.count = ccw.count - len;
ret = 0;
break;