qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 2/5] s390x/css: use ccw data stream


From: Pierre Morel
Subject: Re: [Qemu-devel] [PATCH v3 2/5] s390x/css: use ccw data stream
Date: Thu, 21 Sep 2017 11:40:49 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0

On 19/09/2017 20:27, 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>
Reviewed-by: Dong Jia Shi <address@hidden>
Reviewed-by: Pierre Morel<address@hidden>
---
  hw/s390x/css.c | 9 +++++----
  1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/hw/s390x/css.c b/hw/s390x/css.c
index e8d2016563..6b0cd8861b 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,8 +904,8 @@ 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);
-        sch->curr_status.scsw.count = ccw.count - len;
+        ccw_dstream_write_buf(&sch->cds, sch->sense_data, len);

Well, I oversaw this when I reviewed:
I think you should test the return value of ccw_dstream_write_buf here.

+        sch->curr_status.scsw.count = ccw_dstream_residual_count(&sch->cds);
          memset(sch->sense_data, 0, sizeof(sch->sense_data));
          ret = 0;
          break;
@@ -930,8 +931,8 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr ccw_addr,
          } else {
              sense_id.reserved = 0;
          }
-        cpu_physical_memory_write(ccw.cda, &sense_id, len);
-        sch->curr_status.scsw.count = ccw.count - len;
+        ccw_dstream_write_buf(&sch->cds, &sense_id, len);

and here

+        sch->curr_status.scsw.count = ccw_dstream_residual_count(&sch->cds);
          ret = 0;
          break;
      }



--
Pierre Morel
Linux/KVM/QEMU in Böblingen - Germany




reply via email to

[Prev in Thread] Current Thread [Next in Thread]