From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) by mail.toke.dk (Postfix) with ESMTPS id 5713F9DAC9B for ; Sun, 8 Jan 2023 08:38:28 +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=WIHR5dMR Received: by mail-ej1-x62b.google.com with SMTP id vm8so12840030ejc.2 for ; Sat, 07 Jan 2023 23:38:28 -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=kv54G9yei7cxwSz6jWUhSY6/zSNgzi3WeKu2VeIGgnw=; b=WIHR5dMR5uJ6lAtOaIUlhigYzvPE+VyhvxWr905s+CS37HLLWbRTS8bPl0/Dk9rugd C7lH3C63uqCtIh4EdLEFrguxaej6LzYBwPqeMMhGHZizb+7oIaoFic7qUUlT7tTV22Kg YimtD702dSZdmNeW9jl9+95Ka2bMy0E61xB7kG9uPBCdkU46x04da3xzFKMNwDCBPxp9 U/t2cdb+nIiyhx09btDSv4i/WNXesdFSHsD0+Rcnkz3mQQcs8n37L5Gx6EicwtCA4sNZ L4Gwof8BspNkfqDG9kHsQ6Fm55HNK1pgvMA2/qNSiJTLYs00McufLYSlcISkDDXDmBXs ZgZA== 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=kv54G9yei7cxwSz6jWUhSY6/zSNgzi3WeKu2VeIGgnw=; b=t5aepMFiKVHBucKdVZ1hIMinj8/Y2EinT+if8CV58e+ayS5kSb9N+yx/g4ZrSvsRzx N9vZYwEqOI3rcVpPFVpMDzifbm/5g6vb74VW+2rOWC3zHb+eaI0S6MlDxfMes7+Fw2fq 8yYbHv8T2lx/cspBRFyFnb+ueg+8h+qwB27V1K8BU2PSKRXIjVTG5hQmNia3ln5flE1E zKMcsGWUZ0DIAE6rNnZyJrqh272/hJTwg2X40uFTp85uEcBAYOscZ2Va+VlPyzuBgTSb TiarILX14CPjFU+naUEXb8EIATPGV1YPTH8f0xWfsRAzdMevvzBo66mTsUSzEDO8cJwd R12g== X-Gm-Message-State: AFqh2kqR1Ho5pO/0iOpCz/tE/QhfJ3tBcUspfNixh5Q0s5BrDJF32P62 QyHfiUqgXxBDISsndY7BFvE= X-Google-Smtp-Source: AMrXdXuypfJnm2L29PLGQxv6ffEPNHSKevc1Da6TQzdBbpNlIAqMiQa9KCkM8AB+v47xxFwmXtmn3w== X-Received: by 2002:a17:907:c388:b0:849:e96f:51f4 with SMTP id tm8-20020a170907c38800b00849e96f51f4mr44341378ejc.23.1673163507446; Sat, 07 Jan 2023 23:38:27 -0800 (PST) Received: from [192.168.0.105] ([77.126.9.245]) by smtp.gmail.com with ESMTPSA id b6-20020a17090630c600b007c0d0dad9c6sm2237487ejb.108.2023.01.07.23.38.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 07 Jan 2023 23:38:26 -0800 (PST) Message-ID: <9ea66b5b-f2e7-f2cb-ef1c-a01274f111b0@gmail.com> Date: Sun, 8 Jan 2023 09:38:24 +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: <20230104215949.529093-1-sdf@google.com> <20230104215949.529093-17-sdf@google.com> From: Tariq Toukan In-Reply-To: <20230104215949.529093-17-sdf@google.com> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: PEPARNTS36RYMGQAXKMKGNZHJHPPETHQ X-Message-ID-Hash: PEPARNTS36RYMGQAXKMKGNZHJHPPETHQ 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?= , 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 v6 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: DQoNCk9uIDA0LzAxLzIwMjMgMjM6NTksIFN0YW5pc2xhdiBGb21pY2hldiB3cm90ZToNCj4gRnJv bTogVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHJlZGhhdC5jb20+DQo+IA0KPiBTdXBw b3J0IFJYIGhhc2ggYW5kIHRpbWVzdGFtcCBtZXRhZGF0YSBrZnVuY3MuIFdlIG5lZWQgdG8gcGFz cyBpbiB0aGUgY3FlDQo+IHBvaW50ZXIgdG8gdGhlIG1seDVlX3NrYl9mcm9tKiBmdW5jdGlvbnMg c28gaXQgY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZQ0KPiBYRFAgY3R4IHRvIGRvIHRoaXMuDQo+ IA0KPiBDYzogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBudmlkaWEuY29tPg0KPiBDYzogSm9obiBG YXN0YWJlbmQgPGpvaG4uZmFzdGFiZW5kQGdtYWlsLmNvbT4NCj4gQ2M6IERhdmlkIEFoZXJuIDxk c2FoZXJuQGdtYWlsLmNvbT4NCj4gQ2M6IE1hcnRpbiBLYUZhaSBMYXUgPG1hcnRpbi5sYXVAbGlu dXguZGV2Pg0KPiBDYzogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4NCj4gQ2M6IFdp bGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4NCj4gQ2M6IEplc3BlciBEYW5nYWFy ZCBCcm91ZXIgPGJyb3VlckByZWRoYXQuY29tPg0KPiBDYzogQW5hdG9seSBCdXJha292IDxhbmF0 b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPg0KPiBDYzogQWxleGFuZGVyIExvYmFraW4gPGFsZXhhbmRy LmxvYmFraW5AaW50ZWwuY29tPg0KPiBDYzogTWFnbnVzIEthcmxzc29uIDxtYWdudXMua2FybHNz b25AZ21haWwuY29tPg0KPiBDYzogTWFyeWFtIFRhaGhhbiA8bXRhaGhhbkByZWRoYXQuY29tPg0K PiBDYzogeGRwLWhpbnRzQHhkcC1wcm9qZWN0Lm5ldA0KPiBDYzogbmV0ZGV2QHZnZXIua2VybmVs Lm9yZw0KPiBTaWduZWQtb2ZmLWJ5OiBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gPHRva2VAcmVk aGF0LmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2IEZvbWljaGV2IDxzZGZAZ29vZ2xl LmNvbT4NCj4gLS0tDQoNClRoYW5rcyBmb3IgeW91ciBwYXRjaCENCkl0IGxvb2tzIGdvb2QgaW4g Z2VuZXJhbC4gQSBmZXcgbWlub3IgY29tbWVudHMgYmVsb3cuDQoNCj4gICBkcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaCAgfCAxMCArKystDQo+ICAgLi4uL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmMgIHwgMjMgKysrKysrKysrDQo+ICAg Li4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmggIHwgIDUgKysNCj4g ICAuLi4vZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hzay9yeC5jICAgfCAxMCArKysr DQo+ICAgLi4uL2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94c2svcnguaCAgIHwgIDIg Kw0KPiAgIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyB8ICA2 ICsrKw0KPiAgIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMgICB8 IDUxICsrKysrKysrKystLS0tLS0tLS0NCj4gICA3IGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlv bnMoKyksIDI2IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuLmgNCj4gaW5kZXggYWY2NjM5NzhkMWI0Li5hZjBiZTU5Yjk1NmUg MTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bi5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5o DQo+IEBAIC02MjcsMTAgKzYyNywxMSBAQCBzdHJ1Y3QgbWx4NWVfcnE7DQo+ICAgdHlwZWRlZiB2 b2lkICgqbWx4NWVfZnBfaGFuZGxlX3J4X2NxZSkoc3RydWN0IG1seDVlX3JxKiwgc3RydWN0IG1s eDVfY3FlNjQqKTsNCj4gICB0eXBlZGVmIHN0cnVjdCBza19idWZmICoNCj4gICAoKm1seDVlX2Zw X3NrYl9mcm9tX2NxZV9tcHdycSkoc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVlX21w d19pbmZvICp3aSwNCj4gLQkJCSAgICAgICB1MTYgY3FlX2JjbnQsIHUzMiBoZWFkX29mZnNldCwg dTMyIHBhZ2VfaWR4KTsNCj4gKwkJCSAgICAgICBzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlLCB1MTYg Y3FlX2JjbnQsDQo+ICsJCQkgICAgICAgdTMyIGhlYWRfb2Zmc2V0LCB1MzIgcGFnZV9pZHgpOw0K PiAgIHR5cGVkZWYgc3RydWN0IHNrX2J1ZmYgKg0KPiAgICgqbWx4NWVfZnBfc2tiX2Zyb21fY3Fl KShzdHJ1Y3QgbWx4NWVfcnEgKnJxLCBzdHJ1Y3QgbWx4NWVfd3FlX2ZyYWdfaW5mbyAqd2ksDQo+ IC0JCQkgdTMyIGNxZV9iY250KTsNCj4gKwkJCSBzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlLCB1MzIg Y3FlX2JjbnQpOw0KPiAgIHR5cGVkZWYgYm9vbCAoKm1seDVlX2ZwX3Bvc3Rfcnhfd3Flcykoc3Ry dWN0IG1seDVlX3JxICpycSk7DQo+ICAgdHlwZWRlZiB2b2lkICgqbWx4NWVfZnBfZGVhbGxvY193 cWUpKHN0cnVjdCBtbHg1ZV9ycSosIHUxNik7DQo+ICAgdHlwZWRlZiB2b2lkICgqbWx4NWVfZnBf c2hhbXBvX2RlYWxsb2NfaGQpKHN0cnVjdCBtbHg1ZV9ycSosIHUxNiwgdTE2LCBib29sKTsNCj4g QEAgLTEwMzYsNiArMTAzNywxMSBAQCBpbnQgbWx4NWVfdmxhbl9yeF9raWxsX3ZpZChzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LCBfX2Fsd2F5c191bnVzZWQgX19iZTE2IHByb3RvLA0KPiAgIAkJCSAg IHUxNiB2aWQpOw0KPiAgIHZvaWQgbWx4NWVfdGltZXN0YW1wX2luaXQoc3RydWN0IG1seDVlX3By aXYgKnByaXYpOw0KPiAgIA0KPiArc3RhdGljIGlubGluZSBib29sIG1seDVlX3J4X2h3X3N0YW1w KHN0cnVjdCBod3RzdGFtcF9jb25maWcgKmNvbmZpZykNCj4gK3sNCj4gKwlyZXR1cm4gY29uZmln LT5yeF9maWx0ZXIgPT0gSFdUU1RBTVBfRklMVEVSX0FMTDsNCj4gK30NCj4gKw0KDQpGaXRzIGJl dHRlciBoZXJlDQpkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhy eC5oDQoNCj4gICBzdHJ1Y3QgbWx4NWVfeHNrX3BhcmFtOw0KPiAgIA0KPiAgIHN0cnVjdCBtbHg1 ZV9ycV9wYXJhbTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbi94ZHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbi94ZHAuYw0KPiBpbmRleCAzMWJiNjgwNmJmNWQuLmQxMGQzMWUxMmJhMiAxMDA2NDQN Cj4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5j DQo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAu Yw0KPiBAQCAtMTU2LDYgKzE1NiwyOSBAQCBtbHg1ZV94bWl0X3hkcF9idWZmKHN0cnVjdCBtbHg1 ZV94ZHBzcSAqc3EsIHN0cnVjdCBtbHg1ZV9ycSAqcnEsDQo+ICAgCXJldHVybiB0cnVlOw0KPiAg IH0NCj4gICANCj4gK2ludCBtbHg1ZV94ZHBfcnhfdGltZXN0YW1wKGNvbnN0IHN0cnVjdCB4ZHBf bWQgKmN0eCwgdTY0ICp0aW1lc3RhbXApDQo+ICt7DQo+ICsJY29uc3Qgc3RydWN0IG1seDVlX3hk cF9idWZmICpfY3R4ID0gKHZvaWQgKiljdHg7DQo+ICsNCj4gKwlpZiAodW5saWtlbHkoIW1seDVl X3J4X2h3X3N0YW1wKF9jdHgtPnJxLT50c3RhbXApKSkNCj4gKwkJcmV0dXJuIC1FT1BOT1RTVVBQ Ow0KPiArDQo+ICsJKnRpbWVzdGFtcCA9ICBtbHg1ZV9jcWVfdHNfdG9fbnMoX2N0eC0+cnEtPnB0 cF9jeWMydGltZSwNCj4gKwkJCQkJIF9jdHgtPnJxLT5jbG9jaywgZ2V0X2NxZV90cyhfY3R4LT5j cWUpKTsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCg0KVGhlcmUncyByb29tIGZvciBjb2RlIHJldXNl LCB3aXRoIHNpbWlsYXIgdXNlIGNhc2UgaW4gbWx4NWVfYnVpbGRfcnhfc2tiLg0KDQo+ICsNCj4g K2ludCBtbHg1ZV94ZHBfcnhfaGFzaChjb25zdCBzdHJ1Y3QgeGRwX21kICpjdHgsIHUzMiAqaGFz aCkNCj4gK3sNCj4gKwljb25zdCBzdHJ1Y3QgbWx4NWVfeGRwX2J1ZmYgKl9jdHggPSAodm9pZCAq KWN0eDsNCj4gKw0KPiArCWlmICh1bmxpa2VseSghKF9jdHgtPnhkcC5yeHEtPmRldi0+ZmVhdHVy ZXMgJiBORVRJRl9GX1JYSEFTSCkpKQ0KPiArCQlyZXR1cm4gLUVPUE5PVFNVUFA7DQo+ICsNCj4g KwkqaGFzaCA9IGJlMzJfdG9fY3B1KF9jdHgtPmNxZS0+cnNzX2hhc2hfcmVzdWx0KTsNCj4gKwly ZXR1cm4gMDsNCj4gK30NCj4gKw0KPiAgIC8qIHJldHVybnMgdHJ1ZSBpZiBwYWNrZXQgd2FzIGNv bnN1bWVkIGJ5IHhkcCAqLw0KPiAgIGJvb2wgbWx4NWVfeGRwX2hhbmRsZShzdHJ1Y3QgbWx4NWVf cnEgKnJxLCBzdHJ1Y3QgcGFnZSAqcGFnZSwNCj4gICAJCSAgICAgIHN0cnVjdCBicGZfcHJvZyAq cHJvZywgc3RydWN0IG1seDVlX3hkcF9idWZmICpteGJ1ZikNCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuaCBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuaA0KPiBpbmRleCAzODk4MThiZjY4 MzMuLmNiNTY4YzYyYWJhMCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuL3hkcC5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbi94ZHAuaA0KPiBAQCAtNDYsNiArNDYsOCBAQA0KPiAgIA0KPiAg IHN0cnVjdCBtbHg1ZV94ZHBfYnVmZiB7DQo+ICAgCXN0cnVjdCB4ZHBfYnVmZiB4ZHA7DQo+ICsJ c3RydWN0IG1seDVfY3FlNjQgKmNxZTsNCj4gKwlzdHJ1Y3QgbWx4NWVfcnEgKnJxOw0KPiAgIH07 DQo+ICAgDQo+ICAgc3RydWN0IG1seDVlX3hza19wYXJhbTsNCj4gQEAgLTYwLDYgKzYyLDkgQEAg dm9pZCBtbHg1ZV94ZHBfcnhfcG9sbF9jb21wbGV0ZShzdHJ1Y3QgbWx4NWVfcnEgKnJxKTsNCj4g ICBpbnQgbWx4NWVfeGRwX3htaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IG4sIHN0cnVj dCB4ZHBfZnJhbWUgKipmcmFtZXMsDQo+ICAgCQkgICB1MzIgZmxhZ3MpOw0KPiAgIA0KPiAraW50 IG1seDVlX3hkcF9yeF90aW1lc3RhbXAoY29uc3Qgc3RydWN0IHhkcF9tZCAqY3R4LCB1NjQgKnRp bWVzdGFtcCk7DQo+ICtpbnQgbWx4NWVfeGRwX3J4X2hhc2goY29uc3Qgc3RydWN0IHhkcF9tZCAq Y3R4LCB1MzIgKmhhc2gpOw0KPiArDQo+ICAgSU5ESVJFQ1RfQ0FMTEFCTEVfREVDTEFSRShib29s IG1seDVlX3htaXRfeGRwX2ZyYW1lX21wd3FlKHN0cnVjdCBtbHg1ZV94ZHBzcSAqc3EsDQo+ICAg CQkJCQkJCSAgc3RydWN0IG1seDVlX3htaXRfZGF0YSAqeGRwdHhkLA0KPiAgIAkJCQkJCQkgIHN0 cnVjdCBza2Jfc2hhcmVkX2luZm8gKnNpbmZvLA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hzay9yeC5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hzay9yeC5jDQo+IGluZGV4IDljZmY4MmQ3NjRl My4uOGJmMzAyOWFiZDNjIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW4veHNrL3J4LmMNCj4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuL3hzay9yeC5jDQo+IEBAIC00OSw2ICs0OSw3IEBAIGludCBt bHg1ZV94c2tfYWxsb2NfcnhfbXB3cWUoc3RydWN0IG1seDVlX3JxICpycSwgdTE2IGl4KQ0KPiAg IAkJCXVtcl93cWUtPmlubGluZV9tdHRzW2ldID0gKHN0cnVjdCBtbHg1X210dCkgew0KPiAgIAkJ CQkucHRhZyA9IGNwdV90b19iZTY0KGFkZHIgfCBNTFg1X0VOX1dSKSwNCj4gICAJCQl9Ow0KPiAr CQkJd2ktPmFsbG9jX3VuaXRzW2ldLm14YnVmLT5ycSA9IHJxOw0KPiAgIAkJfQ0KPiAgIAl9IGVs c2UgaWYgKHVubGlrZWx5KHJxLT5tcHdxZS51bXJfbW9kZSA9PSBNTFg1RV9NUFdSUV9VTVJfTU9E RV9VTkFMSUdORUQpKSB7DQo+ICAgCQlmb3IgKGkgPSAwOyBpIDwgYmF0Y2g7IGkrKykgew0KPiBA QCAtNTgsNiArNTksNyBAQCBpbnQgbWx4NWVfeHNrX2FsbG9jX3J4X21wd3FlKHN0cnVjdCBtbHg1 ZV9ycSAqcnEsIHUxNiBpeCkNCj4gICAJCQkJLmtleSA9IHJxLT5ta2V5X2JlLA0KPiAgIAkJCQku dmEgPSBjcHVfdG9fYmU2NChhZGRyKSwNCj4gICAJCQl9Ow0KPiArCQkJd2ktPmFsbG9jX3VuaXRz W2ldLm14YnVmLT5ycSA9IHJxOw0KPiAgIAkJfQ0KPiAgIAl9IGVsc2UgaWYgKGxpa2VseShycS0+ bXB3cWUudW1yX21vZGUgPT0gTUxYNUVfTVBXUlFfVU1SX01PREVfVFJJUExFKSkgew0KPiAgIAkJ dTMyIG1hcHBpbmdfc2l6ZSA9IDEgPDwgKHJxLT5tcHdxZS5wYWdlX3NoaWZ0IC0gMik7DQo+IEBA IC04MSw2ICs4Myw3IEBAIGludCBtbHg1ZV94c2tfYWxsb2NfcnhfbXB3cWUoc3RydWN0IG1seDVl X3JxICpycSwgdTE2IGl4KQ0KPiAgIAkJCQkua2V5ID0gcnEtPm1rZXlfYmUsDQo+ICAgCQkJCS52 YSA9IGNwdV90b19iZTY0KHJxLT53cWVfb3ZlcmZsb3cuYWRkciksDQo+ICAgCQkJfTsNCj4gKwkJ CXdpLT5hbGxvY191bml0c1tpXS5teGJ1Zi0+cnEgPSBycTsNCj4gICAJCX0NCj4gICAJfSBlbHNl IHsNCj4gICAJCV9fYmUzMiBwYWRfc2l6ZSA9IGNwdV90b19iZTMyKCgxIDw8IHJxLT5tcHdxZS5w YWdlX3NoaWZ0KSAtDQo+IEBAIC0xMDAsNiArMTAzLDcgQEAgaW50IG1seDVlX3hza19hbGxvY19y eF9tcHdxZShzdHJ1Y3QgbWx4NWVfcnEgKnJxLCB1MTYgaXgpDQo+ICAgCQkJCS52YSA9IGNwdV90 b19iZTY0KHJxLT53cWVfb3ZlcmZsb3cuYWRkciksDQo+ICAgCQkJCS5iY291bnQgPSBwYWRfc2l6 ZSwNCj4gICAJCQl9Ow0KPiArCQkJd2ktPmFsbG9jX3VuaXRzW2ldLm14YnVmLT5ycSA9IHJxOw0K PiAgIAkJfQ0KPiAgIAl9DQo+ICAgDQo+IEBAIC0yMzAsNiArMjM0LDcgQEAgc3RhdGljIHN0cnVj dCBza19idWZmICptbHg1ZV94c2tfY29uc3RydWN0X3NrYihzdHJ1Y3QgbWx4NWVfcnEgKnJxLCBz dHJ1Y3QgeGRwX2INCj4gICANCj4gICBzdHJ1Y3Qgc2tfYnVmZiAqbWx4NWVfeHNrX3NrYl9mcm9t X2NxZV9tcHdycV9saW5lYXIoc3RydWN0IG1seDVlX3JxICpycSwNCj4gICAJCQkJCQkgICAgc3Ry dWN0IG1seDVlX21wd19pbmZvICp3aSwNCj4gKwkJCQkJCSAgICBzdHJ1Y3QgbWx4NV9jcWU2NCAq Y3FlLA0KPiAgIAkJCQkJCSAgICB1MTYgY3FlX2JjbnQsDQo+ICAgCQkJCQkJICAgIHUzMiBoZWFk X29mZnNldCwNCj4gICAJCQkJCQkgICAgdTMyIHBhZ2VfaWR4KQ0KPiBAQCAtMjUwLDYgKzI1NSw4 IEBAIHN0cnVjdCBza19idWZmICptbHg1ZV94c2tfc2tiX2Zyb21fY3FlX21wd3JxX2xpbmVhcihz dHJ1Y3QgbWx4NWVfcnEgKnJxLA0KPiAgIAkgKi8NCj4gICAJV0FSTl9PTl9PTkNFKGhlYWRfb2Zm c2V0KTsNCj4gICANCj4gKwkvKiBteGJ1Zi0+cnEgaXMgc2V0IG9uIGFsbG9jYXRpb24sIGJ1dCBj cWUgaXMgcGVyLXBhY2tldCBzbyBzZXQgaXQgaGVyZSAqLw0KPiArCW14YnVmLT5jcWUgPSBjcWU7 DQo+ICAgCXhza19idWZmX3NldF9zaXplKCZteGJ1Zi0+eGRwLCBjcWVfYmNudCk7DQo+ICAgCXhz a19idWZmX2RtYV9zeW5jX2Zvcl9jcHUoJm14YnVmLT54ZHAsIHJxLT54c2tfcG9vbCk7DQo+ICAg CW5ldF9wcmVmZXRjaChteGJ1Zi0+eGRwLmRhdGEpOw0KPiBAQCAtMjg0LDYgKzI5MSw3IEBAIHN0 cnVjdCBza19idWZmICptbHg1ZV94c2tfc2tiX2Zyb21fY3FlX21wd3JxX2xpbmVhcihzdHJ1Y3Qg bWx4NWVfcnEgKnJxLA0KPiAgIA0KPiAgIHN0cnVjdCBza19idWZmICptbHg1ZV94c2tfc2tiX2Zy b21fY3FlX2xpbmVhcihzdHJ1Y3QgbWx4NWVfcnEgKnJxLA0KPiAgIAkJCQkJICAgICAgc3RydWN0 IG1seDVlX3dxZV9mcmFnX2luZm8gKndpLA0KPiArCQkJCQkgICAgICBzdHJ1Y3QgbWx4NV9jcWU2 NCAqY3FlLA0KPiAgIAkJCQkJICAgICAgdTMyIGNxZV9iY250KQ0KPiAgIHsNCj4gICAJc3RydWN0 IG1seDVlX3hkcF9idWZmICpteGJ1ZiA9IHdpLT5hdS0+bXhidWY7DQo+IEBAIC0yOTYsNiArMzA0 LDggQEAgc3RydWN0IHNrX2J1ZmYgKm1seDVlX3hza19za2JfZnJvbV9jcWVfbGluZWFyKHN0cnVj dCBtbHg1ZV9ycSAqcnEsDQo+ICAgCSAqLw0KPiAgIAlXQVJOX09OX09OQ0Uod2ktPm9mZnNldCk7 DQo+ICAgDQo+ICsJLyogbXhidWYtPnJxIGlzIHNldCBvbiBhbGxvY2F0aW9uLCBidXQgY3FlIGlz IHBlci1wYWNrZXQgc28gc2V0IGl0IGhlcmUgKi8NCj4gKwlteGJ1Zi0+Y3FlID0gY3FlOw0KPiAg IAl4c2tfYnVmZl9zZXRfc2l6ZSgmbXhidWYtPnhkcCwgY3FlX2JjbnQpOw0KPiAgIAl4c2tfYnVm Zl9kbWFfc3luY19mb3JfY3B1KCZteGJ1Zi0+eGRwLCBycS0+eHNrX3Bvb2wpOw0KPiAgIAluZXRf cHJlZmV0Y2gobXhidWYtPnhkcC5kYXRhKTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94c2svcnguaCBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbi94c2svcnguaA0KPiBpbmRleCAwODdjOTQzYmQ4ZTku LmNlZmMwZWY2MTA1ZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuL3hzay9yeC5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbi94c2svcnguaA0KPiBAQCAtMTMsMTEgKzEzLDEzIEBAIGludCBt bHg1ZV94c2tfYWxsb2Nfcnhfd3Flc19iYXRjaGVkKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHUxNiBp eCwgaW50IHdxZV9idWxrKTsNCj4gICBpbnQgbWx4NWVfeHNrX2FsbG9jX3J4X3dxZXMoc3RydWN0 IG1seDVlX3JxICpycSwgdTE2IGl4LCBpbnQgd3FlX2J1bGspOw0KPiAgIHN0cnVjdCBza19idWZm ICptbHg1ZV94c2tfc2tiX2Zyb21fY3FlX21wd3JxX2xpbmVhcihzdHJ1Y3QgbWx4NWVfcnEgKnJx LA0KPiAgIAkJCQkJCSAgICBzdHJ1Y3QgbWx4NWVfbXB3X2luZm8gKndpLA0KPiArCQkJCQkJICAg IHN0cnVjdCBtbHg1X2NxZTY0ICpjcWUsDQo+ICAgCQkJCQkJICAgIHUxNiBjcWVfYmNudCwNCj4g ICAJCQkJCQkgICAgdTMyIGhlYWRfb2Zmc2V0LA0KPiAgIAkJCQkJCSAgICB1MzIgcGFnZV9pZHgp Ow0KPiAgIHN0cnVjdCBza19idWZmICptbHg1ZV94c2tfc2tiX2Zyb21fY3FlX2xpbmVhcihzdHJ1 Y3QgbWx4NWVfcnEgKnJxLA0KPiAgIAkJCQkJICAgICAgc3RydWN0IG1seDVlX3dxZV9mcmFnX2lu Zm8gKndpLA0KPiArCQkJCQkgICAgICBzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlLA0KPiAgIAkJCQkJ ICAgICAgdTMyIGNxZV9iY250KTsNCj4gICANCj4gICAjZW5kaWYgLyogX19NTFg1X0VOX1hTS19S WF9IX18gKi8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fbWFpbi5jDQo+IGluZGV4IDhkMzZlMmRlNTNhOS4uMmRkZGIwNWQyZTYwIDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5j DQo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWlu LmMNCj4gQEAgLTQ5MTMsNiArNDkxMywxMSBAQCBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMg bWx4NWVfbmV0ZGV2X29wcyA9IHsNCj4gICAjZW5kaWYNCj4gICB9Ow0KPiAgIA0KPiArc3RhdGlj IGNvbnN0IHN0cnVjdCB4ZHBfbWV0YWRhdGFfb3BzIG1seDVfeGRwX21ldGFkYXRhX29wcyA9IHsN Cj4gKwkueG1vX3J4X3RpbWVzdGFtcAkJPSBtbHg1ZV94ZHBfcnhfdGltZXN0YW1wLA0KPiArCS54 bW9fcnhfaGFzaAkJCT0gbWx4NWVfeGRwX3J4X2hhc2gsDQo+ICt9Ow0KPiArDQo+ICAgc3RhdGlj IHUzMiBtbHg1ZV9jaG9vc2VfbHJvX3RpbWVvdXQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYs IHUzMiB3YW50ZWRfdGltZW91dCkNCj4gICB7DQo+ICAgCWludCBpOw0KPiBAQCAtNTA1Myw2ICs1 MDU4LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfYnVpbGRfbmljX25ldGRldihzdHJ1Y3QgbmV0X2Rl dmljZSAqbmV0ZGV2KQ0KPiAgIAlTRVRfTkVUREVWX0RFVihuZXRkZXYsIG1kZXYtPmRldmljZSk7 DQo+ICAgDQo+ICAgCW5ldGRldi0+bmV0ZGV2X29wcyA9ICZtbHg1ZV9uZXRkZXZfb3BzOw0KPiAr CW5ldGRldi0+eGRwX21ldGFkYXRhX29wcyA9ICZtbHg1X3hkcF9tZXRhZGF0YV9vcHM7DQo+ICAg DQo+ICAgCW1seDVlX2RjYm5sX2J1aWxkX25ldGRldihuZXRkZXYpOw0KPiAgIA0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYw0KPiBpbmRleCBj OGEyYjI2ZGUzNmUuLjEwZDQ1MDY0ZTYxMyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMNCj4gKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMNCj4gQEAgLTYyLDEwICs2MiwxMiBAQA0K PiAgIA0KPiAgIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqDQo+ICAgbWx4NWVfc2tiX2Zyb21fY3Fl X21wd3JxX2xpbmVhcihzdHJ1Y3QgbWx4NWVfcnEgKnJxLCBzdHJ1Y3QgbWx4NWVfbXB3X2luZm8g KndpLA0KPiAtCQkJCXUxNiBjcWVfYmNudCwgdTMyIGhlYWRfb2Zmc2V0LCB1MzIgcGFnZV9pZHgp Ow0KPiArCQkJCXN0cnVjdCBtbHg1X2NxZTY0ICpjcWUsIHUxNiBjcWVfYmNudCwgdTMyIGhlYWRf b2Zmc2V0LA0KPiArCQkJCXUzMiBwYWdlX2lkeCk7DQo+ICAgc3RhdGljIHN0cnVjdCBza19idWZm ICoNCj4gICBtbHg1ZV9za2JfZnJvbV9jcWVfbXB3cnFfbm9ubGluZWFyKHN0cnVjdCBtbHg1ZV9y cSAqcnEsIHN0cnVjdCBtbHg1ZV9tcHdfaW5mbyAqd2ksDQo+IC0JCQkJICAgdTE2IGNxZV9iY250 LCB1MzIgaGVhZF9vZmZzZXQsIHUzMiBwYWdlX2lkeCk7DQo+ICsJCQkJICAgc3RydWN0IG1seDVf Y3FlNjQgKmNxZSwgdTE2IGNxZV9iY250LCB1MzIgaGVhZF9vZmZzZXQsDQo+ICsJCQkJICAgdTMy IHBhZ2VfaWR4KTsNCj4gICBzdGF0aWMgdm9pZCBtbHg1ZV9oYW5kbGVfcnhfY3FlKHN0cnVjdCBt bHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1X2NxZTY0ICpjcWUpOw0KPiAgIHN0YXRpYyB2b2lkIG1s eDVlX2hhbmRsZV9yeF9jcWVfbXB3cnEoc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVf Y3FlNjQgKmNxZSk7DQo+ICAgc3RhdGljIHZvaWQgbWx4NWVfaGFuZGxlX3J4X2NxZV9tcHdycV9z aGFtcG8oc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVfY3FlNjQgKmNxZSk7DQo+IEBA IC03NiwxMSArNzgsNiBAQCBjb25zdCBzdHJ1Y3QgbWx4NWVfcnhfaGFuZGxlcnMgbWx4NWVfcnhf aGFuZGxlcnNfbmljID0gew0KPiAgIAkuaGFuZGxlX3J4X2NxZV9tcHdxZV9zaGFtcG8gPSBtbHg1 ZV9oYW5kbGVfcnhfY3FlX21wd3JxX3NoYW1wbywNCj4gICB9Ow0KPiAgIA0KPiAtc3RhdGljIGlu bGluZSBib29sIG1seDVlX3J4X2h3X3N0YW1wKHN0cnVjdCBod3RzdGFtcF9jb25maWcgKmNvbmZp ZykNCj4gLXsNCj4gLQlyZXR1cm4gY29uZmlnLT5yeF9maWx0ZXIgPT0gSFdUU1RBTVBfRklMVEVS X0FMTDsNCj4gLX0NCj4gLQ0KPiAgIHN0YXRpYyBpbmxpbmUgdm9pZCBtbHg1ZV9yZWFkX2NxZV9z bG90KHN0cnVjdCBtbHg1X2Nxd3EgKndxLA0KPiAgIAkJCQkgICAgICAgdTMyIGNxY2MsIHZvaWQg KmRhdGEpDQo+ICAgew0KPiBAQCAtMTU3NSwxNiArMTU3MiwxOSBAQCBzdHJ1Y3Qgc2tfYnVmZiAq bWx4NWVfYnVpbGRfbGluZWFyX3NrYihzdHJ1Y3QgbWx4NWVfcnEgKnJxLCB2b2lkICp2YSwNCj4g ICAJcmV0dXJuIHNrYjsNCj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgdm9pZCBtbHg1ZV9maWxsX3hk cF9idWZmKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHZvaWQgKnZhLCB1MTYgaGVhZHJvb20sDQo+IC0J CQkJdTMyIGxlbiwgc3RydWN0IG1seDVlX3hkcF9idWZmICpteGJ1ZikNCj4gK3N0YXRpYyB2b2lk IG1seDVlX2ZpbGxfeGRwX2J1ZmYoc3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVfY3Fl NjQgKmNxZSwNCj4gKwkJCQl2b2lkICp2YSwgdTE2IGhlYWRyb29tLCB1MzIgbGVuLA0KPiArCQkJ CXN0cnVjdCBtbHg1ZV94ZHBfYnVmZiAqbXhidWYpDQo+ICAgew0KPiAgIAl4ZHBfaW5pdF9idWZm KCZteGJ1Zi0+eGRwLCBycS0+YnVmZi5mcmFtZTBfc3osICZycS0+eGRwX3J4cSk7DQo+ICAgCXhk cF9wcmVwYXJlX2J1ZmYoJm14YnVmLT54ZHAsIHZhLCBoZWFkcm9vbSwgbGVuLCB0cnVlKTsNCj4g KwlteGJ1Zi0+Y3FlID0gY3FlOw0KPiArCW14YnVmLT5ycSA9IHJxOw0KPiAgIH0NCj4gICANCj4g ICBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKg0KPiAgIG1seDVlX3NrYl9mcm9tX2NxZV9saW5lYXIo c3RydWN0IG1seDVlX3JxICpycSwgc3RydWN0IG1seDVlX3dxZV9mcmFnX2luZm8gKndpLA0KPiAt CQkJICB1MzIgY3FlX2JjbnQpDQo+ICsJCQkgIHN0cnVjdCBtbHg1X2NxZTY0ICpjcWUsIHUzMiBj cWVfYmNudCkNCj4gICB7DQo+ICAgCXVuaW9uIG1seDVlX2FsbG9jX3VuaXQgKmF1ID0gd2ktPmF1 Ow0KPiAgIAl1MTYgcnhfaGVhZHJvb20gPSBycS0+YnVmZi5oZWFkcm9vbTsNCj4gQEAgLTE2MDks NyArMTYwOSw3IEBAIG1seDVlX3NrYl9mcm9tX2NxZV9saW5lYXIoc3RydWN0IG1seDVlX3JxICpy cSwgc3RydWN0IG1seDVlX3dxZV9mcmFnX2luZm8gKndpLA0KPiAgIAkJc3RydWN0IG1seDVlX3hk cF9idWZmIG14YnVmOw0KPiAgIA0KPiAgIAkJbmV0X3ByZWZldGNodyh2YSk7IC8qIHhkcF9mcmFt ZSBkYXRhIGFyZWEgKi8NCj4gLQkJbWx4NWVfZmlsbF94ZHBfYnVmZihycSwgdmEsIHJ4X2hlYWRy b29tLCBjcWVfYmNudCwgJm14YnVmKTsNCj4gKwkJbWx4NWVfZmlsbF94ZHBfYnVmZihycSwgY3Fl LCB2YSwgcnhfaGVhZHJvb20sIGNxZV9iY250LCAmbXhidWYpOw0KPiAgIAkJaWYgKG1seDVlX3hk cF9oYW5kbGUocnEsIGF1LT5wYWdlLCBwcm9nLCAmbXhidWYpKQ0KPiAgIAkJCXJldHVybiBOVUxM OyAvKiBwYWdlL3BhY2tldCB3YXMgY29uc3VtZWQgYnkgWERQICovDQo+ICAgDQo+IEBAIC0xNjMw LDcgKzE2MzAsNyBAQCBtbHg1ZV9za2JfZnJvbV9jcWVfbGluZWFyKHN0cnVjdCBtbHg1ZV9ycSAq cnEsIHN0cnVjdCBtbHg1ZV93cWVfZnJhZ19pbmZvICp3aSwNCj4gICANCj4gICBzdGF0aWMgc3Ry dWN0IHNrX2J1ZmYgKg0KPiAgIG1seDVlX3NrYl9mcm9tX2NxZV9ub25saW5lYXIoc3RydWN0IG1s eDVlX3JxICpycSwgc3RydWN0IG1seDVlX3dxZV9mcmFnX2luZm8gKndpLA0KPiAtCQkJICAgICB1 MzIgY3FlX2JjbnQpDQo+ICsJCQkgICAgIHN0cnVjdCBtbHg1X2NxZTY0ICpjcWUsIHUzMiBjcWVf YmNudCkNCj4gICB7DQo+ICAgCXN0cnVjdCBtbHg1ZV9ycV9mcmFnX2luZm8gKmZyYWdfaW5mbyA9 ICZycS0+d3FlLmluZm8uYXJyWzBdOw0KPiAgIAlzdHJ1Y3QgbWx4NWVfd3FlX2ZyYWdfaW5mbyAq aGVhZF93aSA9IHdpOw0KPiBAQCAtMTY1NCw3ICsxNjU0LDcgQEAgbWx4NWVfc2tiX2Zyb21fY3Fl X25vbmxpbmVhcihzdHJ1Y3QgbWx4NWVfcnEgKnJxLCBzdHJ1Y3QgbWx4NWVfd3FlX2ZyYWdfaW5m byAqd2kNCj4gICAJbmV0X3ByZWZldGNodyh2YSk7IC8qIHhkcF9mcmFtZSBkYXRhIGFyZWEgKi8N Cj4gICAJbmV0X3ByZWZldGNoKHZhICsgcnhfaGVhZHJvb20pOw0KPiAgIA0KPiAtCW1seDVlX2Zp bGxfeGRwX2J1ZmYocnEsIHZhLCByeF9oZWFkcm9vbSwgZnJhZ19jb25zdW1lZF9ieXRlcywgJm14 YnVmKTsNCj4gKwltbHg1ZV9maWxsX3hkcF9idWZmKHJxLCBjcWUsIHZhLCByeF9oZWFkcm9vbSwg ZnJhZ19jb25zdW1lZF9ieXRlcywgJm14YnVmKTsNCj4gICAJc2luZm8gPSB4ZHBfZ2V0X3NoYXJl ZF9pbmZvX2Zyb21fYnVmZigmbXhidWYueGRwKTsNCj4gICAJdHJ1ZXNpemUgPSAwOw0KPiAgIA0K PiBAQCAtMTc3Nyw3ICsxNzc3LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfaGFuZGxlX3J4X2NxZShz dHJ1Y3QgbWx4NWVfcnEgKnJxLCBzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlKQ0KPiAgIAkJCSAgICAg IG1seDVlX3NrYl9mcm9tX2NxZV9saW5lYXIsDQo+ICAgCQkJICAgICAgbWx4NWVfc2tiX2Zyb21f Y3FlX25vbmxpbmVhciwNCj4gICAJCQkgICAgICBtbHg1ZV94c2tfc2tiX2Zyb21fY3FlX2xpbmVh ciwNCj4gLQkJCSAgICAgIHJxLCB3aSwgY3FlX2JjbnQpOw0KPiArCQkJICAgICAgcnEsIHdpLCBj cWUsIGNxZV9iY250KTsNCj4gICAJaWYgKCFza2IpIHsNCj4gICAJCS8qIHByb2JhYmx5IGZvciBY RFAgKi8NCj4gICAJCWlmIChfX3Rlc3RfYW5kX2NsZWFyX2JpdChNTFg1RV9SUV9GTEFHX1hEUF9Y TUlULCBycS0+ZmxhZ3MpKSB7DQo+IEBAIC0xODMwLDcgKzE4MzAsNyBAQCBzdGF0aWMgdm9pZCBt bHg1ZV9oYW5kbGVfcnhfY3FlX3JlcChzdHJ1Y3QgbWx4NWVfcnEgKnJxLCBzdHJ1Y3QgbWx4NV9j cWU2NCAqY3FlKQ0KPiAgIAlza2IgPSBJTkRJUkVDVF9DQUxMXzIocnEtPndxZS5za2JfZnJvbV9j cWUsDQo+ICAgCQkJICAgICAgbWx4NWVfc2tiX2Zyb21fY3FlX2xpbmVhciwNCj4gICAJCQkgICAg ICBtbHg1ZV9za2JfZnJvbV9jcWVfbm9ubGluZWFyLA0KPiAtCQkJICAgICAgcnEsIHdpLCBjcWVf YmNudCk7DQo+ICsJCQkgICAgICBycSwgd2ksIGNxZSwgY3FlX2JjbnQpOw0KPiAgIAlpZiAoIXNr Yikgew0KPiAgIAkJLyogcHJvYmFibHkgZm9yIFhEUCAqLw0KPiAgIAkJaWYgKF9fdGVzdF9hbmRf Y2xlYXJfYml0KE1MWDVFX1JRX0ZMQUdfWERQX1hNSVQsIHJxLT5mbGFncykpIHsNCj4gQEAgLTE4 ODksNyArMTg4OSw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX2hhbmRsZV9yeF9jcWVfbXB3cnFfcmVw KHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1X2NxZTY0DQo+ICAgCXNrYiA9IElORElS RUNUX0NBTExfMihycS0+bXB3cWUuc2tiX2Zyb21fY3FlX21wd3JxLA0KPiAgIAkJCSAgICAgIG1s eDVlX3NrYl9mcm9tX2NxZV9tcHdycV9saW5lYXIsDQo+ICAgCQkJICAgICAgbWx4NWVfc2tiX2Zy b21fY3FlX21wd3JxX25vbmxpbmVhciwNCj4gLQkJCSAgICAgIHJxLCB3aSwgY3FlX2JjbnQsIGhl YWRfb2Zmc2V0LCBwYWdlX2lkeCk7DQo+ICsJCQkgICAgICBycSwgd2ksIGNxZSwgY3FlX2JjbnQs IGhlYWRfb2Zmc2V0LCBwYWdlX2lkeCk7DQo+ICAgCWlmICghc2tiKQ0KPiAgIAkJZ290byBtcHdy cV9jcWVfb3V0Ow0KPiAgIA0KPiBAQCAtMTk0MCw3ICsxOTQwLDggQEAgbWx4NWVfZmlsbF9za2Jf ZGF0YShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbWx4NWVfcnEgKnJxLA0KPiAgIA0KPiAg IHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqDQo+ICAgbWx4NWVfc2tiX2Zyb21fY3FlX21wd3JxX25v bmxpbmVhcihzdHJ1Y3QgbWx4NWVfcnEgKnJxLCBzdHJ1Y3QgbWx4NWVfbXB3X2luZm8gKndpLA0K PiAtCQkJCSAgIHUxNiBjcWVfYmNudCwgdTMyIGhlYWRfb2Zmc2V0LCB1MzIgcGFnZV9pZHgpDQo+ ICsJCQkJICAgc3RydWN0IG1seDVfY3FlNjQgKmNxZSwgdTE2IGNxZV9iY250LCB1MzIgaGVhZF9v ZmZzZXQsDQo+ICsJCQkJICAgdTMyIHBhZ2VfaWR4KQ0KPiAgIHsNCj4gICAJdW5pb24gbWx4NWVf YWxsb2NfdW5pdCAqYXUgPSAmd2ktPmFsbG9jX3VuaXRzW3BhZ2VfaWR4XTsNCj4gICAJdTE2IGhl YWRsZW4gPSBtaW5fdCh1MTYsIE1MWDVFX1JYX01BWF9IRUFELCBjcWVfYmNudCk7DQo+IEBAIC0x OTc5LDcgKzE5ODAsOCBAQCBtbHg1ZV9za2JfZnJvbV9jcWVfbXB3cnFfbm9ubGluZWFyKHN0cnVj dCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1ZV9tcHdfaW5mbyAqdw0KPiAgIA0KPiAgIHN0YXRp YyBzdHJ1Y3Qgc2tfYnVmZiAqDQo+ICAgbWx4NWVfc2tiX2Zyb21fY3FlX21wd3JxX2xpbmVhcihz dHJ1Y3QgbWx4NWVfcnEgKnJxLCBzdHJ1Y3QgbWx4NWVfbXB3X2luZm8gKndpLA0KPiAtCQkJCXUx NiBjcWVfYmNudCwgdTMyIGhlYWRfb2Zmc2V0LCB1MzIgcGFnZV9pZHgpDQo+ICsJCQkJc3RydWN0 IG1seDVfY3FlNjQgKmNxZSwgdTE2IGNxZV9iY250LCB1MzIgaGVhZF9vZmZzZXQsDQo+ICsJCQkJ dTMyIHBhZ2VfaWR4KQ0KPiAgIHsNCj4gICAJdW5pb24gbWx4NWVfYWxsb2NfdW5pdCAqYXUgPSAm d2ktPmFsbG9jX3VuaXRzW3BhZ2VfaWR4XTsNCj4gICAJdTE2IHJ4X2hlYWRyb29tID0gcnEtPmJ1 ZmYuaGVhZHJvb207DQo+IEBAIC0yMDEwLDcgKzIwMTIsNyBAQCBtbHg1ZV9za2JfZnJvbV9jcWVf bXB3cnFfbGluZWFyKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1ZV9tcHdfaW5mbyAq d2ksDQo+ICAgCQlzdHJ1Y3QgbWx4NWVfeGRwX2J1ZmYgbXhidWY7DQo+ICAgDQo+ICAgCQluZXRf cHJlZmV0Y2h3KHZhKTsgLyogeGRwX2ZyYW1lIGRhdGEgYXJlYSAqLw0KPiAtCQltbHg1ZV9maWxs X3hkcF9idWZmKHJxLCB2YSwgcnhfaGVhZHJvb20sIGNxZV9iY250LCAmbXhidWYpOw0KPiArCQlt bHg1ZV9maWxsX3hkcF9idWZmKHJxLCBjcWUsIHZhLCByeF9oZWFkcm9vbSwgY3FlX2JjbnQsICZt eGJ1Zik7DQo+ICAgCQlpZiAobWx4NWVfeGRwX2hhbmRsZShycSwgYXUtPnBhZ2UsIHByb2csICZt eGJ1ZikpIHsNCj4gICAJCQlpZiAoX190ZXN0X2FuZF9jbGVhcl9iaXQoTUxYNUVfUlFfRkxBR19Y RFBfWE1JVCwgcnEtPmZsYWdzKSkNCj4gICAJCQkJX19zZXRfYml0KHBhZ2VfaWR4LCB3aS0+eGRw X3htaXRfYml0bWFwKTsgLyogbm9uLWF0b21pYyAqLw0KPiBAQCAtMjE3NCw4ICsyMTc2LDggQEAg c3RhdGljIHZvaWQgbWx4NWVfaGFuZGxlX3J4X2NxZV9tcHdycV9zaGFtcG8oc3RydWN0IG1seDVl X3JxICpycSwgc3RydWN0IG1seDVfY3ENCj4gICAJCWlmIChsaWtlbHkoaGVhZF9zaXplKSkNCj4g ICAJCQkqc2tiID0gbWx4NWVfc2tiX2Zyb21fY3FlX3NoYW1wbyhycSwgd2ksIGNxZSwgaGVhZGVy X2luZGV4KTsNCj4gICAJCWVsc2UNCj4gLQkJCSpza2IgPSBtbHg1ZV9za2JfZnJvbV9jcWVfbXB3 cnFfbm9ubGluZWFyKHJxLCB3aSwgY3FlX2JjbnQsIGRhdGFfb2Zmc2V0LA0KPiAtCQkJCQkJCQkg IHBhZ2VfaWR4KTsNCj4gKwkJCSpza2IgPSBtbHg1ZV9za2JfZnJvbV9jcWVfbXB3cnFfbm9ubGlu ZWFyKHJxLCB3aSwgY3FlLCBjcWVfYmNudCwNCj4gKwkJCQkJCQkJICBkYXRhX29mZnNldCwgcGFn ZV9pZHgpOw0KPiAgIAkJaWYgKHVubGlrZWx5KCEqc2tiKSkNCj4gICAJCQlnb3RvIGZyZWVfaGRf ZW50cnk7DQo+ICAgDQo+IEBAIC0yMjQ5LDcgKzIyNTEsOCBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9o YW5kbGVfcnhfY3FlX21wd3JxKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1X2NxZTY0 ICpjcQ0KPiAgIAkJCSAgICAgIG1seDVlX3NrYl9mcm9tX2NxZV9tcHdycV9saW5lYXIsDQo+ICAg CQkJICAgICAgbWx4NWVfc2tiX2Zyb21fY3FlX21wd3JxX25vbmxpbmVhciwNCj4gICAJCQkgICAg ICBtbHg1ZV94c2tfc2tiX2Zyb21fY3FlX21wd3JxX2xpbmVhciwNCj4gLQkJCSAgICAgIHJxLCB3 aSwgY3FlX2JjbnQsIGhlYWRfb2Zmc2V0LCBwYWdlX2lkeCk7DQo+ICsJCQkgICAgICBycSwgd2ks IGNxZSwgY3FlX2JjbnQsIGhlYWRfb2Zmc2V0LA0KPiArCQkJICAgICAgcGFnZV9pZHgpOw0KPiAg IAlpZiAoIXNrYikNCj4gICAJCWdvdG8gbXB3cnFfY3FlX291dDsNCj4gICANCj4gQEAgLTI0OTQs NyArMjQ5Nyw3IEBAIHN0YXRpYyB2b2lkIG1seDVpX2hhbmRsZV9yeF9jcWUoc3RydWN0IG1seDVl X3JxICpycSwgc3RydWN0IG1seDVfY3FlNjQgKmNxZSkNCj4gICAJc2tiID0gSU5ESVJFQ1RfQ0FM TF8yKHJxLT53cWUuc2tiX2Zyb21fY3FlLA0KPiAgIAkJCSAgICAgIG1seDVlX3NrYl9mcm9tX2Nx ZV9saW5lYXIsDQo+ICAgCQkJICAgICAgbWx4NWVfc2tiX2Zyb21fY3FlX25vbmxpbmVhciwNCj4g LQkJCSAgICAgIHJxLCB3aSwgY3FlX2JjbnQpOw0KPiArCQkJICAgICAgcnEsIHdpLCBjcWUsIGNx ZV9iY250KTsNCj4gICAJaWYgKCFza2IpDQo+ICAgCQlnb3RvIHdxX2ZyZWVfd3FlOw0KPiAgIA0K PiBAQCAtMjU4Niw3ICsyNTg5LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfdHJhcF9oYW5kbGVfcnhf Y3FlKHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHN0cnVjdCBtbHg1X2NxZTY0ICpjcWUNCj4gICAJCWdv dG8gZnJlZV93cWU7DQo+ICAgCX0NCj4gICANCj4gLQlza2IgPSBtbHg1ZV9za2JfZnJvbV9jcWVf bm9ubGluZWFyKHJxLCB3aSwgY3FlX2JjbnQpOw0KPiArCXNrYiA9IG1seDVlX3NrYl9mcm9tX2Nx ZV9ub25saW5lYXIocnEsIHdpLCBjcWUsIGNxZV9iY250KTsNCj4gICAJaWYgKCFza2IpDQo+ICAg CQlnb3RvIGZyZWVfd3FlOw0KPiAgIA0K