From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: RE: [PATCH net-next v1 1/8] skbuff: store hash type in socket buffer... Date: Mon, 15 Feb 2016 08:50:46 +0000 Message-ID: <1d151cf9153b4ce78d6accd063d0776c@AMSPEX02CL03.citrite.net> References: <1455272005-17144-1-git-send-email-paul.durrant@citrix.com> <1455272005-17144-2-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Linux Kernel Network Developers , "xen-devel@lists.xenproject.org" , "David S. Miller" , Jay Vosburgh , Veaceslav Falico , Andy Gospodarek To: Tom Herbert Return-path: Received: from smtp.eu.citrix.com ([185.25.65.24]:49885 "EHLO SMTP.EU.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752201AbcBOIus (ORCPT ); Mon, 15 Feb 2016 03:50:48 -0500 In-Reply-To: Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUb20gSGVyYmVydCBbbWFpbHRv OnRvbUBoZXJiZXJ0bGFuZC5jb21dDQo+IFNlbnQ6IDE0IEZlYnJ1YXJ5IDIwMTYgMjI6MjUNCj4g VG86IFBhdWwgRHVycmFudA0KPiBDYzogTGludXggS2VybmVsIE5ldHdvcmsgRGV2ZWxvcGVyczsg eGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnOyBEYXZpZA0KPiBTLiBNaWxsZXI7IEpheSBW b3NidXJnaDsgVmVhY2VzbGF2IEZhbGljbzsgQW5keSBHb3Nwb2RhcmVrDQo+IFN1YmplY3Q6IFJl OiBbUEFUQ0ggbmV0LW5leHQgdjEgMS84XSBza2J1ZmY6IHN0b3JlIGhhc2ggdHlwZSBpbiBzb2Nr ZXQNCj4gYnVmZmVyLi4uDQo+IA0KPiBPbiBGcmksIEZlYiAxMiwgMjAxNiBhdCAxMToxMyBBTSwg UGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4NCj4gd3JvdGU6DQo+ID4gLi4u cmF0aGVyIHRoYW4gYSBib29sZWFuIG1lcmVseSBpbmRpY2F0aW5nIGEgY2Fub25pY2FsIEw0IGhh c2guDQo+ID4NCj4gPiBza2Jfc2V0X2hhc2goKSB0YWtlcyBhIGhhc2ggdHlwZSAoZnJvbSBlbnVt IHBrdF9oYXNoX3R5cGVzKSBhcyBhbg0KPiA+IGFyZ3VtZW50IGJ1dCBpbmZvcm1hdGlvbiBpcyBs b3N0IHNpbmNlIG9ubHkgYSBzaW5nbGUgYml0IGluIHRoZSBza2INCj4gPiBzdG9yZXMgd2hldGhl ciB0aGF0IGhhc2ggdHlwZSBpcyBQS1RfSEFTSF9UWVBFX0w0IG9yIG5vdC4NCj4gPg0KPiA+IEJ5 IHVzaW5nIHR3byBiaXRzIGl0J3MgcG9zc2libGUgdG8gc3RvcmUgdGhlIGNvbXBsZXRlIGhhc2gg dHlwZQ0KPiA+IGluZm9ybWF0aW9uIGZvciB1c2UgYnkgZHJpdmVycy4gQSBzdWJzZXF1ZW50IHBh dGNoIHRvIHhlbi1uZXRiYWNrDQo+ID4gbmVlZHMgdGhpcyBpbmZvcm1hdGlvbiB0byBmb3J3YXJk IHBhY2tldCBoYXNoZXMgdG8gVk0gZnJvbnRlbmQgZHJpdmVycy4NCj4gPg0KPiA+IFNpZ25lZC1v ZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQo+ID4gQ2M6ICJE YXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxvZnQubmV0Pg0KPiA+IENjOiBKYXkgVm9zYnVy Z2ggPGoudm9zYnVyZ2hAZ21haWwuY29tPg0KPiA+IENjOiBWZWFjZXNsYXYgRmFsaWNvIDx2ZmFs aWNvQGdtYWlsLmNvbT4NCj4gPiBDYzogQW5keSBHb3Nwb2RhcmVrIDxnb3Nwb0BjdW11bHVzbmV0 d29ya3MuY29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5j IHwgIDIgKy0NCj4gPiAgaW5jbHVkZS9saW51eC9za2J1ZmYuaCAgICAgICAgICB8IDUzICsrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tDQo+IC0tLS0tLQ0KPiA+ICBpbmNsdWRlL25l dC9mbG93X2Rpc3NlY3Rvci5oICAgIHwgIDUgKysrKw0KPiA+ICBpbmNsdWRlL25ldC9zb2NrLmgg ICAgICAgICAgICAgIHwgIDIgKy0NCj4gPiAgaW5jbHVkZS90cmFjZS9ldmVudHMvbmV0LmggICAg ICB8ICAyICstDQo+ID4gIG5ldC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMgICAgICAgfCAyNyArKysr KysrKysrKysrKysrLS0tLS0NCj4gPiAgNiBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCsp LCAyNiBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25k aW5nL2JvbmRfbWFpbi5jDQo+IGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYw0KPiA+ IGluZGV4IDQ1YmRkODcuLmFkMGVlMDAgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvYm9u ZGluZy9ib25kX21haW4uYw0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWlu LmMNCj4gPiBAQCAtMzE3Myw3ICszMTczLDcgQEAgdTMyIGJvbmRfeG1pdF9oYXNoKHN0cnVjdCBi b25kaW5nICpib25kLA0KPiBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KPiA+ICAgICAgICAgdTMyIGhh c2g7DQo+ID4NCj4gPiAgICAgICAgIGlmIChib25kLT5wYXJhbXMueG1pdF9wb2xpY3kgPT0gQk9O RF9YTUlUX1BPTElDWV9FTkNBUDM0ICYmDQo+ID4gLSAgICAgICAgICAgc2tiLT5sNF9oYXNoKQ0K PiA+ICsgICAgICAgICAgIHNrYl9oYXNfbDRfaGFzaChza2IpKQ0KPiA+ICAgICAgICAgICAgICAg ICByZXR1cm4gc2tiLT5oYXNoOw0KPiA+DQo+ID4gICAgICAgICBpZiAoYm9uZC0+cGFyYW1zLnht aXRfcG9saWN5ID09IEJPTkRfWE1JVF9QT0xJQ1lfTEFZRVIyIHx8DQo+ID4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvbGludXgvc2tidWZmLmggYi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oDQo+ID4gaW5k ZXggNmVjODZmMS4uOTAyMWI1MiAxMDA2NDQNCj4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4L3NrYnVm Zi5oDQo+ID4gKysrIGIvaW5jbHVkZS9saW51eC9za2J1ZmYuaA0KPiA+IEBAIC01OTUsOCArNTk1 LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNrYl9tc3RhbXBfYWZ0ZXIoY29uc3Qgc3RydWN0DQo+ IHNrYl9tc3RhbXAgKnQxLA0KPiA+ICAgKiAgICAgQHhtaXRfbW9yZTogTW9yZSBTS0JzIGFyZSBw ZW5kaW5nIGZvciB0aGlzIHF1ZXVlDQo+ID4gICAqICAgICBAbmRpc2Nfbm9kZXR5cGU6IHJvdXRl ciB0eXBlIChmcm9tIGxpbmsgbGF5ZXIpDQo+ID4gICAqICAgICBAb29vX29rYXk6IGFsbG93IHRo ZSBtYXBwaW5nIG9mIGEgc29ja2V0IHRvIGEgcXVldWUgdG8gYmUgY2hhbmdlZA0KPiA+IC0gKiAg ICAgQGw0X2hhc2g6IGluZGljYXRlIGhhc2ggaXMgYSBjYW5vbmljYWwgNC10dXBsZSBoYXNoIG92 ZXIgdHJhbnNwb3J0DQo+ID4gLSAqICAgICAgICAgICAgIHBvcnRzLg0KPiA+ICsgKiAgICAgQGhh c2hfdHlwZTogaW5kaWNhdGVzIHR5cGUgb2YgaGFzaCAoc2VlIGVudW0gcGt0X2hhc2hfdHlwZXMN Cj4gYmVsb3cpDQo+ID4gICAqICAgICBAc3dfaGFzaDogaW5kaWNhdGVzIGhhc2ggd2FzIGNvbXB1 dGVkIGluIHNvZnR3YXJlIHN0YWNrDQo+ID4gICAqICAgICBAd2lmaV9hY2tlZF92YWxpZDogd2lm aV9hY2tlZCB3YXMgc2V0DQo+ID4gICAqICAgICBAd2lmaV9hY2tlZDogd2hldGhlciBmcmFtZSB3 YXMgYWNrZWQgb24gd2lmaSBvciBub3QNCj4gPiBAQCAtNzAxLDEwICs3MDAsMTAgQEAgc3RydWN0 IHNrX2J1ZmYgew0KPiA+ICAgICAgICAgX191OCAgICAgICAgICAgICAgICAgICAgbmZfdHJhY2U6 MTsNCj4gPiAgICAgICAgIF9fdTggICAgICAgICAgICAgICAgICAgIGlwX3N1bW1lZDoyOw0KPiA+ ICAgICAgICAgX191OCAgICAgICAgICAgICAgICAgICAgb29vX29rYXk6MTsNCj4gPiAtICAgICAg IF9fdTggICAgICAgICAgICAgICAgICAgIGw0X2hhc2g6MTsNCj4gPiAgICAgICAgIF9fdTggICAg ICAgICAgICAgICAgICAgIHN3X2hhc2g6MTsNCj4gPiAgICAgICAgIF9fdTggICAgICAgICAgICAg ICAgICAgIHdpZmlfYWNrZWRfdmFsaWQ6MTsNCj4gPiAgICAgICAgIF9fdTggICAgICAgICAgICAg ICAgICAgIHdpZmlfYWNrZWQ6MTsNCj4gPiArICAgICAgIC8qIDEgYml0IGhvbGUgKi8NCj4gPg0K PiA+ICAgICAgICAgX191OCAgICAgICAgICAgICAgICAgICAgbm9fZmNzOjE7DQo+ID4gICAgICAg ICAvKiBJbmRpY2F0ZXMgdGhlIGlubmVyIGhlYWRlcnMgYXJlIHZhbGlkIGluIHRoZSBza2J1ZmYu ICovDQo+ID4gQEAgLTcyMSw3ICs3MjAsOCBAQCBzdHJ1Y3Qgc2tfYnVmZiB7DQo+ID4gICAgICAg ICBfX3U4ICAgICAgICAgICAgICAgICAgICBpcHZzX3Byb3BlcnR5OjE7DQo+ID4gICAgICAgICBf X3U4ICAgICAgICAgICAgICAgICAgICBpbm5lcl9wcm90b2NvbF90eXBlOjE7DQo+ID4gICAgICAg ICBfX3U4ICAgICAgICAgICAgICAgICAgICByZW1jc3VtX29mZmxvYWQ6MTsNCj4gPiAtICAgICAg IC8qIDMgb3IgNSBiaXQgaG9sZSAqLw0KPiA+ICsgICAgICAgX191OCAgICAgICAgICAgICAgICAg ICAgaGFzaF90eXBlOjI7DQo+IA0KPiBUaGlzIGlzbid0IG5lZWRlZCBieSB0aGUgc3RhY2stLSB3 ZSBkb24ndCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gTDIgYW5kDQo+IEwzIGhhc2ggYW55d2hlcmUu IEFsc28gaXQgZG9lc24ndCBoZWxwIGluIHRoZSB4ZW4gY2FzZSBmb3IgcGFzc2luZyBhDQo+IGhh c2ggdG8gV2luZG93cyB3aXRob3V0IGhhdmluZyBhbm90aGVyIGJpdCB0byBpbmRpY2F0ZSB0aGF0 IHRoZSBoYXNoDQo+IGlzIGluZGVlZCBUb2VwbGl0ei4NCj4gDQoNCkkgaGFkbid0IHJlYWQgdGhp cyBiZWZvcmUgSSBzcGxpdCB0aGUgcGF0Y2ggYW5kIHJlLXBvc3RlZC4uLg0KDQpHaXZlbiB0aGF0 IHRoZSBoZWFkZXIgZGVmaW5lcyBhbiBlbnVtIGZvciBoYXNoIHR5cGVzIHRoYXQgKmRvZXMqIGRp c3Rpbmd1aXNoIGJldHdlZW4gTDIgYW5kIEwzIEkgZmluZCB0aGlzIGNvbmZ1c2luZy4gU2hvdWxk bid0IHRoYXQgZW51bSBiZSByZW1vdmVkIGlmIG5vLW9uZSBjYXJlcz8NCg0KICBQYXVsDQoNCj4g PiArICAgICAgIC8qIDEgb3IgMyBiaXQgaG9sZSAqLw0KPiA+DQo+ID4gICNpZmRlZiBDT05GSUdf TkVUX1NDSEVEDQo+ID4gICAgICAgICBfX3UxNiAgICAgICAgICAgICAgICAgICB0Y19pbmRleDsg ICAgICAgLyogdHJhZmZpYyBjb250cm9sIGluZGV4ICovDQo+ID4gQEAgLTEwMzAsMTkgKzEwMzAs MzUgQEAgc3RhdGljIGlubGluZSB2b2lkIHNrYl9jbGVhcl9oYXNoKHN0cnVjdCBza19idWZmDQo+ ICpza2IpDQo+ID4gIHsNCj4gPiAgICAgICAgIHNrYi0+aGFzaCA9IDA7DQo+ID4gICAgICAgICBz a2ItPnN3X2hhc2ggPSAwOw0KPiA+IC0gICAgICAgc2tiLT5sNF9oYXNoID0gMDsNCj4gPiArICAg ICAgIHNrYi0+aGFzaF90eXBlID0gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGlubGlu ZSBlbnVtIHBrdF9oYXNoX3R5cGVzIHNrYl9oYXNoX3R5cGUoc3RydWN0IHNrX2J1ZmYgKnNrYikN Cj4gPiArew0KPiA+ICsgICAgICAgcmV0dXJuIHNrYi0+aGFzaF90eXBlOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICtzdGF0aWMgaW5saW5lIGJvb2wgc2tiX2hhc19sNF9oYXNoKHN0cnVjdCBza19idWZm ICpza2IpDQo+ID4gK3sNCj4gPiArICAgICAgIHJldHVybiBza2JfaGFzaF90eXBlKHNrYikgPT0g UEtUX0hBU0hfVFlQRV9MNDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGlubGluZSBib29s IHNrYl9oYXNfc3dfaGFzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KPiA+ICt7DQo+ID4gKyAgICAg ICByZXR1cm4gISFza2ItPnN3X2hhc2g7DQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMgaW5saW5l IHZvaWQgc2tiX2NsZWFyX2hhc2hfaWZfbm90X2w0KHN0cnVjdCBza19idWZmICpza2IpDQo+ID4g IHsNCj4gPiAtICAgICAgIGlmICghc2tiLT5sNF9oYXNoKQ0KPiA+ICsgICAgICAgaWYgKCFza2Jf aGFzX2w0X2hhc2goc2tiKSkNCj4gPiAgICAgICAgICAgICAgICAgc2tiX2NsZWFyX2hhc2goc2ti KTsNCj4gPiAgfQ0KPiA+DQo+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZA0KPiA+IC1fX3NrYl9zZXRf aGFzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX3UzMiBoYXNoLCBib29sIGlzX3N3LCBib29sIGlz X2w0KQ0KPiA+ICtfX3NrYl9zZXRfaGFzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX3UzMiBoYXNo LCBib29sIGlzX3N3LA0KPiA+ICsgICAgICAgICAgICAgIGVudW0gcGt0X2hhc2hfdHlwZXMgdHlw ZSkNCj4gPiAgew0KPiA+IC0gICAgICAgc2tiLT5sNF9oYXNoID0gaXNfbDQ7DQo+ID4gKyAgICAg ICBza2ItPmhhc2hfdHlwZSA9IHR5cGU7DQo+ID4gICAgICAgICBza2ItPnN3X2hhc2ggPSBpc19z dzsNCj4gPiAgICAgICAgIHNrYi0+aGFzaCA9IGhhc2g7DQo+ID4gIH0NCj4gPiBAQCAtMTA1MSwx MyArMTA2NywxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQNCj4gPiAgc2tiX3NldF9oYXNoKHN0cnVj dCBza19idWZmICpza2IsIF9fdTMyIGhhc2gsIGVudW0gcGt0X2hhc2hfdHlwZXMNCj4gdHlwZSkN Cj4gPiAgew0KPiA+ICAgICAgICAgLyogVXNlZCBieSBkcml2ZXJzIHRvIHNldCBoYXNoIGZyb20g SFcgKi8NCj4gPiAtICAgICAgIF9fc2tiX3NldF9oYXNoKHNrYiwgaGFzaCwgZmFsc2UsIHR5cGUg PT0gUEtUX0hBU0hfVFlQRV9MNCk7DQo+ID4gKyAgICAgICBfX3NrYl9zZXRfaGFzaChza2IsIGhh c2gsIGZhbHNlLCB0eXBlKTsNCj4gPiAgfQ0KPiA+DQo+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZA0K PiA+IC1fX3NrYl9zZXRfc3dfaGFzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX3UzMiBoYXNoLCBi b29sIGlzX2w0KQ0KPiA+ICtfX3NrYl9zZXRfc3dfaGFzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBf X3UzMiBoYXNoLCBlbnVtDQo+IHBrdF9oYXNoX3R5cGVzIHR5cGUpDQo+ID4gIHsNCj4gPiAtICAg ICAgIF9fc2tiX3NldF9oYXNoKHNrYiwgaGFzaCwgdHJ1ZSwgaXNfbDQpOw0KPiA+ICsgICAgICAg X19za2Jfc2V0X2hhc2goc2tiLCBoYXNoLCB0cnVlLCB0eXBlKTsNCj4gPiAgfQ0KPiA+DQo+ID4g IHZvaWQgX19za2JfZ2V0X2hhc2goc3RydWN0IHNrX2J1ZmYgKnNrYik7DQo+ID4gQEAgLTExMTAs OSArMTEyNiwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wNCj4gc2tiX2Zsb3dfZGlzc2VjdF9mbG93 X2tleXNfYnVmKHN0cnVjdCBmbG93X2tleXMgKmZsb3csDQo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGEsIHByb3RvLCBuaG9mZiwgaGxlbiwgZmxhZ3MpOw0KPiA+ICB9 DQo+ID4NCj4gPiArDQo+IA0KPiBFeHRyYSBsaW5lDQo+IA0KPiA+ICBzdGF0aWMgaW5saW5lIF9f dTMyIHNrYl9nZXRfaGFzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KPiA+ICB7DQo+ID4gLSAgICAg ICBpZiAoIXNrYi0+bDRfaGFzaCAmJiAhc2tiLT5zd19oYXNoKQ0KPiA+ICsgICAgICAgaWYgKCFz a2JfaGFzX2w0X2hhc2goc2tiKSAmJiAhc2tiX2hhc19zd19oYXNoKHNrYikpDQo+ID4gICAgICAg ICAgICAgICAgIF9fc2tiX2dldF9oYXNoKHNrYik7DQo+ID4NCj4gPiAgICAgICAgIHJldHVybiBz a2ItPmhhc2g7DQo+ID4gQEAgLTExMjIsMTEgKzExMzksMTIgQEAgX191MzIgX19za2JfZ2V0X2hh c2hfZmxvd2k2KHN0cnVjdCBza19idWZmDQo+ICpza2IsIGNvbnN0IHN0cnVjdCBmbG93aTYgKmZs Nik7DQo+ID4NCj4gPiAgc3RhdGljIGlubGluZSBfX3UzMiBza2JfZ2V0X2hhc2hfZmxvd2k2KHN0 cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdA0KPiBmbG93aTYgKmZsNikNCj4gPiAgew0K PiA+IC0gICAgICAgaWYgKCFza2ItPmw0X2hhc2ggJiYgIXNrYi0+c3dfaGFzaCkgew0KPiA+ICsg ICAgICAgaWYgKCFza2JfaGFzX2w0X2hhc2goc2tiKSAmJiAhc2tiX2hhc19zd19oYXNoKHNrYikp IHsNCj4gPiAgICAgICAgICAgICAgICAgc3RydWN0IGZsb3dfa2V5cyBrZXlzOw0KPiA+ICAgICAg ICAgICAgICAgICBfX3UzMiBoYXNoID0gX19nZXRfaGFzaF9mcm9tX2Zsb3dpNihmbDYsICZrZXlz KTsNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICBfX3NrYl9zZXRfc3dfaGFzaChza2IsIGhhc2gs IGZsb3dfa2V5c19oYXZlX2w0KCZrZXlzKSk7DQo+ID4gKyAgICAgICAgICAgICAgIF9fc2tiX3Nl dF9zd19oYXNoKHNrYiwgaGFzaCwgZmxvd19rZXlzX2hhdmVfbDQoJmtleXMpID8NCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEtUX0hBU0hfVFlQRV9MNCA6IFBLVF9IQVNI X1RZUEVfTDMpOw0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gICAgICAgICByZXR1cm4gc2tiLT5o YXNoOw0KPiA+IEBAIC0xMTM2LDExICsxMTU0LDEyIEBAIF9fdTMyIF9fc2tiX2dldF9oYXNoX2Zs b3dpNChzdHJ1Y3Qgc2tfYnVmZg0KPiAqc2tiLCBjb25zdCBzdHJ1Y3QgZmxvd2k0ICpmbCk7DQo+ ID4NCj4gPiAgc3RhdGljIGlubGluZSBfX3UzMiBza2JfZ2V0X2hhc2hfZmxvd2k0KHN0cnVjdCBz a19idWZmICpza2IsIGNvbnN0IHN0cnVjdA0KPiBmbG93aTQgKmZsNCkNCj4gPiAgew0KPiA+IC0g ICAgICAgaWYgKCFza2ItPmw0X2hhc2ggJiYgIXNrYi0+c3dfaGFzaCkgew0KPiA+ICsgICAgICAg aWYgKCFza2JfaGFzX2w0X2hhc2goc2tiKSAmJiAhc2tiX2hhc19zd19oYXNoKHNrYikpIHsNCj4g PiAgICAgICAgICAgICAgICAgc3RydWN0IGZsb3dfa2V5cyBrZXlzOw0KPiA+ICAgICAgICAgICAg ICAgICBfX3UzMiBoYXNoID0gX19nZXRfaGFzaF9mcm9tX2Zsb3dpNChmbDQsICZrZXlzKTsNCj4g Pg0KPiA+IC0gICAgICAgICAgICAgICBfX3NrYl9zZXRfc3dfaGFzaChza2IsIGhhc2gsIGZsb3df a2V5c19oYXZlX2w0KCZrZXlzKSk7DQo+ID4gKyAgICAgICAgICAgICAgIF9fc2tiX3NldF9zd19o YXNoKHNrYiwgaGFzaCwgZmxvd19rZXlzX2hhdmVfbDQoJmtleXMpID8NCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUEtUX0hBU0hfVFlQRV9MNCA6IFBLVF9IQVNIX1RZUEVf TDMpOw0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gICAgICAgICByZXR1cm4gc2tiLT5oYXNoOw0K PiA+IEBAIC0xMTU3LDcgKzExNzYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2tiX2NvcHlfaGFz aChzdHJ1Y3Qgc2tfYnVmZg0KPiAqdG8sIGNvbnN0IHN0cnVjdCBza19idWZmICpmcm9tKQ0KPiA+ ICB7DQo+ID4gICAgICAgICB0by0+aGFzaCA9IGZyb20tPmhhc2g7DQo+ID4gICAgICAgICB0by0+ c3dfaGFzaCA9IGZyb20tPnN3X2hhc2g7DQo+ID4gLSAgICAgICB0by0+bDRfaGFzaCA9IGZyb20t Pmw0X2hhc2g7DQo+ID4gKyAgICAgICB0by0+aGFzaF90eXBlID0gZnJvbS0+aGFzaF90eXBlOw0K PiA+ICB9Ow0KPiA+DQo+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZCBza2Jfc2VuZGVyX2NwdV9jbGVh cihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9mbG93 X2Rpc3NlY3Rvci5oIGIvaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaA0KPiA+IGluZGV4IDhj ODU0OGMuLjQxOGI4YzUgMTAwNjQ0DQo+ID4gLS0tIGEvaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0 b3IuaA0KPiA+ICsrKyBiL2luY2x1ZGUvbmV0L2Zsb3dfZGlzc2VjdG9yLmgNCj4gPiBAQCAtMTgy LDYgKzE4MiwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmxvd19rZXlzX2hhdmVfbDQoc3RydWN0 DQo+IGZsb3dfa2V5cyAqa2V5cykNCj4gPiAgICAgICAgIHJldHVybiAoa2V5cy0+cG9ydHMucG9y dHMgfHwga2V5cy0+dGFncy5mbG93X2xhYmVsKTsNCj4gPiAgfQ0KPiA+DQo+ID4gK3N0YXRpYyBp bmxpbmUgYm9vbCBmbG93X2tleXNfaGF2ZV9sMyhzdHJ1Y3QgZmxvd19rZXlzICprZXlzKQ0KPiA+ ICt7DQo+ID4gKyAgICAgICByZXR1cm4gISFrZXlzLT5jb250cm9sLmFkZHJfdHlwZTsNCj4gPiAr fQ0KPiA+ICsNCj4gPiAgdTMyIGZsb3dfaGFzaF9mcm9tX2tleXMoc3RydWN0IGZsb3dfa2V5cyAq a2V5cyk7DQo+ID4NCj4gPiAgI2VuZGlmDQo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3Nv Y2suaCBiL2luY2x1ZGUvbmV0L3NvY2suaA0KPiA+IGluZGV4IDI1NWQzZTAuLjIxYjhjZGMgMTAw NjQ0DQo+ID4gLS0tIGEvaW5jbHVkZS9uZXQvc29jay5oDQo+ID4gKysrIGIvaW5jbHVkZS9uZXQv c29jay5oDQo+ID4gQEAgLTE4MjgsNyArMTgyOCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzb2Nr X3BvbGxfd2FpdChzdHJ1Y3QgZmlsZSAqZmlscCwNCj4gPiAgc3RhdGljIGlubGluZSB2b2lkIHNr Yl9zZXRfaGFzaF9mcm9tX3NrKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzb2NrDQo+ICpz aykNCj4gPiAgew0KPiA+ICAgICAgICAgaWYgKHNrLT5za190eGhhc2gpIHsNCj4gPiAtICAgICAg ICAgICAgICAgc2tiLT5sNF9oYXNoID0gMTsNCj4gPiArICAgICAgICAgICAgICAgc2tiLT5oYXNo X3R5cGUgPSBQS1RfSEFTSF9UWVBFX0w0Ow0KPiA+ICAgICAgICAgICAgICAgICBza2ItPmhhc2gg PSBzay0+c2tfdHhoYXNoOw0KPiA+ICAgICAgICAgfQ0KPiA+ICB9DQo+ID4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvdHJhY2UvZXZlbnRzL25ldC5oIGIvaW5jbHVkZS90cmFjZS9ldmVudHMvbmV0LmgN Cj4gPiBpbmRleCA0OWNjN2MzLi4yNWU3OTc5IDEwMDY0NA0KPiA+IC0tLSBhL2luY2x1ZGUvdHJh Y2UvZXZlbnRzL25ldC5oDQo+ID4gKysrIGIvaW5jbHVkZS90cmFjZS9ldmVudHMvbmV0LmgNCj4g PiBAQCAtMTgwLDcgKzE4MCw3IEBADQo+IERFQ0xBUkVfRVZFTlRfQ0xBU1MobmV0X2Rldl9yeF92 ZXJib3NlX3RlbXBsYXRlLA0KPiA+ICAgICAgICAgICAgICAgICBfX2VudHJ5LT5wcm90b2NvbCA9 IG50b2hzKHNrYi0+cHJvdG9jb2wpOw0KPiA+ICAgICAgICAgICAgICAgICBfX2VudHJ5LT5pcF9z dW1tZWQgPSBza2ItPmlwX3N1bW1lZDsNCj4gPiAgICAgICAgICAgICAgICAgX19lbnRyeS0+aGFz aCA9IHNrYi0+aGFzaDsNCj4gPiAtICAgICAgICAgICAgICAgX19lbnRyeS0+bDRfaGFzaCA9IHNr Yi0+bDRfaGFzaDsNCj4gPiArICAgICAgICAgICAgICAgX19lbnRyeS0+bDRfaGFzaCA9IHNrYi0+ aGFzaF90eXBlID09IFBLVF9IQVNIX1RZUEVfTDQ7DQo+ID4gICAgICAgICAgICAgICAgIF9fZW50 cnktPmxlbiA9IHNrYi0+bGVuOw0KPiA+ICAgICAgICAgICAgICAgICBfX2VudHJ5LT5kYXRhX2xl biA9IHNrYi0+ZGF0YV9sZW47DQo+ID4gICAgICAgICAgICAgICAgIF9fZW50cnktPnRydWVzaXpl ID0gc2tiLT50cnVlc2l6ZTsNCj4gPiBkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmxvd19kaXNzZWN0 b3IuYyBiL25ldC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMNCj4gPiBpbmRleCBkNzk2OTljLi45NTYy MDhiIDEwMDY0NA0KPiA+IC0tLSBhL25ldC9jb3JlL2Zsb3dfZGlzc2VjdG9yLmMNCj4gPiArKysg Yi9uZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jDQo+ID4gQEAgLTY1OCwxNyArNjU4LDMwIEBAIEVY UE9SVF9TWU1CT0wobWFrZV9mbG93X2tleXNfZGlnZXN0KTsNCj4gPiAgICoNCj4gPiAgICogVGhp cyBmdW5jdGlvbiBjYWxjdWxhdGVzIGEgZmxvdyBoYXNoIGJhc2VkIG9uIHNyYy9kc3QgYWRkcmVz c2VzDQo+ID4gICAqIGFuZCBzcmMvZHN0IHBvcnQgbnVtYmVycy4gIFNldHMgaGFzaCBpbiBza2Ig dG8gbm9uLXplcm8gaGFzaCB2YWx1ZQ0KPiA+IC0gKiBvbiBzdWNjZXNzLCB6ZXJvIGluZGljYXRl cyBubyB2YWxpZCBoYXNoLiAgQWxzbywgc2V0cyBsNF9oYXNoIGluIHNrYg0KPiA+IC0gKiBpZiBo YXNoIGlzIGEgY2Fub25pY2FsIDQtdHVwbGUgaGFzaCBvdmVyIHRyYW5zcG9ydCBwb3J0cy4NCj4g PiArICogb24gc3VjY2VzcywgemVybyBpbmRpY2F0ZXMgbm8gdmFsaWQgaGFzaCBpbiB3aGljaCBj YXNlIHRoZSBoYXNoIHR5cGUNCj4gPiArICogaXMgc2V0IHRvIE5PTkUuIElmIHRoZSBoYXNoIGlz IGEgY2Fub25pY2FsIDQtdHVwbGUgaGFzaCBvdmVyIHRyYW5zcG9ydA0KPiA+ICsgKiBwb3J0cyB0 aGVuIHR5cGUgaXMgc2V0IHRvIEw0LiBJZiB0aGUgaGFzaCBkaWQgbm90IGluY2x1ZGUgdHJhbnNw b3J0DQo+ID4gKyAqIHRoZW4gdHlwZSBpcyBzZXQgdG8gTDMsIG90aGVyd2lzZSBpdCBpcyBhc3N1 bWVkIHRvIGJlIEwyIG9ubHkuDQo+ID4gICAqLw0KPiA+ICB2b2lkIF9fc2tiX2dldF9oYXNoKHN0 cnVjdCBza19idWZmICpza2IpDQo+ID4gIHsNCj4gPiAgICAgICAgIHN0cnVjdCBmbG93X2tleXMg a2V5czsNCj4gPiArICAgICAgIHUzMiBoYXNoOw0KPiA+ICsgICAgICAgZW51bSBwa3RfaGFzaF90 eXBlcyB0eXBlOw0KPiA+DQo+ID4gICAgICAgICBfX2Zsb3dfaGFzaF9zZWNyZXRfaW5pdCgpOw0K PiA+DQo+ID4gLSAgICAgICBfX3NrYl9zZXRfc3dfaGFzaChza2IsIF9fX3NrYl9nZXRfaGFzaChz a2IsICZrZXlzLCBoYXNocm5kKSwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgIGZsb3df a2V5c19oYXZlX2w0KCZrZXlzKSk7DQo+ID4gKyAgICAgICBoYXNoID0gX19fc2tiX2dldF9oYXNo KHNrYiwgJmtleXMsIGhhc2hybmQpOw0KPiA+ICsgICAgICAgaWYgKGhhc2ggPT0gMCkNCj4gPiAr ICAgICAgICAgICAgICAgdHlwZSA9IFBLVF9IQVNIX1RZUEVfTk9ORTsNCj4gPiArICAgICAgIGVs c2UgaWYgKGZsb3dfa2V5c19oYXZlX2w0KCZrZXlzKSkNCj4gPiArICAgICAgICAgICAgICAgdHlw ZSA9IFBLVF9IQVNIX1RZUEVfTDQ7DQo+ID4gKyAgICAgICBlbHNlIGlmIChmbG93X2tleXNfaGF2 ZV9sMygma2V5cykpDQo+ID4gKyAgICAgICAgICAgICAgIHR5cGUgPSBQS1RfSEFTSF9UWVBFX0wz Ow0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICB0eXBlID0gUEtUX0hBU0hf VFlQRV9MMjsNCj4gPiArDQo+ID4gKyAgICAgICBfX3NrYl9zZXRfc3dfaGFzaChza2IsIGhhc2gs IHR5cGUpOw0KPiA+ICB9DQo+ID4gIEVYUE9SVF9TWU1CT0woX19za2JfZ2V0X2hhc2gpOw0KPiA+ DQo+ID4gQEAgLTY5OCw3ICs3MTEsOCBAQCBfX3UzMiBfX3NrYl9nZXRfaGFzaF9mbG93aTYoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwNCj4gY29uc3Qgc3RydWN0IGZsb3dpNiAqZmw2KQ0KPiA+ICAgICAg ICAga2V5cy5iYXNpYy5pcF9wcm90byA9IGZsNi0+Zmxvd2k2X3Byb3RvOw0KPiA+DQo+ID4gICAg ICAgICBfX3NrYl9zZXRfc3dfaGFzaChza2IsIGZsb3dfaGFzaF9mcm9tX2tleXMoJmtleXMpLA0K PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgZmxvd19rZXlzX2hhdmVfbDQoJmtleXMpKTsN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIGZsb3dfa2V5c19oYXZlX2w0KCZrZXlzKSA/ DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBQS1RfSEFTSF9UWVBFX0w0IDogUEtUX0hB U0hfVFlQRV9MMyk7DQo+ID4NCj4gPiAgICAgICAgIHJldHVybiBza2ItPmhhc2g7DQo+ID4gIH0N Cj4gPiBAQCAtNzE5LDcgKzczMyw4IEBAIF9fdTMyIF9fc2tiX2dldF9oYXNoX2Zsb3dpNChzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLA0KPiBjb25zdCBzdHJ1Y3QgZmxvd2k0ICpmbDQpDQo+ID4gICAgICAg ICBrZXlzLmJhc2ljLmlwX3Byb3RvID0gZmw0LT5mbG93aTRfcHJvdG87DQo+ID4NCj4gPiAgICAg ICAgIF9fc2tiX3NldF9zd19oYXNoKHNrYiwgZmxvd19oYXNoX2Zyb21fa2V5cygma2V5cyksDQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICBmbG93X2tleXNfaGF2ZV9sNCgma2V5cykpOw0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgZmxvd19rZXlzX2hhdmVfbDQoJmtleXMpID8N Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIFBLVF9IQVNIX1RZUEVfTDQgOiBQS1RfSEFT SF9UWVBFX0wzKTsNCj4gPg0KPiA+ICAgICAgICAgcmV0dXJuIHNrYi0+aGFzaDsNCj4gPiAgfQ0K PiA+IC0tDQo+ID4gMi4xLjQNCj4gPg0K