From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 096CAC433EF for ; Thu, 14 Apr 2022 06:25:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237470AbiDNG1Y (ORCPT ); Thu, 14 Apr 2022 02:27:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50566 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231788AbiDNG1Y (ORCPT ); Thu, 14 Apr 2022 02:27:24 -0400 Received: from out30-56.freemail.mail.aliyun.com (out30-56.freemail.mail.aliyun.com [115.124.30.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C97631FA6F; Wed, 13 Apr 2022 23:24:56 -0700 (PDT) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R101e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04394;MF=xuanzhuo@linux.alibaba.com;NM=1;PH=DS;RN=33;SR=0;TI=SMTPD_---0VA0zc-G_1649917489; Received: from localhost(mailfrom:xuanzhuo@linux.alibaba.com fp:SMTPD_---0VA0zc-G_1649917489) by smtp.aliyun-inc.com(127.0.0.1); Thu, 14 Apr 2022 14:24:51 +0800 Message-ID: <1649917349.6242197-1-xuanzhuo@linux.alibaba.com> Subject: Re: [PATCH v9 22/32] virtio_pci: queue_reset: extract the logic of active vq for modern pci Date: Thu, 14 Apr 2022 14:22:29 +0800 From: Xuan Zhuo To: Jason Wang Cc: Jeff Dike , Richard Weinberger , Anton Ivanov , "Michael S. Tsirkin" , "David S. Miller" , Jakub Kicinski , Hans de Goede , Mark Gross , Vadim Pasternak , Bjorn Andersson , Mathieu Poirier , Cornelia Huck , Halil Pasic , Heiko Carstens , Vasily Gorbik , Christian Borntraeger , Alexander Gordeev , Sven Schnelle , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Johannes Berg , Vincent Whitchurch , linux-um@lists.infradead.org, netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-remoteproc@vger.kernel.org, linux-s390@vger.kernel.org, kvm@vger.kernel.org, bpf@vger.kernel.org, virtualization@lists.linux-foundation.org References: <20220406034346.74409-1-xuanzhuo@linux.alibaba.com> <20220406034346.74409-23-xuanzhuo@linux.alibaba.com> In-Reply-To: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org On Tue, 12 Apr 2022 14:58:19 +0800, Jason Wang wrote: > > =E5=9C=A8 2022/4/6 =E4=B8=8A=E5=8D=8811:43, Xuan Zhuo =E5=86=99=E9=81=93: > > Introduce vp_active_vq() to configure vring to backend after vq attach > > vring. And configure vq vector if necessary. > > > > Signed-off-by: Xuan Zhuo > > --- > > drivers/virtio/virtio_pci_modern.c | 46 ++++++++++++++++++------------ > > 1 file changed, 28 insertions(+), 18 deletions(-) > > > > diff --git a/drivers/virtio/virtio_pci_modern.c b/drivers/virtio/virtio= _pci_modern.c > > index 86d301f272b8..49a4493732cf 100644 > > --- a/drivers/virtio/virtio_pci_modern.c > > +++ b/drivers/virtio/virtio_pci_modern.c > > @@ -176,6 +176,29 @@ static void vp_reset(struct virtio_device *vdev) > > vp_disable_cbs(vdev); > > } > > > > +static int vp_active_vq(struct virtqueue *vq, u16 msix_vec) > > +{ > > + struct virtio_pci_device *vp_dev =3D to_vp_device(vq->vdev); > > + struct virtio_pci_modern_device *mdev =3D &vp_dev->mdev; > > + unsigned long index; > > + > > + index =3D vq->index; > > + > > + /* activate the queue */ > > + vp_modern_set_queue_size(mdev, index, virtqueue_get_vring_size(vq)); > > + vp_modern_queue_address(mdev, index, virtqueue_get_desc_addr(vq), > > + virtqueue_get_avail_addr(vq), > > + virtqueue_get_used_addr(vq)); > > + > > + if (msix_vec !=3D VIRTIO_MSI_NO_VECTOR) { > > + msix_vec =3D vp_modern_queue_vector(mdev, index, msix_vec); > > + if (msix_vec =3D=3D VIRTIO_MSI_NO_VECTOR) > > + return -EBUSY; > > + } > > + > > + return 0; > > +} > > + > > static u16 vp_config_vector(struct virtio_pci_device *vp_dev, u16 vec= tor) > > { > > return vp_modern_config_vector(&vp_dev->mdev, vector); > > @@ -220,32 +243,19 @@ static struct virtqueue *setup_vq(struct virtio_p= ci_device *vp_dev, > > > > vq->num_max =3D num; > > > > - /* activate the queue */ > > - vp_modern_set_queue_size(mdev, index, virtqueue_get_vring_size(vq)); > > - vp_modern_queue_address(mdev, index, virtqueue_get_desc_addr(vq), > > - virtqueue_get_avail_addr(vq), > > - virtqueue_get_used_addr(vq)); > > + err =3D vp_active_vq(vq, msix_vec); > > + if (err) > > + goto err; > > > > vq->priv =3D (void __force *)vp_modern_map_vq_notify(mdev, index, NU= LL); > > if (!vq->priv) { > > err =3D -ENOMEM; > > - goto err_map_notify; > > - } > > - > > - if (msix_vec !=3D VIRTIO_MSI_NO_VECTOR) { > > - msix_vec =3D vp_modern_queue_vector(mdev, index, msix_vec); > > - if (msix_vec =3D=3D VIRTIO_MSI_NO_VECTOR) { > > - err =3D -EBUSY; > > - goto err_assign_vector; > > - } > > + goto err; > > } > > > > return vq; > > > > -err_assign_vector: > > - if (!mdev->notify_base) > > - pci_iounmap(mdev->pci_dev, (void __iomem __force *)vq->priv); > > > We need keep this or anything I missed? I think so, after modification, vp_modern_map_vq_notify is the last step be= fore returning vq. If it fails, then vq->priv is equal to NULL, so there is no n= eed to execute pci_iounmap. Did I miss something? Thanks. > > Thanks > > > > -err_map_notify: > > +err: > > vring_del_virtqueue(vq); > > return ERR_PTR(err); > > } > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D91CBC433F5 for ; Thu, 14 Apr 2022 06:25:02 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 6DFBC4063E; Thu, 14 Apr 2022 06:25:02 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZffOsGb3xmGB; Thu, 14 Apr 2022 06:25:01 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp2.osuosl.org (Postfix) with ESMTPS id F09B340157; Thu, 14 Apr 2022 06:25:00 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id C11B1C0033; Thu, 14 Apr 2022 06:25:00 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id CAA61C002C for ; Thu, 14 Apr 2022 06:24:59 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id A295C4063E for ; Thu, 14 Apr 2022 06:24:59 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wUVkfMWQTrcF for ; Thu, 14 Apr 2022 06:24:58 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from out30-54.freemail.mail.aliyun.com (out30-54.freemail.mail.aliyun.com [115.124.30.54]) by smtp2.osuosl.org (Postfix) with ESMTPS id 6A5F140157 for ; Thu, 14 Apr 2022 06:24:58 +0000 (UTC) X-Alimail-AntiSpam: AC=PASS; BC=-1|-1; BR=01201311R101e4; CH=green; DM=||false|; DS=||; FP=0|-1|-1|-1|0|-1|-1|-1; HT=e01e04394; MF=xuanzhuo@linux.alibaba.com; NM=1; PH=DS; RN=33; SR=0; TI=SMTPD_---0VA0zc-G_1649917489; Received: from localhost(mailfrom:xuanzhuo@linux.alibaba.com fp:SMTPD_---0VA0zc-G_1649917489) by smtp.aliyun-inc.com(127.0.0.1); Thu, 14 Apr 2022 14:24:51 +0800 Message-ID: <1649917349.6242197-1-xuanzhuo@linux.alibaba.com> Subject: Re: [PATCH v9 22/32] virtio_pci: queue_reset: extract the logic of active vq for modern pci Date: Thu, 14 Apr 2022 14:22:29 +0800 From: Xuan Zhuo To: Jason Wang References: <20220406034346.74409-1-xuanzhuo@linux.alibaba.com> <20220406034346.74409-23-xuanzhuo@linux.alibaba.com> In-Reply-To: Cc: Vadim Pasternak , "Michael S. Tsirkin" , linux-remoteproc@vger.kernel.org, Alexei Starovoitov , Bjorn Andersson , Alexander Gordeev , Anton Ivanov , linux-s390@vger.kernel.org, Johannes Berg , Daniel Borkmann , Richard Weinberger , Vincent Whitchurch , John Fastabend , Halil Pasic , Jakub Kicinski , virtualization@lists.linux-foundation.org, Heiko Carstens , Jesper Dangaard Brouer , Vasily Gorbik , Jeff Dike , linux-um@lists.infradead.org, Mark Gross , Hans de Goede , kvm@vger.kernel.org, platform-driver-x86@vger.kernel.org, Mathieu Poirier , netdev@vger.kernel.org, Cornelia Huck , Sven Schnelle , bpf@vger.kernel.org, "David S. Miller" X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" T24gVHVlLCAxMiBBcHIgMjAyMiAxNDo1ODoxOSArMDgwMCwgSmFzb24gV2FuZyA8amFzb3dhbmdA cmVkaGF0LmNvbT4gd3JvdGU6Cj4KPiDlnKggMjAyMi80LzYg5LiK5Y2IMTE6NDMsIFh1YW4gWmh1 byDlhpnpgZM6Cj4gPiBJbnRyb2R1Y2UgdnBfYWN0aXZlX3ZxKCkgdG8gY29uZmlndXJlIHZyaW5n IHRvIGJhY2tlbmQgYWZ0ZXIgdnEgYXR0YWNoCj4gPiB2cmluZy4gQW5kIGNvbmZpZ3VyZSB2cSB2 ZWN0b3IgaWYgbmVjZXNzYXJ5Lgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFh1YW4gWmh1byA8eHVh bnpodW9AbGludXguYWxpYmFiYS5jb20+Cj4gPiAtLS0KPiA+ICAgZHJpdmVycy92aXJ0aW8vdmly dGlvX3BjaV9tb2Rlcm4uYyB8IDQ2ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ID4g ICAxIGZpbGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCj4gPgo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19wY2lfbW9kZXJuLmMgYi9kcml2 ZXJzL3ZpcnRpby92aXJ0aW9fcGNpX21vZGVybi5jCj4gPiBpbmRleCA4NmQzMDFmMjcyYjguLjQ5 YTQ0OTM3MzJjZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19wY2lfbW9k ZXJuLmMKPiA+ICsrKyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19wY2lfbW9kZXJuLmMKPiA+IEBA IC0xNzYsNiArMTc2LDI5IEBAIHN0YXRpYyB2b2lkIHZwX3Jlc2V0KHN0cnVjdCB2aXJ0aW9fZGV2 aWNlICp2ZGV2KQo+ID4gICAJdnBfZGlzYWJsZV9jYnModmRldik7Cj4gPiAgIH0KPiA+Cj4gPiAr c3RhdGljIGludCB2cF9hY3RpdmVfdnEoc3RydWN0IHZpcnRxdWV1ZSAqdnEsIHUxNiBtc2l4X3Zl YykKPiA+ICt7Cj4gPiArCXN0cnVjdCB2aXJ0aW9fcGNpX2RldmljZSAqdnBfZGV2ID0gdG9fdnBf ZGV2aWNlKHZxLT52ZGV2KTsKPiA+ICsJc3RydWN0IHZpcnRpb19wY2lfbW9kZXJuX2RldmljZSAq bWRldiA9ICZ2cF9kZXYtPm1kZXY7Cj4gPiArCXVuc2lnbmVkIGxvbmcgaW5kZXg7Cj4gPiArCj4g PiArCWluZGV4ID0gdnEtPmluZGV4Owo+ID4gKwo+ID4gKwkvKiBhY3RpdmF0ZSB0aGUgcXVldWUg Ki8KPiA+ICsJdnBfbW9kZXJuX3NldF9xdWV1ZV9zaXplKG1kZXYsIGluZGV4LCB2aXJ0cXVldWVf Z2V0X3ZyaW5nX3NpemUodnEpKTsKPiA+ICsJdnBfbW9kZXJuX3F1ZXVlX2FkZHJlc3MobWRldiwg aW5kZXgsIHZpcnRxdWV1ZV9nZXRfZGVzY19hZGRyKHZxKSwKPiA+ICsJCQkJdmlydHF1ZXVlX2dl dF9hdmFpbF9hZGRyKHZxKSwKPiA+ICsJCQkJdmlydHF1ZXVlX2dldF91c2VkX2FkZHIodnEpKTsK PiA+ICsKPiA+ICsJaWYgKG1zaXhfdmVjICE9IFZJUlRJT19NU0lfTk9fVkVDVE9SKSB7Cj4gPiAr CQltc2l4X3ZlYyA9IHZwX21vZGVybl9xdWV1ZV92ZWN0b3IobWRldiwgaW5kZXgsIG1zaXhfdmVj KTsKPiA+ICsJCWlmIChtc2l4X3ZlYyA9PSBWSVJUSU9fTVNJX05PX1ZFQ1RPUikKPiA+ICsJCQly ZXR1cm4gLUVCVVNZOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiAwOwo+ID4gK30KPiA+ICsK PiA+ICAgc3RhdGljIHUxNiB2cF9jb25maWdfdmVjdG9yKHN0cnVjdCB2aXJ0aW9fcGNpX2Rldmlj ZSAqdnBfZGV2LCB1MTYgdmVjdG9yKQo+ID4gICB7Cj4gPiAgIAlyZXR1cm4gdnBfbW9kZXJuX2Nv bmZpZ192ZWN0b3IoJnZwX2Rldi0+bWRldiwgdmVjdG9yKTsKPiA+IEBAIC0yMjAsMzIgKzI0Mywx OSBAQCBzdGF0aWMgc3RydWN0IHZpcnRxdWV1ZSAqc2V0dXBfdnEoc3RydWN0IHZpcnRpb19wY2lf ZGV2aWNlICp2cF9kZXYsCj4gPgo+ID4gICAJdnEtPm51bV9tYXggPSBudW07Cj4gPgo+ID4gLQkv KiBhY3RpdmF0ZSB0aGUgcXVldWUgKi8KPiA+IC0JdnBfbW9kZXJuX3NldF9xdWV1ZV9zaXplKG1k ZXYsIGluZGV4LCB2aXJ0cXVldWVfZ2V0X3ZyaW5nX3NpemUodnEpKTsKPiA+IC0JdnBfbW9kZXJu X3F1ZXVlX2FkZHJlc3MobWRldiwgaW5kZXgsIHZpcnRxdWV1ZV9nZXRfZGVzY19hZGRyKHZxKSwK PiA+IC0JCQkJdmlydHF1ZXVlX2dldF9hdmFpbF9hZGRyKHZxKSwKPiA+IC0JCQkJdmlydHF1ZXVl X2dldF91c2VkX2FkZHIodnEpKTsKPiA+ICsJZXJyID0gdnBfYWN0aXZlX3ZxKHZxLCBtc2l4X3Zl Yyk7Cj4gPiArCWlmIChlcnIpCj4gPiArCQlnb3RvIGVycjsKPiA+Cj4gPiAgIAl2cS0+cHJpdiA9 ICh2b2lkIF9fZm9yY2UgKil2cF9tb2Rlcm5fbWFwX3ZxX25vdGlmeShtZGV2LCBpbmRleCwgTlVM TCk7Cj4gPiAgIAlpZiAoIXZxLT5wcml2KSB7Cj4gPiAgIAkJZXJyID0gLUVOT01FTTsKPiA+IC0J CWdvdG8gZXJyX21hcF9ub3RpZnk7Cj4gPiAtCX0KPiA+IC0KPiA+IC0JaWYgKG1zaXhfdmVjICE9 IFZJUlRJT19NU0lfTk9fVkVDVE9SKSB7Cj4gPiAtCQltc2l4X3ZlYyA9IHZwX21vZGVybl9xdWV1 ZV92ZWN0b3IobWRldiwgaW5kZXgsIG1zaXhfdmVjKTsKPiA+IC0JCWlmIChtc2l4X3ZlYyA9PSBW SVJUSU9fTVNJX05PX1ZFQ1RPUikgewo+ID4gLQkJCWVyciA9IC1FQlVTWTsKPiA+IC0JCQlnb3Rv IGVycl9hc3NpZ25fdmVjdG9yOwo+ID4gLQkJfQo+ID4gKwkJZ290byBlcnI7Cj4gPiAgIAl9Cj4g Pgo+ID4gICAJcmV0dXJuIHZxOwo+ID4KPiA+IC1lcnJfYXNzaWduX3ZlY3RvcjoKPiA+IC0JaWYg KCFtZGV2LT5ub3RpZnlfYmFzZSkKPiA+IC0JCXBjaV9pb3VubWFwKG1kZXYtPnBjaV9kZXYsICh2 b2lkIF9faW9tZW0gX19mb3JjZSAqKXZxLT5wcml2KTsKPgo+Cj4gV2UgbmVlZCBrZWVwIHRoaXMg b3IgYW55dGhpbmcgSSBtaXNzZWQ/CgpJIHRoaW5rIHNvLCBhZnRlciBtb2RpZmljYXRpb24sIHZw X21vZGVybl9tYXBfdnFfbm90aWZ5IGlzIHRoZSBsYXN0IHN0ZXAgYmVmb3JlCnJldHVybmluZyB2 cS4gSWYgaXQgZmFpbHMsIHRoZW4gdnEtPnByaXYgaXMgZXF1YWwgdG8gTlVMTCwgc28gdGhlcmUg aXMgbm8gbmVlZAp0byBleGVjdXRlIHBjaV9pb3VubWFwLgoKRGlkIEkgbWlzcyBzb21ldGhpbmc/ CgpUaGFua3MuCgo+Cj4gVGhhbmtzCj4KPgo+ID4gLWVycl9tYXBfbm90aWZ5Ogo+ID4gK2VycjoK PiA+ICAgCXZyaW5nX2RlbF92aXJ0cXVldWUodnEpOwo+ID4gICAJcmV0dXJuIEVSUl9QVFIoZXJy KTsKPiA+ICAgfQo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApWaXJ0dWFsaXphdGlvbkBsaXN0cy5saW51 eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1h bi9saXN0aW5mby92aXJ0dWFsaXphdGlvbg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-43.freemail.mail.aliyun.com ([115.124.30.43]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nesua-0044ms-9g for linux-um@lists.infradead.org; Thu, 14 Apr 2022 06:25:02 +0000 Message-ID: <1649917349.6242197-1-xuanzhuo@linux.alibaba.com> Subject: Re: [PATCH v9 22/32] virtio_pci: queue_reset: extract the logic of active vq for modern pci Date: Thu, 14 Apr 2022 14:22:29 +0800 From: Xuan Zhuo References: <20220406034346.74409-1-xuanzhuo@linux.alibaba.com> <20220406034346.74409-23-xuanzhuo@linux.alibaba.com> In-Reply-To: List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-um" Errors-To: linux-um-bounces+geert=linux-m68k.org@lists.infradead.org To: Jason Wang Cc: Jeff Dike , Richard Weinberger , Anton Ivanov , "Michael S. Tsirkin" , "David S. Miller" , Jakub Kicinski , Hans de Goede , Mark Gross , Vadim Pasternak , Bjorn Andersson , Mathieu Poirier , Cornelia Huck , Halil Pasic , Heiko Carstens , Vasily Gorbik , Christian Borntraeger , Alexander Gordeev , Sven Schnelle , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Johannes Berg , Vincent Whitchurch , linux-um@lists.infradead.org, netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-remoteproc@vger.kernel.org, linux-s390@vger.kernel.org, kvm@vger.kernel.org, bpf@vger.kernel.org, virtualization@lists.linux-foundation.org T24gVHVlLCAxMiBBcHIgMjAyMiAxNDo1ODoxOSArMDgwMCwgSmFzb24gV2FuZyA8amFzb3dhbmdA cmVkaGF0LmNvbT4gd3JvdGU6Cj4KPiDlnKggMjAyMi80LzYg5LiK5Y2IMTE6NDMsIFh1YW4gWmh1 byDlhpnpgZM6Cj4gPiBJbnRyb2R1Y2UgdnBfYWN0aXZlX3ZxKCkgdG8gY29uZmlndXJlIHZyaW5n IHRvIGJhY2tlbmQgYWZ0ZXIgdnEgYXR0YWNoCj4gPiB2cmluZy4gQW5kIGNvbmZpZ3VyZSB2cSB2 ZWN0b3IgaWYgbmVjZXNzYXJ5Lgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFh1YW4gWmh1byA8eHVh bnpodW9AbGludXguYWxpYmFiYS5jb20+Cj4gPiAtLS0KPiA+ICAgZHJpdmVycy92aXJ0aW8vdmly dGlvX3BjaV9tb2Rlcm4uYyB8IDQ2ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ID4g ICAxIGZpbGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCj4gPgo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19wY2lfbW9kZXJuLmMgYi9kcml2 ZXJzL3ZpcnRpby92aXJ0aW9fcGNpX21vZGVybi5jCj4gPiBpbmRleCA4NmQzMDFmMjcyYjguLjQ5 YTQ0OTM3MzJjZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19wY2lfbW9k ZXJuLmMKPiA+ICsrKyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19wY2lfbW9kZXJuLmMKPiA+IEBA IC0xNzYsNiArMTc2LDI5IEBAIHN0YXRpYyB2b2lkIHZwX3Jlc2V0KHN0cnVjdCB2aXJ0aW9fZGV2 aWNlICp2ZGV2KQo+ID4gICAJdnBfZGlzYWJsZV9jYnModmRldik7Cj4gPiAgIH0KPiA+Cj4gPiAr c3RhdGljIGludCB2cF9hY3RpdmVfdnEoc3RydWN0IHZpcnRxdWV1ZSAqdnEsIHUxNiBtc2l4X3Zl YykKPiA+ICt7Cj4gPiArCXN0cnVjdCB2aXJ0aW9fcGNpX2RldmljZSAqdnBfZGV2ID0gdG9fdnBf ZGV2aWNlKHZxLT52ZGV2KTsKPiA+ICsJc3RydWN0IHZpcnRpb19wY2lfbW9kZXJuX2RldmljZSAq bWRldiA9ICZ2cF9kZXYtPm1kZXY7Cj4gPiArCXVuc2lnbmVkIGxvbmcgaW5kZXg7Cj4gPiArCj4g PiArCWluZGV4ID0gdnEtPmluZGV4Owo+ID4gKwo+ID4gKwkvKiBhY3RpdmF0ZSB0aGUgcXVldWUg Ki8KPiA+ICsJdnBfbW9kZXJuX3NldF9xdWV1ZV9zaXplKG1kZXYsIGluZGV4LCB2aXJ0cXVldWVf Z2V0X3ZyaW5nX3NpemUodnEpKTsKPiA+ICsJdnBfbW9kZXJuX3F1ZXVlX2FkZHJlc3MobWRldiwg aW5kZXgsIHZpcnRxdWV1ZV9nZXRfZGVzY19hZGRyKHZxKSwKPiA+ICsJCQkJdmlydHF1ZXVlX2dl dF9hdmFpbF9hZGRyKHZxKSwKPiA+ICsJCQkJdmlydHF1ZXVlX2dldF91c2VkX2FkZHIodnEpKTsK PiA+ICsKPiA+ICsJaWYgKG1zaXhfdmVjICE9IFZJUlRJT19NU0lfTk9fVkVDVE9SKSB7Cj4gPiAr CQltc2l4X3ZlYyA9IHZwX21vZGVybl9xdWV1ZV92ZWN0b3IobWRldiwgaW5kZXgsIG1zaXhfdmVj KTsKPiA+ICsJCWlmIChtc2l4X3ZlYyA9PSBWSVJUSU9fTVNJX05PX1ZFQ1RPUikKPiA+ICsJCQly ZXR1cm4gLUVCVVNZOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiAwOwo+ID4gK30KPiA+ICsK PiA+ICAgc3RhdGljIHUxNiB2cF9jb25maWdfdmVjdG9yKHN0cnVjdCB2aXJ0aW9fcGNpX2Rldmlj ZSAqdnBfZGV2LCB1MTYgdmVjdG9yKQo+ID4gICB7Cj4gPiAgIAlyZXR1cm4gdnBfbW9kZXJuX2Nv bmZpZ192ZWN0b3IoJnZwX2Rldi0+bWRldiwgdmVjdG9yKTsKPiA+IEBAIC0yMjAsMzIgKzI0Mywx OSBAQCBzdGF0aWMgc3RydWN0IHZpcnRxdWV1ZSAqc2V0dXBfdnEoc3RydWN0IHZpcnRpb19wY2lf ZGV2aWNlICp2cF9kZXYsCj4gPgo+ID4gICAJdnEtPm51bV9tYXggPSBudW07Cj4gPgo+ID4gLQkv KiBhY3RpdmF0ZSB0aGUgcXVldWUgKi8KPiA+IC0JdnBfbW9kZXJuX3NldF9xdWV1ZV9zaXplKG1k ZXYsIGluZGV4LCB2aXJ0cXVldWVfZ2V0X3ZyaW5nX3NpemUodnEpKTsKPiA+IC0JdnBfbW9kZXJu X3F1ZXVlX2FkZHJlc3MobWRldiwgaW5kZXgsIHZpcnRxdWV1ZV9nZXRfZGVzY19hZGRyKHZxKSwK PiA+IC0JCQkJdmlydHF1ZXVlX2dldF9hdmFpbF9hZGRyKHZxKSwKPiA+IC0JCQkJdmlydHF1ZXVl X2dldF91c2VkX2FkZHIodnEpKTsKPiA+ICsJZXJyID0gdnBfYWN0aXZlX3ZxKHZxLCBtc2l4X3Zl Yyk7Cj4gPiArCWlmIChlcnIpCj4gPiArCQlnb3RvIGVycjsKPiA+Cj4gPiAgIAl2cS0+cHJpdiA9 ICh2b2lkIF9fZm9yY2UgKil2cF9tb2Rlcm5fbWFwX3ZxX25vdGlmeShtZGV2LCBpbmRleCwgTlVM TCk7Cj4gPiAgIAlpZiAoIXZxLT5wcml2KSB7Cj4gPiAgIAkJZXJyID0gLUVOT01FTTsKPiA+IC0J CWdvdG8gZXJyX21hcF9ub3RpZnk7Cj4gPiAtCX0KPiA+IC0KPiA+IC0JaWYgKG1zaXhfdmVjICE9 IFZJUlRJT19NU0lfTk9fVkVDVE9SKSB7Cj4gPiAtCQltc2l4X3ZlYyA9IHZwX21vZGVybl9xdWV1 ZV92ZWN0b3IobWRldiwgaW5kZXgsIG1zaXhfdmVjKTsKPiA+IC0JCWlmIChtc2l4X3ZlYyA9PSBW SVJUSU9fTVNJX05PX1ZFQ1RPUikgewo+ID4gLQkJCWVyciA9IC1FQlVTWTsKPiA+IC0JCQlnb3Rv IGVycl9hc3NpZ25fdmVjdG9yOwo+ID4gLQkJfQo+ID4gKwkJZ290byBlcnI7Cj4gPiAgIAl9Cj4g Pgo+ID4gICAJcmV0dXJuIHZxOwo+ID4KPiA+IC1lcnJfYXNzaWduX3ZlY3RvcjoKPiA+IC0JaWYg KCFtZGV2LT5ub3RpZnlfYmFzZSkKPiA+IC0JCXBjaV9pb3VubWFwKG1kZXYtPnBjaV9kZXYsICh2 b2lkIF9faW9tZW0gX19mb3JjZSAqKXZxLT5wcml2KTsKPgo+Cj4gV2UgbmVlZCBrZWVwIHRoaXMg b3IgYW55dGhpbmcgSSBtaXNzZWQ/CgpJIHRoaW5rIHNvLCBhZnRlciBtb2RpZmljYXRpb24sIHZw X21vZGVybl9tYXBfdnFfbm90aWZ5IGlzIHRoZSBsYXN0IHN0ZXAgYmVmb3JlCnJldHVybmluZyB2 cS4gSWYgaXQgZmFpbHMsIHRoZW4gdnEtPnByaXYgaXMgZXF1YWwgdG8gTlVMTCwgc28gdGhlcmUg aXMgbm8gbmVlZAp0byBleGVjdXRlIHBjaV9pb3VubWFwLgoKRGlkIEkgbWlzcyBzb21ldGhpbmc/ CgpUaGFua3MuCgo+Cj4gVGhhbmtzCj4KPgo+ID4gLWVycl9tYXBfbm90aWZ5Ogo+ID4gK2VycjoK PiA+ICAgCXZyaW5nX2RlbF92aXJ0cXVldWUodnEpOwo+ID4gICAJcmV0dXJuIEVSUl9QVFIoZXJy KTsKPiA+ICAgfQo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC11bSBtYWlsaW5nIGxpc3QKbGludXgtdW1AbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXVtCg==