From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 6BCEF2C6C for ; Thu, 14 Apr 2016 15:53:13 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga102.fm.intel.com with ESMTP; 14 Apr 2016 06:53:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,484,1455004800"; d="scan'208";a="686226805" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by FMSMGA003.fm.intel.com with ESMTP; 14 Apr 2016 06:53:14 -0700 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 14 Apr 2016 06:53:12 -0700 Received: from fmsmsx113.amr.corp.intel.com ([169.254.13.211]) by FMSMSX110.amr.corp.intel.com ([169.254.14.205]) with mapi id 14.03.0248.002; Thu, 14 Apr 2016 06:53:12 -0700 From: "Wiles, Keith" To: Olivier Matz , "dev@dpdk.org" CC: "thomas.monjalon@6wind.com" , "pmatilai@redhat.com" Thread-Topic: [PATCH v5] mempool: reduce rte_mempool structure size Thread-Index: AQHRljIjyxHyJtecZE+xyCVxkL7MDp+JnxmA Date: Thu, 14 Apr 2016 13:53:11 +0000 Message-ID: <18537A42-EDDB-43C4-9DBD-ED794AF553B6@intel.com> References: <1455302184-48822-1-git-send-email-keith.wiles@intel.com> <1460626956-12038-1-git-send-email-olivier.matz@6wind.com> In-Reply-To: <1460626956-12038-1-git-send-email-olivier.matz@6wind.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.254.81.124] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v5] mempool: reduce rte_mempool structure size 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: Thu, 14 Apr 2016 13:53:14 -0000 PkZyb206IEtlaXRoIFdpbGVzIDxrZWl0aC53aWxlc0BpbnRlbC5jb20+DQo+DQo+VGhlIHJ0ZV9t ZW1wb29sIHN0cnVjdHVyZSBpcyBjaGFuZ2VkLCB3aGljaCB3aWxsIGNhdXNlIGFuIEFCSSBjaGFu Z2UNCj5mb3IgdGhpcyBzdHJ1Y3R1cmUuIFByb3ZpZGluZyBiYWNrd2FyZCBjb21wYXQgaXMgbm90 IHJlYXNvbmFibGUNCj5oZXJlIGFzIHRoaXMgc3RydWN0dXJlIGlzIHVzZWQgaW4gbXVsdGlwbGUg ZGVmaW5lcy9pbmxpbmVzLg0KPg0KPkFsbG93IG1lbXBvb2wgY2FjaGUgc3VwcG9ydCB0byBiZSBk eW5hbWljIGRlcGVuZGluZyBvbiBpZiB0aGUNCj5tZW1wb29sIGJlaW5nIGNyZWF0ZWQgbmVlZHMg Y2FjaGUgc3VwcG9ydC4gU2F2ZXMgYWJvdXQgMS41TSBvZg0KPm1lbW9yeSB1c2VkIGJ5IHRoZSBy dGVfbWVtcG9vbCBzdHJ1Y3R1cmUuDQo+DQo+QWxsb2NhdGluZyBzbWFsbCBtZW1wb29scyB3aGlj aCBkbyBub3QgcmVxdWlyZSBjYWNoZSBjYW4gY29uc3VtZQ0KPmxhcmdlcyBhbW91bnRzIG9mIG1l bW9yeSBpZiB5b3UgaGF2ZSBhIG51bWJlciBvZiB0aGVzZSBtZW1wb29scy4NCj4NCj5DaGFuZ2Ug dG8gYmUgZWZmZWN0aXZlIGluIHJlbGVhc2UgMTYuMDcuDQo+DQo+U2lnbmVkLW9mZi1ieTogS2Vp dGggV2lsZXMgPGtlaXRoLndpbGVzQGludGVsLmNvbT4NCj5BY2tlZC1ieTogT2xpdmllciBNYXR6 IDxvbGl2aWVyLm1hdHpANndpbmQuY29tPg0KDQpGb3IgdGhlIGNoYW5nZSB0byB0aGlzIHBhdGNo Og0KQWNrZWQtYnk6IEtlaXRoIFdpbGVzIDxrZWl0aC53aWxlc0BpbnRlbC5jb20+DQoNCj4tLS0N Cj4NCj5DaGFuZ2VzIGluIHY1Og0KPg0KPi0gdXNlIFJURV9QVFJfQUREKCkgaW5zdGVhZCBvZiBj YXN0IHRvIChjaGFyICopIHRvIGZpeCBjb21waWxhdGlvbiBvbiB0aWxlcmEuDQo+ICBFcnJvciBs b2cgd2FzOg0KPg0KPiAgcnRlX21lbXBvb2wuYzogSW4gZnVuY3Rpb24g4oCYcnRlX21lbXBvb2xf eG1lbV9jcmVhdGXigJk6DQo+ICBydGVfbWVtcG9vbC5jOjU5NTogZXJyb3I6IGNhc3QgaW5jcmVh c2VzIHJlcXVpcmVkIGFsaWdubWVudCBvZiB0YXJnZXQgdHlwZQ0KPg0KPg0KPiBhcHAvdGVzdC90 ZXN0X21lbXBvb2wuYyAgICAgICAgICB8ICA0ICstLQ0KPiBsaWIvbGlicnRlX21lbXBvb2wvcnRl X21lbXBvb2wuYyB8IDU1ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gbGliL2xpYnJ0ZV9tZW1wb29sL3J0ZV9tZW1wb29sLmggfCAyOSArKysrKysrKysrLS0tLS0t LS0tLS0NCj4gMyBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCA0OCBkZWxldGlvbnMo LSkNCj4NCj5kaWZmIC0tZ2l0IGEvYXBwL3Rlc3QvdGVzdF9tZW1wb29sLmMgYi9hcHAvdGVzdC90 ZXN0X21lbXBvb2wuYw0KPmluZGV4IGYwZjgyM2IuLjEwZTFmYTQgMTAwNjQ0DQo+LS0tIGEvYXBw L3Rlc3QvdGVzdF9tZW1wb29sLmMNCj4rKysgYi9hcHAvdGVzdC90ZXN0X21lbXBvb2wuYw0KPkBA IC0xMjIsOCArMTIyLDggQEAgdGVzdF9tZW1wb29sX2Jhc2ljKHZvaWQpDQo+IAkJcmV0dXJuIC0x Ow0KPiANCj4gCXByaW50ZigiZ2V0IHByaXZhdGUgZGF0YVxuIik7DQo+LQlpZiAocnRlX21lbXBv b2xfZ2V0X3ByaXYobXApICE9DQo+LQkJCShjaGFyKikgbXAgKyBNRU1QT09MX0hFQURFUl9TSVpF KG1wLCBtcC0+cGdfbnVtKSkNCj4rCWlmIChydGVfbWVtcG9vbF9nZXRfcHJpdihtcCkgIT0gKGNo YXIgKiltcCArDQo+KwkJCU1FTVBPT0xfSEVBREVSX1NJWkUobXAsIG1wLT5wZ19udW0sIG1wLT5j YWNoZV9zaXplKSkNCj4gCQlyZXR1cm4gLTE7DQo+IA0KPiAJcHJpbnRmKCJnZXQgcGh5c2ljYWwg YWRkcmVzcyBvZiBhbiBvYmplY3RcbiIpOw0KPmRpZmYgLS1naXQgYS9saWIvbGlicnRlX21lbXBv b2wvcnRlX21lbXBvb2wuYyBiL2xpYi9saWJydGVfbWVtcG9vbC9ydGVfbWVtcG9vbC5jDQo+aW5k ZXggZjg3ODFlMS4uN2EwZTA3ZSAxMDA2NDQNCj4tLS0gYS9saWIvbGlicnRlX21lbXBvb2wvcnRl X21lbXBvb2wuYw0KPisrKyBiL2xpYi9saWJydGVfbWVtcG9vbC9ydGVfbWVtcG9vbC5jDQo+QEAg LTQ1MiwxMiArNDUyLDggQEAgcnRlX21lbXBvb2xfeG1lbV9jcmVhdGUoY29uc3QgY2hhciAqbmFt ZSwgdW5zaWduZWQgbiwgdW5zaWduZWQgZWx0X3NpemUsDQo+IAkvKiBjb21waWxhdGlvbi10aW1l IGNoZWNrcyAqLw0KPiAJUlRFX0JVSUxEX0JVR19PTigoc2l6ZW9mKHN0cnVjdCBydGVfbWVtcG9v bCkgJg0KPiAJCQkgIFJURV9DQUNIRV9MSU5FX01BU0spICE9IDApOw0KPi0jaWYgUlRFX01FTVBP T0xfQ0FDSEVfTUFYX1NJWkUgPiAwDQo+IAlSVEVfQlVJTERfQlVHX09OKChzaXplb2Yoc3RydWN0 IHJ0ZV9tZW1wb29sX2NhY2hlKSAmDQo+IAkJCSAgUlRFX0NBQ0hFX0xJTkVfTUFTSykgIT0gMCk7 DQo+LQlSVEVfQlVJTERfQlVHX09OKChvZmZzZXRvZihzdHJ1Y3QgcnRlX21lbXBvb2wsIGxvY2Fs X2NhY2hlKSAmDQo+LQkJCSAgUlRFX0NBQ0hFX0xJTkVfTUFTSykgIT0gMCk7DQo+LSNlbmRpZg0K PiAjaWZkZWYgUlRFX0xJQlJURV9NRU1QT09MX0RFQlVHDQo+IAlSVEVfQlVJTERfQlVHX09OKChz aXplb2Yoc3RydWN0IHJ0ZV9tZW1wb29sX2RlYnVnX3N0YXRzKSAmDQo+IAkJCSAgUlRFX0NBQ0hF X0xJTkVfTUFTSykgIT0gMCk7DQo+QEAgLTUyNyw5ICs1MjMsOCBAQCBydGVfbWVtcG9vbF94bWVt X2NyZWF0ZShjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBuLCB1bnNpZ25lZCBlbHRfc2l6ZSwN Cj4gCQkgKi8NCj4gCQlpbnQgaGVhZCA9IHNpemVvZihzdHJ1Y3QgcnRlX21lbXBvb2wpOw0KPiAJ CWludCBuZXdfc2l6ZSA9IChwcml2YXRlX2RhdGFfc2l6ZSArIGhlYWQpICUgcGFnZV9zaXplOw0K Pi0JCWlmIChuZXdfc2l6ZSkgew0KPisJCWlmIChuZXdfc2l6ZSkNCj4gCQkJcHJpdmF0ZV9kYXRh X3NpemUgKz0gcGFnZV9zaXplIC0gbmV3X3NpemU7DQo+LQkJfQ0KPiAJfQ0KPiANCj4gCS8qIHRy eSB0byBhbGxvY2F0ZSB0YWlscSBlbnRyeSAqLw0KPkBAIC01NDQsNyArNTM5LDggQEAgcnRlX21l bXBvb2xfeG1lbV9jcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgbiwgdW5zaWduZWQg ZWx0X3NpemUsDQo+IAkgKiBzdG9yZSBtZW1wb29sIG9iamVjdHMuIE90aGVyd2lzZSByZXNlcnZl IGEgbWVtem9uZSB0aGF0IGlzIGxhcmdlDQo+IAkgKiBlbm91Z2ggdG8gaG9sZCBtZW1wb29sIGhl YWRlciBhbmQgbWV0YWRhdGEgcGx1cyBtZW1wb29sIG9iamVjdHMuDQo+IAkgKi8NCj4tCW1lbXBv b2xfc2l6ZSA9IE1FTVBPT0xfSEVBREVSX1NJWkUobXAsIHBnX251bSkgKyBwcml2YXRlX2RhdGFf c2l6ZTsNCj4rCW1lbXBvb2xfc2l6ZSA9IE1FTVBPT0xfSEVBREVSX1NJWkUobXAsIHBnX251bSwg Y2FjaGVfc2l6ZSk7DQo+KwltZW1wb29sX3NpemUgKz0gcHJpdmF0ZV9kYXRhX3NpemU7DQo+IAlt ZW1wb29sX3NpemUgPSBSVEVfQUxJR05fQ0VJTChtZW1wb29sX3NpemUsIFJURV9NRU1QT09MX0FM SUdOKTsNCj4gCWlmICh2YWRkciA9PSBOVUxMKQ0KPiAJCW1lbXBvb2xfc2l6ZSArPSAoc2l6ZV90 KW9ianN6LnRvdGFsX3NpemUgKiBuOw0KPkBAIC01OTEsOCArNTg3LDE1IEBAIHJ0ZV9tZW1wb29s X3htZW1fY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIG4sIHVuc2lnbmVkIGVsdF9z aXplLA0KPiAJbXAtPmNhY2hlX2ZsdXNodGhyZXNoID0gQ0FMQ19DQUNIRV9GTFVTSFRIUkVTSChj YWNoZV9zaXplKTsNCj4gCW1wLT5wcml2YXRlX2RhdGFfc2l6ZSA9IHByaXZhdGVfZGF0YV9zaXpl Ow0KPiANCj4rCS8qDQo+KwkgKiBsb2NhbF9jYWNoZSBwb2ludGVyIGlzIHNldCBldmVuIGlmIGNh Y2hlX3NpemUgaXMgemVyby4NCj4rCSAqIFRoZSBsb2NhbF9jYWNoZSBwb2ludHMgdG8ganVzdCBw YXN0IHRoZSBlbHRfcGFbXSBhcnJheS4NCj4rCSAqLw0KPisJbXAtPmxvY2FsX2NhY2hlID0gKHN0 cnVjdCBydGVfbWVtcG9vbF9jYWNoZSAqKQ0KPisJCVJURV9QVFJfQUREKG1wLCBNRU1QT09MX0hF QURFUl9TSVpFKG1wLCBwZ19udW0sIDApKTsNCj4rDQo+IAkvKiBjYWxjdWxhdGUgYWRkcmVzcyBv ZiB0aGUgZmlyc3QgZWxlbWVudCBmb3IgY29udGludW91cyBtZW1wb29sLiAqLw0KPi0Jb2JqID0g KGNoYXIgKiltcCArIE1FTVBPT0xfSEVBREVSX1NJWkUobXAsIHBnX251bSkgKw0KPisJb2JqID0g KGNoYXIgKiltcCArIE1FTVBPT0xfSEVBREVSX1NJWkUobXAsIHBnX251bSwgY2FjaGVfc2l6ZSkg Kw0KPiAJCXByaXZhdGVfZGF0YV9zaXplOw0KPiAJb2JqID0gUlRFX1BUUl9BTElHTl9DRUlMKG9i aiwgUlRFX01FTVBPT0xfQUxJR04pOw0KPiANCj5AQCAtNjA2LDkgKzYwOSw4IEBAIHJ0ZV9tZW1w b29sX3htZW1fY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIG4sIHVuc2lnbmVkIGVs dF9zaXplLA0KPiAJCW1wLT5lbHRfdmFfc3RhcnQgPSAodWludHB0cl90KW9iajsNCj4gCQltcC0+ ZWx0X3BhWzBdID0gbXAtPnBoeXNfYWRkciArDQo+IAkJCShtcC0+ZWx0X3ZhX3N0YXJ0IC0gKHVp bnRwdHJfdCltcCk7DQo+LQ0KPi0JLyogbWVtcG9vbCBlbGVtZW50cyBpbiBhIHNlcGFyYXRlIGNo dW5rIG9mIG1lbW9yeS4gKi8NCj4gCX0gZWxzZSB7DQo+KwkJLyogbWVtcG9vbCBlbGVtZW50cyBp biBhIHNlcGFyYXRlIGNodW5rIG9mIG1lbW9yeS4gKi8NCj4gCQltcC0+ZWx0X3ZhX3N0YXJ0ID0g KHVpbnRwdHJfdCl2YWRkcjsNCj4gCQltZW1jcHkobXAtPmVsdF9wYSwgcGFkZHIsIHNpemVvZiAo bXAtPmVsdF9wYVswXSkgKiBwZ19udW0pOw0KPiAJfQ0KPkBAIC02NDMsMTkgKzY0NSwxNSBAQCB1 bnNpZ25lZA0KPiBydGVfbWVtcG9vbF9jb3VudChjb25zdCBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1w KQ0KPiB7DQo+IAl1bnNpZ25lZCBjb3VudDsNCj4rCXVuc2lnbmVkIGxjb3JlX2lkOw0KPiANCj4g CWNvdW50ID0gcnRlX3JpbmdfY291bnQobXAtPnJpbmcpOw0KPiANCj4tI2lmIFJURV9NRU1QT09M X0NBQ0hFX01BWF9TSVpFID4gMA0KPi0Jew0KPi0JCXVuc2lnbmVkIGxjb3JlX2lkOw0KPi0JCWlm IChtcC0+Y2FjaGVfc2l6ZSA9PSAwKQ0KPi0JCQlyZXR1cm4gY291bnQ7DQo+KwlpZiAobXAtPmNh Y2hlX3NpemUgPT0gMCkNCj4rCQlyZXR1cm4gY291bnQ7DQo+IA0KPi0JCWZvciAobGNvcmVfaWQg PSAwOyBsY29yZV9pZCA8IFJURV9NQVhfTENPUkU7IGxjb3JlX2lkKyspDQo+LQkJCWNvdW50ICs9 IG1wLT5sb2NhbF9jYWNoZVtsY29yZV9pZF0ubGVuOw0KPi0JfQ0KPi0jZW5kaWYNCj4rCWZvciAo bGNvcmVfaWQgPSAwOyBsY29yZV9pZCA8IFJURV9NQVhfTENPUkU7IGxjb3JlX2lkKyspDQo+KwkJ Y291bnQgKz0gbXAtPmxvY2FsX2NhY2hlW2xjb3JlX2lkXS5sZW47DQo+IA0KPiAJLyoNCj4gCSAq IGR1ZSB0byByYWNlIGNvbmRpdGlvbiAoYWNjZXNzIHRvIGxlbiBpcyBub3QgbG9ja2VkKSwgdGhl DQo+QEAgLTY3MCwxMyArNjY4LDE2IEBAIHJ0ZV9tZW1wb29sX2NvdW50KGNvbnN0IHN0cnVjdCBy dGVfbWVtcG9vbCAqbXApDQo+IHN0YXRpYyB1bnNpZ25lZA0KPiBydGVfbWVtcG9vbF9kdW1wX2Nh Y2hlKEZJTEUgKmYsIGNvbnN0IHN0cnVjdCBydGVfbWVtcG9vbCAqbXApDQo+IHsNCj4tI2lmIFJU RV9NRU1QT09MX0NBQ0hFX01BWF9TSVpFID4gMA0KPiAJdW5zaWduZWQgbGNvcmVfaWQ7DQo+IAl1 bnNpZ25lZCBjb3VudCA9IDA7DQo+IAl1bnNpZ25lZCBjYWNoZV9jb3VudDsNCj4gDQo+IAlmcHJp bnRmKGYsICIgIGNhY2hlIGluZm9zOlxuIik7DQo+IAlmcHJpbnRmKGYsICIgICAgY2FjaGVfc2l6 ZT0lIlBSSXUzMiJcbiIsIG1wLT5jYWNoZV9zaXplKTsNCj4rDQo+KwlpZiAobXAtPmNhY2hlX3Np emUgPT0gMCkNCj4rCQlyZXR1cm4gY291bnQ7DQo+Kw0KPiAJZm9yIChsY29yZV9pZCA9IDA7IGxj b3JlX2lkIDwgUlRFX01BWF9MQ09SRTsgbGNvcmVfaWQrKykgew0KPiAJCWNhY2hlX2NvdW50ID0g bXAtPmxvY2FsX2NhY2hlW2xjb3JlX2lkXS5sZW47DQo+IAkJZnByaW50ZihmLCAiICAgIGNhY2hl X2NvdW50WyV1XT0ldVxuIiwgbGNvcmVfaWQsIGNhY2hlX2NvdW50KTsNCj5AQCAtNjg0LDExICs2 ODUsNiBAQCBydGVfbWVtcG9vbF9kdW1wX2NhY2hlKEZJTEUgKmYsIGNvbnN0IHN0cnVjdCBydGVf bWVtcG9vbCAqbXApDQo+IAl9DQo+IAlmcHJpbnRmKGYsICIgICAgdG90YWxfY2FjaGVfY291bnQ9 JXVcbiIsIGNvdW50KTsNCj4gCXJldHVybiBjb3VudDsNCj4tI2Vsc2UNCj4tCVJURV9TRVRfVVNF RChtcCk7DQo+LQlmcHJpbnRmKGYsICIgIGNhY2hlIGRpc2FibGVkXG4iKTsNCj4tCXJldHVybiAw Ow0KPi0jZW5kaWYNCj4gfQ0KPiANCj4gI2lmZGVmIFJURV9MSUJSVEVfTUVNUE9PTF9ERUJVRw0K PkBAIC03NTMsMTMgKzc0OSwxNiBAQCBtZW1wb29sX2F1ZGl0X2Nvb2tpZXMoY29uc3Qgc3RydWN0 IHJ0ZV9tZW1wb29sICptcCkNCj4gI2RlZmluZSBtZW1wb29sX2F1ZGl0X2Nvb2tpZXMobXApIGRv IHt9IHdoaWxlKDApDQo+ICNlbmRpZg0KPiANCj4tI2lmIFJURV9NRU1QT09MX0NBQ0hFX01BWF9T SVpFID4gMA0KPiAvKiBjaGVjayBjb29raWVzIGJlZm9yZSBhbmQgYWZ0ZXIgb2JqZWN0cyAqLw0K PiBzdGF0aWMgdm9pZA0KPiBtZW1wb29sX2F1ZGl0X2NhY2hlKGNvbnN0IHN0cnVjdCBydGVfbWVt cG9vbCAqbXApDQo+IHsNCj4gCS8qIGNoZWNrIGNhY2hlIHNpemUgY29uc2lzdGVuY3kgKi8NCj4g CXVuc2lnbmVkIGxjb3JlX2lkOw0KPisNCj4rCWlmIChtcC0+Y2FjaGVfc2l6ZSA9PSAwKQ0KPisJ CXJldHVybjsNCj4rDQo+IAlmb3IgKGxjb3JlX2lkID0gMDsgbGNvcmVfaWQgPCBSVEVfTUFYX0xD T1JFOyBsY29yZV9pZCsrKSB7DQo+IAkJaWYgKG1wLT5sb2NhbF9jYWNoZVtsY29yZV9pZF0ubGVu ID4gbXAtPmNhY2hlX2ZsdXNodGhyZXNoKSB7DQo+IAkJCVJURV9MT0coQ1JJVCwgTUVNUE9PTCwg ImJhZG5lc3Mgb24gY2FjaGVbJXVdXG4iLA0KPkBAIC03NjgsMTAgKzc2Nyw2IEBAIG1lbXBvb2xf YXVkaXRfY2FjaGUoY29uc3Qgc3RydWN0IHJ0ZV9tZW1wb29sICptcCkNCj4gCQl9DQo+IAl9DQo+ IH0NCj4tI2Vsc2UNCj4tI2RlZmluZSBtZW1wb29sX2F1ZGl0X2NhY2hlKG1wKSBkbyB7fSB3aGls ZSgwKQ0KPi0jZW5kaWYNCj4tDQo+IA0KPiAvKiBjaGVjayB0aGUgY29uc2lzdGVuY3kgb2YgbWVt cG9vbCAoc2l6ZSwgY29va2llcywgLi4uKSAqLw0KPiB2b2lkDQo+ZGlmZiAtLWdpdCBhL2xpYi9s aWJydGVfbWVtcG9vbC9ydGVfbWVtcG9vbC5oIGIvbGliL2xpYnJ0ZV9tZW1wb29sL3J0ZV9tZW1w b29sLmgNCj5pbmRleCA5NzQ1YmYwLi44NTk1ZTc3IDEwMDY0NA0KPi0tLSBhL2xpYi9saWJydGVf bWVtcG9vbC9ydGVfbWVtcG9vbC5oDQo+KysrIGIvbGliL2xpYnJ0ZV9tZW1wb29sL3J0ZV9tZW1w b29sLmgNCj5AQCAtOTUsNyArOTUsNiBAQCBzdHJ1Y3QgcnRlX21lbXBvb2xfZGVidWdfc3RhdHMg ew0KPiB9IF9fcnRlX2NhY2hlX2FsaWduZWQ7DQo+ICNlbmRpZg0KPiANCj4tI2lmIFJURV9NRU1Q T09MX0NBQ0hFX01BWF9TSVpFID4gMA0KPiAvKioNCj4gICogQSBzdHJ1Y3R1cmUgdGhhdCBzdG9y ZXMgYSBwZXItY29yZSBvYmplY3QgY2FjaGUuDQo+ICAqLw0KPkBAIC0xMDcsNyArMTA2LDYgQEAg c3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlIHsNCj4gCSAqLw0KPiAJdm9pZCAqb2Jqc1tSVEVfTUVN UE9PTF9DQUNIRV9NQVhfU0laRSAqIDNdOyAvKio8IENhY2hlIG9iamVjdHMgKi8NCj4gfSBfX3J0 ZV9jYWNoZV9hbGlnbmVkOw0KPi0jZW5kaWYgLyogUlRFX01FTVBPT0xfQ0FDSEVfTUFYX1NJWkUg PiAwICovDQo+IA0KPiAvKioNCj4gICogQSBzdHJ1Y3R1cmUgdGhhdCBzdG9yZXMgdGhlIHNpemUg b2YgbWVtcG9vbCBlbGVtZW50cy4NCj5AQCAtMTk0LDEwICsxOTIsNyBAQCBzdHJ1Y3QgcnRlX21l bXBvb2wgew0KPiANCj4gCXVuc2lnbmVkIHByaXZhdGVfZGF0YV9zaXplOyAgICAgIC8qKjwgU2l6 ZSBvZiBwcml2YXRlIGRhdGEuICovDQo+IA0KPi0jaWYgUlRFX01FTVBPT0xfQ0FDSEVfTUFYX1NJ WkUgPiAwDQo+LQkvKiogUGVyLWxjb3JlIGxvY2FsIGNhY2hlLiAqLw0KPi0Jc3RydWN0IHJ0ZV9t ZW1wb29sX2NhY2hlIGxvY2FsX2NhY2hlW1JURV9NQVhfTENPUkVdOw0KPi0jZW5kaWYNCj4rCXN0 cnVjdCBydGVfbWVtcG9vbF9jYWNoZSAqbG9jYWxfY2FjaGU7IC8qKjwgUGVyLWxjb3JlIGxvY2Fs IGNhY2hlICovDQo+IA0KPiAjaWZkZWYgUlRFX0xJQlJURV9NRU1QT09MX0RFQlVHDQo+IAkvKiog UGVyLWxjb3JlIHN0YXRpc3RpY3MuICovDQo+QEAgLTI0Nyw2ICsyNDIsMTMgQEAgc3RydWN0IHJ0 ZV9tZW1wb29sIHsNCj4gI2VuZGlmDQo+IA0KPiAvKioNCj4rICogU2l6ZSBvZiBlbHRfcGEgYXJy YXkgc2l6ZSBiYXNlZCBvbiBudW1iZXIgb2YgcGFnZXMuIChJbnRlcm5hbCB1c2UpDQo+KyAqLw0K PisjZGVmaW5lIF9fUEFfU0laRShtcCwgcGduKSBcDQo+KwlSVEVfQUxJR05fQ0VJTCgoKChwZ24p IC0gUlRFX0RJTSgobXApLT5lbHRfcGEpKSAqIFwNCj4rCXNpemVvZigobXApLT5lbHRfcGFbMF0p KSwgUlRFX0NBQ0hFX0xJTkVfU0laRSkNCj4rDQo+Ky8qKg0KPiAgKiBDYWxjdWxhdGUgdGhlIHNp emUgb2YgdGhlIG1lbXBvb2wgaGVhZGVyLg0KPiAgKg0KPiAgKiBAcGFyYW0gbXANCj5AQCAtMjU0 LDkgKzI1Niw5IEBAIHN0cnVjdCBydGVfbWVtcG9vbCB7DQo+ICAqIEBwYXJhbSBwZ24NCj4gICog ICBOdW1iZXIgb2YgcGFnZXMgdXNlZCB0byBzdG9yZSBtZW1wb29sIG9iamVjdHMuDQo+ICAqLw0K Pi0jZGVmaW5lCU1FTVBPT0xfSEVBREVSX1NJWkUobXAsIHBnbikJKHNpemVvZigqKG1wKSkgKyBc DQo+LQlSVEVfQUxJR05fQ0VJTCgoKHBnbikgLSBSVEVfRElNKChtcCktPmVsdF9wYSkpICogXA0K Pi0Jc2l6ZW9mICgobXApLT5lbHRfcGFbMF0pLCBSVEVfQ0FDSEVfTElORV9TSVpFKSkNCj4rI2Rl ZmluZSBNRU1QT09MX0hFQURFUl9TSVpFKG1wLCBwZ24sIGNzKSBcDQo+Kwkoc2l6ZW9mKCoobXAp KSArIF9fUEFfU0laRShtcCwgcGduKSArICgoKGNzKSA9PSAwKSA/IDAgOiBcDQo+Kwkoc2l6ZW9m KHN0cnVjdCBydGVfbWVtcG9vbF9jYWNoZSkgKiBSVEVfTUFYX0xDT1JFKSkpDQo+IA0KPiAvKioN Cj4gICogUmV0dXJuIHRydWUgaWYgdGhlIHdob2xlIG1lbXBvb2wgaXMgaW4gY29udGlndW91cyBt ZW1vcnkuDQo+QEAgLTc1NSwxOSArNzU3LDE2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2F0dHJp YnV0ZV9fKChhbHdheXNfaW5saW5lKSkNCj4gX19tZW1wb29sX3B1dF9idWxrKHN0cnVjdCBydGVf bWVtcG9vbCAqbXAsIHZvaWQgKiBjb25zdCAqb2JqX3RhYmxlLA0KPiAJCSAgICB1bnNpZ25lZCBu LCBpbnQgaXNfbXApDQo+IHsNCj4tI2lmIFJURV9NRU1QT09MX0NBQ0hFX01BWF9TSVpFID4gMA0K PiAJc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlICpjYWNoZTsNCj4gCXVpbnQzMl90IGluZGV4Ow0K PiAJdm9pZCAqKmNhY2hlX29ianM7DQo+IAl1bnNpZ25lZCBsY29yZV9pZCA9IHJ0ZV9sY29yZV9p ZCgpOw0KPiAJdWludDMyX3QgY2FjaGVfc2l6ZSA9IG1wLT5jYWNoZV9zaXplOw0KPiAJdWludDMy X3QgZmx1c2h0aHJlc2ggPSBtcC0+Y2FjaGVfZmx1c2h0aHJlc2g7DQo+LSNlbmRpZiAvKiBSVEVf TUVNUE9PTF9DQUNIRV9NQVhfU0laRSA+IDAgKi8NCj4gDQo+IAkvKiBpbmNyZW1lbnQgc3RhdCBu b3csIGFkZGluZyBpbiBtZW1wb29sIGFsd2F5cyBzdWNjZXNzICovDQo+IAlfX01FTVBPT0xfU1RB VF9BREQobXAsIHB1dCwgbik7DQo+IA0KPi0jaWYgUlRFX01FTVBPT0xfQ0FDSEVfTUFYX1NJWkUg PiAwDQo+IAkvKiBjYWNoZSBpcyBub3QgZW5hYmxlZCBvciBzaW5nbGUgcHJvZHVjZXIgb3Igbm9u LUVBTCB0aHJlYWQgKi8NCj4gCWlmICh1bmxpa2VseShjYWNoZV9zaXplID09IDAgfHwgaXNfbXAg PT0gMCB8fA0KPiAJCSAgICAgbGNvcmVfaWQgPj0gUlRFX01BWF9MQ09SRSkpDQo+QEAgLTgwMiw3 ICs4MDEsNiBAQCBfX21lbXBvb2xfcHV0X2J1bGsoc3RydWN0IHJ0ZV9tZW1wb29sICptcCwgdm9p ZCAqIGNvbnN0ICpvYmpfdGFibGUsDQo+IAlyZXR1cm47DQo+IA0KPiByaW5nX2VucXVldWU6DQo+ LSNlbmRpZiAvKiBSVEVfTUVNUE9PTF9DQUNIRV9NQVhfU0laRSA+IDAgKi8NCj4gDQo+IAkvKiBw dXNoIHJlbWFpbmluZyBvYmplY3RzIGluIHJpbmcgKi8NCj4gI2lmZGVmIFJURV9MSUJSVEVfTUVN UE9PTF9ERUJVRw0KPkBAIC05NDYsNyArOTQ0LDYgQEAgX19tZW1wb29sX2dldF9idWxrKHN0cnVj dCBydGVfbWVtcG9vbCAqbXAsIHZvaWQgKipvYmpfdGFibGUsDQo+IAkJICAgdW5zaWduZWQgbiwg aW50IGlzX21jKQ0KPiB7DQo+IAlpbnQgcmV0Ow0KPi0jaWYgUlRFX01FTVBPT0xfQ0FDSEVfTUFY X1NJWkUgPiAwDQo+IAlzdHJ1Y3QgcnRlX21lbXBvb2xfY2FjaGUgKmNhY2hlOw0KPiAJdWludDMy X3QgaW5kZXgsIGxlbjsNCj4gCXZvaWQgKipjYWNoZV9vYmpzOw0KPkBAIC05OTIsNyArOTg5LDYg QEAgX19tZW1wb29sX2dldF9idWxrKHN0cnVjdCBydGVfbWVtcG9vbCAqbXAsIHZvaWQgKipvYmpf dGFibGUsDQo+IAlyZXR1cm4gMDsNCj4gDQo+IHJpbmdfZGVxdWV1ZToNCj4tI2VuZGlmIC8qIFJU RV9NRU1QT09MX0NBQ0hFX01BWF9TSVpFID4gMCAqLw0KPiANCj4gCS8qIGdldCByZW1haW5pbmcg b2JqZWN0cyBmcm9tIHJpbmcgKi8NCj4gCWlmIChpc19tYykNCj5AQCAtMTI5Myw3ICsxMjg5LDgg QEAgdm9pZCBydGVfbWVtcG9vbF9hdWRpdChjb25zdCBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wKTsN Cj4gICovDQo+IHN0YXRpYyBpbmxpbmUgdm9pZCAqcnRlX21lbXBvb2xfZ2V0X3ByaXYoc3RydWN0 IHJ0ZV9tZW1wb29sICptcCkNCj4gew0KPi0JcmV0dXJuIChjaGFyICopbXAgKyBNRU1QT09MX0hF QURFUl9TSVpFKG1wLCBtcC0+cGdfbnVtKTsNCj4rCXJldHVybiAoY2hhciAqKW1wICsNCj4rCQlN RU1QT09MX0hFQURFUl9TSVpFKG1wLCBtcC0+cGdfbnVtLCBtcC0+Y2FjaGVfc2l6ZSk7DQo+IH0N Cj4gDQo+IC8qKg0KPi0tIA0KPjIuMS40DQo+DQo+DQoNCg0KUmVnYXJkcywNCktlaXRoDQoNCg0K DQoNCg==