[{"id":1771621,"web_url":"http://patchwork.ozlabs.org/comment/1771621/","msgid":"<20170920064715.GG11080@bjsdjshi@linux.vnet.ibm.com>","list_archive_url":null,"date":"2017-09-20T06:47:15","subject":"Re: [Qemu-devel] [PATCH v3 3/5] virtio-ccw: use ccw data stream","submitter":{"id":68897,"url":"http://patchwork.ozlabs.org/api/people/68897/","name":"Dong Jia Shi","email":"bjsdjshi@linux.vnet.ibm.com"},"content":"* Halil Pasic <pasic@linux.vnet.ibm.com> [2017-09-19 20:27:43 +0200]:\n\n> Replace direct access which implicitly assumes no IDA\n> or MIDA with the new ccw data stream interface which should\n> cope with these transparently in the future.\n> \n> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>\n> Reviewed-by: Pierre Morel<pmorel@linux.vnet.ibm.com>\n> ---\n>  hw/s390x/virtio-ccw.c | 157 +++++++++++++++-----------------------------------\n>  1 file changed, 46 insertions(+), 111 deletions(-)\n> \n\nReviewed-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>\n\n[...]","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xxr0N0hFhz9s7p\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 20 Sep 2017 16:47:48 +1000 (AEST)","from localhost ([::1]:47041 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1duYnS-0006TD-8b\n\tfor incoming@patchwork.ozlabs.org; Wed, 20 Sep 2017 02:47:46 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:60545)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <bjsdjshi@linux.vnet.ibm.com>) id 1duYnA-0006T1-4T\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 02:47:29 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <bjsdjshi@linux.vnet.ibm.com>) id 1duYn5-0002cQ-4m\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 02:47:28 -0400","from mx0a-001b2d01.pphosted.com ([148.163.156.1]:52202)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <bjsdjshi@linux.vnet.ibm.com>)\n\tid 1duYn4-0002bT-M6\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 02:47:23 -0400","from pps.filterd (m0098394.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv8K6kPDA123538\n\tfor <qemu-devel@nongnu.org>; Wed, 20 Sep 2017 02:47:21 -0400","from e36.co.us.ibm.com (e36.co.us.ibm.com [32.97.110.154])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2d3bt1yx4h-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <qemu-devel@nongnu.org>; Wed, 20 Sep 2017 02:47:20 -0400","from localhost\n\tby e36.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <qemu-devel@nongnu.org> from <bjsdjshi@linux.vnet.ibm.com>;\n\tWed, 20 Sep 2017 00:47:20 -0600","from b03cxnp08027.gho.boulder.ibm.com (9.17.130.19)\n\tby e36.co.us.ibm.com (192.168.1.136) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tWed, 20 Sep 2017 00:47:18 -0600","from b03ledav001.gho.boulder.ibm.com\n\t(b03ledav001.gho.boulder.ibm.com [9.17.130.232])\n\tby b03cxnp08027.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with\n\tESMTP id v8K6lHjd60031182; Tue, 19 Sep 2017 23:47:17 -0700","from b03ledav001.gho.boulder.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 99B826E048;\n\tWed, 20 Sep 2017 00:47:17 -0600 (MDT)","from localhost (unknown [9.115.112.23])\n\tby b03ledav001.gho.boulder.ibm.com (Postfix) with ESMTP id E32956E03D;\n\tWed, 20 Sep 2017 00:47:16 -0600 (MDT)"],"Date":"Wed, 20 Sep 2017 14:47:15 +0800","From":"Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>","To":"Halil Pasic <pasic@linux.vnet.ibm.com>","Mail-Followup-To":"Halil Pasic <pasic@linux.vnet.ibm.com>,\n\tCornelia Huck <cohuck@redhat.com>,\n\tDong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,\n\tPierre Morel <pmorel@linux.vnet.ibm.com>, qemu-devel@nongnu.org","References":"<20170919182745.90280-1-pasic@linux.vnet.ibm.com>\n\t<20170919182745.90280-4-pasic@linux.vnet.ibm.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20170919182745.90280-4-pasic@linux.vnet.ibm.com>","Organization":"(IBM CSL)","X-URL":"http://ibm.com/","User-Agent":"Mutt/1.5.21 (2010-09-15)","X-TM-AS-GCONF":"00","x-cbid":"17092006-0020-0000-0000-00000CBC4637","X-IBM-SpamModules-Scores":"","X-IBM-SpamModules-Versions":"BY=3.00007766; HX=3.00000241; KW=3.00000007;\n\tPH=3.00000004; SC=3.00000230; SDB=6.00919630; UDB=6.00462027;\n\tIPR=6.00699856; \n\tBA=6.00005598; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009;\n\tZB=6.00000000; \n\tZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00017219;\n\tXFM=3.00000015; UTC=2017-09-20 06:47:19","X-IBM-AV-DETECTION":"SAVI=unused REMOTE=unused XFE=unused","x-cbparentid":"17092006-0021-0000-0000-00005E33BEFD","Message-Id":"<20170920064715.GG11080@bjsdjshi@linux.vnet.ibm.com>","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-20_01:, , signatures=0","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=0\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1709200092","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy]","X-Received-From":"148.163.156.1","Subject":"Re: [Qemu-devel] [PATCH v3 3/5] virtio-ccw: use ccw data stream","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,\n\tCornelia Huck <cohuck@redhat.com>,\n\tPierre Morel <pmorel@linux.vnet.ibm.com>, qemu-devel@nongnu.org","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1771658,"web_url":"http://patchwork.ozlabs.org/comment/1771658/","msgid":"<20170920095818.17c52249.cohuck@redhat.com>","list_archive_url":null,"date":"2017-09-20T07:58:18","subject":"Re: [Qemu-devel] [PATCH v3 3/5] virtio-ccw: use ccw data stream","submitter":{"id":71914,"url":"http://patchwork.ozlabs.org/api/people/71914/","name":"Cornelia Huck","email":"cohuck@redhat.com"},"content":"On Tue, 19 Sep 2017 20:27:43 +0200\nHalil Pasic <pasic@linux.vnet.ibm.com> wrote:\n\n> Replace direct access which implicitly assumes no IDA\n> or MIDA with the new ccw data stream interface which should\n> cope with these transparently in the future.\n> \n> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>\n> Reviewed-by: Pierre Morel<pmorel@linux.vnet.ibm.com>\n> ---\n>  hw/s390x/virtio-ccw.c | 157 +++++++++++++++-----------------------------------\n>  1 file changed, 46 insertions(+), 111 deletions(-)\n> \n\n> @@ -417,9 +382,9 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>                  /* Return zeroes if the guest supports more feature bits. */\n>                  features.features = 0;\n>              }\n> -            address_space_stl_le(&address_space_memory, ccw.cda,\n> -                                 features.features, MEMTXATTRS_UNSPECIFIED,\n> -                                 NULL);\n> +            ccw_dstream_rewind(&sch->cds);\n> +            cpu_to_le32s(&features.features);\n> +            ccw_dstream_write(&sch->cds, features.features);\n>              sch->curr_status.scsw.count = ccw.count - sizeof(features);\n\nHm, didn't you want to convert these as well? Or do you plan to do it\nas an add-on patch?\n\n>              ret = 0;\n>          }","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx07.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx07.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=cohuck@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xxsZL2TVmz9s8J\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 20 Sep 2017 17:58:50 +1000 (AEST)","from localhost ([::1]:47287 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1duZuC-0007He-EV\n\tfor incoming@patchwork.ozlabs.org; Wed, 20 Sep 2017 03:58:48 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:44453)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <cohuck@redhat.com>) id 1duZtq-0007G2-Md\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 03:58:27 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <cohuck@redhat.com>) id 1duZtn-0007pc-H5\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 03:58:26 -0400","from mx1.redhat.com ([209.132.183.28]:45992)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <cohuck@redhat.com>) id 1duZtn-0007m2-B6\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 03:58:23 -0400","from smtp.corp.redhat.com\n\t(int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 4C4FEC047B6A;\n\tWed, 20 Sep 2017 07:58:22 +0000 (UTC)","from gondolin (ovpn-117-98.ams2.redhat.com [10.36.117.98])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 1EA745D6A4;\n\tWed, 20 Sep 2017 07:58:20 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 4C4FEC047B6A","Date":"Wed, 20 Sep 2017 09:58:18 +0200","From":"Cornelia Huck <cohuck@redhat.com>","To":"Halil Pasic <pasic@linux.vnet.ibm.com>","Message-ID":"<20170920095818.17c52249.cohuck@redhat.com>","In-Reply-To":"<20170919182745.90280-4-pasic@linux.vnet.ibm.com>","References":"<20170919182745.90280-1-pasic@linux.vnet.ibm.com>\n\t<20170919182745.90280-4-pasic@linux.vnet.ibm.com>","Organization":"Red Hat GmbH","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII","Content-Transfer-Encoding":"7bit","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.15","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.31]);\n\tWed, 20 Sep 2017 07:58:22 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH v3 3/5] virtio-ccw: use ccw data stream","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,\n\tPierre Morel <pmorel@linux.vnet.ibm.com>, qemu-devel@nongnu.org","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1771888,"web_url":"http://patchwork.ozlabs.org/comment/1771888/","msgid":"<20170920125755.51672531.cohuck@redhat.com>","list_archive_url":null,"date":"2017-09-20T10:57:55","subject":"Re: [Qemu-devel] [PATCH v3 3/5] virtio-ccw: use ccw data stream","submitter":{"id":71914,"url":"http://patchwork.ozlabs.org/api/people/71914/","name":"Cornelia Huck","email":"cohuck@redhat.com"},"content":"On Wed, 20 Sep 2017 12:56:16 +0200\nHalil Pasic <pasic@linux.vnet.ibm.com> wrote:\n\n> On 09/20/2017 09:58 AM, Cornelia Huck wrote:\n> > On Tue, 19 Sep 2017 20:27:43 +0200\n> > Halil Pasic <pasic@linux.vnet.ibm.com> wrote:\n> >   \n> >> Replace direct access which implicitly assumes no IDA\n> >> or MIDA with the new ccw data stream interface which should\n> >> cope with these transparently in the future.\n> >>\n> >> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>\n> >> Reviewed-by: Pierre Morel<pmorel@linux.vnet.ibm.com>\n> >> ---\n> >>  hw/s390x/virtio-ccw.c | 157 +++++++++++++++-----------------------------------\n> >>  1 file changed, 46 insertions(+), 111 deletions(-)\n> >>  \n> >   \n> >> @@ -417,9 +382,9 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n> >>                  /* Return zeroes if the guest supports more feature bits. */\n> >>                  features.features = 0;\n> >>              }\n> >> -            address_space_stl_le(&address_space_memory, ccw.cda,\n> >> -                                 features.features, MEMTXATTRS_UNSPECIFIED,\n> >> -                                 NULL);\n> >> +            ccw_dstream_rewind(&sch->cds);\n> >> +            cpu_to_le32s(&features.features);\n> >> +            ccw_dstream_write(&sch->cds, features.features);\n> >>              sch->curr_status.scsw.count = ccw.count - sizeof(features);  \n> > \n> > Hm, didn't you want to convert these as well? Or do you plan to do it\n> > as an add-on patch?\n> >   \n> \n> I plan to do it as an add on patch.\n\nOK, fine with me as well.","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=cohuck@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xy1dT6XV5z9s82\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 21 Sep 2017 00:02:05 +1000 (AEST)","from localhost ([::1]:48280 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dufZj-0007GW-SP\n\tfor incoming@patchwork.ozlabs.org; Wed, 20 Sep 2017 10:02:03 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:36204)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <cohuck@redhat.com>) id 1duf1b-0002jL-Bj\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 09:27:10 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <cohuck@redhat.com>) id 1duf0q-0003lq-SO\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 09:26:47 -0400","from mx1.redhat.com ([209.132.183.28]:50260)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <cohuck@redhat.com>) id 1duf0q-0003lg-MT\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 09:26:00 -0400","from smtp.corp.redhat.com\n\t(int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id EE5D17E445;\n\tWed, 20 Sep 2017 10:57:58 +0000 (UTC)","from gondolin (ovpn-117-98.ams2.redhat.com [10.36.117.98])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id B094E6060A;\n\tWed, 20 Sep 2017 10:57:57 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com EE5D17E445","Date":"Wed, 20 Sep 2017 12:57:55 +0200","From":"Cornelia Huck <cohuck@redhat.com>","To":"Halil Pasic <pasic@linux.vnet.ibm.com>","Message-ID":"<20170920125755.51672531.cohuck@redhat.com>","In-Reply-To":"<dca2591a-e1ee-2a70-e4ea-33923f69e7be@linux.vnet.ibm.com>","References":"<20170919182745.90280-1-pasic@linux.vnet.ibm.com>\n\t<20170919182745.90280-4-pasic@linux.vnet.ibm.com>\n\t<20170920095818.17c52249.cohuck@redhat.com>\n\t<dca2591a-e1ee-2a70-e4ea-33923f69e7be@linux.vnet.ibm.com>","Organization":"Red Hat GmbH","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII","Content-Transfer-Encoding":"7bit","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.13","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.27]);\n\tWed, 20 Sep 2017 10:57:59 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH v3 3/5] virtio-ccw: use ccw data stream","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,\n\tPierre Morel <pmorel@linux.vnet.ibm.com>, qemu-devel@nongnu.org","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1772038,"web_url":"http://patchwork.ozlabs.org/comment/1772038/","msgid":"<dca2591a-e1ee-2a70-e4ea-33923f69e7be@linux.vnet.ibm.com>","list_archive_url":null,"date":"2017-09-20T10:56:16","subject":"Re: [Qemu-devel] [PATCH v3 3/5] virtio-ccw: use ccw data stream","submitter":{"id":68297,"url":"http://patchwork.ozlabs.org/api/people/68297/","name":"Halil Pasic","email":"pasic@linux.vnet.ibm.com"},"content":"On 09/20/2017 09:58 AM, Cornelia Huck wrote:\n> On Tue, 19 Sep 2017 20:27:43 +0200\n> Halil Pasic <pasic@linux.vnet.ibm.com> wrote:\n> \n>> Replace direct access which implicitly assumes no IDA\n>> or MIDA with the new ccw data stream interface which should\n>> cope with these transparently in the future.\n>>\n>> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>\n>> Reviewed-by: Pierre Morel<pmorel@linux.vnet.ibm.com>\n>> ---\n>>  hw/s390x/virtio-ccw.c | 157 +++++++++++++++-----------------------------------\n>>  1 file changed, 46 insertions(+), 111 deletions(-)\n>>\n> \n>> @@ -417,9 +382,9 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>>                  /* Return zeroes if the guest supports more feature bits. */\n>>                  features.features = 0;\n>>              }\n>> -            address_space_stl_le(&address_space_memory, ccw.cda,\n>> -                                 features.features, MEMTXATTRS_UNSPECIFIED,\n>> -                                 NULL);\n>> +            ccw_dstream_rewind(&sch->cds);\n>> +            cpu_to_le32s(&features.features);\n>> +            ccw_dstream_write(&sch->cds, features.features);\n>>              sch->curr_status.scsw.count = ccw.count - sizeof(features);\n> \n> Hm, didn't you want to convert these as well? Or do you plan to do it\n> as an add-on patch?\n> \n\nI plan to do it as an add on patch.\n\n\n>>              ret = 0;\n>>          }\n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xy4h31yqGz9sPt\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 21 Sep 2017 02:19:30 +1000 (AEST)","from localhost ([::1]:49465 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1duhih-0006l2-75\n\tfor incoming@patchwork.ozlabs.org; Wed, 20 Sep 2017 12:19:27 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:43389)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <pasic@linux.vnet.ibm.com>) id 1dugnl-0008SE-3J\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 11:20:41 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <pasic@linux.vnet.ibm.com>) id 1dugnf-0004rr-4d\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 11:20:37 -0400","from mx0b-001b2d01.pphosted.com ([148.163.158.5]:55734\n\thelo=mx0a-001b2d01.pphosted.com)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <pasic@linux.vnet.ibm.com>)\n\tid 1dugne-0004rU-Tc\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 11:20:31 -0400","from pps.filterd (m0098421.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv8KAsc05118523\n\tfor <qemu-devel@nongnu.org>; Wed, 20 Sep 2017 06:56:21 -0400","from e06smtp14.uk.ibm.com (e06smtp14.uk.ibm.com [195.75.94.110])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2d3phjsv9u-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <qemu-devel@nongnu.org>; Wed, 20 Sep 2017 06:56:20 -0400","from localhost\n\tby e06smtp14.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <qemu-devel@nongnu.org> from <pasic@linux.vnet.ibm.com>;\n\tWed, 20 Sep 2017 11:56:19 +0100","from b06cxnps4076.portsmouth.uk.ibm.com (9.149.109.198)\n\tby e06smtp14.uk.ibm.com (192.168.101.144) with IBM ESMTP SMTP\n\tGateway: Authorized Use Only! Violators will be prosecuted; \n\tWed, 20 Sep 2017 11:56:17 +0100","from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com\n\t[9.149.105.61])\n\tby b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with\n\tESMTP id v8KAuHMD14876778; Wed, 20 Sep 2017 10:56:17 GMT","from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 8ADFC11C050;\n\tWed, 20 Sep 2017 11:52:19 +0100 (BST)","from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 1333511C04A;\n\tWed, 20 Sep 2017 11:52:19 +0100 (BST)","from oc3836556865.ibm.com (unknown [9.152.224.207])\n\tby d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP;\n\tWed, 20 Sep 2017 11:52:19 +0100 (BST)"],"To":"Cornelia Huck <cohuck@redhat.com>","References":"<20170919182745.90280-1-pasic@linux.vnet.ibm.com>\n\t<20170919182745.90280-4-pasic@linux.vnet.ibm.com>\n\t<20170920095818.17c52249.cohuck@redhat.com>","From":"Halil Pasic <pasic@linux.vnet.ibm.com>","Date":"Wed, 20 Sep 2017 12:56:16 +0200","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<20170920095818.17c52249.cohuck@redhat.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","X-TM-AS-GCONF":"00","x-cbid":"17092010-0016-0000-0000-000004EEA22C","X-IBM-AV-DETECTION":"SAVI=unused REMOTE=unused XFE=unused","x-cbparentid":"17092010-0017-0000-0000-00002828D9D4","Message-Id":"<dca2591a-e1ee-2a70-e4ea-33923f69e7be@linux.vnet.ibm.com>","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-20_03:, , signatures=0","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=0\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1709200148","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy]","X-Received-From":"148.163.158.5","Subject":"Re: [Qemu-devel] [PATCH v3 3/5] virtio-ccw: use ccw data stream","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,\n\tPierre Morel <pmorel@linux.vnet.ibm.com>, qemu-devel@nongnu.org","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1772624,"web_url":"http://patchwork.ozlabs.org/comment/1772624/","msgid":"<de7b0939-df06-333f-28ce-cd9d3fe58eb2@linux.vnet.ibm.com>","list_archive_url":null,"date":"2017-09-21T09:44:15","subject":"Re: [Qemu-devel] [PATCH v3 3/5] virtio-ccw: use ccw data stream","submitter":{"id":66825,"url":"http://patchwork.ozlabs.org/api/people/66825/","name":"Pierre Morel","email":"pmorel@linux.vnet.ibm.com"},"content":"On 19/09/2017 20:27, Halil Pasic wrote:\n> Replace direct access which implicitly assumes no IDA\n> or MIDA with the new ccw data stream interface which should\n> cope with these transparently in the future.\n> \n> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>\n> Reviewed-by: Pierre Morel<pmorel@linux.vnet.ibm.com>\n> ---\n>   hw/s390x/virtio-ccw.c | 157 +++++++++++++++-----------------------------------\n>   1 file changed, 46 insertions(+), 111 deletions(-)\n> \n> diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c\n> index b1976fdd19..d024f8b2d3 100644\n> --- a/hw/s390x/virtio-ccw.c\n> +++ b/hw/s390x/virtio-ccw.c\n> @@ -287,49 +287,19 @@ static int virtio_ccw_handle_set_vq(SubchDev *sch, CCW1 ccw, bool check_len,\n>           return -EFAULT;\n>       }\n>       if (is_legacy) {\n> -        linfo.queue = address_space_ldq_be(&address_space_memory, ccw.cda,\n> -                                           MEMTXATTRS_UNSPECIFIED, NULL);\n> -        linfo.align = address_space_ldl_be(&address_space_memory,\n> -                                           ccw.cda + sizeof(linfo.queue),\n> -                                           MEMTXATTRS_UNSPECIFIED,\n> -                                           NULL);\n> -        linfo.index = address_space_lduw_be(&address_space_memory,\n> -                                            ccw.cda + sizeof(linfo.queue)\n> -                                            + sizeof(linfo.align),\n> -                                            MEMTXATTRS_UNSPECIFIED,\n> -                                            NULL);\n> -        linfo.num = address_space_lduw_be(&address_space_memory,\n> -                                          ccw.cda + sizeof(linfo.queue)\n> -                                          + sizeof(linfo.align)\n> -                                          + sizeof(linfo.index),\n> -                                          MEMTXATTRS_UNSPECIFIED,\n> -                                          NULL);\n\nHere again, I oversaw this.\nSorry.\n\n> +        ccw_dstream_read(&sch->cds, linfo);\n\nSame as for patch 2/5:\nShouldn't you test the return value here?\n\n> +        be64_to_cpus(&linfo.queue);\n> +        be32_to_cpus(&linfo.align);\n> +        be16_to_cpus(&linfo.index);\n> +        be16_to_cpus(&linfo.num);\n>           ret = virtio_ccw_set_vqs(sch, NULL, &linfo);\n>       } else {\n> -        info.desc = address_space_ldq_be(&address_space_memory, ccw.cda,\n> -                                           MEMTXATTRS_UNSPECIFIED, NULL);\n> -        info.index = address_space_lduw_be(&address_space_memory,\n> -                                           ccw.cda + sizeof(info.desc)\n> -                                           + sizeof(info.res0),\n> -                                           MEMTXATTRS_UNSPECIFIED, NULL);\n> -        info.num = address_space_lduw_be(&address_space_memory,\n> -                                         ccw.cda + sizeof(info.desc)\n> -                                         + sizeof(info.res0)\n> -                                         + sizeof(info.index),\n> -                                         MEMTXATTRS_UNSPECIFIED, NULL);\n> -        info.avail = address_space_ldq_be(&address_space_memory,\n> -                                          ccw.cda + sizeof(info.desc)\n> -                                          + sizeof(info.res0)\n> -                                          + sizeof(info.index)\n> -                                          + sizeof(info.num),\n> -                                          MEMTXATTRS_UNSPECIFIED, NULL);\n> -        info.used = address_space_ldq_be(&address_space_memory,\n> -                                         ccw.cda + sizeof(info.desc)\n> -                                         + sizeof(info.res0)\n> -                                         + sizeof(info.index)\n> -                                         + sizeof(info.num)\n> -                                         + sizeof(info.avail),\n> -                                         MEMTXATTRS_UNSPECIFIED, NULL);\n> +        ccw_dstream_read(&sch->cds, info);\n\nand here\n\n> +        be64_to_cpus(&info.desc);\n> +        be16_to_cpus(&info.index);\n> +        be16_to_cpus(&info.num);\n> +        be64_to_cpus(&info.avail);\n> +        be64_to_cpus(&info.used);\n>           ret = virtio_ccw_set_vqs(sch, &info, NULL);\n>       }\n>       sch->curr_status.scsw.count = 0;\n> @@ -342,15 +312,13 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>       VirtioRevInfo revinfo;\n>       uint8_t status;\n>       VirtioFeatDesc features;\n> -    void *config;\n>       hwaddr indicators;\n>       VqConfigBlock vq_config;\n>       VirtioCcwDevice *dev = sch->driver_data;\n>       VirtIODevice *vdev = virtio_ccw_get_vdev(sch);\n>       bool check_len;\n>       int len;\n> -    hwaddr hw_len;\n> -    VirtioThinintInfo *thinint;\n> +    VirtioThinintInfo thinint;\n> \n>       if (!dev) {\n>           return -EINVAL;\n> @@ -394,11 +362,8 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>           } else {\n>               VirtioDeviceClass *vdc = VIRTIO_DEVICE_GET_CLASS(vdev);\n> \n> -            features.index = address_space_ldub(&address_space_memory,\n> -                                                ccw.cda\n> -                                                + sizeof(features.features),\n> -                                                MEMTXATTRS_UNSPECIFIED,\n> -                                                NULL);\n> +            ccw_dstream_advance(&sch->cds, sizeof(features.features));\n> +            ccw_dstream_read(&sch->cds, features.index);\n\nhere again\n\n>               if (features.index == 0) {\n>                   if (dev->revision >= 1) {\n>                       /* Don't offer legacy features for modern devices. */\n> @@ -417,9 +382,9 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>                   /* Return zeroes if the guest supports more feature bits. */\n>                   features.features = 0;\n>               }\n> -            address_space_stl_le(&address_space_memory, ccw.cda,\n> -                                 features.features, MEMTXATTRS_UNSPECIFIED,\n> -                                 NULL);\n> +            ccw_dstream_rewind(&sch->cds);\n> +            cpu_to_le32s(&features.features);\n> +            ccw_dstream_write(&sch->cds, features.features);\n>               sch->curr_status.scsw.count = ccw.count - sizeof(features);\n>               ret = 0;\n>           }\n> @@ -438,15 +403,8 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>           if (!ccw.cda) {\n>               ret = -EFAULT;\n>           } else {\n> -            features.index = address_space_ldub(&address_space_memory,\n> -                                                ccw.cda\n> -                                                + sizeof(features.features),\n> -                                                MEMTXATTRS_UNSPECIFIED,\n> -                                                NULL);\n> -            features.features = address_space_ldl_le(&address_space_memory,\n> -                                                     ccw.cda,\n> -                                                     MEMTXATTRS_UNSPECIFIED,\n> -                                                     NULL);\n> +            ccw_dstream_read(&sch->cds, features);\n\n... and everywhere where you use the IDA stream...\n\nPierre\n\n\n> +            le32_to_cpus(&features.features);\n>               if (features.index == 0) {\n>                   virtio_set_features(vdev,\n>                                       (vdev->guest_features & 0xffffffff00000000ULL) |\n> @@ -487,8 +445,7 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>               ret = -EFAULT;\n>           } else {\n>               virtio_bus_get_vdev_config(&dev->bus, vdev->config);\n> -            /* XXX config space endianness */\n> -            cpu_physical_memory_write(ccw.cda, vdev->config, len);\n> +            ccw_dstream_write_buf(&sch->cds, vdev->config, len);\n>               sch->curr_status.scsw.count = ccw.count - len;\n>               ret = 0;\n>           }\n> @@ -501,21 +458,13 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>               }\n>           }\n>           len = MIN(ccw.count, vdev->config_len);\n> -        hw_len = len;\n>           if (!ccw.cda) {\n>               ret = -EFAULT;\n>           } else {\n> -            config = cpu_physical_memory_map(ccw.cda, &hw_len, 0);\n> -            if (!config) {\n> -                ret = -EFAULT;\n> -            } else {\n> -                len = hw_len;\n> -                /* XXX config space endianness */\n> -                memcpy(vdev->config, config, len);\n> -                cpu_physical_memory_unmap(config, hw_len, 0, hw_len);\n> +            ret = ccw_dstream_read_buf(&sch->cds, vdev->config, len);\n> +            if (!ret) {\n>                   virtio_bus_set_vdev_config(&dev->bus, vdev->config);\n>                   sch->curr_status.scsw.count = ccw.count - len;\n> -                ret = 0;\n>               }\n>           }\n>           break;\n> @@ -553,8 +502,7 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>           if (!ccw.cda) {\n>               ret = -EFAULT;\n>           } else {\n> -            status = address_space_ldub(&address_space_memory, ccw.cda,\n> -                                        MEMTXATTRS_UNSPECIFIED, NULL);\n> +            ccw_dstream_read(&sch->cds, status);\n>               if (!(status & VIRTIO_CONFIG_S_DRIVER_OK)) {\n>                   virtio_ccw_stop_ioeventfd(dev);\n>               }\n> @@ -597,8 +545,8 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>           if (!ccw.cda) {\n>               ret = -EFAULT;\n>           } else {\n> -            indicators = address_space_ldq_be(&address_space_memory, ccw.cda,\n> -                                              MEMTXATTRS_UNSPECIFIED, NULL);\n> +            ccw_dstream_read(&sch->cds, indicators);\n> +            be64_to_cpus(&indicators);\n>               dev->indicators = get_indicator(indicators, sizeof(uint64_t));\n>               sch->curr_status.scsw.count = ccw.count - sizeof(indicators);\n>               ret = 0;\n> @@ -618,8 +566,8 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>           if (!ccw.cda) {\n>               ret = -EFAULT;\n>           } else {\n> -            indicators = address_space_ldq_be(&address_space_memory, ccw.cda,\n> -                                              MEMTXATTRS_UNSPECIFIED, NULL);\n> +            ccw_dstream_read(&sch->cds, indicators);\n> +            be64_to_cpus(&indicators);\n>               dev->indicators2 = get_indicator(indicators, sizeof(uint64_t));\n>               sch->curr_status.scsw.count = ccw.count - sizeof(indicators);\n>               ret = 0;\n> @@ -639,67 +587,58 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>           if (!ccw.cda) {\n>               ret = -EFAULT;\n>           } else {\n> -            vq_config.index = address_space_lduw_be(&address_space_memory,\n> -                                                    ccw.cda,\n> -                                                    MEMTXATTRS_UNSPECIFIED,\n> -                                                    NULL);\n> +            ccw_dstream_read(&sch->cds, vq_config.index);\n> +            be16_to_cpus(&vq_config.index);\n>               if (vq_config.index >= VIRTIO_QUEUE_MAX) {\n>                   ret = -EINVAL;\n>                   break;\n>               }\n>               vq_config.num_max = virtio_queue_get_num(vdev,\n>                                                        vq_config.index);\n> -            address_space_stw_be(&address_space_memory,\n> -                                 ccw.cda + sizeof(vq_config.index),\n> -                                 vq_config.num_max,\n> -                                 MEMTXATTRS_UNSPECIFIED,\n> -                                 NULL);\n> +            cpu_to_be16s(&vq_config.num_max);\n> +            ccw_dstream_write(&sch->cds, vq_config.num_max);\n>               sch->curr_status.scsw.count = ccw.count - sizeof(vq_config);\n>               ret = 0;\n>           }\n>           break;\n>       case CCW_CMD_SET_IND_ADAPTER:\n>           if (check_len) {\n> -            if (ccw.count != sizeof(*thinint)) {\n> +            if (ccw.count != sizeof(thinint)) {\n>                   ret = -EINVAL;\n>                   break;\n>               }\n> -        } else if (ccw.count < sizeof(*thinint)) {\n> +        } else if (ccw.count < sizeof(thinint)) {\n>               /* Can't execute command. */\n>               ret = -EINVAL;\n>               break;\n>           }\n> -        len = sizeof(*thinint);\n> -        hw_len = len;\n>           if (!ccw.cda) {\n>               ret = -EFAULT;\n>           } else if (dev->indicators && !sch->thinint_active) {\n>               /* Trigger a command reject. */\n>               ret = -ENOSYS;\n>           } else {\n> -            thinint = cpu_physical_memory_map(ccw.cda, &hw_len, 0);\n> -            if (!thinint) {\n> +            if (ccw_dstream_read(&sch->cds, thinint)) {\n>                   ret = -EFAULT;\n>               } else {\n> -                uint64_t ind_bit = ldq_be_p(&thinint->ind_bit);\n> +                be64_to_cpus(&thinint.ind_bit);\n> +                be64_to_cpus(&thinint.summary_indicator);\n> +                be64_to_cpus(&thinint.device_indicator);\n> \n> -                len = hw_len;\n>                   dev->summary_indicator =\n> -                    get_indicator(ldq_be_p(&thinint->summary_indicator),\n> -                                  sizeof(uint8_t));\n> +                    get_indicator(thinint.summary_indicator, sizeof(uint8_t));\n>                   dev->indicators =\n> -                    get_indicator(ldq_be_p(&thinint->device_indicator),\n> -                                  ind_bit / 8 + 1);\n> -                dev->thinint_isc = thinint->isc;\n> -                dev->routes.adapter.ind_offset = ind_bit;\n> +                    get_indicator(thinint.device_indicator,\n> +                                  thinint.ind_bit / 8 + 1);\n> +                dev->thinint_isc = thinint.isc;\n> +                dev->routes.adapter.ind_offset = thinint.ind_bit;\n>                   dev->routes.adapter.summary_offset = 7;\n> -                cpu_physical_memory_unmap(thinint, hw_len, 0, hw_len);\n>                   dev->routes.adapter.adapter_id = css_get_adapter_id(\n>                                                    CSS_IO_ADAPTER_VIRTIO,\n>                                                    dev->thinint_isc);\n>                   sch->thinint_active = ((dev->indicators != NULL) &&\n>                                          (dev->summary_indicator != NULL));\n> -                sch->curr_status.scsw.count = ccw.count - len;\n> +                sch->curr_status.scsw.count = ccw.count - sizeof(thinint);\n>                   ret = 0;\n>               }\n>           }\n> @@ -714,13 +653,9 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n>               ret = -EFAULT;\n>               break;\n>           }\n> -        revinfo.revision =\n> -            address_space_lduw_be(&address_space_memory, ccw.cda,\n> -                                  MEMTXATTRS_UNSPECIFIED, NULL);\n> -        revinfo.length =\n> -            address_space_lduw_be(&address_space_memory,\n> -                                  ccw.cda + sizeof(revinfo.revision),\n> -                                  MEMTXATTRS_UNSPECIFIED, NULL);\n> +        ccw_dstream_read_buf(&sch->cds, &revinfo, 4);\n> +        be16_to_cpus(&revinfo.revision);\n> +        be16_to_cpus(&revinfo.length);\n>           if (ccw.count < len + revinfo.length ||\n>               (check_len && ccw.count > len + revinfo.length)) {\n>               ret = -EINVAL;\n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xyWtG58W1z9s5L\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 21 Sep 2017 19:44:54 +1000 (AEST)","from localhost ([::1]:52627 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1duy2O-0003Ho-SZ\n\tfor incoming@patchwork.ozlabs.org; Thu, 21 Sep 2017 05:44:52 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:34764)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <pmorel@linux.vnet.ibm.com>) id 1duy1z-0003HG-Te\n\tfor qemu-devel@nongnu.org; Thu, 21 Sep 2017 05:44:34 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <pmorel@linux.vnet.ibm.com>) id 1duy1u-0004mg-VC\n\tfor qemu-devel@nongnu.org; Thu, 21 Sep 2017 05:44:27 -0400","from mx0a-001b2d01.pphosted.com ([148.163.156.1]:40870)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <pmorel@linux.vnet.ibm.com>)\n\tid 1duy1u-0004lA-MQ\n\tfor qemu-devel@nongnu.org; Thu, 21 Sep 2017 05:44:22 -0400","from pps.filterd (m0098396.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv8L9iC53122006\n\tfor <qemu-devel@nongnu.org>; Thu, 21 Sep 2017 05:44:21 -0400","from e06smtp10.uk.ibm.com (e06smtp10.uk.ibm.com [195.75.94.106])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2d48b58fx9-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <qemu-devel@nongnu.org>; Thu, 21 Sep 2017 05:44:20 -0400","from localhost\n\tby e06smtp10.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <qemu-devel@nongnu.org> from <pmorel@linux.vnet.ibm.com>;\n\tThu, 21 Sep 2017 10:44:18 +0100","from b06cxnps3075.portsmouth.uk.ibm.com (9.149.109.195)\n\tby e06smtp10.uk.ibm.com (192.168.101.140) with IBM ESMTP SMTP\n\tGateway: Authorized Use Only! Violators will be prosecuted; \n\tThu, 21 Sep 2017 10:44:16 +0100","from d06av26.portsmouth.uk.ibm.com (d06av26.portsmouth.uk.ibm.com\n\t[9.149.105.62])\n\tby b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with\n\tESMTP id v8L9iGq926738848; Thu, 21 Sep 2017 09:44:16 GMT","from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 43DAEAE04D;\n\tThu, 21 Sep 2017 10:39:07 +0100 (BST)","from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id E0E17AE045;\n\tThu, 21 Sep 2017 10:39:06 +0100 (BST)","from [9.145.23.132] (unknown [9.145.23.132])\n\tby d06av26.portsmouth.uk.ibm.com (Postfix) with ESMTP;\n\tThu, 21 Sep 2017 10:39:06 +0100 (BST)"],"To":"Halil Pasic <pasic@linux.vnet.ibm.com>, Cornelia Huck <cohuck@redhat.com>","References":"<20170919182745.90280-1-pasic@linux.vnet.ibm.com>\n\t<20170919182745.90280-4-pasic@linux.vnet.ibm.com>","From":"Pierre Morel <pmorel@linux.vnet.ibm.com>","Date":"Thu, 21 Sep 2017 11:44:15 +0200","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<20170919182745.90280-4-pasic@linux.vnet.ibm.com>","Content-Type":"text/plain; charset=utf-8; format=flowed","Content-Language":"en-US","X-TM-AS-GCONF":"00","x-cbid":"17092109-0040-0000-0000-000003DBEE2F","X-IBM-AV-DETECTION":"SAVI=unused REMOTE=unused XFE=unused","x-cbparentid":"17092109-0041-0000-0000-000025DD2810","Message-Id":"<de7b0939-df06-333f-28ce-cd9d3fe58eb2@linux.vnet.ibm.com>","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-21_02:, , signatures=0","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=0\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1709210132","Content-Transfer-Encoding":"quoted-printable","X-MIME-Autoconverted":"from 8bit to quoted-printable by\n\tmx0a-001b2d01.pphosted.com id v8L9iC53122006","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy]","X-Received-From":"148.163.156.1","Subject":"Re: [Qemu-devel] [PATCH v3 3/5] virtio-ccw: use ccw data stream","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>, qemu-devel@nongnu.org","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1773005,"web_url":"http://patchwork.ozlabs.org/comment/1773005/","msgid":"<f276a79a-9fc7-551a-7148-8c9e8b821e82@linux.vnet.ibm.com>","list_archive_url":null,"date":"2017-09-21T17:01:12","subject":"Re: [Qemu-devel] [PATCH v3 3/5] virtio-ccw: use ccw data stream","submitter":{"id":68297,"url":"http://patchwork.ozlabs.org/api/people/68297/","name":"Halil Pasic","email":"pasic@linux.vnet.ibm.com"},"content":"On 09/21/2017 11:44 AM, Pierre Morel wrote:\r\n> On 19/09/2017 20:27, Halil Pasic wrote:\r\n>> Replace direct access which implicitly assumes no IDA\r\n>> or MIDA with the new ccw data stream interface which should\r\n>> cope with these transparently in the future.\r\n>>\r\n>> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>\r\n>> Reviewed-by: Pierre Morel<pmorel@linux.vnet.ibm.com>\r\n>> ---\r\n>>   hw/s390x/virtio-ccw.c | 157 +++++++++++++++-----------------------------------\r\n>>   1 file changed, 46 insertions(+), 111 deletions(-)\r\n>>\r\n>> diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c\r\n>> index b1976fdd19..d024f8b2d3 100644\r\n>> --- a/hw/s390x/virtio-ccw.c\r\n>> +++ b/hw/s390x/virtio-ccw.c\r\n>> @@ -287,49 +287,19 @@ static int virtio_ccw_handle_set_vq(SubchDev *sch, CCW1 ccw, bool check_len,\r\n>>           return -EFAULT;\r\n>>       }\r\n>>       if (is_legacy) {\r\n>> -        linfo.queue = address_space_ldq_be(&address_space_memory, ccw.cda,\r\n>> -                                           MEMTXATTRS_UNSPECIFIED, NULL);\r\n>> -        linfo.align = address_space_ldl_be(&address_space_memory,\r\n>> -                                           ccw.cda + sizeof(linfo.queue),\r\n>> -                                           MEMTXATTRS_UNSPECIFIED,\r\n>> -                                           NULL);\r\n>> -        linfo.index = address_space_lduw_be(&address_space_memory,\r\n>> -                                            ccw.cda + sizeof(linfo.queue)\r\n>> -                                            + sizeof(linfo.align),\r\n>> -                                            MEMTXATTRS_UNSPECIFIED,\r\n>> -                                            NULL);\r\n>> -        linfo.num = address_space_lduw_be(&address_space_memory,\r\n>> -                                          ccw.cda + sizeof(linfo.queue)\r\n>> -                                          + sizeof(linfo.align)\r\n>> -                                          + sizeof(linfo.index),\r\n>> -                                          MEMTXATTRS_UNSPECIFIED,\r\n>> -                                          NULL);\r\n> \r\n> Here again, I oversaw this.\r\n> Sorry.\r\n> \r\n>> +        ccw_dstream_read(&sch->cds, linfo);\r\n> \r\n> Same as for patch 2/5:\r\n> Shouldn't you test the return value here?\r\n> \r\n\r\nIt's keep the change minimal policy. Later we can discuss\r\ntightening the checks. For now I don't want to introduce\r\nany new ones.\r\n\r\nHalil","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xyjpd4xtjz9sRq\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 22 Sep 2017 03:12:25 +1000 (AEST)","from localhost ([::1]:54781 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dv51T-0003M7-Pq\n\tfor incoming@patchwork.ozlabs.org; Thu, 21 Sep 2017 13:12:23 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:38842)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <pasic@linux.vnet.ibm.com>) id 1dv4qs-0003ln-To\n\tfor qemu-devel@nongnu.org; Thu, 21 Sep 2017 13:01:31 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <pasic@linux.vnet.ibm.com>) id 1dv4qo-0000kR-KH\n\tfor qemu-devel@nongnu.org; Thu, 21 Sep 2017 13:01:27 -0400","from mx0b-001b2d01.pphosted.com ([148.163.158.5]:55412\n\thelo=mx0a-001b2d01.pphosted.com)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <pasic@linux.vnet.ibm.com>)\n\tid 1dv4qo-0000jW-99\n\tfor qemu-devel@nongnu.org; Thu, 21 Sep 2017 13:01:22 -0400","from pps.filterd (m0098417.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv8LGsCoi085795\n\tfor <qemu-devel@nongnu.org>; Thu, 21 Sep 2017 13:01:18 -0400","from e06smtp15.uk.ibm.com (e06smtp15.uk.ibm.com [195.75.94.111])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2d4f62751c-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <qemu-devel@nongnu.org>; Thu, 21 Sep 2017 13:01:17 -0400","from localhost\n\tby e06smtp15.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <qemu-devel@nongnu.org> from <pasic@linux.vnet.ibm.com>;\n\tThu, 21 Sep 2017 18:01:15 +0100","from b06cxnps4074.portsmouth.uk.ibm.com (9.149.109.196)\n\tby e06smtp15.uk.ibm.com (192.168.101.145) with IBM ESMTP SMTP\n\tGateway: Authorized Use Only! Violators will be prosecuted; \n\tThu, 21 Sep 2017 18:01:13 +0100","from d06av24.portsmouth.uk.ibm.com (d06av24.portsmouth.uk.ibm.com\n\t[9.149.105.60])\n\tby b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with\n\tESMTP id v8LH1DxK25690314; Thu, 21 Sep 2017 17:01:13 GMT","from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 9823C42041;\n\tThu, 21 Sep 2017 17:57:22 +0100 (BST)","from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 4DF364203F;\n\tThu, 21 Sep 2017 17:57:22 +0100 (BST)","from oc3836556865.ibm.com (unknown [9.152.224.207])\n\tby d06av24.portsmouth.uk.ibm.com (Postfix) with ESMTP;\n\tThu, 21 Sep 2017 17:57:22 +0100 (BST)"],"To":"Pierre Morel <pmorel@linux.vnet.ibm.com>,\n\tCornelia Huck <cohuck@redhat.com>","References":"<20170919182745.90280-1-pasic@linux.vnet.ibm.com>\n\t<20170919182745.90280-4-pasic@linux.vnet.ibm.com>\n\t<de7b0939-df06-333f-28ce-cd9d3fe58eb2@linux.vnet.ibm.com>","From":"Halil Pasic <pasic@linux.vnet.ibm.com>","Date":"Thu, 21 Sep 2017 19:01:12 +0200","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<de7b0939-df06-333f-28ce-cd9d3fe58eb2@linux.vnet.ibm.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","X-TM-AS-GCONF":"00","x-cbid":"17092117-0020-0000-0000-000003BA11B8","X-IBM-AV-DETECTION":"SAVI=unused REMOTE=unused XFE=unused","x-cbparentid":"17092117-0021-0000-0000-0000424BD385","Message-Id":"<f276a79a-9fc7-551a-7148-8c9e8b821e82@linux.vnet.ibm.com>","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-21_04:, , signatures=0","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=0\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1709210229","Content-Transfer-Encoding":"base64","X-MIME-Autoconverted":"from 8bit to base64 by mx0a-001b2d01.pphosted.com id\n\tv8LGsCoi085795","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy]","X-Received-From":"148.163.158.5","Subject":"Re: [Qemu-devel] [PATCH v3 3/5] virtio-ccw: use ccw data stream","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>, qemu-devel@nongnu.org","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}}]