From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by mail.toke.dk (Postfix) with ESMTPS id 2515B9DC9BF for ; Thu, 12 Jan 2023 09:13:12 +0100 (CET) Authentication-Results: mail.toke.dk; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=l5dNb/ED Received: by mail-ed1-x529.google.com with SMTP id 18so25734119edw.7 for ; Thu, 12 Jan 2023 00:13:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=cqyDICBAxrdsnOD7wBMuaiF4C9/qfdt2gsUqsheYnFc=; b=l5dNb/EDOXcm6xLV3w61wP4WPlSJhAVIg2c+/1vIq9RsYhKEfymo+84WdfJlY3zoA2 Csa3PX4AFyjl1/mNE9ngrLQFA1nceobH3iWVvq8P8HrLEp6DVDavsNLtQNO+AYfTpN/I AL2iqmWY/SIgkwxPGEGotK8kHE9l8mtW0eQ5Q/7wwPwnA6pP6KgHVOnV8OLLTYJ4ipST QcmPFmi4+BA+KWFT+7OwIS51CSRz1XBfWP+bsU7NQywm+AuWyt+nzAwcj+WKzvOgTkmf F943am6F/FyEoNlXLd9ZPD7pPLdaNieI4BEspn4vrFKvUQoiCOeQfSeIl6fR3D7BTq1C iBGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=cqyDICBAxrdsnOD7wBMuaiF4C9/qfdt2gsUqsheYnFc=; b=GkubFghdhple5SVxhsPodjHZ2uQhSSklC15SXKJDxFPLx9/a1NY2v5lggH67xzzc7v Akb4CrL9RmkohlVqBgRF74c0rzsJUcF822Vn2psEkgPTOYZAgcOOacaz6mSckcQz02pT c2HLSMjcTFhGgxiWN7ONDDr7meIDWvzyqlPPwUDqNcZ8e6GfLqoMyMihRLGRnreDJ3jt XXEITve/GJ/1m552kr8oX28niTdBGfEb8ldLGlheLxYyAS6eCxjy7rJFhVg98YlRc7bZ crfPph7XnVcZrt/ygx6J5YVK8kTX2ddhz9BJgV4zlcuUz/tHyMZNpGi1dI5lVlbcpXjK MVUA== X-Gm-Message-State: AFqh2krrtECUvkfB29gvkP5k1cw5tSNyM7GmKZW/Jb8z/oMl4+NV26QZ Nbebc5J1Iu0SsvVktqpnXb8= X-Google-Smtp-Source: AMrXdXutS61H8NR6uMSkX3fqXHK08nxe8itZNKlYFnwJTMjLEh/aXp4ySqyLK6DK7Vi/d1MCFLtK9g== X-Received: by 2002:aa7:d789:0:b0:497:4f53:ee8f with SMTP id s9-20020aa7d789000000b004974f53ee8fmr18489357edq.39.1673511190775; Thu, 12 Jan 2023 00:13:10 -0800 (PST) Received: from [192.168.0.105] ([77.126.9.245]) by smtp.gmail.com with ESMTPSA id r12-20020a170906364c00b0084c70c27407sm7060544ejb.84.2023.01.12.00.13.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 12 Jan 2023 00:13:10 -0800 (PST) Message-ID: <9545d379-9894-c7b6-d000-4f8eb6705bb1@gmail.com> Date: Thu, 12 Jan 2023 10:13:07 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Content-Language: en-US To: Stanislav Fomichev , bpf@vger.kernel.org References: <20230112003230.3779451-1-sdf@google.com> <20230112003230.3779451-17-sdf@google.com> From: Tariq Toukan In-Reply-To: <20230112003230.3779451-17-sdf@google.com> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: LRMWGCNO7ZYZEQRGJDPNCCZ72P5PQO6T X-Message-ID-Hash: LRMWGCNO7ZYZEQRGJDPNCCZ72P5PQO6T X-MailFrom: ttoukan.linux@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@linux.dev, song@kernel.org, yhs@fb.com, john.fastabend@gmail.com, kpsingh@kernel.org, haoluo@google.com, jolsa@kernel.org, =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= , Tariq Toukan , Saeed Mahameed , David Ahern , Jakub Kicinski , Willem de Bruijn , Jesper Dangaard Brouer , Anatoly Burakov , Alexander Lobakin , Magnus Karlsson , Maryam Tahhan , xdp-hints@xdp-project.net, netdev@vger.kernel.org X-Mailman-Version: 3.3.7 Precedence: list Subject: [xdp-hints] Re: [PATCH bpf-next v7 16/17] net/mlx5e: Support RX XDP metadata List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDEyLzAxLzIwMjMgMjozMiwgU3RhbmlzbGF2IEZvbWljaGV2IHdyb3RlOg0KPiBGcm9t OiBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gPHRva2VAcmVkaGF0LmNvbT4NCj4gDQo+IFN1cHBv cnQgUlggaGFzaCBhbmQgdGltZXN0YW1wIG1ldGFkYXRhIGtmdW5jcy4gV2UgbmVlZCB0byBwYXNz IGluIHRoZSBjcWUNCj4gcG9pbnRlciB0byB0aGUgbWx4NWVfc2tiX2Zyb20qIGZ1bmN0aW9ucyBz byBpdCBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlDQo+IFhEUCBjdHggdG8gZG8gdGhpcy4NCj4g DQo+IENjOiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBudmlkaWEuY29tPg0KPiBDYzogU2FlZWQgTWFo YW1lZWQgPHNhZWVkbUBudmlkaWEuY29tPg0KPiBDYzogSm9obiBGYXN0YWJlbmQgPGpvaG4uZmFz dGFiZW5kQGdtYWlsLmNvbT4NCj4gQ2M6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4N Cj4gQ2M6IE1hcnRpbiBLYUZhaSBMYXUgPG1hcnRpbi5sYXVAbGludXguZGV2Pg0KPiBDYzogSmFr dWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4NCj4gQ2M6IFdpbGxlbSBkZSBCcnVpam4gPHdp bGxlbWJAZ29vZ2xlLmNvbT4NCj4gQ2M6IEplc3BlciBEYW5nYWFyZCBCcm91ZXIgPGJyb3VlckBy ZWRoYXQuY29tPg0KPiBDYzogQW5hdG9seSBCdXJha292IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwu Y29tPg0KPiBDYzogQWxleGFuZGVyIExvYmFraW4gPGFsZXhhbmRyLmxvYmFraW5AaW50ZWwuY29t Pg0KPiBDYzogTWFnbnVzIEthcmxzc29uIDxtYWdudXMua2FybHNzb25AZ21haWwuY29tPg0KPiBD YzogTWFyeWFtIFRhaGhhbiA8bXRhaGhhbkByZWRoYXQuY29tPg0KPiBDYzogeGRwLWhpbnRzQHhk cC1wcm9qZWN0Lm5ldA0KPiBDYzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZw0KPiBTaWduZWQtb2Zm LWJ5OiBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gPHRva2VAcmVkaGF0LmNvbT4NCj4gU2lnbmVk LW9mZi1ieTogU3RhbmlzbGF2IEZvbWljaGV2IDxzZGZAZ29vZ2xlLmNvbT4NCj4gLS0tDQo+ICAg ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmggIHwgIDUgKy0NCj4g ICAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4LmggfCAgNSArKw0K PiAgIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5jICB8IDIzICsr KysrKysrKw0KPiAgIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5o ICB8ICA1ICsrDQo+ICAgLi4uL2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94c2svcngu YyAgIHwgMTAgKysrKw0KPiAgIC4uLi9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veHNr L3J4LmggICB8ICAyICsNCj4gICAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl9tYWluLmMgfCAgNiArKysNCj4gICAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl9yeC5jICAgfCA0OSArKysrKysrKysrLS0tLS0tLS0tDQo+ICAgOCBmaWxlcyBjaGFuZ2Vk LCA4MCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaCBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oDQo+IGluZGV4IGFmNjYzOTc4ZDFiNC4u NmRlMDJkOGFlYWI4IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW4uaA0KPiArKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW4uaA0KPiBAQCAtNjI3LDEwICs2MjcsMTEgQEAgc3RydWN0IG1seDVlX3JxOw0K PiAgIHR5cGVkZWYgdm9pZCAoKm1seDVlX2ZwX2hhbmRsZV9yeF9jcWUpKHN0cnVjdCBtbHg1ZV9y cSosIHN0cnVjdCBtbHg1X2NxZTY0Kik7DQo+ICAgdHlwZWRlZiBzdHJ1Y3Qgc2tfYnVmZiAqDQo+ ICAgKCptbHg1ZV9mcF9za2JfZnJvbV9jcWVfbXB3cnEpKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0 cnVjdCBtbHg1ZV9tcHdfaW5mbyAqd2ksDQo+IC0JCQkgICAgICAgdTE2IGNxZV9iY250LCB1MzIg aGVhZF9vZmZzZXQsIHUzMiBwYWdlX2lkeCk7DQo+ICsJCQkgICAgICAgc3RydWN0IG1seDVfY3Fl NjQgKmNxZSwgdTE2IGNxZV9iY250LA0KPiArCQkJICAgICAgIHUzMiBoZWFkX29mZnNldCwgdTMy IHBhZ2VfaWR4KTsNCj4gICB0eXBlZGVmIHN0cnVjdCBza19idWZmICoNCj4gICAoKm1seDVlX2Zw X3NrYl9mcm9tX2NxZSkoc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVlX3dxZV9mcmFn X2luZm8gKndpLA0KPiAtCQkJIHUzMiBjcWVfYmNudCk7DQo+ICsJCQkgc3RydWN0IG1seDVfY3Fl NjQgKmNxZSwgdTMyIGNxZV9iY250KTsNCj4gICB0eXBlZGVmIGJvb2wgKCptbHg1ZV9mcF9wb3N0 X3J4X3dxZXMpKHN0cnVjdCBtbHg1ZV9ycSAqcnEpOw0KPiAgIHR5cGVkZWYgdm9pZCAoKm1seDVl X2ZwX2RlYWxsb2Nfd3FlKShzdHJ1Y3QgbWx4NWVfcnEqLCB1MTYpOw0KPiAgIHR5cGVkZWYgdm9p ZCAoKm1seDVlX2ZwX3NoYW1wb19kZWFsbG9jX2hkKShzdHJ1Y3QgbWx4NWVfcnEqLCB1MTYsIHUx NiwgYm9vbCk7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW4vdHhyeC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuL3R4cnguaA0KPiBpbmRleCA4NTNmMzEyY2Q3NTcuLjc1N2MwMTJlY2UyNyAxMDA2NDQN Cj4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cngu aA0KPiArKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhy eC5oDQo+IEBAIC03Myw2ICs3MywxMSBAQCBpbnQgbWx4NWVfcG9sbF9yeF9jcShzdHJ1Y3QgbWx4 NWVfY3EgKmNxLCBpbnQgYnVkZ2V0KTsNCj4gICB2b2lkIG1seDVlX2ZyZWVfcnhfZGVzY3Moc3Ry dWN0IG1seDVlX3JxICpycSk7DQo+ICAgdm9pZCBtbHg1ZV9mcmVlX3J4X2luX3Byb2dyZXNzX2Rl c2NzKHN0cnVjdCBtbHg1ZV9ycSAqcnEpOw0KPiAgIA0KPiArc3RhdGljIGlubGluZSBib29sIG1s eDVlX3J4X2h3X3N0YW1wKHN0cnVjdCBod3RzdGFtcF9jb25maWcgKmNvbmZpZykNCj4gK3sNCj4g KwlyZXR1cm4gY29uZmlnLT5yeF9maWx0ZXIgPT0gSFdUU1RBTVBfRklMVEVSX0FMTDsNCj4gK30N Cj4gKw0KPiAgIC8qIFRYICovDQo+ICAgbmV0ZGV2X3R4X3QgbWx4NWVfeG1pdChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsNCj4gICBib29sIG1seDVlX3BvbGxf dHhfY3Eoc3RydWN0IG1seDVlX2NxICpjcSwgaW50IG5hcGlfYnVkZ2V0KTsNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuYw0KPiBpbmRleCAz MWJiNjgwNmJmNWQuLmQxMGQzMWUxMmJhMiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuYw0KPiBAQCAtMTU2LDYgKzE1NiwyOSBA QCBtbHg1ZV94bWl0X3hkcF9idWZmKHN0cnVjdCBtbHg1ZV94ZHBzcSAqc3EsIHN0cnVjdCBtbHg1 ZV9ycSAqcnEsDQo+ICAgCXJldHVybiB0cnVlOw0KPiAgIH0NCj4gICANCj4gK2ludCBtbHg1ZV94 ZHBfcnhfdGltZXN0YW1wKGNvbnN0IHN0cnVjdCB4ZHBfbWQgKmN0eCwgdTY0ICp0aW1lc3RhbXAp DQo+ICt7DQo+ICsJY29uc3Qgc3RydWN0IG1seDVlX3hkcF9idWZmICpfY3R4ID0gKHZvaWQgKilj dHg7DQo+ICsNCj4gKwlpZiAodW5saWtlbHkoIW1seDVlX3J4X2h3X3N0YW1wKF9jdHgtPnJxLT50 c3RhbXApKSkNCj4gKwkJcmV0dXJuIC1FT1BOT1RTVVBQOw0KPiArDQo+ICsJKnRpbWVzdGFtcCA9 ICBtbHg1ZV9jcWVfdHNfdG9fbnMoX2N0eC0+cnEtPnB0cF9jeWMydGltZSwNCj4gKwkJCQkJIF9j dHgtPnJxLT5jbG9jaywgZ2V0X2NxZV90cyhfY3R4LT5jcWUpKTsNCj4gKwlyZXR1cm4gMDsNCj4g K30NCj4gKw0KPiAraW50IG1seDVlX3hkcF9yeF9oYXNoKGNvbnN0IHN0cnVjdCB4ZHBfbWQgKmN0 eCwgdTMyICpoYXNoKQ0KPiArew0KPiArCWNvbnN0IHN0cnVjdCBtbHg1ZV94ZHBfYnVmZiAqX2N0 eCA9ICh2b2lkICopY3R4Ow0KPiArDQo+ICsJaWYgKHVubGlrZWx5KCEoX2N0eC0+eGRwLnJ4cS0+ ZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfUlhIQVNIKSkpDQo+ICsJCXJldHVybiAtRU9QTk9UU1VQ UDsNCj4gKw0KPiArCSpoYXNoID0gYmUzMl90b19jcHUoX2N0eC0+Y3FlLT5yc3NfaGFzaF9yZXN1 bHQpOw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICAgLyogcmV0dXJucyB0cnVlIGlmIHBh Y2tldCB3YXMgY29uc3VtZWQgYnkgeGRwICovDQo+ICAgYm9vbCBtbHg1ZV94ZHBfaGFuZGxlKHN0 cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBwYWdlICpwYWdlLA0KPiAgIAkJICAgICAgc3RydWN0 IGJwZl9wcm9nICpwcm9nLCBzdHJ1Y3QgbWx4NWVfeGRwX2J1ZmYgKm14YnVmKQ0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5oIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5oDQo+IGluZGV4 IDM4OTgxOGJmNjgzMy4uY2I1NjhjNjJhYmEwIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmgNCj4gKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5oDQo+IEBAIC00Niw2ICs0Niw4IEBA DQo+ICAgDQo+ICAgc3RydWN0IG1seDVlX3hkcF9idWZmIHsNCj4gICAJc3RydWN0IHhkcF9idWZm IHhkcDsNCj4gKwlzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlOw0KPiArCXN0cnVjdCBtbHg1ZV9ycSAq cnE7DQo+ICAgfTsNCj4gICANCj4gICBzdHJ1Y3QgbWx4NWVfeHNrX3BhcmFtOw0KPiBAQCAtNjAs NiArNjIsOSBAQCB2b2lkIG1seDVlX3hkcF9yeF9wb2xsX2NvbXBsZXRlKHN0cnVjdCBtbHg1ZV9y cSAqcnEpOw0KPiAgIGludCBtbHg1ZV94ZHBfeG1pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBp bnQgbiwgc3RydWN0IHhkcF9mcmFtZSAqKmZyYW1lcywNCj4gICAJCSAgIHUzMiBmbGFncyk7DQo+ ICAgDQo+ICtpbnQgbWx4NWVfeGRwX3J4X3RpbWVzdGFtcChjb25zdCBzdHJ1Y3QgeGRwX21kICpj dHgsIHU2NCAqdGltZXN0YW1wKTsNCj4gK2ludCBtbHg1ZV94ZHBfcnhfaGFzaChjb25zdCBzdHJ1 Y3QgeGRwX21kICpjdHgsIHUzMiAqaGFzaCk7DQo+ICsNCj4gICBJTkRJUkVDVF9DQUxMQUJMRV9E RUNMQVJFKGJvb2wgbWx4NWVfeG1pdF94ZHBfZnJhbWVfbXB3cWUoc3RydWN0IG1seDVlX3hkcHNx ICpzcSwNCj4gICAJCQkJCQkJICBzdHJ1Y3QgbWx4NWVfeG1pdF9kYXRhICp4ZHB0eGQsDQo+ICAg CQkJCQkJCSAgc3RydWN0IHNrYl9zaGFyZWRfaW5mbyAqc2luZm8sDQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veHNrL3J4LmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veHNrL3J4LmMNCj4gaW5kZXgg OWNmZjgyZDc2NGUzLi44YmYzMDI5YWJkM2MgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94c2svcnguYw0KPiArKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veHNrL3J4LmMNCj4gQEAgLTQ5LDYgKzQ5 LDcgQEAgaW50IG1seDVlX3hza19hbGxvY19yeF9tcHdxZShzdHJ1Y3QgbWx4NWVfcnEgKnJxLCB1 MTYgaXgpDQo+ICAgCQkJdW1yX3dxZS0+aW5saW5lX210dHNbaV0gPSAoc3RydWN0IG1seDVfbXR0 KSB7DQo+ICAgCQkJCS5wdGFnID0gY3B1X3RvX2JlNjQoYWRkciB8IE1MWDVfRU5fV1IpLA0KPiAg IAkJCX07DQo+ICsJCQl3aS0+YWxsb2NfdW5pdHNbaV0ubXhidWYtPnJxID0gcnE7DQo+ICAgCQl9 DQo+ICAgCX0gZWxzZSBpZiAodW5saWtlbHkocnEtPm1wd3FlLnVtcl9tb2RlID09IE1MWDVFX01Q V1JRX1VNUl9NT0RFX1VOQUxJR05FRCkpIHsNCj4gICAJCWZvciAoaSA9IDA7IGkgPCBiYXRjaDsg aSsrKSB7DQo+IEBAIC01OCw2ICs1OSw3IEBAIGludCBtbHg1ZV94c2tfYWxsb2NfcnhfbXB3cWUo c3RydWN0IG1seDVlX3JxICpycSwgdTE2IGl4KQ0KPiAgIAkJCQkua2V5ID0gcnEtPm1rZXlfYmUs DQo+ICAgCQkJCS52YSA9IGNwdV90b19iZTY0KGFkZHIpLA0KPiAgIAkJCX07DQo+ICsJCQl3aS0+ YWxsb2NfdW5pdHNbaV0ubXhidWYtPnJxID0gcnE7DQo+ICAgCQl9DQo+ICAgCX0gZWxzZSBpZiAo bGlrZWx5KHJxLT5tcHdxZS51bXJfbW9kZSA9PSBNTFg1RV9NUFdSUV9VTVJfTU9ERV9UUklQTEUp KSB7DQo+ICAgCQl1MzIgbWFwcGluZ19zaXplID0gMSA8PCAocnEtPm1wd3FlLnBhZ2Vfc2hpZnQg LSAyKTsNCj4gQEAgLTgxLDYgKzgzLDcgQEAgaW50IG1seDVlX3hza19hbGxvY19yeF9tcHdxZShz dHJ1Y3QgbWx4NWVfcnEgKnJxLCB1MTYgaXgpDQo+ICAgCQkJCS5rZXkgPSBycS0+bWtleV9iZSwN Cj4gICAJCQkJLnZhID0gY3B1X3RvX2JlNjQocnEtPndxZV9vdmVyZmxvdy5hZGRyKSwNCj4gICAJ CQl9Ow0KPiArCQkJd2ktPmFsbG9jX3VuaXRzW2ldLm14YnVmLT5ycSA9IHJxOw0KPiAgIAkJfQ0K PiAgIAl9IGVsc2Ugew0KPiAgIAkJX19iZTMyIHBhZF9zaXplID0gY3B1X3RvX2JlMzIoKDEgPDwg cnEtPm1wd3FlLnBhZ2Vfc2hpZnQpIC0NCj4gQEAgLTEwMCw2ICsxMDMsNyBAQCBpbnQgbWx4NWVf eHNrX2FsbG9jX3J4X21wd3FlKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHUxNiBpeCkNCj4gICAJCQkJ LnZhID0gY3B1X3RvX2JlNjQocnEtPndxZV9vdmVyZmxvdy5hZGRyKSwNCj4gICAJCQkJLmJjb3Vu dCA9IHBhZF9zaXplLA0KPiAgIAkJCX07DQo+ICsJCQl3aS0+YWxsb2NfdW5pdHNbaV0ubXhidWYt PnJxID0gcnE7DQo+ICAgCQl9DQo+ICAgCX0NCj4gICANCj4gQEAgLTIzMCw2ICsyMzQsNyBAQCBz dGF0aWMgc3RydWN0IHNrX2J1ZmYgKm1seDVlX3hza19jb25zdHJ1Y3Rfc2tiKHN0cnVjdCBtbHg1 ZV9ycSAqcnEsIHN0cnVjdCB4ZHBfYg0KPiAgIA0KPiAgIHN0cnVjdCBza19idWZmICptbHg1ZV94 c2tfc2tiX2Zyb21fY3FlX21wd3JxX2xpbmVhcihzdHJ1Y3QgbWx4NWVfcnEgKnJxLA0KPiAgIAkJ CQkJCSAgICBzdHJ1Y3QgbWx4NWVfbXB3X2luZm8gKndpLA0KPiArCQkJCQkJICAgIHN0cnVjdCBt bHg1X2NxZTY0ICpjcWUsDQo+ICAgCQkJCQkJICAgIHUxNiBjcWVfYmNudCwNCj4gICAJCQkJCQkg ICAgdTMyIGhlYWRfb2Zmc2V0LA0KPiAgIAkJCQkJCSAgICB1MzIgcGFnZV9pZHgpDQo+IEBAIC0y NTAsNiArMjU1LDggQEAgc3RydWN0IHNrX2J1ZmYgKm1seDVlX3hza19za2JfZnJvbV9jcWVfbXB3 cnFfbGluZWFyKHN0cnVjdCBtbHg1ZV9ycSAqcnEsDQo+ICAgCSAqLw0KPiAgIAlXQVJOX09OX09O Q0UoaGVhZF9vZmZzZXQpOw0KPiAgIA0KPiArCS8qIG14YnVmLT5ycSBpcyBzZXQgb24gYWxsb2Nh dGlvbiwgYnV0IGNxZSBpcyBwZXItcGFja2V0IHNvIHNldCBpdCBoZXJlICovDQo+ICsJbXhidWYt PmNxZSA9IGNxZTsNCj4gICAJeHNrX2J1ZmZfc2V0X3NpemUoJm14YnVmLT54ZHAsIGNxZV9iY250 KTsNCj4gICAJeHNrX2J1ZmZfZG1hX3N5bmNfZm9yX2NwdSgmbXhidWYtPnhkcCwgcnEtPnhza19w b29sKTsNCj4gICAJbmV0X3ByZWZldGNoKG14YnVmLT54ZHAuZGF0YSk7DQo+IEBAIC0yODQsNiAr MjkxLDcgQEAgc3RydWN0IHNrX2J1ZmYgKm1seDVlX3hza19za2JfZnJvbV9jcWVfbXB3cnFfbGlu ZWFyKHN0cnVjdCBtbHg1ZV9ycSAqcnEsDQo+ICAgDQo+ICAgc3RydWN0IHNrX2J1ZmYgKm1seDVl X3hza19za2JfZnJvbV9jcWVfbGluZWFyKHN0cnVjdCBtbHg1ZV9ycSAqcnEsDQo+ICAgCQkJCQkg ICAgICBzdHJ1Y3QgbWx4NWVfd3FlX2ZyYWdfaW5mbyAqd2ksDQo+ICsJCQkJCSAgICAgIHN0cnVj dCBtbHg1X2NxZTY0ICpjcWUsDQo+ICAgCQkJCQkgICAgICB1MzIgY3FlX2JjbnQpDQo+ICAgew0K PiAgIAlzdHJ1Y3QgbWx4NWVfeGRwX2J1ZmYgKm14YnVmID0gd2ktPmF1LT5teGJ1ZjsNCj4gQEAg LTI5Niw2ICszMDQsOCBAQCBzdHJ1Y3Qgc2tfYnVmZiAqbWx4NWVfeHNrX3NrYl9mcm9tX2NxZV9s aW5lYXIoc3RydWN0IG1seDVlX3JxICpycSwNCj4gICAJICovDQo+ICAgCVdBUk5fT05fT05DRSh3 aS0+b2Zmc2V0KTsNCj4gICANCj4gKwkvKiBteGJ1Zi0+cnEgaXMgc2V0IG9uIGFsbG9jYXRpb24s IGJ1dCBjcWUgaXMgcGVyLXBhY2tldCBzbyBzZXQgaXQgaGVyZSAqLw0KPiArCW14YnVmLT5jcWUg PSBjcWU7DQo+ICAgCXhza19idWZmX3NldF9zaXplKCZteGJ1Zi0+eGRwLCBjcWVfYmNudCk7DQo+ ICAgCXhza19idWZmX2RtYV9zeW5jX2Zvcl9jcHUoJm14YnVmLT54ZHAsIHJxLT54c2tfcG9vbCk7 DQo+ICAgCW5ldF9wcmVmZXRjaChteGJ1Zi0+eGRwLmRhdGEpOw0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hzay9yeC5oIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hzay9yeC5oDQo+IGluZGV4IDA4 N2M5NDNiZDhlOS4uY2VmYzBlZjYxMDVkIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veHNrL3J4LmgNCj4gKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hzay9yeC5oDQo+IEBAIC0xMywxMSArMTMs MTMgQEAgaW50IG1seDVlX3hza19hbGxvY19yeF93cWVzX2JhdGNoZWQoc3RydWN0IG1seDVlX3Jx ICpycSwgdTE2IGl4LCBpbnQgd3FlX2J1bGspOw0KPiAgIGludCBtbHg1ZV94c2tfYWxsb2Nfcnhf d3FlcyhzdHJ1Y3QgbWx4NWVfcnEgKnJxLCB1MTYgaXgsIGludCB3cWVfYnVsayk7DQo+ICAgc3Ry dWN0IHNrX2J1ZmYgKm1seDVlX3hza19za2JfZnJvbV9jcWVfbXB3cnFfbGluZWFyKHN0cnVjdCBt bHg1ZV9ycSAqcnEsDQo+ICAgCQkJCQkJICAgIHN0cnVjdCBtbHg1ZV9tcHdfaW5mbyAqd2ksDQo+ ICsJCQkJCQkgICAgc3RydWN0IG1seDVfY3FlNjQgKmNxZSwNCj4gICAJCQkJCQkgICAgdTE2IGNx ZV9iY250LA0KPiAgIAkJCQkJCSAgICB1MzIgaGVhZF9vZmZzZXQsDQo+ICAgCQkJCQkJICAgIHUz MiBwYWdlX2lkeCk7DQo+ICAgc3RydWN0IHNrX2J1ZmYgKm1seDVlX3hza19za2JfZnJvbV9jcWVf bGluZWFyKHN0cnVjdCBtbHg1ZV9ycSAqcnEsDQo+ICAgCQkJCQkgICAgICBzdHJ1Y3QgbWx4NWVf d3FlX2ZyYWdfaW5mbyAqd2ksDQo+ICsJCQkJCSAgICAgIHN0cnVjdCBtbHg1X2NxZTY0ICpjcWUs DQo+ICAgCQkJCQkgICAgICB1MzIgY3FlX2JjbnQpOw0KPiAgIA0KPiAgICNlbmRpZiAvKiBfX01M WDVfRU5fWFNLX1JYX0hfXyAqLw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbl9tYWluLmMNCj4gaW5kZXggY2ZmNWYyZTI5ZTFlLi5iZTk0MmMwNjA3 NzQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl9tYWluLmMNCj4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX21haW4uYw0KPiBAQCAtNDkxMyw2ICs0OTEzLDExIEBAIGNvbnN0IHN0cnVjdCBuZXRf ZGV2aWNlX29wcyBtbHg1ZV9uZXRkZXZfb3BzID0gew0KPiAgICNlbmRpZg0KPiAgIH07DQo+ICAg DQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHhkcF9tZXRhZGF0YV9vcHMgbWx4NV94ZHBfbWV0YWRh dGFfb3BzID0gew0KPiArCS54bW9fcnhfdGltZXN0YW1wCQk9IG1seDVlX3hkcF9yeF90aW1lc3Rh bXAsDQo+ICsJLnhtb19yeF9oYXNoCQkJPSBtbHg1ZV94ZHBfcnhfaGFzaCwNCj4gK307DQo+ICsN Cg0KSW5zdGVhZCBvZiBleHBvc2luZyBldmVyeSBzaW5nbGUgeGRwIGZ1bmN0aW9uIGluIHRoZSB4 ZHAgaGVhZGVyLCBtb3ZlIA0KdGhpcyBzdHJ1Y3QgaW50byB0aGUgZW4veGRwLmMsIGFuZCBleHBv c2UgaXQgdmlhIGVuL3hkcC5oLg0KDQpTZWUgZXhhbXBsZSBzdHJ1Y3QgYW5kIGl0cyB1c2FnZToN CgluZXRkZXYtPmV0aHRvb2xfb3BzICAgICAgID0gJm1seDVlX2V0aHRvb2xfb3BzOw0KDQo+ICAg c3RhdGljIHUzMiBtbHg1ZV9jaG9vc2VfbHJvX3RpbWVvdXQoc3RydWN0IG1seDVfY29yZV9kZXYg Km1kZXYsIHUzMiB3YW50ZWRfdGltZW91dCkNCj4gICB7DQo+ICAgCWludCBpOw0KPiBAQCAtNTA1 Myw2ICs1MDU4LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfYnVpbGRfbmljX25ldGRldihzdHJ1Y3Qg bmV0X2RldmljZSAqbmV0ZGV2KQ0KPiAgIAlTRVRfTkVUREVWX0RFVihuZXRkZXYsIG1kZXYtPmRl dmljZSk7DQo+ICAgDQo+ICAgCW5ldGRldi0+bmV0ZGV2X29wcyA9ICZtbHg1ZV9uZXRkZXZfb3Bz Ow0KPiArCW5ldGRldi0+eGRwX21ldGFkYXRhX29wcyA9ICZtbHg1X3hkcF9tZXRhZGF0YV9vcHM7 DQo+ICAgDQo+ICAgCW1seDVlX2RjYm5sX2J1aWxkX25ldGRldihuZXRkZXYpOw0KPiAgIA0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4 LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYw0KPiBp bmRleCA2YWZmZGRkZjViY2YuLjdiMDg2NTNiZTAwMCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMNCj4gKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMNCj4gQEAgLTYyLDEwICs2Miwx MiBAQA0KPiAgIA0KPiAgIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqDQo+ICAgbWx4NWVfc2tiX2Zy b21fY3FlX21wd3JxX2xpbmVhcihzdHJ1Y3QgbWx4NWVfcnEgKnJxLCBzdHJ1Y3QgbWx4NWVfbXB3 X2luZm8gKndpLA0KPiAtCQkJCXUxNiBjcWVfYmNudCwgdTMyIGhlYWRfb2Zmc2V0LCB1MzIgcGFn ZV9pZHgpOw0KPiArCQkJCXN0cnVjdCBtbHg1X2NxZTY0ICpjcWUsIHUxNiBjcWVfYmNudCwgdTMy IGhlYWRfb2Zmc2V0LA0KPiArCQkJCXUzMiBwYWdlX2lkeCk7DQo+ICAgc3RhdGljIHN0cnVjdCBz a19idWZmICoNCj4gICBtbHg1ZV9za2JfZnJvbV9jcWVfbXB3cnFfbm9ubGluZWFyKHN0cnVjdCBt bHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1ZV9tcHdfaW5mbyAqd2ksDQo+IC0JCQkJICAgdTE2IGNx ZV9iY250LCB1MzIgaGVhZF9vZmZzZXQsIHUzMiBwYWdlX2lkeCk7DQo+ICsJCQkJICAgc3RydWN0 IG1seDVfY3FlNjQgKmNxZSwgdTE2IGNxZV9iY250LCB1MzIgaGVhZF9vZmZzZXQsDQo+ICsJCQkJ ICAgdTMyIHBhZ2VfaWR4KTsNCj4gICBzdGF0aWMgdm9pZCBtbHg1ZV9oYW5kbGVfcnhfY3FlKHN0 cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1X2NxZTY0ICpjcWUpOw0KPiAgIHN0YXRpYyB2 b2lkIG1seDVlX2hhbmRsZV9yeF9jcWVfbXB3cnEoc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0 IG1seDVfY3FlNjQgKmNxZSk7DQo+ICAgc3RhdGljIHZvaWQgbWx4NWVfaGFuZGxlX3J4X2NxZV9t cHdycV9zaGFtcG8oc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVfY3FlNjQgKmNxZSk7 DQo+IEBAIC03NiwxMSArNzgsNiBAQCBjb25zdCBzdHJ1Y3QgbWx4NWVfcnhfaGFuZGxlcnMgbWx4 NWVfcnhfaGFuZGxlcnNfbmljID0gew0KPiAgIAkuaGFuZGxlX3J4X2NxZV9tcHdxZV9zaGFtcG8g PSBtbHg1ZV9oYW5kbGVfcnhfY3FlX21wd3JxX3NoYW1wbywNCj4gICB9Ow0KPiAgIA0KPiAtc3Rh dGljIGlubGluZSBib29sIG1seDVlX3J4X2h3X3N0YW1wKHN0cnVjdCBod3RzdGFtcF9jb25maWcg KmNvbmZpZykNCj4gLXsNCj4gLQlyZXR1cm4gY29uZmlnLT5yeF9maWx0ZXIgPT0gSFdUU1RBTVBf RklMVEVSX0FMTDsNCj4gLX0NCj4gLQ0KPiAgIHN0YXRpYyBpbmxpbmUgdm9pZCBtbHg1ZV9yZWFk X2NxZV9zbG90KHN0cnVjdCBtbHg1X2Nxd3EgKndxLA0KPiAgIAkJCQkgICAgICAgdTMyIGNxY2Ms IHZvaWQgKmRhdGEpDQo+ICAgew0KPiBAQCAtMTU3NSwxNiArMTU3MiwxOSBAQCBzdHJ1Y3Qgc2tf YnVmZiAqbWx4NWVfYnVpbGRfbGluZWFyX3NrYihzdHJ1Y3QgbWx4NWVfcnEgKnJxLCB2b2lkICp2 YSwNCj4gICAJcmV0dXJuIHNrYjsNCj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgdm9pZCBtbHg1ZV9m aWxsX214YnVmKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHZvaWQgKnZhLCB1MTYgaGVhZHJvb20sDQo+ IC0JCQkgICAgIHUzMiBsZW4sIHN0cnVjdCBtbHg1ZV94ZHBfYnVmZiAqbXhidWYpDQo+ICtzdGF0 aWMgdm9pZCBtbHg1ZV9maWxsX214YnVmKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1 X2NxZTY0ICpjcWUsDQo+ICsJCQkgICAgIHZvaWQgKnZhLCB1MTYgaGVhZHJvb20sIHUzMiBsZW4s DQo+ICsJCQkgICAgIHN0cnVjdCBtbHg1ZV94ZHBfYnVmZiAqbXhidWYpDQo+ICAgew0KPiAgIAl4 ZHBfaW5pdF9idWZmKCZteGJ1Zi0+eGRwLCBycS0+YnVmZi5mcmFtZTBfc3osICZycS0+eGRwX3J4 cSk7DQo+ICAgCXhkcF9wcmVwYXJlX2J1ZmYoJm14YnVmLT54ZHAsIHZhLCBoZWFkcm9vbSwgbGVu LCB0cnVlKTsNCj4gKwlteGJ1Zi0+Y3FlID0gY3FlOw0KPiArCW14YnVmLT5ycSA9IHJxOw0KPiAg IH0NCj4gICANCj4gICBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKg0KPiAgIG1seDVlX3NrYl9mcm9t X2NxZV9saW5lYXIoc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVlX3dxZV9mcmFnX2lu Zm8gKndpLA0KPiAtCQkJICB1MzIgY3FlX2JjbnQpDQo+ICsJCQkgIHN0cnVjdCBtbHg1X2NxZTY0 ICpjcWUsIHUzMiBjcWVfYmNudCkNCj4gICB7DQo+ICAgCXVuaW9uIG1seDVlX2FsbG9jX3VuaXQg KmF1ID0gd2ktPmF1Ow0KPiAgIAl1MTYgcnhfaGVhZHJvb20gPSBycS0+YnVmZi5oZWFkcm9vbTsN Cj4gQEAgLTE2MzAsNyArMTYzMCw3IEBAIG1seDVlX3NrYl9mcm9tX2NxZV9saW5lYXIoc3RydWN0 IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVlX3dxZV9mcmFnX2luZm8gKndpLA0KPiAgIA0KPiAg IHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqDQo+ICAgbWx4NWVfc2tiX2Zyb21fY3FlX25vbmxpbmVh cihzdHJ1Y3QgbWx4NWVfcnEgKnJxLCBzdHJ1Y3QgbWx4NWVfd3FlX2ZyYWdfaW5mbyAqd2ksDQo+ IC0JCQkgICAgIHUzMiBjcWVfYmNudCkNCj4gKwkJCSAgICAgc3RydWN0IG1seDVfY3FlNjQgKmNx ZSwgdTMyIGNxZV9iY250KQ0KPiAgIHsNCj4gICAJc3RydWN0IG1seDVlX3JxX2ZyYWdfaW5mbyAq ZnJhZ19pbmZvID0gJnJxLT53cWUuaW5mby5hcnJbMF07DQo+ICAgCXN0cnVjdCBtbHg1ZV93cWVf ZnJhZ19pbmZvICpoZWFkX3dpID0gd2k7DQo+IEBAIC0xNjU0LDcgKzE2NTQsNyBAQCBtbHg1ZV9z a2JfZnJvbV9jcWVfbm9ubGluZWFyKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1ZV93 cWVfZnJhZ19pbmZvICp3aQ0KPiAgIAluZXRfcHJlZmV0Y2h3KHZhKTsgLyogeGRwX2ZyYW1lIGRh dGEgYXJlYSAqLw0KPiAgIAluZXRfcHJlZmV0Y2godmEgKyByeF9oZWFkcm9vbSk7DQo+ICAgDQo+ IC0JbWx4NWVfZmlsbF9teGJ1ZihycSwgdmEsIHJ4X2hlYWRyb29tLCBmcmFnX2NvbnN1bWVkX2J5 dGVzLCAmbXhidWYpOw0KPiArCW1seDVlX2ZpbGxfbXhidWYocnEsIGNxZSwgdmEsIHJ4X2hlYWRy b29tLCBmcmFnX2NvbnN1bWVkX2J5dGVzLCAmbXhidWYpOw0KPiAgIAlzaW5mbyA9IHhkcF9nZXRf c2hhcmVkX2luZm9fZnJvbV9idWZmKCZteGJ1Zi54ZHApOw0KPiAgIAl0cnVlc2l6ZSA9IDA7DQo+ ICAgDQo+IEBAIC0xNzc3LDcgKzE3NzcsNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9oYW5kbGVfcnhf Y3FlKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1X2NxZTY0ICpjcWUpDQo+ICAgCQkJ ICAgICAgbWx4NWVfc2tiX2Zyb21fY3FlX2xpbmVhciwNCj4gICAJCQkgICAgICBtbHg1ZV9za2Jf ZnJvbV9jcWVfbm9ubGluZWFyLA0KPiAgIAkJCSAgICAgIG1seDVlX3hza19za2JfZnJvbV9jcWVf bGluZWFyLA0KPiAtCQkJICAgICAgcnEsIHdpLCBjcWVfYmNudCk7DQo+ICsJCQkgICAgICBycSwg d2ksIGNxZSwgY3FlX2JjbnQpOw0KPiAgIAlpZiAoIXNrYikgew0KPiAgIAkJLyogcHJvYmFibHkg Zm9yIFhEUCAqLw0KPiAgIAkJaWYgKF9fdGVzdF9hbmRfY2xlYXJfYml0KE1MWDVFX1JRX0ZMQUdf WERQX1hNSVQsIHJxLT5mbGFncykpIHsNCj4gQEAgLTE4MzAsNyArMTgzMCw3IEBAIHN0YXRpYyB2 b2lkIG1seDVlX2hhbmRsZV9yeF9jcWVfcmVwKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBt bHg1X2NxZTY0ICpjcWUpDQo+ICAgCXNrYiA9IElORElSRUNUX0NBTExfMihycS0+d3FlLnNrYl9m cm9tX2NxZSwNCj4gICAJCQkgICAgICBtbHg1ZV9za2JfZnJvbV9jcWVfbGluZWFyLA0KPiAgIAkJ CSAgICAgIG1seDVlX3NrYl9mcm9tX2NxZV9ub25saW5lYXIsDQo+IC0JCQkgICAgICBycSwgd2ks IGNxZV9iY250KTsNCj4gKwkJCSAgICAgIHJxLCB3aSwgY3FlLCBjcWVfYmNudCk7DQo+ICAgCWlm ICghc2tiKSB7DQo+ICAgCQkvKiBwcm9iYWJseSBmb3IgWERQICovDQo+ICAgCQlpZiAoX190ZXN0 X2FuZF9jbGVhcl9iaXQoTUxYNUVfUlFfRkxBR19YRFBfWE1JVCwgcnEtPmZsYWdzKSkgew0KPiBA QCAtMTg4OSw3ICsxODg5LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfaGFuZGxlX3J4X2NxZV9tcHdy cV9yZXAoc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVfY3FlNjQNCj4gICAJc2tiID0g SU5ESVJFQ1RfQ0FMTF8yKHJxLT5tcHdxZS5za2JfZnJvbV9jcWVfbXB3cnEsDQo+ICAgCQkJICAg ICAgbWx4NWVfc2tiX2Zyb21fY3FlX21wd3JxX2xpbmVhciwNCj4gICAJCQkgICAgICBtbHg1ZV9z a2JfZnJvbV9jcWVfbXB3cnFfbm9ubGluZWFyLA0KPiAtCQkJICAgICAgcnEsIHdpLCBjcWVfYmNu dCwgaGVhZF9vZmZzZXQsIHBhZ2VfaWR4KTsNCj4gKwkJCSAgICAgIHJxLCB3aSwgY3FlLCBjcWVf YmNudCwgaGVhZF9vZmZzZXQsIHBhZ2VfaWR4KTsNCj4gICAJaWYgKCFza2IpDQo+ICAgCQlnb3Rv IG1wd3JxX2NxZV9vdXQ7DQo+ICAgDQo+IEBAIC0xOTQwLDcgKzE5NDAsOCBAQCBtbHg1ZV9maWxs X3NrYl9kYXRhKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtbHg1ZV9ycSAqcnEsDQo+ICAg DQo+ICAgc3RhdGljIHN0cnVjdCBza19idWZmICoNCj4gICBtbHg1ZV9za2JfZnJvbV9jcWVfbXB3 cnFfbm9ubGluZWFyKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1ZV9tcHdfaW5mbyAq d2ksDQo+IC0JCQkJICAgdTE2IGNxZV9iY250LCB1MzIgaGVhZF9vZmZzZXQsIHUzMiBwYWdlX2lk eCkNCj4gKwkJCQkgICBzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlLCB1MTYgY3FlX2JjbnQsIHUzMiBo ZWFkX29mZnNldCwNCj4gKwkJCQkgICB1MzIgcGFnZV9pZHgpDQo+ICAgew0KPiAgIAl1bmlvbiBt bHg1ZV9hbGxvY191bml0ICphdSA9ICZ3aS0+YWxsb2NfdW5pdHNbcGFnZV9pZHhdOw0KPiAgIAl1 MTYgaGVhZGxlbiA9IG1pbl90KHUxNiwgTUxYNUVfUlhfTUFYX0hFQUQsIGNxZV9iY250KTsNCj4g QEAgLTE5NzksNyArMTk4MCw4IEBAIG1seDVlX3NrYl9mcm9tX2NxZV9tcHdycV9ub25saW5lYXIo c3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVlX21wd19pbmZvICp3DQo+ICAgDQo+ICAg c3RhdGljIHN0cnVjdCBza19idWZmICoNCj4gICBtbHg1ZV9za2JfZnJvbV9jcWVfbXB3cnFfbGlu ZWFyKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1ZV9tcHdfaW5mbyAqd2ksDQo+IC0J CQkJdTE2IGNxZV9iY250LCB1MzIgaGVhZF9vZmZzZXQsIHUzMiBwYWdlX2lkeCkNCj4gKwkJCQlz dHJ1Y3QgbWx4NV9jcWU2NCAqY3FlLCB1MTYgY3FlX2JjbnQsIHUzMiBoZWFkX29mZnNldCwNCj4g KwkJCQl1MzIgcGFnZV9pZHgpDQo+ICAgew0KPiAgIAl1bmlvbiBtbHg1ZV9hbGxvY191bml0ICph dSA9ICZ3aS0+YWxsb2NfdW5pdHNbcGFnZV9pZHhdOw0KPiAgIAl1MTYgcnhfaGVhZHJvb20gPSBy cS0+YnVmZi5oZWFkcm9vbTsNCj4gQEAgLTIwMTAsNyArMjAxMiw3IEBAIG1seDVlX3NrYl9mcm9t X2NxZV9tcHdycV9saW5lYXIoc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVlX21wd19p bmZvICp3aSwNCj4gICAJCXN0cnVjdCBtbHg1ZV94ZHBfYnVmZiBteGJ1ZjsNCj4gICANCj4gICAJ CW5ldF9wcmVmZXRjaHcodmEpOyAvKiB4ZHBfZnJhbWUgZGF0YSBhcmVhICovDQo+IC0JCW1seDVl X2ZpbGxfbXhidWYocnEsIHZhLCByeF9oZWFkcm9vbSwgY3FlX2JjbnQsICZteGJ1Zik7DQo+ICsJ CW1seDVlX2ZpbGxfbXhidWYocnEsIGNxZSwgdmEsIHJ4X2hlYWRyb29tLCBjcWVfYmNudCwgJm14 YnVmKTsNCj4gICAJCWlmIChtbHg1ZV94ZHBfaGFuZGxlKHJxLCBhdS0+cGFnZSwgcHJvZywgJm14 YnVmKSkgew0KPiAgIAkJCWlmIChfX3Rlc3RfYW5kX2NsZWFyX2JpdChNTFg1RV9SUV9GTEFHX1hE UF9YTUlULCBycS0+ZmxhZ3MpKQ0KPiAgIAkJCQlfX3NldF9iaXQocGFnZV9pZHgsIHdpLT54ZHBf eG1pdF9iaXRtYXApOyAvKiBub24tYXRvbWljICovDQo+IEBAIC0yMTc0LDggKzIxNzYsOCBAQCBz dGF0aWMgdm9pZCBtbHg1ZV9oYW5kbGVfcnhfY3FlX21wd3JxX3NoYW1wbyhzdHJ1Y3QgbWx4NWVf cnEgKnJxLCBzdHJ1Y3QgbWx4NV9jcQ0KPiAgIAkJaWYgKGxpa2VseShoZWFkX3NpemUpKQ0KPiAg IAkJCSpza2IgPSBtbHg1ZV9za2JfZnJvbV9jcWVfc2hhbXBvKHJxLCB3aSwgY3FlLCBoZWFkZXJf aW5kZXgpOw0KPiAgIAkJZWxzZQ0KPiAtCQkJKnNrYiA9IG1seDVlX3NrYl9mcm9tX2NxZV9tcHdy cV9ub25saW5lYXIocnEsIHdpLCBjcWVfYmNudCwgZGF0YV9vZmZzZXQsDQo+IC0JCQkJCQkJCSAg cGFnZV9pZHgpOw0KPiArCQkJKnNrYiA9IG1seDVlX3NrYl9mcm9tX2NxZV9tcHdycV9ub25saW5l YXIocnEsIHdpLCBjcWUsIGNxZV9iY250LA0KPiArCQkJCQkJCQkgIGRhdGFfb2Zmc2V0LCBwYWdl X2lkeCk7DQo+ICAgCQlpZiAodW5saWtlbHkoISpza2IpKQ0KPiAgIAkJCWdvdG8gZnJlZV9oZF9l bnRyeTsNCj4gICANCj4gQEAgLTIyNDksNyArMjI1MSw4IEBAIHN0YXRpYyB2b2lkIG1seDVlX2hh bmRsZV9yeF9jcWVfbXB3cnEoc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVfY3FlNjQg KmNxDQo+ICAgCQkJICAgICAgbWx4NWVfc2tiX2Zyb21fY3FlX21wd3JxX2xpbmVhciwNCj4gICAJ CQkgICAgICBtbHg1ZV9za2JfZnJvbV9jcWVfbXB3cnFfbm9ubGluZWFyLA0KPiAgIAkJCSAgICAg IG1seDVlX3hza19za2JfZnJvbV9jcWVfbXB3cnFfbGluZWFyLA0KPiAtCQkJICAgICAgcnEsIHdp LCBjcWVfYmNudCwgaGVhZF9vZmZzZXQsIHBhZ2VfaWR4KTsNCj4gKwkJCSAgICAgIHJxLCB3aSwg Y3FlLCBjcWVfYmNudCwgaGVhZF9vZmZzZXQsDQo+ICsJCQkgICAgICBwYWdlX2lkeCk7DQo+ICAg CWlmICghc2tiKQ0KPiAgIAkJZ290byBtcHdycV9jcWVfb3V0Ow0KPiAgIA0KPiBAQCAtMjQ5NCw3 ICsyNDk3LDcgQEAgc3RhdGljIHZvaWQgbWx4NWlfaGFuZGxlX3J4X2NxZShzdHJ1Y3QgbWx4NWVf cnEgKnJxLCBzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlKQ0KPiAgIAlza2IgPSBJTkRJUkVDVF9DQUxM XzIocnEtPndxZS5za2JfZnJvbV9jcWUsDQo+ICAgCQkJICAgICAgbWx4NWVfc2tiX2Zyb21fY3Fl X2xpbmVhciwNCj4gICAJCQkgICAgICBtbHg1ZV9za2JfZnJvbV9jcWVfbm9ubGluZWFyLA0KPiAt CQkJICAgICAgcnEsIHdpLCBjcWVfYmNudCk7DQo+ICsJCQkgICAgICBycSwgd2ksIGNxZSwgY3Fl X2JjbnQpOw0KPiAgIAlpZiAoIXNrYikNCj4gICAJCWdvdG8gd3FfZnJlZV93cWU7DQo+ICAgDQo+ IEBAIC0yNTg2LDcgKzI1ODksNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV90cmFwX2hhbmRsZV9yeF9j cWUoc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVfY3FlNjQgKmNxZQ0KPiAgIAkJZ290 byBmcmVlX3dxZTsNCj4gICAJfQ0KPiAgIA0KPiAtCXNrYiA9IG1seDVlX3NrYl9mcm9tX2NxZV9u b25saW5lYXIocnEsIHdpLCBjcWVfYmNudCk7DQo+ICsJc2tiID0gbWx4NWVfc2tiX2Zyb21fY3Fl X25vbmxpbmVhcihycSwgd2ksIGNxZSwgY3FlX2JjbnQpOw0KPiAgIAlpZiAoIXNrYikNCj4gICAJ CWdvdG8gZnJlZV93cWU7DQo+ICAgDQo=