From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 19A17CE7 for ; Mon, 18 Jul 2016 17:15:39 +0200 (CEST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP; 18 Jul 2016 08:15:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,384,1464678000"; d="scan'208";a="1019128719" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga002.jf.intel.com with ESMTP; 18 Jul 2016 08:15:29 -0700 Received: from fmsmsx122.amr.corp.intel.com (10.18.125.37) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 18 Jul 2016 08:15:27 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx122.amr.corp.intel.com (10.18.125.37) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 18 Jul 2016 08:15:27 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.181]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.8]) with mapi id 14.03.0248.002; Mon, 18 Jul 2016 23:15:24 +0800 From: "Zhang, Helin" To: Take Ceara CC: "Wu, Jingjing" , "dev@dpdk.org" Thread-Topic: [dpdk-users] RSS Hash not working for XL710/X710 NICs for some RX mbuf sizes Thread-Index: AQHR4QWbnmeBqofdO0eh54OEewg1C6AeSxKQ Date: Mon, 18 Jul 2016 15:15:24 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMjk1N2Y1ZmUtOGFlOC00ZTZiLTg0OTAtZTA4NTdhZjcyMmRkIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IlN6bk9Gd0cyUFR5WWtDXC85MTJMY0FZa0dvbWtXa29VaHN3ZWxUMVRLK3JnPSJ9 x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [dpdk-users] RSS Hash not working for XL710/X710 NICs for some RX mbuf sizes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 15:15:40 -0000 SGkgQ2VhcmENCg0KQ291bGQgeW91IGhlbHAgdG8gbGV0IG1lIGtub3cgeW91ciBmaXJtd2FyZSB2 ZXJzaW9uPw0KQW5kIGNvdWxkIHlvdSBoZWxwIHRvIHRyeSB3aXRoIHRoZSBzdGFuZGFyZCBEUERL IGV4YW1wbGUgYXBwbGljYXRpb24sIHN1Y2ggYXMgdGVzdHBtZCwgdG8gc2VlIGlmIHRoZXJlIGlz IHRoZSBzYW1lIGlzc3VlPw0KQmFzaWNhbGx5IHdlIGFsd2F5cyBzZXQgdGhlIHNhbWUgc2l6ZSBm b3IgYm90aCByeCBhbmQgdHggYnVmZmVyLCBsaWtlIHRoZSBkZWZhdWx0IG9uZSBvZiAyMDQ4IGZv ciBhIGxvdCBvZiBhcHBsaWNhdGlvbnMuDQoNCkRlZmluaXRlbHkgd2Ugd2lsbCB0cnkgdG8gcmVw cm9kdWNlIHRoYXQgaXNzdWUgd2l0aCB0ZXN0cG1kLCB3aXRoIHVzaW5nIDJLIG1idWZzLiBIb3Bl ZnVsbHkgd2UgY2FuIGZpbmQgdGhlIHJvb3QgY2F1c2UsIG9yIHRlbGwgeW91IHRoYXQncyBub3Qg YW4gaXNzdWUuDQoNClRoYW5rIHlvdSB2ZXJ5IG11Y2ggZm9yIHlvdXIgcmVwb3J0aW5nIQ0KDQpC VFcsIGRldkBkcGRrLm9yZyBzaG91bGQgYmUgdGhlIHJpZ2h0IG9uZSB0byByZXBsYWNlIHVzZXJz QGRwZGsub3JnLCBmb3Igc2VuZGluZyBxdWVzdGlvbnMvaXNzdWVzIGxpa2UgdGhpcy4NCg0KUmVn YXJkcywNCkhlbGluDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVGFr ZSBDZWFyYSBbbWFpbHRvOmR1bWl0cnUuY2VhcmFAZ21haWwuY29tXQ0KPiBTZW50OiBNb25kYXks IEp1bHkgMTgsIDIwMTYgNDowMyBQTQ0KPiBUbzogdXNlcnNAZHBkay5vcmcNCj4gQ2M6IFpoYW5n LCBIZWxpbiA8aGVsaW4uemhhbmdAaW50ZWwuY29tPjsgV3UsIEppbmdqaW5nIDxqaW5namluZy53 dUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFtkcGRrLXVzZXJzXSBSU1MgSGFzaCBub3Qgd29ya2lu ZyBmb3IgWEw3MTAvWDcxMCBOSUNzIGZvciBzb21lIFJYDQo+IG1idWYgc2l6ZXMNCj4gDQo+IEhp LA0KPiANCj4gSXMgdGhlcmUgYW55IGtub3duIGlzc3VlIHJlZ2FyZGluZyB0aGUgaTQwZSBEUERL IGRyaXZlciB3aGVuIGhhdmluZyBSU1MNCj4gaGFzaGluZyBlbmFibGVkIGluIERQREsgMTYuMDQ/ DQo+IEkndmUgbm90aWNlZCB0aGF0IGZvciBzb21lIHNwZWNpZmljIHJlY2VpdmUgbWJ1ZiBzaXpl cyB0aGUgUlNTIGhhc2ggaXMgYWx3YXlzIHNldA0KPiB0byAwIGZvciBpbmNvbWluZyBwYWNrZXRz Lg0KPiANCj4gSSBoYXZlIGEgc2V0dXAgd2l0aCB0d28gWEw3MTAgcG9ydHMgY29ubmVjdGVkIGJh Y2sgdG8gYmFjay4gVGhlIHNpbXBsZSB0ZXN0DQo+IHByb2dyYW0gYmVsb3cgc2VuZHMgZml4ZWQg VENQIHBhY2tldHMgZnJvbSBwb3J0IDAgdG8gcG9ydCAxLiBUaGUNCj4gTDUgcGF5bG9hZCBpcyBh ZGRlZCBpbiB0aGUgcGFja2V0IGluIHN1Y2ggYSB3YXkgdGhhdCB0aGUgcGFja2V0IGNvbnN1bWVz IGV4YWN0bHkNCj4gb25lIFRYIG1idWYuIEZvciBzb21lIHZhbHVlcyBvZiB0aGUgUlggbWJ1ZiBz aXplIHRoZSBpbmNvbWluZyBtYnVmIGhhcyB0aGUNCj4gaGFzaC5yc3MgPT0gMCBldmVuIHRob3Vn aCB0aGUgUEtUX1JYX1JTU19IQVNIIGZsYWcgaXMgc2V0IGluIG9sX2ZsYWdzLiBJbiBteQ0KPiBj b2RlIHRoZSBUWC9SWCBtYnVmIHNpemVzIGFyZSBjb250cm9sbGVkIGJ5IHRoZSBSWF9NQlVGX1NJ WkUgYW5kDQo+IFRYX01CVUZfU0laRSBtYWNyb3MuDQo+IA0KPiBBcyBhbiBleGFtcGxlLCB3aXRo IHNvbWUgb2YgdGhlIGZvbGxvd2luZyBUWC9SWCBzaXplcyB0aGUgYXNzZXJ0IHRoYXQgY2hlY2tz IGlmDQo+IHRoZSBSU1MgaGFzaCBpcyBub24temVybyBmYWlscyBhbmQgd2l0aCB0aGUgb3RoZXIg aXQgcGFzc2VzOg0KPiANCj4gUlhfTUJVRl9TSVpFICBUWF9NQlVGX1NJWkUgYXNzZXJ0DQo+ID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiAxMDI0ICAgICAgICAgIDEwMjQgICAg ICAgICBmYWlsDQo+IDEwMjUgICAgICAgICAgMTAyNCAgICAgICAgIG9rDQo+IDEwMjQgICAgICAg ICAgMjA0OCAgICAgICAgIGZhaWwNCj4gMjA0OCAgICAgICAgICAyMDQ4ICAgICAgICAgZmFpbA0K PiAyMDQ4ICAgICAgICAgIDIwNDcgICAgICAgICBmYWlsDQo+IDIwNDkgICAgICAgICAgMjA0OCAg ICAgICAgIG9rDQo+IA0KPiBPbiB0aGUgc2FtZSBzZXR1cCBJIGhhdmUgYW5vdGhlciBsb29wYmFj ayBjb25uZWN0aW9uIGJldHdlZW4gdHdvIDgyNTk5RVMNCj4gMTBHIE5JQ3MgYW5kIHdoZW4gSSBy dW4gZXhhY3RseSB0aGUgc2FtZSB0ZXN0IHRoZSBSU1MgaGFzaCBpcyBhbHdheXMgY29ycmVjdCBp bg0KPiBhbGwgY2FzZXMuDQo+IA0KPiAkICRSVEVfU0RLL3Rvb2xzL2RwZGtfbmljX2JpbmQucHkg LXMNCj4gDQo+IE5ldHdvcmsgZGV2aWNlcyB1c2luZyBEUERLLWNvbXBhdGlibGUgZHJpdmVyDQo+ ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IDAwMDA6MDI6 MDAuMCAnODI1OTlFUyAxMC1HaWdhYml0IFNGSS9TRlArIE5ldHdvcmsgQ29ubmVjdGlvbicNCj4g ZHJ2PWlnYl91aW8gdW51c2VkPQ0KPiAwMDAwOjAzOjAwLjAgJzgyNTk5RVMgMTAtR2lnYWJpdCBT RkkvU0ZQKyBOZXR3b3JrIENvbm5lY3Rpb24nDQo+IGRydj1pZ2JfdWlvIHVudXNlZD0NCj4gMDAw MDo4MjowMC4wICdFdGhlcm5ldCBDb250cm9sbGVyIFhMNzEwIGZvciA0MEdiRSBRU0ZQKycgZHJ2 PWlnYl91aW8gdW51c2VkPQ0KPiAwMDAwOjgzOjAwLjAgJ0V0aGVybmV0IENvbnRyb2xsZXIgWEw3 MTAgZm9yIDQwR2JFIFFTRlArJyBkcnY9aWdiX3VpbyB1bnVzZWQ9DQo+IA0KPiBUaGUgY29tbWFu ZCBsaW5lIEkgdXNlIGZvciBydW5uaW5nIHRoZSB0ZXN0IG9uIHRoZSA0MEcgTklDcyBpczoNCj4g DQo+IC4vYnVpbGQvdGVzdCAtYyAweDEgLW4gNCAtbSAxMDI0IC13IDAwMDA6ODI6MDAuMCAtdyAw MDAwOjgzOjAwLjANCj4gDQo+IFRoYW5rcywNCj4gRHVtaXRydSBDZWFyYQ0KPiANCj4gI2luY2x1 ZGUgPHN0ZGJvb2wuaD4NCj4gI2luY2x1ZGUgPHN0ZGludC5oPg0KPiAjaW5jbHVkZSA8YXNzZXJ0 Lmg+DQo+ICNpbmNsdWRlIDx1bmlzdGQuaD4NCj4gDQo+ICNpbmNsdWRlIDxydGVfZXRoZGV2Lmg+ DQo+ICNpbmNsdWRlIDxydGVfdGltZXIuaD4NCj4gI2luY2x1ZGUgPHJ0ZV9pcC5oPg0KPiAjaW5j bHVkZSA8cnRlX3RjcC5oPg0KPiAjaW5jbHVkZSA8cnRlX3VkcC5oPg0KPiAjaW5jbHVkZSA8cnRl X2Vycm5vLmg+DQo+ICNpbmNsdWRlIDxydGVfYXJwLmg+DQo+IA0KPiAjZGVmaW5lIE1CVUZfU0la RShmcmFnX3NpemUpIFwNCj4gICAgICgoZnJhZ19zaXplKSArIHNpemVvZihzdHJ1Y3QgcnRlX21i dWYpICsgUlRFX1BLVE1CVUZfSEVBRFJPT00pDQo+IA0KPiAjZGVmaW5lIFJYX01CVUZfU0laRSBN QlVGX1NJWkUoUlRFX01CVUZfREVGQVVMVF9EQVRBUk9PTSkNCj4gI2RlZmluZSBUWF9NQlVGX1NJ WkUgTUJVRl9TSVpFKFJURV9NQlVGX0RFRkFVTFRfREFUQVJPT00pDQo+IA0KPiAjZGVmaW5lIE1C VUZfQ0FDSEUgNTEyDQo+ICNkZWZpbmUgTUJVRl9DT1VOVCAxMDI0DQo+IA0KPiBzdGF0aWMgc3Ry dWN0IHJ0ZV9tZW1wb29sICpyeF9tcG9vbDsNCj4gc3RhdGljIHN0cnVjdCBydGVfbWVtcG9vbCAq dHhfbXBvb2w7DQo+IA0KPiAjZGVmaW5lIFBPUlRfTUFYX01UVSA5MTk4DQo+IA0KPiAjZGVmaW5l IEw1X0dFVF9MRU4ocGt0KSAocnRlX3BrdG1idWZfdGFpbHJvb20oKHBrdCkpKQ0KPiANCj4gI2Rl ZmluZSBQT1JUMCAgMA0KPiAjZGVmaW5lIFBPUlQxICAxDQo+ICNkZWZpbmUgUVVFVUUwIDANCj4g I2RlZmluZSBRX0NOVCAgMQ0KPiANCj4gDQo+IHN0cnVjdCBydGVfZXRoX2NvbmYgZGVmYXVsdF9w b3J0X2NvbmZpZyA9IHsNCj4gICAgIC5yeG1vZGUgPSB7DQo+ICAgICAgICAgLm1xX21vZGUgICAg ICAgID0gRVRIX01RX1JYX1JTUywNCj4gICAgICAgICAubWF4X3J4X3BrdF9sZW4gPSBQT1JUX01B WF9NVFUsDQo+ICAgICAgICAgLnNwbGl0X2hkcl9zaXplID0gMCwNCj4gICAgICAgICAuaGVhZGVy X3NwbGl0ICAgPSAwLCAvKio8IEhlYWRlciBTcGxpdCBkaXNhYmxlZCAqLw0KPiAgICAgICAgIC5o d19pcF9jaGVja3N1bSA9IDEsIC8qKjwgSVAgY2hlY2tzdW0gb2ZmbG9hZCBlbmFibGVkICovDQo+ ICAgICAgICAgLmh3X3ZsYW5fZmlsdGVyID0gMCwgLyoqPCBWTEFOIGZpbHRlcmluZyBkaXNhYmxl ZCAqLw0KPiAgICAgICAgIC5qdW1ib19mcmFtZSAgICA9IDEsIC8qKjwgSnVtYm8gRnJhbWUgU3Vw cG9ydCBkaXNhYmxlZCAqLw0KPiAgICAgICAgIC5od19zdHJpcF9jcmMgICA9IDAsIC8qKjwgQ1JD IHN0cmlwcGVkIGJ5IGhhcmR3YXJlICovDQo+ICAgICB9LA0KPiAgICAgLnJ4X2Fkdl9jb25mID0g ew0KPiAgICAgICAgIC5yc3NfY29uZiA9IHsNCj4gICAgICAgICAgICAgLnJzc19rZXkgPSBOVUxM LA0KPiAgICAgICAgICAgICAucnNzX2tleV9sZW4gPSAwLA0KPiAgICAgICAgICAgICAucnNzX2hm ID0gRVRIX1JTU19JUFY0IHwgRVRIX1JTU19OT05GUkFHX0lQVjRfVENQIHwNCj4gRVRIX1JTU19O T05GUkFHX0lQVjRfVURQLA0KPiAgICAgICAgIH0sDQo+ICAgICB9LA0KPiAgICAgLnR4bW9kZSA9 IHsNCj4gICAgICAgICAubXFfbW9kZSA9IEVUSF9NUV9UWF9OT05FLA0KPiAgICAgfQ0KPiB9Ow0K PiANCj4gc3RydWN0IHJ0ZV9ldGhfcnhjb25mIHJ4X2NvbmYgPSB7DQo+ICAgICAucnhfdGhyZXNo ID0gew0KPiAgICAgICAgIC5wdGhyZXNoID0gOCwNCj4gICAgICAgICAuaHRocmVzaCA9IDgsDQo+ ICAgICAgICAgLnd0aHJlc2ggPSA0LA0KPiAgICAgfSwNCj4gICAgIC5yeF9mcmVlX3RocmVzaCA9 IDY0LA0KPiAgICAgLnJ4X2Ryb3BfZW4gPSAwDQo+IH07DQo+IA0KPiBzdHJ1Y3QgcnRlX2V0aF90 eGNvbmYgdHhfY29uZiA9IHsNCj4gICAgIC50eF90aHJlc2ggPSB7DQo+ICAgICAgICAgLnB0aHJl c2ggPSAzNiwNCj4gICAgICAgICAuaHRocmVzaCA9IDAsDQo+ICAgICAgICAgLnd0aHJlc2ggPSAw LA0KPiAgICAgfSwNCj4gICAgIC50eF9mcmVlX3RocmVzaCA9IDY0LA0KPiAgICAgLnR4X3JzX3Ro cmVzaCA9IDMyLA0KPiB9Ow0KPiANCj4gc3RhdGljIHZvaWQgcG9ydF9zZXR1cCh1aW50MzJfdCBw b3J0KQ0KPiB7DQo+ICAgICB1aW50MzJfdCBxdWV1ZTsNCj4gICAgIGludCByZXQ7DQo+IA0KPiAg ICAgYXNzZXJ0KHJ0ZV9ldGhfZGV2X2NvbmZpZ3VyZShwb3J0LCBRX0NOVCwgUV9DTlQsDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkZWZhdWx0X3BvcnRfY29uZmlnKSA9PSAw KTsNCj4gICAgIGZvciAocXVldWUgPSAwOyBxdWV1ZSA8IFFfQ05UOyBxdWV1ZSsrKSB7DQo+ICAg ICAgICAgcmV0ID0gcnRlX2V0aF9yeF9xdWV1ZV9zZXR1cChwb3J0LCBxdWV1ZSwgMTI4LCBTT0NL RVRfSURfQU5ZLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJ4X2Nv bmYsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByeF9tcG9vbCk7DQo+ ICAgICAgICAgYXNzZXJ0KHJldCA9PSAwKTsNCj4gICAgICAgICByZXQgPSBydGVfZXRoX3R4X3F1 ZXVlX3NldHVwKHBvcnQsIHF1ZXVlLCAxMjgsIFNPQ0tFVF9JRF9BTlksDQo+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmdHhfY29uZik7DQo+ICAgICAgICAgYXNzZXJ0KHJl dCA9PSAwKTsNCj4gICAgIH0NCj4gDQo+ICAgICBhc3NlcnQocnRlX2V0aF9kZXZfc3RhcnQocG9y dCkgPT0gMCk7IH0NCj4gDQo+ICNkZWZpbmUgSERSU19TSVpFICAgICAgICAgICAgICAgICAgIFwN Cj4gICAgICAgICAoc2l6ZW9mKHN0cnVjdCBldGhlcl9oZHIpICsgXA0KPiAgICAgICAgICBzaXpl b2Yoc3RydWN0IGlwdjRfaGRyKSArICBcDQo+ICAgICAgICAgIHNpemVvZihzdHJ1Y3QgdGNwX2hk cikpDQo+IA0KPiBzdGF0aWMgc3RydWN0IHJ0ZV9tYnVmICpnZXRfdGNwX3BrdCh1aW50MTZfdCBl dGhfcG9ydCkgew0KPiAgICAgc3RydWN0IHJ0ZV9tYnVmICAqcGt0Ow0KPiAgICAgc3RydWN0IGV0 aGVyX2hkciAqZXRoX2hkcjsNCj4gICAgIHN0cnVjdCBpcHY0X2hkciAgKmlwX2hkcjsNCj4gICAg IHN0cnVjdCB0Y3BfaGRyICAgKnRjcF9oZHI7DQo+ICAgICB1aW50MzJfdCAgICAgICAgICBpcF9o ZHJfbGVuID0gc2l6ZW9mKCppcF9oZHIpOw0KPiAgICAgdWludDMyX3QgICAgICAgICAgdGNwX2hk cl9sZW4gPSBzaXplb2YoKnRjcF9oZHIpOw0KPiAgICAgdWludDMyX3QgICAgICAgICAgbDVfbGVu Ow0KPiANCj4gICAgIGFzc2VydChwa3QgPSBydGVfcGt0bWJ1Zl9hbGxvYyh0eF9tcG9vbCkpOw0K PiANCj4gICAgIHBrdC0+cG9ydCA9IGV0aF9wb3J0Ow0KPiAgICAgcGt0LT5sMl9sZW4gPSBzaXpl b2YoKmV0aF9oZHIpOw0KPiANCj4gICAgIFJURV9MT0coRVJSLCBVU0VSMSwgIjE6aGVhZCA9ICVk LCB0YWlsID0gJWQsIGxlbiA9ICVkXG4iLA0KPiAgICAgICAgICAgICBydGVfcGt0bWJ1Zl9oZWFk cm9vbShwa3QpLCBydGVfcGt0bWJ1Zl90YWlscm9vbShwa3QpLA0KPiAgICAgICAgICAgICBydGVf cGt0bWJ1Zl9wa3RfbGVuKHBrdCkpOw0KPiANCj4gICAgIC8qIFJlc2VydmUgc3BhY2UgZm9yIEVU SCArIElQICsgVENQIEhlYWRlcnMuDQo+ICAgICAgKiBTdG9yZSBob3cgbXVjaCB0YWlscm9vbSB3 ZSBoYXZlLg0KPiAgICAgICovDQo+ICAgICBldGhfaGRyID0gKHN0cnVjdCBldGhlcl9oZHIgKily dGVfcGt0bWJ1Zl9hcHBlbmQocGt0LCBIRFJTX1NJWkUpOw0KPiAgICAgYXNzZXJ0KGV0aF9oZHIp Ow0KPiAgICAgbDVfbGVuID0gTDVfR0VUX0xFTihwa3QpOw0KPiANCj4gICAgIC8qIEVUSCBIZWFk ZXIuICovDQo+ICAgICBydGVfZXRoX21hY2FkZHJfZ2V0KFBPUlQwLCAmZXRoX2hkci0+c19hZGRy KTsNCj4gICAgIHJ0ZV9ldGhfbWFjYWRkcl9nZXQoUE9SVDEsICZldGhfaGRyLT5kX2FkZHIpOw0K PiAgICAgZXRoX2hkci0+ZXRoZXJfdHlwZSA9IHJ0ZV9jcHVfdG9fYmVfMTYoRVRIRVJfVFlQRV9J UHY0KTsNCj4gDQo+ICAgICAvKiBJUCBIZWFkZXIuICovDQo+ICAgICBpcF9oZHIgPSAoc3RydWN0 IGlwdjRfaGRyICopKGV0aF9oZHIgKyAxKTsNCj4gICAgIGlwX2hkci0+dmVyc2lvbl9paGwgPSAo NCA8PCA0KSB8IChpcF9oZHJfbGVuID4+IDIpOw0KPiAgICAgaXBfaGRyLT50eXBlX29mX3NlcnZp Y2UgPSAwOw0KPiAgICAgaXBfaGRyLT50b3RhbF9sZW5ndGggPSBydGVfY3B1X3RvX2JlXzE2KGlw X2hkcl9sZW4gKyB0Y3BfaGRyX2xlbiArDQo+IGw1X2xlbik7DQo+ICAgICBpcF9oZHItPnBhY2tl dF9pZCA9IDA7DQo+ICAgICBpcF9oZHItPmZyYWdtZW50X29mZnNldCA9IHJ0ZV9jcHVfdG9fYmVf MTYoMCk7DQo+ICAgICBpcF9oZHItPnRpbWVfdG9fbGl2ZSA9IDYwOw0KPiAgICAgaXBfaGRyLT5u ZXh0X3Byb3RvX2lkID0gSVBQUk9UT19UQ1A7DQo+ICAgICBpcF9oZHItPnNyY19hZGRyID0gcnRl X2NwdV90b19iZV8zMigweDAxMDEwMTAxKTsNCj4gICAgIGlwX2hkci0+ZHN0X2FkZHIgPSBydGVf Y3B1X3RvX2JlXzMyKDB4MDEwMTAxMDEpOw0KPiAgICAgaXBfaGRyLT5oZHJfY2hlY2tzdW0gPSBy dGVfY3B1X3RvX2JlXzE2KDApOw0KPiANCj4gICAgIHBrdC0+bDNfbGVuID0gaXBfaGRyX2xlbjsN Cj4gICAgIHBrdC0+b2xfZmxhZ3MgfD0gUEtUX1RYX0lQX0NLU1VNOw0KPiANCj4gICAgIC8qIFRD UCBIZWFkZXIuICovDQo+ICAgICB0Y3BfaGRyID0gKHN0cnVjdCB0Y3BfaGRyICopKGlwX2hkciAr IDEpOw0KPiAgICAgdGNwX2hkci0+c3JjX3BvcnQgPSBydGVfY3B1X3RvX2JlXzE2KDB4NDIpOw0K PiAgICAgdGNwX2hkci0+ZHN0X3BvcnQgPSBydGVfY3B1X3RvX2JlXzE2KDB4MjQpOw0KPiAgICAg dGNwX2hkci0+c2VudF9zZXEgPSBydGVfY3B1X3RvX2JlXzMyKDB4MTIzNCk7DQo+ICAgICB0Y3Bf aGRyLT5yZWN2X2FjayA9IHJ0ZV9jcHVfdG9fYmVfMzIoMHgxMjM0KTsNCj4gICAgIHRjcF9oZHIt PmRhdGFfb2ZmID0gdGNwX2hkcl9sZW4gPj4gMiA8PCA0Ow0KPiAgICAgdGNwX2hkci0+dGNwX2Zs YWdzID0gVENQX0ZJTl9GTEFHOw0KPiAgICAgdGNwX2hkci0+cnhfd2luID0gcnRlX2NwdV90b19i ZV8xNigweGZmZmYpOw0KPiAgICAgdGNwX2hkci0+dGNwX3VycCA9IHJ0ZV9jcHVfdG9fYmVfMTYo MCk7DQo+IA0KPiAgICAgcGt0LT5vbF9mbGFncyB8PSBQS1RfVFhfVENQX0NLU1VNIHwgUEtUX1RY X0lQVjQ7DQo+ICAgICBwa3QtPmw0X2xlbiA9IHRjcF9oZHJfbGVuOw0KPiANCj4gICAgIHRjcF9o ZHItPmNrc3VtID0gMDsNCj4gICAgIHRjcF9oZHItPmNrc3VtID0gcnRlX2lwdjRfcGhkcl9ja3N1 bShpcF9oZHIsIHBrdC0+b2xfZmxhZ3MpOw0KPiANCj4gICAgIC8qIEFkZCBQYXlsb2FkLiAqLw0K PiAgICAgYXNzZXJ0KHJ0ZV9wa3RtYnVmX2FwcGVuZChwa3QsIGw1X2xlbikpOw0KPiANCj4gICAg IFJURV9MT0coRVJSLCBVU0VSMSwgIjE6aGVhZCA9ICVkLCB0YWlsID0gJWQsIGxlbiA9ICVkXG4i LA0KPiAgICAgICAgICAgICBydGVfcGt0bWJ1Zl9oZWFkcm9vbShwa3QpLCBydGVfcGt0bWJ1Zl90 YWlscm9vbShwa3QpLA0KPiAgICAgICAgICAgICBydGVfcGt0bWJ1Zl9wa3RfbGVuKHBrdCkpOw0K PiANCj4gICAgIHJldHVybiBwa3Q7DQo+IH0NCj4gDQo+IGludCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikNCj4gew0KPiAgICAgc3RydWN0IHJ0ZV9tYnVmICp0eF9tYnVmWzNdOw0KPiANCj4g ICAgIHJ0ZV9lYWxfaW5pdChhcmdjLCBhcmd2KTsNCj4gDQo+ICAgICByeF9tcG9vbCA9IHJ0ZV9t ZW1wb29sX2NyZWF0ZSgicnhfbXBvb2wiLCBNQlVGX0NPVU5ULA0KPiBSWF9NQlVGX1NJWkUsDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBydGVfcGt0bWJ1Zl9wb29sX3ByaXZhdGUp LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRlX3BrdG1idWZfcG9vbF9p bml0LCBOVUxMLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRlX3BrdG1i dWZfaW5pdCwgTlVMTCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPQ0tF VF9JRF9BTlksDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsNCj4gDQo+ ICAgICB0eF9tcG9vbCA9IHJ0ZV9tZW1wb29sX2NyZWF0ZSgidHhfbXBvb2wiLCBNQlVGX0NPVU5U LA0KPiBUWF9NQlVGX1NJWkUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBydGVf cGt0bWJ1Zl9wb29sX3ByaXZhdGUpLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcnRlX3BrdG1idWZfcG9vbF9pbml0LCBOVUxMLA0KPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcnRlX3BrdG1idWZfaW5pdCwgTlVMTCwNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNPQ0tFVF9JRF9BTlksDQo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAwKTsNCj4gDQo+ICAgICBhc3NlcnQocnhfbXBvb2wgJiYgdHhfbXBvb2wpOw0K PiANCj4gICAgIHBvcnRfc2V0dXAoUE9SVDApOw0KPiAgICAgcG9ydF9zZXR1cChQT1JUMSk7DQo+ IA0KPiAgICAgZm9yICg7Oykgew0KPiAgICAgICAgIHVpbnQxNl90IG5vX3J4X2J1ZmZlcnM7DQo+ ICAgICAgICAgdWludDE2X3QgaTsNCj4gICAgICAgICBzdHJ1Y3QgcnRlX21idWYgKnJ4X3BrdHNb MTZdOw0KPiANCj4gICAgICAgICB0eF9tYnVmWzBdID0gZ2V0X3RjcF9wa3QoUE9SVDApOw0KPiAg ICAgICAgIGFzc2VydChydGVfZXRoX3R4X2J1cnN0KFBPUlQwLCBRVUVVRTAsIHR4X21idWYsIDEp ID09IDEpOw0KPiANCj4gICAgICAgICBub19yeF9idWZmZXJzID0gcnRlX2V0aF9yeF9idXJzdChQ T1JUMSwgUVVFVUUwLCByeF9wa3RzLCAxNik7DQo+ICAgICAgICAgZm9yIChpID0gMDsgaSA8IG5v X3J4X2J1ZmZlcnM7IGkrKykgew0KPiAgICAgICAgICAgICBSVEVfTE9HKEVSUiwgVVNFUjEsICJS WCBSU1MgSEFTSDogJThsWCAlNFhcbiIsDQo+ICAgICAgICAgICAgICAgICAgICAgcnhfcGt0c1tp XS0+b2xfZmxhZ3MsDQo+ICAgICAgICAgICAgICAgICAgICAgcnhfcGt0c1tpXS0+aGFzaC5yc3Mp Ow0KPiANCj4gICAgICAgICAgICAgYXNzZXJ0KHJ4X3BrdHNbaV0tPm9sX2ZsYWdzID09IFBLVF9S WF9SU1NfSEFTSCk7DQo+ICAgICAgICAgICAgIGFzc2VydChyeF9wa3RzW2ldLT5oYXNoLnJzcyAh PSAwKTsNCj4gDQo+ICAgICAgICAgICAgIHJ0ZV9wa3RtYnVmX2ZyZWUocnhfcGt0c1tpXSk7DQo+ ICAgICAgICAgfQ0KPiAgICAgfQ0KPiANCj4gICAgIHJldHVybiAwOw0KPiB9DQo=