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 2939E9DD8E2 for ; Fri, 13 Jan 2023 21:53:51 +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=E04DXtWk Received: by mail-ej1-x62b.google.com with SMTP id tz12so55066839ejc.9 for ; Fri, 13 Jan 2023 12:53:51 -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=uiZKYWVMv8+GN0imjMsXpdWU7oNMb2M3F3lY1kxZB0M=; b=E04DXtWkoWWMmcc89AI2TjatqKMNJdsJRJJTkP/dQ+B2zn6ZFyW2QZK5g2A2tqnuO4 i/fw8PpK6oUN5EewtqcbrPdEPO3cSQul0MIyAzyxqBwpEMHs1GjcampZcfW5oYN/F+N+ iPFrPxfpVE4LY73lWfu9GrEvKwXEyli7qMOD78fhe1TYD0SFRcHzFgKduDxk+J72junR G3ezVVmXKtYyll9cAmIJ+45lh1wftk8qlAkeoY6Xitl/t2rSSqo0LiY7uj7mmZFEM5TQ lBlziO/5LrQCkh7+kDZqc3gMMOLAE80A9KDtMTjgqyCVNNOkNCe/ECGMyC4go0ZzJibf pa7Q== 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=uiZKYWVMv8+GN0imjMsXpdWU7oNMb2M3F3lY1kxZB0M=; b=165XEs1O/em0mBfXjnUekmAzfNE3P07RnjiOBsr3wEFFPgtGhFe2HsXeYQXyrZ4TX4 lAgVVBZkwHa9ryYX+zuAPMv4DkZWxHifRJuK/pbaCbZLGChb1rYgvBBzkBgMj+Crq6j6 sYsOAPyy4EDbhV9gvS7jITnc1lfWmNl8h3Nci2LDWhM1IsKPL6A2XUmKUvhKmwO93fkN zCKxt1J02dSnzI9Sr2svYp7G4yMBC3zhyExQ510cAXs/bRZvuC1xNAWVOMy9lYlILOGR i+2dQ9d7LvPKO9PDOCW9C1LjFe8NBAkwEYDS1ruG9Aypv90AfiAB4vrsRY27eamp7TAT Fhwg== X-Gm-Message-State: AFqh2krVC3+aWP5K7XX3YwcLzKk4klCuyFF7oR5D/yCqT1avagFwaxzU FKnim/KkSvj2CHsmxFC5CCE= X-Google-Smtp-Source: AMrXdXvUam3G+6mz6b2/+Ow2DYTvGkjNvwb7ubtevMGdq5UXZxdK/W/UtMFvEWizyJCeKUOXWx2lKA== X-Received: by 2002:a17:907:a802:b0:84d:430a:5e5c with SMTP id vo2-20020a170907a80200b0084d430a5e5cmr22934024ejc.32.1673643231114; Fri, 13 Jan 2023 12:53:51 -0800 (PST) Received: from [192.168.0.105] ([77.126.1.183]) by smtp.gmail.com with ESMTPSA id c23-20020a170906155700b007a9c3831409sm8892590ejd.137.2023.01.13.12.53.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 13 Jan 2023 12:53:50 -0800 (PST) Message-ID: Date: Fri, 13 Jan 2023 22:53:47 +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: =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= , Stanislav Fomichev , Tariq Toukan References: <20230112003230.3779451-1-sdf@google.com> <20230112003230.3779451-16-sdf@google.com> <87k01rfojm.fsf@toke.dk> <87h6wvfmfa.fsf@toke.dk> From: Tariq Toukan In-Reply-To: <87h6wvfmfa.fsf@toke.dk> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: JXNN7ZWX7AZLNTKXYLABTEYCQMZECIIP X-Message-ID-Hash: JXNN7ZWX7AZLNTKXYLABTEYCQMZECIIP 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: bpf@vger.kernel.org, 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, 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 15/17] net/mlx5e: Introduce wrapper for xdp_buff List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDEyLzAxLzIwMjMgMjM6NTUsIFRva2UgSMO4aWxhbmQtSsO4cmdlbnNlbiB3cm90ZToN Cj4gVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHJlZGhhdC5jb20+IHdyaXRlczoNCj4g DQo+PiBTdGFuaXNsYXYgRm9taWNoZXYgPHNkZkBnb29nbGUuY29tPiB3cml0ZXM6DQo+Pg0KPj4+ IE9uIFRodSwgSmFuIDEyLCAyMDIzIGF0IDEyOjA3IEFNIFRhcmlxIFRvdWthbiA8dHRvdWthbi5s aW51eEBnbWFpbC5jb20+IHdyb3RlOg0KPj4+Pg0KPj4+Pg0KPj4+Pg0KPj4+PiBPbiAxMi8wMS8y MDIzIDI6MzIsIFN0YW5pc2xhdiBGb21pY2hldiB3cm90ZToNCj4+Pj4+IEZyb206IFRva2UgSMO4 aWxhbmQtSsO4cmdlbnNlbiA8dG9rZUByZWRoYXQuY29tPg0KPj4+Pj4NCj4+Pj4+IFByZXBhcmF0 aW9uIGZvciBpbXBsZW1lbnRpbmcgSFcgbWV0YWRhdGEga2Z1bmNzLiBObyBmdW5jdGlvbmFsIGNo YW5nZS4NCj4+Pj4+DQo+Pj4+PiBDYzogVGFyaXEgVG91a2FuIDx0YXJpcXRAbnZpZGlhLmNvbT4N Cj4+Pj4+IENjOiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG52aWRpYS5jb20+DQo+Pj4+PiBDYzog Sm9obiBGYXN0YWJlbmQgPGpvaG4uZmFzdGFiZW5kQGdtYWlsLmNvbT4NCj4+Pj4+IENjOiBEYXZp ZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+DQo+Pj4+PiBDYzogTWFydGluIEthRmFpIExhdSA8 bWFydGluLmxhdUBsaW51eC5kZXY+DQo+Pj4+PiBDYzogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2Vy bmVsLm9yZz4NCj4+Pj4+IENjOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ DQo+Pj4+PiBDYzogSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8YnJvdWVyQHJlZGhhdC5jb20+DQo+ Pj4+PiBDYzogQW5hdG9seSBCdXJha292IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPg0KPj4+ Pj4gQ2M6IEFsZXhhbmRlciBMb2Jha2luIDxhbGV4YW5kci5sb2Jha2luQGludGVsLmNvbT4NCj4+ Pj4+IENjOiBNYWdudXMgS2FybHNzb24gPG1hZ251cy5rYXJsc3NvbkBnbWFpbC5jb20+DQo+Pj4+ PiBDYzogTWFyeWFtIFRhaGhhbiA8bXRhaGhhbkByZWRoYXQuY29tPg0KPj4+Pj4gQ2M6IHhkcC1o aW50c0B4ZHAtcHJvamVjdC5uZXQNCj4+Pj4+IENjOiBuZXRkZXZAdmdlci5rZXJuZWwub3JnDQo+ Pj4+PiBTaWduZWQtb2ZmLWJ5OiBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gPHRva2VAcmVkaGF0 LmNvbT4NCj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFN0YW5pc2xhdiBGb21pY2hldiA8c2RmQGdvb2ds ZS5jb20+DQo+Pj4+PiAtLS0NCj4+Pj4+ICAgIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbi5oICB8ICAxICsNCj4+Pj4+ICAgIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuL3hkcC5jICB8ICAzICstDQo+Pj4+PiAgICAuLi4vbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuaCAgfCAgNiArLQ0KPj4+Pj4gICAgLi4uL2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbi94c2svcnguYyAgIHwgMjUgKysrKy0tLS0NCj4+Pj4+ ICAgIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMgICB8IDU4ICsr KysrKysrKy0tLS0tLS0tLS0NCj4+Pj4+ICAgIDUgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9u cygrKSwgNDMgZGVsZXRpb25zKC0pDQo+Pj4+Pg0KPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgNCj4+Pj4+IGluZGV4IDJkNzdmYjhhOGEwMS4uYWY2 NjM5NzhkMWI0IDEwMDY0NA0KPj4+Pj4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuLmgNCj4+Pj4+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbi5oDQo+Pj4+PiBAQCAtNDY5LDYgKzQ2OSw3IEBAIHN0cnVjdCBtbHg1 ZV90eHFzcSB7DQo+Pj4+PiAgICB1bmlvbiBtbHg1ZV9hbGxvY191bml0IHsNCj4+Pj4+ICAgICAg ICBzdHJ1Y3QgcGFnZSAqcGFnZTsNCj4+Pj4+ICAgICAgICBzdHJ1Y3QgeGRwX2J1ZmYgKnhzazsN Cj4+Pj4+ICsgICAgIHN0cnVjdCBtbHg1ZV94ZHBfYnVmZiAqbXhidWY7DQo+Pj4+DQo+Pj4+IElu IFhTSyBmaWxlcyBiZWxvdyB5b3UgbWl4IHVzYWdlIG9mIGJvdGggYWxsb2NfdW5pdHNbcGFnZV9p ZHhdLm14YnVmIGFuZA0KPj4+PiBhbGxvY191bml0c1twYWdlX2lkeF0ueHNrLCB3aGlsZSBib3Ro IGZpZWxkcyBzaGFyZSB0aGUgbWVtb3J5IG9mIGEgdW5pb24uDQo+Pj4+DQo+Pj4+IEFzIHN0cnVj dCBtbHg1ZV94ZHBfYnVmZiB3cmFwcyBzdHJ1Y3QgeGRwX2J1ZmYsIEkgdGhpbmsgdGhhdCB5b3Ug anVzdA0KPj4+PiBuZWVkIHRvIGNoYW5nZSB0aGUgZXhpc3RpbmcgeHNrIGZpZWxkIHR5cGUgZnJv bSBzdHJ1Y3QgeGRwX2J1ZmYgKnhzaw0KPj4+PiBpbnRvIHN0cnVjdCBtbHg1ZV94ZHBfYnVmZiAq eHNrIGFuZCBhbGlnbiB0aGUgdXNhZ2UuDQo+Pj4NCj4+PiBIbW1tLCBnb29kIHBvaW50LiBJJ20g YWN0dWFsbHkgbm90IHN1cmUgaG93IGl0IHdvcmtzIGN1cnJlbnRseS4NCj4+PiBtbHg1ZV9hbGxv Y191bml0Lm14YnVmIGRvZXNuJ3Qgc2VlbSB0byBiZSBpbml0aWFsaXplZCBhbnl3aGVyZT8gVG9r ZSwNCj4+PiBhbSBJIG1pc3Npbmcgc29tZXRoaW5nPw0KPj4NCj4+IEl0J3MgaW5pdGlhbGlzZWQg cGllY2VtZWFsIGluIGRpZmZlcmVudCBwbGFjZXM7IGJ1dCB5ZWFoLCB3ZSdyZSBtaXhpbmcNCj4+ IHRoaW5ncyBhIGJpdC4uLg0KPj4NCj4+PiBJJ20gdGhpbmtpbmcgYWJvdXQgc29tZXRoaW5nIGxp a2UgdGhpczoNCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW4uaA0KPj4+IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuLmgNCj4+PiBpbmRleCBhZjY2Mzk3OGQxYjQuLjJkNzdmYjhhOGEwMSAxMDA2 NDQNCj4+PiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4u aA0KPj4+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5o DQo+Pj4gQEAgLTQ2OSw3ICs0NjksNiBAQCBzdHJ1Y3QgbWx4NWVfdHhxc3Egew0KPj4+ICAgdW5p b24gbWx4NWVfYWxsb2NfdW5pdCB7DQo+Pj4gICAgICAgICAgc3RydWN0IHBhZ2UgKnBhZ2U7DQo+ Pj4gICAgICAgICAgc3RydWN0IHhkcF9idWZmICp4c2s7DQo+Pj4gLSAgICAgICBzdHJ1Y3QgbWx4 NWVfeGRwX2J1ZmYgKm14YnVmOw0KPj4+ICAgfTsNCj4+DQo+PiBIbW0sIGZvciBjb25zaXN0ZW5j eSB3aXRoIHRoZSBub24tWFNLIHBhdGggd2Ugc2hvdWxkIHJhdGhlciBnbyB0aGUgb3RoZXINCj4+ IGRpcmVjdGlvbiBhbmQgbG9zZSB0aGUgeHNrIG1lbWJlciwgbW92aW5nIGV2ZXJ5dGhpbmcgdG8g bXhidWY/IExldCBtZQ0KPj4gZ2l2ZSB0aGF0IGEgc2hvdC4uLg0KPiANCj4gU29tZXRoaW5nIGxp a2UgdGhlIGJlbG93Pw0KPiANCj4gLVRva2UNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbi5oDQo+IGluZGV4IDZkZTAyZDhhZWFiOC4uY2I5Y2RiNjQy MWM1IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW4uaA0KPiArKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW4uaA0KPiBAQCAtNDY4LDcgKzQ2OCw2IEBAIHN0cnVjdCBtbHg1ZV90eHFzcSB7DQo+ICAgDQo+ ICAgdW5pb24gbWx4NWVfYWxsb2NfdW5pdCB7DQo+ICAgCXN0cnVjdCBwYWdlICpwYWdlOw0KPiAt CXN0cnVjdCB4ZHBfYnVmZiAqeHNrOw0KPiAgIAlzdHJ1Y3QgbWx4NWVfeGRwX2J1ZmYgKm14YnVm Ow0KPiAgIH07DQo+ICAgDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW4veGRwLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW4veGRwLmgNCj4gaW5kZXggY2I1NjhjNjJhYmEwLi45NTY5NGEyNWVjMzEgMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94 ZHAuaA0KPiArKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4v eGRwLmgNCj4gQEAgLTMzLDYgKzMzLDcgQEANCj4gICAjZGVmaW5lIF9fTUxYNV9FTl9YRFBfSF9f DQo+ICAgDQo+ICAgI2luY2x1ZGUgPGxpbnV4L2luZGlyZWN0X2NhbGxfd3JhcHBlci5oPg0KPiAr I2luY2x1ZGUgPG5ldC94ZHBfc29ja19kcnYuaD4NCj4gICANCj4gICAjaW5jbHVkZSAiZW4uaCIN Cj4gICAjaW5jbHVkZSAiZW4vdHhyeC5oIg0KPiBAQCAtMTEyLDYgKzExMywyMSBAQCBzdGF0aWMg aW5saW5lIHZvaWQgbWx4NWVfeG1pdF94ZHBfZG9vcmJlbGwoc3RydWN0IG1seDVlX3hkcHNxICpz cSkNCj4gICAJfQ0KPiAgIH0NCj4gICANCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IG1seDVlX3hk cF9idWZmICptbHg1ZV94c2tfYnVmZl9hbGxvYyhzdHJ1Y3QgeHNrX2J1ZmZfcG9vbCAqcG9vbCkN Cj4gK3sNCj4gKwlyZXR1cm4gKHN0cnVjdCBtbHg1ZV94ZHBfYnVmZiAqKXhza19idWZmX2FsbG9j KHBvb2wpOw0KDQpXaGF0IGFib3V0IHRoZSBzcGFjZSBuZWVkZWQgZm9yIHRoZSBycSAvIGNxZSBm aWVsZHM/IHhza19idWZmX2FsbG9jIA0Kd29uJ3QgYWxsb2NhdGUgaXQuDQoNCj4gK30NCj4gKw0K PiArc3RhdGljIGlubGluZSB2b2lkIG1seDVlX3hza19idWZmX2ZyZWUoc3RydWN0IG1seDVlX3hk cF9idWZmICpteGJ1ZikNCj4gK3sNCj4gKwl4c2tfYnVmZl9mcmVlKCZteGJ1Zi0+eGRwKTsNCj4g K30NCj4gKw0KPiArc3RhdGljIGlubGluZSBkbWFfYWRkcl90IG1seDVlX3hza19idWZmX3hkcF9n ZXRfZnJhbWVfZG1hKHN0cnVjdCBtbHg1ZV94ZHBfYnVmZiAqbXhidWYpDQo+ICt7DQo+ICsJcmV0 dXJuIHhza19idWZmX3hkcF9nZXRfZnJhbWVfZG1hKCZteGJ1Zi0+eGRwKTsNCj4gK30NCj4gKw0K PiAgIC8qIEVuYWJsZSBpbmxpbmUgV1FFcyB0byBzaGlmdCBzb21lIGxvYWQgZnJvbSBhIGNvbmdl c3RlZCBIQ0EgKEhXKSB0bw0KPiAgICAqIGEgbGVzcyBjb25nZXN0ZWQgY3B1IChTVykuDQo+ICAg ICovDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW4veHNrL3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW4veHNrL3J4LmMNCj4gaW5kZXggOGJmMzAyOWFiZDNjLi4xZjE2NmRiYjdmMjIgMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94c2svcngu Yw0KPiArKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veHNr L3J4LmMNCj4gQEAgLTMsNyArMyw2IEBADQo+ICAgDQo+ICAgI2luY2x1ZGUgInJ4LmgiDQo+ICAg I2luY2x1ZGUgImVuL3hkcC5oIg0KPiAtI2luY2x1ZGUgPG5ldC94ZHBfc29ja19kcnYuaD4NCj4g ICAjaW5jbHVkZSA8bGludXgvZmlsdGVyLmg+DQo+ICAgDQo+ICAgLyogUlggZGF0YSBwYXRoICov DQo+IEBAIC0yMSw3ICsyMCw3IEBAIGludCBtbHg1ZV94c2tfYWxsb2NfcnhfbXB3cWUoc3RydWN0 IG1seDVlX3JxICpycSwgdTE2IGl4KQ0KPiAgIAlpZiAodW5saWtlbHkoIXhza19idWZmX2Nhbl9h bGxvYyhycS0+eHNrX3Bvb2wsIHJxLT5tcHdxZS5wYWdlc19wZXJfd3FlKSkpDQo+ICAgCQlnb3Rv IGVycjsNCj4gICANCj4gLQlCVUlMRF9CVUdfT04oc2l6ZW9mKHdpLT5hbGxvY191bml0c1swXSkg IT0gc2l6ZW9mKHdpLT5hbGxvY191bml0c1swXS54c2spKTsNCj4gKwlCVUlMRF9CVUdfT04oc2l6 ZW9mKHdpLT5hbGxvY191bml0c1swXSkgIT0gc2l6ZW9mKHdpLT5hbGxvY191bml0c1swXS5teGJ1 ZikpOw0KPiAgIAlYU0tfQ0hFQ0tfUFJJVl9UWVBFKHN0cnVjdCBtbHg1ZV94ZHBfYnVmZik7DQo+ ICAgCWJhdGNoID0geHNrX2J1ZmZfYWxsb2NfYmF0Y2gocnEtPnhza19wb29sLCAoc3RydWN0IHhk cF9idWZmICoqKXdpLT5hbGxvY191bml0cywNCj4gICAJCQkJICAgICBycS0+bXB3cWUucGFnZXNf cGVyX3dxZSk7DQoNClRoaXMgYmF0Y2hpbmcgQVBJIGdldHMgYnJva2VuIGFzIHdlbGwuLi4NCnhz a19idWZmX2FsbG9jX2JhdGNoIGZpbGxzIGFuIGFycmF5IG9mIHN0cnVjdCB4ZHBfYnVmZiBwb2lu dGVycywgaXQgDQpjYW5ub3QgY29ycmVjdGx5IGFjdCBvbiB0aGUgYXJyYXkgb2Ygc3RydWN0IG1s eDVlX3hkcF9idWZmLCBhcyBpdCANCmNvbnRhaW5zIGFkZGl0aW9uYWwgZmllbGRzLg0KDQpNYXli ZSBsZXR0aW5nIG1seDVlX3hkcF9idWZmIHBvaW50IHRvIGl0cyBzdHJ1Y3QgeGRwX2J1ZmYgKGlu c3RlYWQgb2YgDQp3cmFwcGluZyBpdCkgd2lsbCBzb2x2ZSB0aGUgcHJvYmxlbXMgaGVyZSwgdGhl biB3ZSdsbCBsb29wIG92ZXIgdGhlIA0KeGRwX2J1ZmYgKiBhcnJheSBhbmQgY29weSB0aGUgcG9p bnRlcnMgaW50byB0aGUgc3RydWN0IG1seDVlX3hkcF9idWZmICogDQphcnJheS4NCk5lZWQgdG8g Z2l2ZSBpdCBkZWVwZXIgdGhvdWdodHMuLi4NCg0Kc3RydWN0IG1seDVlX3hkcF9idWZmIHsNCglz dHJ1Y3QgeGRwX2J1ZmYgKnhkcDsNCglzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlOw0KCXN0cnVjdCBt bHg1ZV9ycSAqcnE7DQp9Ow0KDQoNCj4gQEAgLTMzLDggKzMyLDggQEAgaW50IG1seDVlX3hza19h bGxvY19yeF9tcHdxZShzdHJ1Y3QgbWx4NWVfcnEgKnJxLCB1MTYgaXgpDQo+ICAgCSAqIHRoZSBm aXJzdCBlcnJvciwgd2hpY2ggd2lsbCBtZWFuIHRoZXJlIGFyZSBubyBtb3JlIHZhbGlkIGRlc2Ny aXB0b3JzLg0KPiAgIAkgKi8NCj4gICAJZm9yICg7IGJhdGNoIDwgcnEtPm1wd3FlLnBhZ2VzX3Bl cl93cWU7IGJhdGNoKyspIHsNCj4gLQkJd2ktPmFsbG9jX3VuaXRzW2JhdGNoXS54c2sgPSB4c2tf YnVmZl9hbGxvYyhycS0+eHNrX3Bvb2wpOw0KPiAtCQlpZiAodW5saWtlbHkoIXdpLT5hbGxvY191 bml0c1tiYXRjaF0ueHNrKSkNCj4gKwkJd2ktPmFsbG9jX3VuaXRzW2JhdGNoXS5teGJ1ZiA9IG1s eDVlX3hza19idWZmX2FsbG9jKHJxLT54c2tfcG9vbCk7DQo+ICsJCWlmICh1bmxpa2VseSghd2kt PmFsbG9jX3VuaXRzW2JhdGNoXS5teGJ1ZikpDQo+ICAgCQkJZ290byBlcnJfcmV1c2VfYmF0Y2g7 DQo+ICAgCX0NCj4gICANCj4gQEAgLTQ0LDcgKzQzLDcgQEAgaW50IG1seDVlX3hza19hbGxvY19y eF9tcHdxZShzdHJ1Y3QgbWx4NWVfcnEgKnJxLCB1MTYgaXgpDQo+ICAgDQo+ICAgCWlmIChsaWtl bHkocnEtPm1wd3FlLnVtcl9tb2RlID09IE1MWDVFX01QV1JRX1VNUl9NT0RFX0FMSUdORUQpKSB7 DQo+ICAgCQlmb3IgKGkgPSAwOyBpIDwgYmF0Y2g7IGkrKykgew0KPiAtCQkJZG1hX2FkZHJfdCBh ZGRyID0geHNrX2J1ZmZfeGRwX2dldF9mcmFtZV9kbWEod2ktPmFsbG9jX3VuaXRzW2ldLnhzayk7 DQo+ICsJCQlkbWFfYWRkcl90IGFkZHIgPSBtbHg1ZV94c2tfYnVmZl94ZHBfZ2V0X2ZyYW1lX2Rt YSh3aS0+YWxsb2NfdW5pdHNbaV0ubXhidWYpOw0KPiAgIA0KPiAgIAkJCXVtcl93cWUtPmlubGlu ZV9tdHRzW2ldID0gKHN0cnVjdCBtbHg1X210dCkgew0KPiAgIAkJCQkucHRhZyA9IGNwdV90b19i ZTY0KGFkZHIgfCBNTFg1X0VOX1dSKSwNCj4gQEAgLTUzLDcgKzUyLDcgQEAgaW50IG1seDVlX3hz a19hbGxvY19yeF9tcHdxZShzdHJ1Y3QgbWx4NWVfcnEgKnJxLCB1MTYgaXgpDQo+ICAgCQl9DQo+ ICAgCX0gZWxzZSBpZiAodW5saWtlbHkocnEtPm1wd3FlLnVtcl9tb2RlID09IE1MWDVFX01QV1JR X1VNUl9NT0RFX1VOQUxJR05FRCkpIHsNCj4gICAJCWZvciAoaSA9IDA7IGkgPCBiYXRjaDsgaSsr KSB7DQo+IC0JCQlkbWFfYWRkcl90IGFkZHIgPSB4c2tfYnVmZl94ZHBfZ2V0X2ZyYW1lX2RtYSh3 aS0+YWxsb2NfdW5pdHNbaV0ueHNrKTsNCj4gKwkJCWRtYV9hZGRyX3QgYWRkciA9IG1seDVlX3hz a19idWZmX3hkcF9nZXRfZnJhbWVfZG1hKHdpLT5hbGxvY191bml0c1tpXS5teGJ1Zik7DQo+ICAg DQo+ICAgCQkJdW1yX3dxZS0+aW5saW5lX2tzbXNbaV0gPSAoc3RydWN0IG1seDVfa3NtKSB7DQo+ ICAgCQkJCS5rZXkgPSBycS0+bWtleV9iZSwNCj4gQEAgLTY1LDcgKzY0LDcgQEAgaW50IG1seDVl X3hza19hbGxvY19yeF9tcHdxZShzdHJ1Y3QgbWx4NWVfcnEgKnJxLCB1MTYgaXgpDQo+ICAgCQl1 MzIgbWFwcGluZ19zaXplID0gMSA8PCAocnEtPm1wd3FlLnBhZ2Vfc2hpZnQgLSAyKTsNCj4gICAN Cj4gICAJCWZvciAoaSA9IDA7IGkgPCBiYXRjaDsgaSsrKSB7DQo+IC0JCQlkbWFfYWRkcl90IGFk ZHIgPSB4c2tfYnVmZl94ZHBfZ2V0X2ZyYW1lX2RtYSh3aS0+YWxsb2NfdW5pdHNbaV0ueHNrKTsN Cj4gKwkJCWRtYV9hZGRyX3QgYWRkciA9IG1seDVlX3hza19idWZmX3hkcF9nZXRfZnJhbWVfZG1h KHdpLT5hbGxvY191bml0c1tpXS5teGJ1Zik7DQo+ICAgDQo+ICAgCQkJdW1yX3dxZS0+aW5saW5l X2tzbXNbaSA8PCAyXSA9IChzdHJ1Y3QgbWx4NV9rc20pIHsNCj4gICAJCQkJLmtleSA9IHJxLT5t a2V5X2JlLA0KPiBAQCAtOTEsNyArOTAsNyBAQCBpbnQgbWx4NWVfeHNrX2FsbG9jX3J4X21wd3Fl KHN0cnVjdCBtbHg1ZV9ycSAqcnEsIHUxNiBpeCkNCj4gICAJCV9fYmUzMiBmcmFtZV9zaXplID0g Y3B1X3RvX2JlMzIocnEtPnhza19wb29sLT5jaHVua19zaXplKTsNCj4gICANCj4gICAJCWZvciAo aSA9IDA7IGkgPCBiYXRjaDsgaSsrKSB7DQo+IC0JCQlkbWFfYWRkcl90IGFkZHIgPSB4c2tfYnVm Zl94ZHBfZ2V0X2ZyYW1lX2RtYSh3aS0+YWxsb2NfdW5pdHNbaV0ueHNrKTsNCj4gKwkJCWRtYV9h ZGRyX3QgYWRkciA9IG1seDVlX3hza19idWZmX3hkcF9nZXRfZnJhbWVfZG1hKHdpLT5hbGxvY191 bml0c1tpXS5teGJ1Zik7DQo+ICAgDQo+ICAgCQkJdW1yX3dxZS0+aW5saW5lX2tsbXNbaSA8PCAx XSA9IChzdHJ1Y3QgbWx4NV9rbG0pIHsNCj4gICAJCQkJLmtleSA9IHJxLT5ta2V5X2JlLA0KPiBA QCAtMTM3LDcgKzEzNiw3IEBAIGludCBtbHg1ZV94c2tfYWxsb2NfcnhfbXB3cWUoc3RydWN0IG1s eDVlX3JxICpycSwgdTE2IGl4KQ0KPiAgIA0KPiAgIGVycl9yZXVzZV9iYXRjaDoNCj4gICAJd2hp bGUgKC0tYmF0Y2ggPj0gMCkNCj4gLQkJeHNrX2J1ZmZfZnJlZSh3aS0+YWxsb2NfdW5pdHNbYmF0 Y2hdLnhzayk7DQo+ICsJCW1seDVlX3hza19idWZmX2ZyZWUod2ktPmFsbG9jX3VuaXRzW2JhdGNo XS5teGJ1Zik7DQo+ICAgDQo+ICAgZXJyOg0KPiAgIAlycS0+c3RhdHMtPmJ1ZmZfYWxsb2NfZXJy Kys7DQo+IEBAIC0xNTYsNyArMTU1LDcgQEAgaW50IG1seDVlX3hza19hbGxvY19yeF93cWVzX2Jh dGNoZWQoc3RydWN0IG1seDVlX3JxICpycSwgdTE2IGl4LCBpbnQgd3FlX2J1bGspDQo+ICAgCSAq IGFsbG9jYXRlIFhEUCBidWZmZXJzIHN0cmFpZ2h0IGludG8gYWxsb2NfdW5pdHMuDQo+ICAgCSAq Lw0KPiAgIAlCVUlMRF9CVUdfT04oc2l6ZW9mKHJxLT53cWUuYWxsb2NfdW5pdHNbMF0pICE9DQo+ IC0JCSAgICAgc2l6ZW9mKHJxLT53cWUuYWxsb2NfdW5pdHNbMF0ueHNrKSk7DQo+ICsJCSAgICAg c2l6ZW9mKHJxLT53cWUuYWxsb2NfdW5pdHNbMF0ubXhidWYpKTsNCj4gICAJYnVmZnMgPSAoc3Ry dWN0IHhkcF9idWZmICoqKXJxLT53cWUuYWxsb2NfdW5pdHM7DQo+ICAgCWNvbnRpZyA9IG1seDVf d3FfY3ljX2dldF9zaXplKHdxKSAtIGl4Ow0KPiAgIAlpZiAod3FlX2J1bGsgPD0gY29udGlnKSB7 DQo+IEBAIC0xNzcsOCArMTc2LDkgQEAgaW50IG1seDVlX3hza19hbGxvY19yeF93cWVzX2JhdGNo ZWQoc3RydWN0IG1seDVlX3JxICpycSwgdTE2IGl4LCBpbnQgd3FlX2J1bGspDQo+ICAgCQkvKiBB c3N1bWVzIGxvZ19udW1fZnJhZ3MgPT0gMC4gKi8NCj4gICAJCWZyYWcgPSAmcnEtPndxZS5mcmFn c1tqXTsNCj4gICANCj4gLQkJYWRkciA9IHhza19idWZmX3hkcF9nZXRfZnJhbWVfZG1hKGZyYWct PmF1LT54c2spOw0KPiArCQlhZGRyID0gbWx4NWVfeHNrX2J1ZmZfeGRwX2dldF9mcmFtZV9kbWEo ZnJhZy0+YXUtPm14YnVmKTsNCj4gICAJCXdxZS0+ZGF0YVswXS5hZGRyID0gY3B1X3RvX2JlNjQo YWRkciArIHJxLT5idWZmLmhlYWRyb29tKTsNCj4gKwkJZnJhZy0+YXUtPm14YnVmLT5ycSA9IHJx Ow0KPiAgIAl9DQo+ICAgDQo+ICAgCXJldHVybiBhbGxvYzsNCj4gQEAgLTE5OSwxMiArMTk5LDEz IEBAIGludCBtbHg1ZV94c2tfYWxsb2Nfcnhfd3FlcyhzdHJ1Y3QgbWx4NWVfcnEgKnJxLCB1MTYg aXgsIGludCB3cWVfYnVsaykNCj4gICAJCS8qIEFzc3VtZXMgbG9nX251bV9mcmFncyA9PSAwLiAq Lw0KPiAgIAkJZnJhZyA9ICZycS0+d3FlLmZyYWdzW2pdOw0KPiAgIA0KPiAtCQlmcmFnLT5hdS0+ eHNrID0geHNrX2J1ZmZfYWxsb2MocnEtPnhza19wb29sKTsNCj4gLQkJaWYgKHVubGlrZWx5KCFm cmFnLT5hdS0+eHNrKSkNCj4gKwkJZnJhZy0+YXUtPm14YnVmID0gbWx4NWVfeHNrX2J1ZmZfYWxs b2MocnEtPnhza19wb29sKTsNCj4gKwkJaWYgKHVubGlrZWx5KCFmcmFnLT5hdS0+bXhidWYpKQ0K PiAgIAkJCXJldHVybiBpOw0KPiAgIA0KPiAtCQlhZGRyID0geHNrX2J1ZmZfeGRwX2dldF9mcmFt ZV9kbWEoZnJhZy0+YXUtPnhzayk7DQo+ICsJCWFkZHIgPSBtbHg1ZV94c2tfYnVmZl94ZHBfZ2V0 X2ZyYW1lX2RtYShmcmFnLT5hdS0+bXhidWYpOw0KPiAgIAkJd3FlLT5kYXRhWzBdLmFkZHIgPSBj cHVfdG9fYmU2NChhZGRyICsgcnEtPmJ1ZmYuaGVhZHJvb20pOw0KPiArCQlmcmFnLT5hdS0+bXhi dWYtPnJxID0gcnE7DQo+ICAgCX0NCj4gICANCj4gICAJcmV0dXJuIHdxZV9idWxrOw0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYw0KPiBpbmRl eCA3YjA4NjUzYmUwMDAuLjQzMTMxNjU3MDljYiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMNCj4gKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMNCj4gQEAgLTQxLDcgKzQxLDYgQEAN Cj4gICAjaW5jbHVkZSA8bmV0L2dyby5oPg0KPiAgICNpbmNsdWRlIDxuZXQvdWRwLmg+DQo+ICAg I2luY2x1ZGUgPG5ldC90Y3AuaD4NCj4gLSNpbmNsdWRlIDxuZXQveGRwX3NvY2tfZHJ2Lmg+DQo+ ICAgI2luY2x1ZGUgImVuLmgiDQo+ICAgI2luY2x1ZGUgImVuL3R4cnguaCINCj4gICAjaW5jbHVk ZSAiZW5fdGMuaCINCj4gQEAgLTQzNCw3ICs0MzMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbWx4 NWVfZnJlZV9yeF93cWUoc3RydWN0IG1seDVlX3JxICpycSwNCj4gICAJCSAqIHB1dCBpbnRvIHRo ZSBSZXVzZSBSaW5nLCBiZWNhdXNlIHRoZXJlIGlzIG5vIHdheSB0byByZXR1cm4NCj4gICAJCSAq IHRoZSBwYWdlIHRvIHRoZSB1c2Vyc3BhY2Ugd2hlbiB0aGUgaW50ZXJmYWNlIGdvZXMgZG93bi4N Cj4gICAJCSAqLw0KPiAtCQl4c2tfYnVmZl9mcmVlKHdpLT5hdS0+eHNrKTsNCj4gKwkJbWx4NWVf eHNrX2J1ZmZfZnJlZSh3aS0+YXUtPm14YnVmKTsNCj4gICAJCXJldHVybjsNCj4gICAJfQ0KPiAg IA0KPiBAQCAtNTE1LDcgKzUxNCw3IEBAIG1seDVlX2ZyZWVfcnhfbXB3cWUoc3RydWN0IG1seDVl X3JxICpycSwgc3RydWN0IG1seDVlX21wd19pbmZvICp3aSwgYm9vbCByZWN5Y2xlDQo+ICAgCQkg Ki8NCj4gICAJCWZvciAoaSA9IDA7IGkgPCBycS0+bXB3cWUucGFnZXNfcGVyX3dxZTsgaSsrKQ0K PiAgIAkJCWlmIChub194ZHBfeG1pdCB8fCAhdGVzdF9iaXQoaSwgd2ktPnhkcF94bWl0X2JpdG1h cCkpDQo+IC0JCQkJeHNrX2J1ZmZfZnJlZShhbGxvY191bml0c1tpXS54c2spOw0KPiArCQkJCW1s eDVlX3hza19idWZmX2ZyZWUoYWxsb2NfdW5pdHNbaV0ubXhidWYpOw0KPiAgIAl9IGVsc2Ugew0K PiAgIAkJZm9yIChpID0gMDsgaSA8IHJxLT5tcHdxZS5wYWdlc19wZXJfd3FlOyBpKyspDQo+ICAg CQkJaWYgKG5vX3hkcF94bWl0IHx8ICF0ZXN0X2JpdChpLCB3aS0+eGRwX3htaXRfYml0bWFwKSkN Cj4gDQo=