From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-131.freemail.mail.aliyun.com ([115.124.30.131]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1neSli-00GNvS-Nn for linux-um@lists.infradead.org; Wed, 13 Apr 2022 02:30:09 +0000 Message-ID: <1649816652.9004085-1-xuanzhuo@linux.alibaba.com> Subject: Re: [PATCH v9 01/32] virtio: add helper virtqueue_get_vring_max_size() Date: Wed, 13 Apr 2022 10:24:12 +0800 From: Xuan Zhuo References: <20220406034346.74409-1-xuanzhuo@linux.alibaba.com> <20220406034346.74409-2-xuanzhuo@linux.alibaba.com> <71fbd7fc-20db-024b-ec66-b875216be4bd@redhat.com> In-Reply-To: <71fbd7fc-20db-024b-ec66-b875216be4bd@redhat.com> 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 T24gVHVlLCAxMiBBcHIgMjAyMiAxMDo0MTowMyArMDgwMCwgSmFzb24gV2FuZyA8amFzb3dhbmdA cmVkaGF0LmNvbT4gd3JvdGU6Cj4KPiDlnKggMjAyMi80LzYg5LiK5Y2IMTE6NDMsIFh1YW4gWmh1 byDlhpnpgZM6Cj4gPiBSZWNvcmQgdGhlIG1heGltdW0gcXVldWUgbnVtIHN1cHBvcnRlZCBieSB0 aGUgZGV2aWNlLgo+ID4KPiA+IHZpcnRpby1uZXQgY2FuIGRpc3BsYXkgdGhlIG1heGltdW0gKHN1 cHBvcnRlZCBieSBoYXJkd2FyZSkgcmluZyBzaXplIGluCj4gPiBldGh0b29sIC1nIGV0aDAuCj4g Pgo+ID4gV2hlbiB0aGUgc3Vic2VxdWVudCBwYXRjaCBpbXBsZW1lbnRzIHZyaW5nIHJlc2V0LCBp dCBjYW4ganVkZ2Ugd2hldGhlcgo+ID4gdGhlIHJpbmcgc2l6ZSBwYXNzZWQgYnkgdGhlIGRyaXZl ciBpcyBsZWdhbCBiYXNlZCBvbiB0aGlzLgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFh1YW4gWmh1 byA8eHVhbnpodW9AbGludXguYWxpYmFiYS5jb20+Cj4gPiAtLS0KPiA+ICAgYXJjaC91bS9kcml2 ZXJzL3ZpcnRpb191bWwuYyAgICAgICAgICAgICB8ICAxICsKPiA+ICAgZHJpdmVycy9wbGF0Zm9y bS9tZWxsYW5veC9tbHhiZi10bWZpZm8uYyB8ICAyICsrCj4gPiAgIGRyaXZlcnMvcmVtb3RlcHJv Yy9yZW1vdGVwcm9jX3ZpcnRpby5jICAgfCAgMiArKwo+ID4gICBkcml2ZXJzL3MzOTAvdmlydGlv L3ZpcnRpb19jY3cuYyAgICAgICAgIHwgIDMgKysrCj4gPiAgIGRyaXZlcnMvdmlydGlvL3ZpcnRp b19tbWlvLmMgICAgICAgICAgICAgfCAgMiArKwo+ID4gICBkcml2ZXJzL3ZpcnRpby92aXJ0aW9f cGNpX2xlZ2FjeS5jICAgICAgIHwgIDIgKysKPiA+ICAgZHJpdmVycy92aXJ0aW8vdmlydGlvX3Bj aV9tb2Rlcm4uYyAgICAgICB8ICAyICsrCj4gPiAgIGRyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5n LmMgICAgICAgICAgICAgfCAxNCArKysrKysrKysrKysrKwo+ID4gICBkcml2ZXJzL3ZpcnRpby92 aXJ0aW9fdmRwYS5jICAgICAgICAgICAgIHwgIDIgKysKPiA+ICAgaW5jbHVkZS9saW51eC92aXJ0 aW8uaCAgICAgICAgICAgICAgICAgICB8ICAyICsrCj4gPiAgIDEwIGZpbGVzIGNoYW5nZWQsIDMy IGluc2VydGlvbnMoKykKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3ZpcnRp b191bWwuYyBiL2FyY2gvdW0vZHJpdmVycy92aXJ0aW9fdW1sLmMKPiA+IGluZGV4IGJhNTYyZDY4 ZGMwNC4uOTA0OTkzZDE1YTg1IDEwMDY0NAo+ID4gLS0tIGEvYXJjaC91bS9kcml2ZXJzL3ZpcnRp b191bWwuYwo+ID4gKysrIGIvYXJjaC91bS9kcml2ZXJzL3ZpcnRpb191bWwuYwo+ID4gQEAgLTk0 NSw2ICs5NDUsNyBAQCBzdGF0aWMgc3RydWN0IHZpcnRxdWV1ZSAqdnVfc2V0dXBfdnEoc3RydWN0 IHZpcnRpb19kZXZpY2UgKnZkZXYsCj4gPiAgIAkJZ290byBlcnJvcl9jcmVhdGU7Cj4gPiAgIAl9 Cj4gPiAgIAl2cS0+cHJpdiA9IGluZm87Cj4gPiArCXZxLT5udW1fbWF4ID0gbnVtOwo+ID4gICAJ bnVtID0gdmlydHF1ZXVlX2dldF92cmluZ19zaXplKHZxKTsKPiA+Cj4gPiAgIAlpZiAodnVfZGV2 LT5wcm90b2NvbF9mZWF0dXJlcyAmCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9ybS9t ZWxsYW5veC9tbHhiZi10bWZpZm8uYyBiL2RyaXZlcnMvcGxhdGZvcm0vbWVsbGFub3gvbWx4YmYt dG1maWZvLmMKPiA+IGluZGV4IDM4ODAwZTg2ZWQ4YS4uMWFlM2M1NmI2NmIwIDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9wbGF0Zm9ybS9tZWxsYW5veC9tbHhiZi10bWZpZm8uYwo+ID4gKysrIGIv ZHJpdmVycy9wbGF0Zm9ybS9tZWxsYW5veC9tbHhiZi10bWZpZm8uYwo+ID4gQEAgLTk1OSw2ICs5 NTksOCBAQCBzdGF0aWMgaW50IG1seGJmX3RtZmlmb192aXJ0aW9fZmluZF92cXMoc3RydWN0IHZp cnRpb19kZXZpY2UgKnZkZXYsCj4gPiAgIAkJCWdvdG8gZXJyb3I7Cj4gPiAgIAkJfQo+ID4KPiA+ ICsJCXZxLT5udW1fbWF4ID0gdnJpbmctPm51bTsKPiA+ICsKPiA+ICAgCQl2cXNbaV0gPSB2cTsK PiA+ICAgCQl2cmluZy0+dnEgPSB2cTsKPiA+ICAgCQl2cS0+cHJpdiA9IHZyaW5nOwo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvcmVtb3RlcHJvYy9yZW1vdGVwcm9jX3ZpcnRpby5jIGIvZHJpdmVy cy9yZW1vdGVwcm9jL3JlbW90ZXByb2NfdmlydGlvLmMKPiA+IGluZGV4IDcwYWI0OTZkMDQzMS4u NzYxMTc1NWQwYWUyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9yZW1vdGVwcm9jL3JlbW90ZXBy b2NfdmlydGlvLmMKPiA+ICsrKyBiL2RyaXZlcnMvcmVtb3RlcHJvYy9yZW1vdGVwcm9jX3ZpcnRp by5jCj4gPiBAQCAtMTI1LDYgKzEyNSw4IEBAIHN0YXRpYyBzdHJ1Y3QgdmlydHF1ZXVlICpycF9m aW5kX3ZxKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2LAo+ID4gICAJCXJldHVybiBFUlJfUFRS KC1FTk9NRU0pOwo+ID4gICAJfQo+ID4KPiA+ICsJdnEtPm51bV9tYXggPSBsZW47Cj4KPgo+IEkg d29uZGVyIGlmIHRoaXMgaXMgY29ycmVjdC4KPgo+IEl0IGxvb2tzIHRvIG1lIGxlbiBpcyBjb3Vu dGVkIGluIGJ5dGVzOgo+Cj4gLyoqCj4gIMKgKiBzdHJ1Y3QgcnByb2NfdnJpbmcgLSByZW1vdGVw cm9jIHZyaW5nIHN0YXRlCj4gIMKgKiBAdmE6IHZpcnR1YWwgYWRkcmVzcwo+ICDCoCogQGxlbjog bGVuZ3RoLCBpbiBieXRlcwo+ICDCoCogQGRhOiBkZXZpY2UgYWRkcmVzcwo+ICDCoCogQGFsaWdu OiB2cmluZyBhbGlnbm1lbnQKPiAgwqAqIEBub3RpZnlpZDogcnByb2Mtc3BlY2lmaWMgdW5pcXVl IHZyaW5nIGluZGV4Cj4gIMKgKiBAcnZkZXY6IHJlbW90ZSB2ZGV2Cj4gIMKgKiBAdnE6IHRoZSB2 aXJ0cXVldWUgb2YgdGhpcyB2cmluZwo+ICDCoCovCj4gc3RydWN0IHJwcm9jX3ZyaW5nIHsKPiAg wqDCoMKgwqDCoMKgwqAgdm9pZCAqdmE7Cj4gIMKgwqDCoMKgwqDCoMKgIGludCBsZW47Cj4gIMKg wqDCoMKgwqDCoMKgIHUzMiBkYTsKPiAgwqDCoMKgwqDCoMKgwqAgdTMyIGFsaWduOwo+ICDCoMKg wqDCoMKgwqDCoCBpbnQgbm90aWZ5aWQ7Cj4gIMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBycHJvY192 ZGV2ICpydmRldjsKPiAgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHZpcnRxdWV1ZSAqdnE7Cj4gfTsK PgoKSSB0aGluayB0aGlzIGNvbW1lbnQgaXMgaW5jb3JyZWN0IGJlY2F1c2UgaGVyZSBsZW4gaXMg cGFzc2VkIGFzIG51bSB0bwp2cmluZ19uZXdfdmlydHF1ZXVlKCkuCgpUaGVyZSBpcyBhbHNvIHRo aXMgdXNhZ2U6CgoJLyogYWN0dWFsIHNpemUgb2YgdnJpbmcgKGluIGJ5dGVzKSAqLwoJc2l6ZSA9 IFBBR0VfQUxJR04odnJpbmdfc2l6ZShydnJpbmctPmxlbiwgcnZyaW5nLT5hbGlnbikpOwoKCkFu ZCB0aGlzIHZhbHVlIGNvbWVzIGZyb20gaGVyZToKCglzdGF0aWMgaW50CglycHJvY19wYXJzZV92 cmluZyhzdHJ1Y3QgcnByb2NfdmRldiAqcnZkZXYsIHN0cnVjdCBmd19yc2NfdmRldiAqcnNjLCBp bnQgaSkKCXsKCQlzdHJ1Y3QgcnByb2MgKnJwcm9jID0gcnZkZXYtPnJwcm9jOwoJCXN0cnVjdCBk ZXZpY2UgKmRldiA9ICZycHJvYy0+ZGV2OwoJCXN0cnVjdCBmd19yc2NfdmRldl92cmluZyAqdnJp bmcgPSAmcnNjLT52cmluZ1tpXTsKCQlzdHJ1Y3QgcnByb2NfdnJpbmcgKnJ2cmluZyA9ICZydmRl di0+dnJpbmdbaV07CgoJCWRldl9kYmcoZGV2LCAidmRldiByc2M6IHZyaW5nJWQ6IGRhIDB4JXgs IHFzeiAlZCwgYWxpZ24gJWRcbiIsCgkJCWksIHZyaW5nLT5kYSwgdnJpbmctPm51bSwgdnJpbmct PmFsaWduKTsKCgkJLyogdmVyaWZ5IHF1ZXVlIHNpemUgYW5kIHZyaW5nIGFsaWdubWVudCBhcmUg c2FuZSAqLwoJCWlmICghdnJpbmctPm51bSB8fCAhdnJpbmctPmFsaWduKSB7CgkJCWRldl9lcnIo ZGV2LCAiaW52YWxpZCBxc3ogKCVkKSBvciBhbGlnbm1lbnQgKCVkKVxuIiwKCQkJCXZyaW5nLT5u dW0sIHZyaW5nLT5hbGlnbik7CgkJCXJldHVybiAtRUlOVkFMOwoJCX0KCiAgICAgICA+CXJ2cmlu Zy0+bGVuID0gdnJpbmctPm51bTsKCQlydnJpbmctPmFsaWduID0gdnJpbmctPmFsaWduOwoJCXJ2 cmluZy0+cnZkZXYgPSBydmRldjsKCgkJcmV0dXJuIDA7Cgl9CgovKioKICogc3RydWN0IGZ3X3Jz Y192ZGV2X3ZyaW5nIC0gdnJpbmcgZGVzY3JpcHRvciBlbnRyeQogKiBAZGE6IGRldmljZSBhZGRy ZXNzCiAqIEBhbGlnbjogdGhlIGFsaWdubWVudCBiZXR3ZWVuIHRoZSBjb25zdW1lciBhbmQgcHJv ZHVjZXIgcGFydHMgb2YgdGhlIHZyaW5nCiAqIEBudW06IG51bSBvZiBidWZmZXJzIHN1cHBvcnRl ZCBieSB0aGlzIHZyaW5nIChtdXN0IGJlIHBvd2VyIG9mIHR3bykKICogQG5vdGlmeWlkOiBhIHVu aXF1ZSBycHJvYy13aWRlIG5vdGlmeSBpbmRleCBmb3IgdGhpcyB2cmluZy4gVGhpcyBub3RpZnkK ICogaW5kZXggaXMgdXNlZCB3aGVuIGtpY2tpbmcgYSByZW1vdGUgcHJvY2Vzc29yLCB0byBsZXQg aXQga25vdyB0aGF0IHRoaXMKICogdnJpbmcgaXMgdHJpZ2dlcmVkLgogKiBAcGE6IHBoeXNpY2Fs IGFkZHJlc3MKICoKICogVGhpcyBkZXNjcmlwdG9yIGlzIG5vdCBhIHJlc291cmNlIGVudHJ5IGJ5 IGl0c2VsZjsgaXQgaXMgcGFydCBvZiB0aGUKICogdmRldiByZXNvdXJjZSB0eXBlIChzZWUgYmVs b3cpLgogKgogKiBOb3RlIHRoYXQgQGRhIHNob3VsZCBlaXRoZXIgY29udGFpbiB0aGUgZGV2aWNl IGFkZHJlc3Mgd2hlcmUKICogdGhlIHJlbW90ZSBwcm9jZXNzb3IgaXMgZXhwZWN0aW5nIHRoZSB2 cmluZywgb3IgaW5kaWNhdGUgdGhhdAogKiBkeW5hbWljYWxseSBhbGxvY2F0aW9uIG9mIHRoZSB2 cmluZydzIGRldmljZSBhZGRyZXNzIGlzIHN1cHBvcnRlZC4KICovCnN0cnVjdCBmd19yc2NfdmRl dl92cmluZyB7Cgl1MzIgZGE7Cgl1MzIgYWxpZ247Cgl1MzIgbnVtOwoJdTMyIG5vdGlmeWlkOwoJ dTMyIHBhOwp9IF9fcGFja2VkOwoKU28gSSB0aGluayB0aGUgJ2xlbicgaGVyZSBtYXkgaGF2ZSBj aGFuZ2VkIGl0cyBtZWFuaW5nIGluIGEgdmVyc2lvbiB1cGRhdGUuCgpUaGFua3MuCgo+Cj4gT3Ro ZXIgbG9va3MgZ29vZC4KPgo+IFRoYW5rcwo+Cj4KPiA+ICsKPiA+ICAgCXJ2cmluZy0+dnEgPSB2 cTsKPiA+ICAgCXZxLT5wcml2ID0gcnZyaW5nOwo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3MzOTAvdmlydGlvL3ZpcnRpb19jY3cuYyBiL2RyaXZlcnMvczM5MC92aXJ0aW8vdmlydGlvX2Nj dy5jCj4gPiBpbmRleCBkMzVlN2EzZjcwNjcuLjQ2OGRhNjBiNTZjNSAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvczM5MC92aXJ0aW8vdmlydGlvX2Njdy5jCj4gPiArKysgYi9kcml2ZXJzL3MzOTAv dmlydGlvL3ZpcnRpb19jY3cuYwo+ID4gQEAgLTUyOSw2ICs1MjksOSBAQCBzdGF0aWMgc3RydWN0 IHZpcnRxdWV1ZSAqdmlydGlvX2Njd19zZXR1cF92cShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRl diwKPiA+ICAgCQllcnIgPSAtRU5PTUVNOwo+ID4gICAJCWdvdG8gb3V0X2VycjsKPiA+ICAgCX0K PiA+ICsKPiA+ICsJdnEtPm51bV9tYXggPSBpbmZvLT5udW07Cj4gPiArCj4gPiAgIAkvKiBpdCBt YXkgaGF2ZSBiZWVuIHJlZHVjZWQgKi8KPiA+ICAgCWluZm8tPm51bSA9IHZpcnRxdWV1ZV9nZXRf dnJpbmdfc2l6ZSh2cSk7Cj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydGlvL3ZpcnRp b19tbWlvLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fbW1pby5jCj4gPiBpbmRleCA1NjEyOGI5 YzQ2ZWIuLmE0MWFiYzgwNTFiOSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvdmlydGlvL3ZpcnRp b19tbWlvLmMKPiA+ICsrKyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19tbWlvLmMKPiA+IEBAIC0z OTAsNiArMzkwLDggQEAgc3RhdGljIHN0cnVjdCB2aXJ0cXVldWUgKnZtX3NldHVwX3ZxKHN0cnVj dCB2aXJ0aW9fZGV2aWNlICp2ZGV2LCB1bnNpZ25lZCBpbmRleCwKPiA+ICAgCQlnb3RvIGVycm9y X25ld192aXJ0cXVldWU7Cj4gPiAgIAl9Cj4gPgo+ID4gKwl2cS0+bnVtX21heCA9IG51bTsKPiA+ ICsKPiA+ICAgCS8qIEFjdGl2YXRlIHRoZSBxdWV1ZSAqLwo+ID4gICAJd3JpdGVsKHZpcnRxdWV1 ZV9nZXRfdnJpbmdfc2l6ZSh2cSksIHZtX2Rldi0+YmFzZSArIFZJUlRJT19NTUlPX1FVRVVFX05V TSk7Cj4gPiAgIAlpZiAodm1fZGV2LT52ZXJzaW9uID09IDEpIHsKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL3ZpcnRpby92aXJ0aW9fcGNpX2xlZ2FjeS5jIGIvZHJpdmVycy92aXJ0aW8vdmlydGlv X3BjaV9sZWdhY3kuYwo+ID4gaW5kZXggMzQxNDFiOWFiZTI3Li5iNjg5MzRmZTZiNWQgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcGNpX2xlZ2FjeS5jCj4gPiArKysgYi9k cml2ZXJzL3ZpcnRpby92aXJ0aW9fcGNpX2xlZ2FjeS5jCj4gPiBAQCAtMTM1LDYgKzEzNSw4IEBA IHN0YXRpYyBzdHJ1Y3QgdmlydHF1ZXVlICpzZXR1cF92cShzdHJ1Y3QgdmlydGlvX3BjaV9kZXZp Y2UgKnZwX2RldiwKPiA+ICAgCWlmICghdnEpCj4gPiAgIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01F TSk7Cj4gPgo+ID4gKwl2cS0+bnVtX21heCA9IG51bTsKPiA+ICsKPiA+ICAgCXFfcGZuID0gdmly dHF1ZXVlX2dldF9kZXNjX2FkZHIodnEpID4+IFZJUlRJT19QQ0lfUVVFVUVfQUREUl9TSElGVDsK PiA+ICAgCWlmIChxX3BmbiA+PiAzMikgewo+ID4gICAJCWRldl9lcnIoJnZwX2Rldi0+cGNpX2Rl di0+ZGV2LAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19wY2lfbW9kZXJu LmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcGNpX21vZGVybi5jCj4gPiBpbmRleCA1NDU1YmMw NDFmYjYuLjg2ZDMwMWYyNzJiOCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvdmlydGlvL3ZpcnRp b19wY2lfbW9kZXJuLmMKPiA+ICsrKyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19wY2lfbW9kZXJu LmMKPiA+IEBAIC0yMTgsNiArMjE4LDggQEAgc3RhdGljIHN0cnVjdCB2aXJ0cXVldWUgKnNldHVw X3ZxKHN0cnVjdCB2aXJ0aW9fcGNpX2RldmljZSAqdnBfZGV2LAo+ID4gICAJaWYgKCF2cSkKPiA+ ICAgCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiA+Cj4gPiArCXZxLT5udW1fbWF4ID0gbnVt Owo+ID4gKwo+ID4gICAJLyogYWN0aXZhdGUgdGhlIHF1ZXVlICovCj4gPiAgIAl2cF9tb2Rlcm5f c2V0X3F1ZXVlX3NpemUobWRldiwgaW5kZXgsIHZpcnRxdWV1ZV9nZXRfdnJpbmdfc2l6ZSh2cSkp Owo+ID4gICAJdnBfbW9kZXJuX3F1ZXVlX2FkZHJlc3MobWRldiwgaW5kZXgsIHZpcnRxdWV1ZV9n ZXRfZGVzY19hZGRyKHZxKSwKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9f cmluZy5jIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYwo+ID4gaW5kZXggOTYyZjE0Nzdi MWZhLi5iODcxMzBjOGYzMTIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9f cmluZy5jCj4gPiArKysgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jCj4gPiBAQCAtMjM3 MSw2ICsyMzcxLDIwIEBAIHZvaWQgdnJpbmdfdHJhbnNwb3J0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0 aW9fZGV2aWNlICp2ZGV2KQo+ID4gICB9Cj4gPiAgIEVYUE9SVF9TWU1CT0xfR1BMKHZyaW5nX3Ry YW5zcG9ydF9mZWF0dXJlcyk7Cj4gPgo+ID4gKy8qKgo+ID4gKyAqIHZpcnRxdWV1ZV9nZXRfdnJp bmdfbWF4X3NpemUgLSByZXR1cm4gdGhlIG1heCBzaXplIG9mIHRoZSB2aXJ0cXVldWUncyB2cmlu Zwo+ID4gKyAqIEBfdnE6IHRoZSBzdHJ1Y3QgdmlydHF1ZXVlIGNvbnRhaW5pbmcgdGhlIHZyaW5n IG9mIGludGVyZXN0Lgo+ID4gKyAqCj4gPiArICogUmV0dXJucyB0aGUgbWF4IHNpemUgb2YgdGhl IHZyaW5nLgo+ID4gKyAqCj4gPiArICogVW5saWtlIG90aGVyIG9wZXJhdGlvbnMsIHRoaXMgbmVl ZCBub3QgYmUgc2VyaWFsaXplZC4KPiA+ICsgKi8KPiA+ICt1bnNpZ25lZCBpbnQgdmlydHF1ZXVl X2dldF92cmluZ19tYXhfc2l6ZShzdHJ1Y3QgdmlydHF1ZXVlICpfdnEpCj4gPiArewo+ID4gKwly ZXR1cm4gX3ZxLT5udW1fbWF4Owo+ID4gK30KPiA+ICtFWFBPUlRfU1lNQk9MX0dQTCh2aXJ0cXVl dWVfZ2V0X3ZyaW5nX21heF9zaXplKTsKPiA+ICsKPiA+ICAgLyoqCj4gPiAgICAqIHZpcnRxdWV1 ZV9nZXRfdnJpbmdfc2l6ZSAtIHJldHVybiB0aGUgc2l6ZSBvZiB0aGUgdmlydHF1ZXVlJ3MgdnJp bmcKPiA+ICAgICogQF92cTogdGhlIHN0cnVjdCB2aXJ0cXVldWUgY29udGFpbmluZyB0aGUgdnJp bmcgb2YgaW50ZXJlc3QuCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX3Zk cGEuYyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb192ZHBhLmMKPiA+IGluZGV4IDc3NjdhN2YwMTE5 Yi4uMzllNGMwOGViMGYyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX3Zk cGEuYwo+ID4gKysrIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvX3ZkcGEuYwo+ID4gQEAgLTE4Myw2 ICsxODMsOCBAQCB2aXJ0aW9fdmRwYV9zZXR1cF92cShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRl diwgdW5zaWduZWQgaW50IGluZGV4LAo+ID4gICAJCWdvdG8gZXJyb3JfbmV3X3ZpcnRxdWV1ZTsK PiA+ICAgCX0KPiA+Cj4gPiArCXZxLT5udW1fbWF4ID0gbWF4X251bTsKPiA+ICsKPiA+ICAgCS8q IFNldHVwIHZpcnRxdWV1ZSBjYWxsYmFjayAqLwo+ID4gICAJY2IuY2FsbGJhY2sgPSB2aXJ0aW9f dmRwYV92aXJ0cXVldWVfY2I7Cj4gPiAgIAljYi5wcml2YXRlID0gaW5mbzsKPiA+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L3ZpcnRpby5oIGIvaW5jbHVkZS9saW51eC92aXJ0aW8uaAo+ID4g aW5kZXggNzIyOTJhNjJjZDkwLi5kNTlhZGM0YmUwNjggMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRl L2xpbnV4L3ZpcnRpby5oCj4gPiArKysgYi9pbmNsdWRlL2xpbnV4L3ZpcnRpby5oCj4gPiBAQCAt MzEsNiArMzEsNyBAQCBzdHJ1Y3QgdmlydHF1ZXVlIHsKPiA+ICAgCXN0cnVjdCB2aXJ0aW9fZGV2 aWNlICp2ZGV2Owo+ID4gICAJdW5zaWduZWQgaW50IGluZGV4Owo+ID4gICAJdW5zaWduZWQgaW50 IG51bV9mcmVlOwo+ID4gKwl1bnNpZ25lZCBpbnQgbnVtX21heDsKPiA+ICAgCXZvaWQgKnByaXY7 Cj4gPiAgIH07Cj4gPgo+ID4gQEAgLTgwLDYgKzgxLDcgQEAgYm9vbCB2aXJ0cXVldWVfZW5hYmxl X2NiX2RlbGF5ZWQoc3RydWN0IHZpcnRxdWV1ZSAqdnEpOwo+ID4KPiA+ICAgdm9pZCAqdmlydHF1 ZXVlX2RldGFjaF91bnVzZWRfYnVmKHN0cnVjdCB2aXJ0cXVldWUgKnZxKTsKPiA+Cj4gPiArdW5z aWduZWQgaW50IHZpcnRxdWV1ZV9nZXRfdnJpbmdfbWF4X3NpemUoc3RydWN0IHZpcnRxdWV1ZSAq dnEpOwo+ID4gICB1bnNpZ25lZCBpbnQgdmlydHF1ZXVlX2dldF92cmluZ19zaXplKHN0cnVjdCB2 aXJ0cXVldWUgKnZxKTsKPiA+Cj4gPiAgIGJvb2wgdmlydHF1ZXVlX2lzX2Jyb2tlbihzdHJ1Y3Qg dmlydHF1ZXVlICp2cSk7Cj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmxpbnV4LXVtIG1haWxpbmcgbGlzdApsaW51eC11bUBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtdW0K