From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D51C4A0527; Mon, 9 Nov 2020 02:03:45 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EF2862B9D; Mon, 9 Nov 2020 02:03:43 +0100 (CET) Received: from m1326.mail.163.com (m1326.mail.163.com [220.181.13.26]) by dpdk.org (Postfix) with ESMTP id E64D52B93 for ; Mon, 9 Nov 2020 02:03:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Date:From:Subject:MIME-Version:Message-ID; bh=7xOp2 RXx+or0nnWvDbf67PPxMkyHVYrQpjuArHTAArs=; b=aRB4o2BLJ0dWm9QDorA9C 7hiZ1SFiy9Td7EE0BmtK8MRMhxxxAXIrpKiounHh211dE1Aorer2XXzvo3vnwiCS dpHwN2I9e2uzhBwmyhxqXgp3ZRs2QTGF5n4phuaP13wJIGE5p4JDHhejUOgeSqsy rcaXVUZlCGthq6Q8H+vk+8= Received: from yang_y_yi$163.com ( [111.207.123.55] ) by ajax-webmail-wmsvr26 (Coremail) ; Mon, 9 Nov 2020 09:03:35 +0800 (CST) X-Originating-IP: [111.207.123.55] Date: Mon, 9 Nov 2020 09:03:35 +0800 (CST) From: yang_y_yi To: "Jiayu Hu" Cc: konstantin.ananyev@intel.com, dev@dpdk.org, thomas@monjalon.net, yangyi01@inspur.com X-Priority: 1 X-Mailer: Coremail Webmail Server Version XT5.0.10 build 20190724(ac680a23) Copyright (c) 2002-2020 www.mailtech.cn 163com In-Reply-To: <20201106040916.GA97708@NPG_DPDK_VIRTIO_jiayuhu_15.sh.intel.com> References: <20200701064643.216084-1-yang_y_yi@163.com> <20201029064743.74672-1-yang_y_yi@163.com> <20201106040916.GA97708@NPG_DPDK_VIRTIO_jiayuhu_15.sh.intel.com> X-CM-CTRLDATA: qI88t2Zvb3Rlcl9odG09MTQyODY6NTY= MIME-Version: 1.0 Message-ID: <424fbc6.861.175aa879d1b.Coremail.yang_y_yi@163.com> X-Coremail-Locale: zh_CN X-CM-TRANSID: GsGowABHl9ZnlahfedSRAA--.4601W X-CM-SenderInfo: 51dqwsp1b1xqqrwthudrp/1tbiMwXXi1Xl6-XlRQABsl X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== Content-Type: text/plain; charset=GBK Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH v1] gso: add VXLAN UDP GSO support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" QXQgMjAyMC0xMS0wNiAxMjowOToxNiwgIkppYXl1IEh1IiA8amlheXUuaHVAaW50ZWwuY29tPiB3 cm90ZToKPk9uIFRodSwgT2N0IDI5LCAyMDIwIGF0IDAyOjQ3OjQzUE0gKzA4MDAsIHlhbmdfeV95 aUAxNjMuY29tIHdyb3RlOgo+PiBGcm9tOiBZaSBZYW5nIDx5YW5neWkwMUBpbnNwdXIuY29tPgo+ PiAKPj4gTWFueSBOSUNzIGNhbid0IG9mZmxvYWQgVlhMQU4gVUZPLCBzbyBpdCBpcyB2ZXJ5IGlt cG9ydGFudAo+PiB0byBkbyBWWExBTiBVRFAgR1NPIGJ5IHNvZnR3YXJlIHRvIGltcHJvdmUgVk0t dG8tVk0gVURQCj4+IHBlcmZvcm1hbmNlLCBlc3BlY2lhbGx5IGZvciB0aGUgY2FzZSB0aGF0IFZN IE1UVSBpcyBqdXN0Cj4+IDE1MDAgYnV0IG5vdCA5MDAwLgo+PiAKPj4gV2l0aCB0aGlzIGVuYWJs ZWQgaW4gRFBESywgT1ZTIERQREsgY2FuIGxldmVyYWdlIGl0IHRvCj4+IGltcHJvdmUgVk0tdG8t Vk0gVURQIHBlcmZvcm1hbmNlLCBwZXJmb3JtYW5jZSBnYWluIGlzIHZlcnkKPj4gaHVnZSwgb3Zl ciAyIHRpbWVzLgo+PiAKPj4gU2lnbmVkLW9mZi1ieTogWWkgWWFuZyA8eWFuZ3lpMDFAaW5zcHVy LmNvbT4KPj4gLS0tCj4+ICAuLi4vZ2VuZXJpY19zZWdtZW50YXRpb25fb2ZmbG9hZF9saWIucnN0 ICAgICAgICAgICB8ICAxNCArLS0KPj4gIGRvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjBf MTEucnN0ICAgICAgICAgICAgIHwgICA0ICsKPj4gIGxpYi9saWJydGVfZ3NvL2dzb19jb21tb24u aCAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKPj4gIGxpYi9saWJydGVfZ3NvL2dzb190 dW5uZWxfdWRwNC5jICAgICAgICAgICAgICAgICAgIHwgMTA0ICsrKysrKysrKysrKysrKysrKysr Kwo+PiAgbGliL2xpYnJ0ZV9nc28vZ3NvX3R1bm5lbF91ZHA0LmggICAgICAgICAgICAgICAgICAg fCAgNDQgKysrKysrKysrCj4+ICBsaWIvbGlicnRlX2dzby9tZXNvbi5idWlsZCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQo+PiAgbGliL2xpYnJ0ZV9nc28vcnRlX2dzby5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDggKysKPj4gIDcgZmlsZXMgY2hhbmdlZCwgMTczIGlu c2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xp YnJ0ZV9nc28vZ3NvX3R1bm5lbF91ZHA0LmMKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGli cnRlX2dzby9nc29fdHVubmVsX3VkcDQuaAo+PiAKPj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMv cHJvZ19ndWlkZS9nZW5lcmljX3NlZ21lbnRhdGlvbl9vZmZsb2FkX2xpYi5yc3QgYi9kb2MvZ3Vp ZGVzL3Byb2dfZ3VpZGUvZ2VuZXJpY19zZWdtZW50YXRpb25fb2ZmbG9hZF9saWIucnN0Cj4+IGlu ZGV4IDg1Nzc1NzIuLmM4ZjU1MTggMTAwNjQ0Cj4+IC0tLSBhL2RvYy9ndWlkZXMvcHJvZ19ndWlk ZS9nZW5lcmljX3NlZ21lbnRhdGlvbl9vZmZsb2FkX2xpYi5yc3QKPj4gKysrIGIvZG9jL2d1aWRl cy9wcm9nX2d1aWRlL2dlbmVyaWNfc2VnbWVudGF0aW9uX29mZmxvYWRfbGliLnJzdAo+PiBAQCAt NDYsNyArNDYsNyBAQCBMaW1pdGF0aW9ucwo+PiAgIC0gVENQCj4+ICAgLSBVRFAKPj4gICAtIFZ4 TEFOCj4+IC0gLSBHUkUKPj4gKyAtIEdSRSBUQ1AKPj4gIAo+PiAgICBTZWUgYFN1cHBvcnRlZCBH U08gUGFja2V0IFR5cGVzYF8gZm9yIGZ1cnRoZXIgZGV0YWlscy4KPj4gIAo+PiBAQCAtMTU3LDE0 ICsxNTcsMTQgQEAgZG9lcyBub3QgbW9kaWZ5IGl0IGR1cmluZyBzZWdtZW50YXRpb24uIFRoZXJl Zm9yZSwgYWZ0ZXIgVURQIEdTTywgb25seSB0aGUKPj4gIGZpcnN0IG91dHB1dCBwYWNrZXQgaGFz IHRoZSBvcmlnaW5hbCBVRFAgaGVhZGVyLCBhbmQgb3RoZXJzIGp1c3QgaGF2ZSBsMgo+PiAgYW5k IGwzIGhlYWRlcnMuCj4+ICAKPj4gLVZ4TEFOIEdTTwo+PiAtfn5+fn5+fn5+Cj4+ICtWeExBTiBJ UHY0IEdTTwo+PiArfn5+fn5+fn5+fn5+fn4KPj4gIFZ4TEFOIHBhY2tldHMgR1NPIHN1cHBvcnRz IHNlZ21lbnRhdGlvbiBvZiBzdWl0YWJseSBsYXJnZSBWeExBTiBwYWNrZXRzLAo+PiAtd2hpY2gg Y29udGFpbiBhbiBvdXRlciBJUHY0IGhlYWRlciwgaW5uZXIgVENQL0lQdjQgaGVhZGVycywgYW5k IG9wdGlvbmFsCj4+IC1pbm5lciBhbmQvb3Igb3V0ZXIgVkxBTiB0YWcocykuCj4+ICt3aGljaCBj b250YWluIGFuIG91dGVyIElQdjQgaGVhZGVyLCBpbm5lciBUQ1AvSVB2NCBvciBVRFAvSVB2NCBo ZWFkZXJzLCBhbmQKPj4gK29wdGlvbmFsIGlubmVyIGFuZC9vciBvdXRlciBWTEFOIHRhZyhzKS4K Pj4gIAo+PiAtR1JFIEdTTwo+PiAtfn5+fn5+fgo+PiArR1JFIFRDUC9JUHY0IEdTTwo+PiArfn5+ fn5+fn5+fn5+fn5+fgo+PiAgR1JFIEdTTyBzdXBwb3J0cyBzZWdtZW50YXRpb24gb2Ygc3VpdGFi bHkgbGFyZ2UgR1JFIHBhY2tldHMsIHdoaWNoIGNvbnRhaW4KPj4gIGFuIG91dGVyIElQdjQgaGVh ZGVyLCBpbm5lciBUQ1AvSVB2NCBoZWFkZXJzLCBhbmQgYW4gb3B0aW9uYWwgVkxBTiB0YWcuCj4+ ICAKPj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjBfMTEucnN0 IGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMF8xMS5yc3QKPj4gaW5kZXggMzJjNTg0 YS4uYWRlNGIyMiAxMDA2NDQKPj4gLS0tIGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8y MF8xMS5yc3QKPj4gKysrIGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMF8xMS5yc3QK Pj4gQEAgLTM0OSw2ICszNDksMTAgQEAgTmV3IEZlYXR1cmVzCj4+ICAgICogUmVwbGFjZWQgYGAt LXNjYWxhcmBgIGNvbW1hbmQtbGluZSBvcHRpb24gd2l0aCBgYC0tYWxnPTx2YWx1ZT5gYCwgdG8g YWxsb3cKPj4gICAgICB0aGUgdXNlciB0byBzZWxlY3QgdGhlIGRlc2lyZWQgY2xhc3NpZnkgbWV0 aG9kLgo+PiAgCj4+ICsqICoqQWRkZWQgVnhMQU4gVURQL0lQdjQgR1NPIHN1cHBvcnQuKioKPj4g Kwo+PiArICBBZGRlZCBpbm5lciBVRFAvSVB2NCBzdXBwb3J0IGZvciBWeExBTiBJUHY0IEdTTy4K Pj4gKwo+PiAgCj4+ICBSZW1vdmVkIEl0ZW1zCj4+ICAtLS0tLS0tLS0tLS0tCj4+IGRpZmYgLS1n aXQgYS9saWIvbGlicnRlX2dzby9nc29fY29tbW9uLmggYi9saWIvbGlicnRlX2dzby9nc29fY29t bW9uLmgKPj4gaW5kZXggYTBiODM0My4uNGQ1ZjMwMyAxMDA2NDQKPj4gLS0tIGEvbGliL2xpYnJ0 ZV9nc28vZ3NvX2NvbW1vbi5oCj4+ICsrKyBiL2xpYi9saWJydGVfZ3NvL2dzb19jb21tb24uaAo+ PiBAQCAtMjYsNiArMjYsMTEgQEAKPj4gIAkJKFBLVF9UWF9UQ1BfU0VHIHwgUEtUX1RYX0lQVjQg fCBQS1RfVFhfT1VURVJfSVBWNCB8IFwKPj4gIAkJIFBLVF9UWF9UVU5ORUxfVlhMQU4pKQo+PiAg Cj4+ICsjZGVmaW5lIElTX0lQVjRfVlhMQU5fVURQNChmbGFnKSAoKChmbGFnKSAmIChQS1RfVFhf VURQX1NFRyB8IFBLVF9UWF9JUFY0IHwgXAo+PiArCQkJCVBLVF9UWF9PVVRFUl9JUFY0IHwgUEtU X1RYX1RVTk5FTF9NQVNLKSkgPT0gXAo+PiArCQkoUEtUX1RYX1VEUF9TRUcgfCBQS1RfVFhfSVBW NCB8IFBLVF9UWF9PVVRFUl9JUFY0IHwgXAo+PiArCQkgUEtUX1RYX1RVTk5FTF9WWExBTikpCj4+ ICsKPj4gICNkZWZpbmUgSVNfSVBWNF9HUkVfVENQNChmbGFnKSAoKChmbGFnKSAmIChQS1RfVFhf VENQX1NFRyB8IFBLVF9UWF9JUFY0IHwgXAo+PiAgCQkJCVBLVF9UWF9PVVRFUl9JUFY0IHwgUEtU X1RYX1RVTk5FTF9NQVNLKSkgPT0gXAo+PiAgCQkoUEtUX1RYX1RDUF9TRUcgfCBQS1RfVFhfSVBW NCB8IFBLVF9UWF9PVVRFUl9JUFY0IHwgXAo+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9nc28v Z3NvX3R1bm5lbF91ZHA0LmMgYi9saWIvbGlicnRlX2dzby9nc29fdHVubmVsX3VkcDQuYwo+PiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi5jMWFlODI4Cj4+IC0tLSAvZGV2 L251bGwKPj4gKysrIGIvbGliL2xpYnJ0ZV9nc28vZ3NvX3R1bm5lbF91ZHA0LmMKPj4gQEAgLTAs MCArMSwxMDQgQEAKPj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UK Pj4gKyAqIENvcHlyaWdodChjKSAyMDIwIEluc3B1ciBDb3Jwb3JhdGlvbgo+PiArICovCj4+ICsK Pj4gKyNpbmNsdWRlICJnc29fY29tbW9uLmgiCj4+ICsjaW5jbHVkZSAiZ3NvX3R1bm5lbF91ZHA0 LmgiCj4+ICsKPj4gKyNkZWZpbmUgSVBWNF9IRFJfTUZfQklUICgxVSA8PCAxMykKPj4gKwo+PiAr c3RhdGljIHZvaWQKPj4gK3VwZGF0ZV90dW5uZWxfaXB2NF91ZHBfaGVhZGVycyhzdHJ1Y3QgcnRl X21idWYgKnBrdCwgc3RydWN0IHJ0ZV9tYnVmICoqc2VncywKPj4gKwkJCSAgICAgICB1aW50MTZf dCBuYl9zZWdzKQo+PiArewo+PiArCXN0cnVjdCBydGVfaXB2NF9oZHIgKmlwdjRfaGRyOwo+PiAr CXVpbnQxNl90IG91dGVyX2lkLCBpbm5lcl9pZCwgdGFpbF9pZHgsIGksIGxlbmd0aDsKPj4gKwl1 aW50MTZfdCBvdXRlcl9pcHY0X29mZnNldCwgaW5uZXJfaXB2NF9vZmZzZXQ7Cj4+ICsJdWludDE2 X3QgdWRwX2dyZV9vZmZzZXQsIHVkcF9vZmZzZXQ7Cj4+ICsJdWludDhfdCB1cGRhdGVfdWRwX2hk cjsKPj4gKwl1aW50MTZfdCBmcmFnX29mZnNldCA9IDAsIGlzX21mOwo+PiArCj4+ICsJb3V0ZXJf aXB2NF9vZmZzZXQgPSBwa3QtPm91dGVyX2wyX2xlbjsKPj4gKwl1ZHBfZ3JlX29mZnNldCA9IG91 dGVyX2lwdjRfb2Zmc2V0ICsgcGt0LT5vdXRlcl9sM19sZW47Cj4+ICsJaW5uZXJfaXB2NF9vZmZz ZXQgPSB1ZHBfZ3JlX29mZnNldCArIHBrdC0+bDJfbGVuOwo+PiArCXVkcF9vZmZzZXQgPSBpbm5l cl9pcHY0X29mZnNldCArIHBrdC0+bDNfbGVuOwo+PiArCj4+ICsJLyogT3V0ZXIgSVB2NCBoZWFk ZXIuICovCj4+ICsJaXB2NF9oZHIgPSAoc3RydWN0IHJ0ZV9pcHY0X2hkciAqKShydGVfcGt0bWJ1 Zl9tdG9kKHBrdCwgY2hhciAqKSArCj4+ICsJCQlvdXRlcl9pcHY0X29mZnNldCk7Cj4+ICsJb3V0 ZXJfaWQgPSBydGVfYmVfdG9fY3B1XzE2KGlwdjRfaGRyLT5wYWNrZXRfaWQpOwo+PiArCj4+ICsJ LyogSW5uZXIgSVB2NCBoZWFkZXIuICovCj4+ICsJaXB2NF9oZHIgPSAoc3RydWN0IHJ0ZV9pcHY0 X2hkciAqKShydGVfcGt0bWJ1Zl9tdG9kKHBrdCwgY2hhciAqKSArCj4+ICsJCQlpbm5lcl9pcHY0 X29mZnNldCk7Cj4+ICsJaW5uZXJfaWQgPSBydGVfYmVfdG9fY3B1XzE2KGlwdjRfaGRyLT5wYWNr ZXRfaWQpOwo+PiArCj4+ICsJdGFpbF9pZHggPSBuYl9zZWdzIC0gMTsKPj4gKwo+PiArCS8qIE9u bHkgdXBkYXRlIFVEUCBoZWFkZXIgZm9yIFZ4TEFOIHBhY2tldHMuICovCj4+ICsJdXBkYXRlX3Vk cF9oZHIgPSAocGt0LT5vbF9mbGFncyAmIFBLVF9UWF9UVU5ORUxfVlhMQU4pID8gMSA6IDA7Cj4+ ICsKPj4gKwlmb3IgKGkgPSAwOyBpIDwgbmJfc2VnczsgaSsrKSB7Cj4+ICsJCXVwZGF0ZV9pcHY0 X2hlYWRlcihzZWdzW2ldLCBvdXRlcl9pcHY0X29mZnNldCwgb3V0ZXJfaWQpOwo+PiArCQlpZiAo dXBkYXRlX3VkcF9oZHIpCj4+ICsJCQl1cGRhdGVfdWRwX2hlYWRlcihzZWdzW2ldLCB1ZHBfZ3Jl X29mZnNldCk7Cj4KPk5vIG5lZWQgdG8gY2hlY2sgaWYgaXQncyBhIHZ4bGFuIHBrdCwgYXMgb25s eSB2eGxhbiBpcyBzdXBwb3J0ZWQuCgpBZ3JlZSwgb3V0ZXIgaGVhZGVyIG11c3QgYmUgVURQIGhl cmUsIHNvIG5lZWRuJ3QgY2hlY2sgaXQuCgo+Cj4+ICsJCXVwZGF0ZV9pcHY0X2hlYWRlcihzZWdz W2ldLCBpbm5lcl9pcHY0X29mZnNldCwgaW5uZXJfaWQpOwo+PiArCQl1cGRhdGVfdWRwX2hlYWRl cihzZWdzW2ldLCB1ZHBfb2Zmc2V0KTsKPgo+SW5uZXIgdWRwIGhlYWRlciBzaG91bGRuJ3QgYmUg dXBkYXRlZC4gSXQgb25seSBleGlzdHMgaW4gdGhlIGZpcnN0IHNlZ21lbnQuCgpZZWFoLCBpdCBp cyBhbiBvYnZpb3VzIG1pc3Rha2UsIGJ1dCBpdCBjYW4gd29yayBmb3IgbWUsIHdoYXQncyB0aGUg bWFnaWM/IEknbGwgY2hlY2sgaXQgZnVydGhlci4KCj4KPj4gKwkJLyogRm9yIHRoZSBjYXNlIGlu bmVyIHBhY2tldCBpcyBVRFAsIHdlIG11c3Qga2VlcCBVRFAKPj4gKwkJICogZGF0YWdyYW0gYm91 bmRhcnksIGl0IG11c3QgYmUgaGFuZGxlZCBhcyBJUCBmcmFnbWVudC4KPj4gKwkJICoKPj4gKwkJ ICogU2V0IElQIGZyYWdtZW50IG9mZnNldCBmb3IgaW5uZXIgSVAgaGVhZGVyLgo+PiArCQkgKi8K Pj4gKwkJaXB2NF9oZHIgPSAoc3RydWN0IHJ0ZV9pcHY0X2hkciAqKQo+PiArCQkJKHJ0ZV9wa3Rt YnVmX210b2Qoc2Vnc1tpXSwgY2hhciAqKSArCj4+ICsJCQkJaW5uZXJfaXB2NF9vZmZzZXQpOwo+ PiArCQlpc19tZiA9IGkgPCB0YWlsX2lkeCA/IElQVjRfSERSX01GX0JJVCA6IDA7Cj4+ICsJCWlw djRfaGRyLT5mcmFnbWVudF9vZmZzZXQgPQo+PiArCQkJcnRlX2NwdV90b19iZV8xNihmcmFnX29m ZnNldCB8IGlzX21mKTsKPj4gKwkJbGVuZ3RoID0gc2Vnc1tpXS0+cGt0X2xlbiAtIGlubmVyX2lw djRfb2Zmc2V0IC0gcGt0LT5sM19sZW47Cj4+ICsJCWZyYWdfb2Zmc2V0ICs9IChsZW5ndGggPj4g Myk7Cj4+ICsJCW91dGVyX2lkKys7Cj4+ICsJfQo+PiArfQo+PiArCj4+ICtpbnQKPj4gK2dzb190 dW5uZWxfdWRwNF9zZWdtZW50KHN0cnVjdCBydGVfbWJ1ZiAqcGt0LAo+PiArCQl1aW50MTZfdCBn c29fc2l6ZSwKPj4gKwkJc3RydWN0IHJ0ZV9tZW1wb29sICpkaXJlY3RfcG9vbCwKPj4gKwkJc3Ry dWN0IHJ0ZV9tZW1wb29sICppbmRpcmVjdF9wb29sLAo+PiArCQlzdHJ1Y3QgcnRlX21idWYgKipw a3RzX291dCwKPj4gKwkJdWludDE2X3QgbmJfcGt0c19vdXQpCj4+ICt7Cj4+ICsJc3RydWN0IHJ0 ZV9pcHY0X2hkciAqaW5uZXJfaXB2NF9oZHI7Cj4+ICsJdWludDE2X3QgcHlsZF91bml0X3NpemUs IGhkcl9vZmZzZXQsIGZyYWdfb2ZmOwo+PiArCWludCByZXQ7Cj4+ICsKPj4gKwloZHJfb2Zmc2V0 ID0gcGt0LT5vdXRlcl9sMl9sZW4gKyBwa3QtPm91dGVyX2wzX2xlbiArIHBrdC0+bDJfbGVuOwo+ PiArCWlubmVyX2lwdjRfaGRyID0gKHN0cnVjdCBydGVfaXB2NF9oZHIgKikocnRlX3BrdG1idWZf bXRvZChwa3QsIGNoYXIgKikgKwo+PiArCQkJaGRyX29mZnNldCk7Cj4+ICsJLyoKPj4gKwkgKiBE b24ndCBwcm9jZXNzIHRoZSBwYWNrZXQgd2hvc2UgTUYgYml0IG9yIG9mZnNldCBpbiB0aGUgaW5u ZXIKPj4gKwkgKiBJUHY0IGhlYWRlciBhcmUgbm9uLXplcm8uCj4+ICsJICovCj4+ICsJZnJhZ19v ZmYgPSBydGVfYmVfdG9fY3B1XzE2KGlubmVyX2lwdjRfaGRyLT5mcmFnbWVudF9vZmZzZXQpOwo+ PiArCWlmICh1bmxpa2VseShJU19GUkFHTUVOVEVEKGZyYWdfb2ZmKSkpCj4+ICsJCXJldHVybiAw Owo+PiArCj4+ICsJaGRyX29mZnNldCArPSBwa3QtPmwzX2xlbjsKPj4gKwkvKiBEb24ndCBwcm9j ZXNzIHRoZSBwYWNrZXQgd2l0aG91dCBkYXRhICovCj4+ICsJaWYgKChoZHJfb2Zmc2V0ICsgcGt0 LT5sNF9sZW4pID49IHBrdC0+cGt0X2xlbikKPj4gKwkJcmV0dXJuIDA7Cj4+ICsKPj4gKwkvKiBw eWxkX3VuaXRfc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgOCBiZWNhdXNlIGZyYWdfb2ZmCj4+ ICsJICogdXNlcyA4IGJ5dGVzIGFzIHVuaXQuCj4+ICsJICovCj4+ICsJcHlsZF91bml0X3NpemUg PSAoZ3NvX3NpemUgLSBoZHJfb2Zmc2V0KSAmIH43VTsKPj4gKwo+PiArCS8qIFNlZ21lbnQgdGhl IHBheWxvYWQgKi8KPj4gKwlyZXQgPSBnc29fZG9fc2VnbWVudChwa3QsIGhkcl9vZmZzZXQsIHB5 bGRfdW5pdF9zaXplLCBkaXJlY3RfcG9vbCwKPj4gKwkJCWluZGlyZWN0X3Bvb2wsIHBrdHNfb3V0 LCBuYl9wa3RzX291dCk7Cj4+ICsJaWYgKHJldCA+IDEpCj4+ICsJCXVwZGF0ZV90dW5uZWxfaXB2 NF91ZHBfaGVhZGVycyhwa3QsIHBrdHNfb3V0LCByZXQpOwo+PiArCj4+ICsJcmV0dXJuIHJldDsK Pj4gK30KPj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZ3NvL2dzb190dW5uZWxfdWRwNC5oIGIv bGliL2xpYnJ0ZV9nc28vZ3NvX3R1bm5lbF91ZHA0LmgKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK Pj4gaW5kZXggMDAwMDAwMC4uYjliMjY5Ywo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2xpYi9s aWJydGVfZ3NvL2dzb190dW5uZWxfdWRwNC5oCj4+IEBAIC0wLDAgKzEsNDQgQEAKPj4gKy8qIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKPj4gKyAqIENvcHlyaWdodChjKSAy MDIwIEluc3B1ciBDb3Jwb3JhdGlvbgo+PiArICovCj4+ICsKPj4gKyNpZm5kZWYgX0dTT19UVU5O RUxfVURQNF9IXwo+PiArI2RlZmluZSBfR1NPX1RVTk5FTF9VRFA0X0hfCj4+ICsKPj4gKyNpbmNs dWRlIDxzdGRpbnQuaD4KPj4gKyNpbmNsdWRlIDxydGVfbWJ1Zi5oPgo+PiArCj4+ICsvKioKPj4g KyAqIFNlZ21lbnQgYSB0dW5uZWxpbmcgcGFja2V0IHdpdGggaW5uZXIgVENQL0lQdjQgaGVhZGVy cy4gVGhpcyBmdW5jdGlvbgo+Cj5UeXBvLiBJdCBzaG91bGQgYmUgImlubmVyIFVEUC9JUHY0IGhl YWRlcnMiLgoKY29waWVkIGZyb20gbGliL2xpYnJ0ZV9nc28vZ3NvX3R1bm5lbF90Y3A0LmgsIGl0 IGlzbid0IGNoYW5nZWQsIHdpbGwgdXBkYXRlIGl0LgoKPgo+PiArICogZG9lcyBub3QgY2hlY2sg aWYgdGhlIGlucHV0IHBhY2tldCBoYXMgY29ycmVjdCBjaGVja3N1bXMsIGFuZCBkb2VzIG5vdAo+ PiArICogdXBkYXRlIGNoZWNrc3VtcyBmb3Igb3V0cHV0IEdTTyBzZWdtZW50cy4gRnVydGhlcm1v cmUsIGl0IGRvZXMgbm90Cj4+ICsgKiBwcm9jZXNzIElQIGZyYWdtZW50IHBhY2tldHMuCj4+ICsg Kgo+PiArICogQHBhcmFtIHBrdAo+PiArICogIFRoZSBwYWNrZXQgbWJ1ZiB0byBzZWdtZW50Lgo+ PiArICogQHBhcmFtIGdzb19zaXplCj4+ICsgKiAgVGhlIG1heCBsZW5ndGggb2YgYSBHU08gc2Vn bWVudCwgbWVhc3VyZWQgaW4gYnl0ZXMuCj4+ICsgKiBAcGFyYW0gZGlyZWN0X3Bvb2wKPj4gKyAq ICBNQlVGIHBvb2wgdXNlZCBmb3IgYWxsb2NhdGluZyBkaXJlY3QgYnVmZmVycyBmb3Igb3V0cHV0 IHNlZ21lbnRzLgo+PiArICogQHBhcmFtIGluZGlyZWN0X3Bvb2wKPj4gKyAqICBNQlVGIHBvb2wg dXNlZCBmb3IgYWxsb2NhdGluZyBpbmRpcmVjdCBidWZmZXJzIGZvciBvdXRwdXQgc2VnbWVudHMu Cj4+ICsgKiBAcGFyYW0gcGt0c19vdXQKPj4gKyAqICBQb2ludGVyIGFycmF5IHVzZWQgdG8gc3Rv cmUgdGhlIE1CVUYgYWRkcmVzc2VzIG9mIG91dHB1dCBHU08KPj4gKyAqICBzZWdtZW50cywgd2hl biBpdCBzdWNjZWVkcy4gSWYgdGhlIG1lbW9yeSBzcGFjZSBpbiBwa3RzX291dCBpcwo+PiArICog IGluc3VmZmljaWVudCwgaXQgZmFpbHMgYW5kIHJldHVybnMgLUVJTlZBTC4KPj4gKyAqIEBwYXJh bSBuYl9wa3RzX291dAo+PiArICogIFRoZSBtYXggbnVtYmVyIG9mIGl0ZW1zIHRoYXQgJ3BrdHNf b3V0JyBjYW4ga2VlcC4KPj4gKyAqCj4+ICsgKiBAcmV0dXJuCj4+ICsgKiAgIC0gVGhlIG51bWJl ciBvZiBHU08gc2VnbWVudHMgZmlsbGVkIGluIHBrdHNfb3V0IG9uIHN1Y2Nlc3MuCj4+ICsgKiAg IC0gUmV0dXJuIDAgaWYgaXQgbmVlZG4ndCBHU08uCj4+ICsgKiAgIC0gUmV0dXJuIC1FTk9NRU0g aWYgcnVuIG91dCBvZiBtZW1vcnkgaW4gTUJVRiBwb29scy4KPj4gKyAqICAgLSBSZXR1cm4gLUVJ TlZBTCBmb3IgaW52YWxpZCBwYXJhbWV0ZXJzLgo+PiArICovCj4+ICtpbnQgZ3NvX3R1bm5lbF91 ZHA0X3NlZ21lbnQoc3RydWN0IHJ0ZV9tYnVmICpwa3QsCj4+ICsJCXVpbnQxNl90IGdzb19zaXpl LAo+PiArCQlzdHJ1Y3QgcnRlX21lbXBvb2wgKmRpcmVjdF9wb29sLAo+PiArCQlzdHJ1Y3QgcnRl X21lbXBvb2wgKmluZGlyZWN0X3Bvb2wsCj4+ICsJCXN0cnVjdCBydGVfbWJ1ZiAqKnBrdHNfb3V0 LAo+PiArCQl1aW50MTZfdCBuYl9wa3RzX291dCk7Cj4+ICsjZW5kaWYKPj4gZGlmZiAtLWdpdCBh L2xpYi9saWJydGVfZ3NvL21lc29uLmJ1aWxkIGIvbGliL2xpYnJ0ZV9nc28vbWVzb24uYnVpbGQK Pj4gaW5kZXggYWQ4ZGQ4NS4uMDU5MDRmMiAxMDA2NDQKPj4gLS0tIGEvbGliL2xpYnJ0ZV9nc28v bWVzb24uYnVpbGQKPj4gKysrIGIvbGliL2xpYnJ0ZV9nc28vbWVzb24uYnVpbGQKPj4gQEAgLTIs NiArMiw2IEBACj4+ICAjIENvcHlyaWdodChjKSAyMDE3IEludGVsIENvcnBvcmF0aW9uCj4+ICAK Pj4gIHNvdXJjZXMgPSBmaWxlcygnZ3NvX2NvbW1vbi5jJywgJ2dzb190Y3A0LmMnLCAnZ3NvX3Vk cDQuYycsCj4+IC0gCQknZ3NvX3R1bm5lbF90Y3A0LmMnLCAncnRlX2dzby5jJykKPj4gKwkJJ2dz b190dW5uZWxfdGNwNC5jJywgJ2dzb190dW5uZWxfdWRwNC5jJywgJ3J0ZV9nc28uYycpCj4+ICBo ZWFkZXJzID0gZmlsZXMoJ3J0ZV9nc28uaCcpCj4+ICBkZXBzICs9IFsnZXRoZGV2J10KPj4gZGlm ZiAtLWdpdCBhL2xpYi9saWJydGVfZ3NvL3J0ZV9nc28uYyBiL2xpYi9saWJydGVfZ3NvL3J0ZV9n c28uYwo+PiBpbmRleCA4OTYzNTBlLi5mYjc2YTIxIDEwMDY0NAo+PiAtLS0gYS9saWIvbGlicnRl X2dzby9ydGVfZ3NvLmMKPj4gKysrIGIvbGliL2xpYnJ0ZV9nc28vcnRlX2dzby5jCj4+IEBAIC0x MSw2ICsxMSw3IEBACj4+ICAjaW5jbHVkZSAiZ3NvX2NvbW1vbi5oIgo+PiAgI2luY2x1ZGUgImdz b190Y3A0LmgiCj4+ICAjaW5jbHVkZSAiZ3NvX3R1bm5lbF90Y3A0LmgiCj4+ICsjaW5jbHVkZSAi Z3NvX3R1bm5lbF91ZHA0LmgiCj4+ICAjaW5jbHVkZSAiZ3NvX3VkcDQuaCIKPj4gIAo+PiAgI2Rl ZmluZSBJTExFR0FMX1VEUF9HU09fQ1RYKGN0eCkgXAo+PiBAQCAtNjAsNiArNjEsMTMgQEAKPj4g IAkJcmV0ID0gZ3NvX3R1bm5lbF90Y3A0X3NlZ21lbnQocGt0LCBnc29fc2l6ZSwgaXBpZF9kZWx0 YSwKPj4gIAkJCQlkaXJlY3RfcG9vbCwgaW5kaXJlY3RfcG9vbCwKPj4gIAkJCQlwa3RzX291dCwg bmJfcGt0c19vdXQpOwo+PiArCX0gZWxzZSBpZiAoSVNfSVBWNF9WWExBTl9VRFA0KHBrdC0+b2xf ZmxhZ3MpICYmCj4+ICsJCQkoZ3NvX2N0eC0+Z3NvX3R5cGVzICYgKERFVl9UWF9PRkZMT0FEX1ZY TEFOX1ROTF9UU08gfAo+PiArCQkJCQkgICAgICAgREVWX1RYX09GRkxPQURfVURQX1RTTykpKSB7 Cj4KPkRFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gZG9lc24ndCBzcGVjaWZ5IGlubmVyIHBr dCB0eXBlLiBJIGd1ZXNzIGl0Cj5jYW4gYmUgdXNlZCBmb3IgYm90aCBpbm5lciBUQ1AgYW5kIGlu bmVyIFVEUCBwa3RzLiBJZiBzbywgZm9yIFZ4TEFOL1VEUAo+R1NPLCBkb2VzIGdzb190eXBlcyBu ZWVkIHRvIGFkZCBERVZfVFhfT0ZGTE9BRF9VRFBfVFNPPwo+Cj5AS29uc3RhbnRpbiwgYW55IHN1 Z2dlc3Rpb25zPwoKTm93LCBzb21lIE5JQ3MgaGF2ZSBiZSBhYmxlIHRvIHN1cHBvcnQgVURQIFRT TyAoaS5lLiBVRk8pLCB0aGlzIGlzIHNpbWlsaWFyIHRvIFRTTyBjYXNlIGluIGdzb190dW5uZWxf dGNwNC5jLgoKICAgICAgICAgICAgICAgIGlmIChwa3RzW2ldLT5vbF9mbGFncyAmIFBLVF9UWF9V RFBfU0VHKSB7CiAgICAgICAgICAgICAgICAgICAgZ3NvX2N0eC5nc29fdHlwZXMgfD0gREVWX1RY X09GRkxPQURfVURQX1RTTzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGt0c1tpXS0+b2xf ZmxhZ3MgJiBQS1RfVFhfVENQX1NFRykgewogICAgICAgICAgICAgICAgICAgIGdzb19jdHguZ3Nv X3R5cGVzIHw9IERFVl9UWF9PRkZMT0FEX1RDUF9UU087CiAgICAgICAgICAgICAgICAgICAgcGt0 c1tpXS0+b2xfZmxhZ3MgJj0gflBLVF9UWF9UQ1BfQ0tTVU07CiAgICAgICAgICAgICAgICB9CgpI ZXJlIERFVl9UWF9PRkZMT0FEX1VEUF9UU08gaXMgb25seSB1c2VkIHRvIEdTTyBjb2RlLCBHU08g Y29kZSB3aWxsIHVzZSBpdCB0byBjbGVhciBQS1RfVFhfVURQX1NFRyBmbGFnLCBubyBvdGhlciBw dXJwb3NlLgoKPgo+VGhhbmtzLAo+SmlheXUKPgo+PiArCQlwa3QtPm9sX2ZsYWdzICY9ICh+UEtU X1RYX1VEUF9TRUcpOwo+PiArCQlyZXQgPSBnc29fdHVubmVsX3VkcDRfc2VnbWVudChwa3QsIGdz b19zaXplLAo+PiArCQkJCWRpcmVjdF9wb29sLCBpbmRpcmVjdF9wb29sLAo+PiArCQkJCXBrdHNf b3V0LCBuYl9wa3RzX291dCk7Cj4+ICAJfSBlbHNlIGlmIChJU19JUFY0X1RDUChwa3QtPm9sX2Zs YWdzKSAmJgo+PiAgCQkJKGdzb19jdHgtPmdzb190eXBlcyAmIERFVl9UWF9PRkZMT0FEX1RDUF9U U08pKSB7Cj4+ICAJCXBrdC0+b2xfZmxhZ3MgJj0gKH5QS1RfVFhfVENQX1NFRyk7Cj4+IC0tIAo+ PiAxLjguMy4xCgoK