From mboxrd@z Thu Jan 1 00:00:00 1970 From: Akhil Goyal Subject: Re: [PATCH v4 1/1] compress/qat: add dynamic sgl allocation Date: Sun, 17 Mar 2019 18:00:13 +0000 Message-ID: <7fff607f-1a5a-9dec-07e4-dc12e23b4bdf@nxp.com> References: <1551439054-17658-1-git-send-email-tomaszx.jozwiak@intel.com> <1551960136-30358-1-git-send-email-tomaszx.jozwiak@intel.com> <1551960136-30358-2-git-send-email-tomaszx.jozwiak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 To: Tomasz Jozwiak , "dev@dpdk.org" , "fiona.trahe@intel.com" Return-path: Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00055.outbound.protection.outlook.com [40.107.0.55]) by dpdk.org (Postfix) with ESMTP id C195D201 for ; Sun, 17 Mar 2019 19:00:15 +0100 (CET) In-Reply-To: <1551960136-30358-2-git-send-email-tomaszx.jozwiak@intel.com> Content-Language: en-US Content-ID: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgVG9tYXN6LA0KDQpJIGNhbiBzZWUgY29tcGlsYXRpb24gZmFpbHVyZSBpbiB0aGUgcGF0Y2h3 b3JrIENJIHRlc3RzLg0KQ291bGQgeW91IHBsZWFzZSBjaGVjay4NCg0KVGhhbmtzLg0KDQpPbiAz LzcvMjAxOSA1OjMyIFBNLCBUb21hc3ogSm96d2lhayB3cm90ZToNCj4gVGhpcyBwYXRjaCBhZGRz IGR5bmFtaWMgU0dMIGFsbG9jYXRpb24gaW5zdGVhZCBvZiBzdGF0aWMgb25lLg0KPiBUaGUgbnVt YmVyIG9mIGVsZW1lbnQgaW4gU0dMIGNhbiBiZSBhZGp1c3RlZCBpbiBlYWNoIG9wZXJhdGlvbg0K PiBkZXBlbmQgb2YgdGhlIHJlcXVlc3QuDQo+DQo+IFNpZ25lZC1vZmYtYnk6IFRvbWFzeiBKb3p3 aWFrIDx0b21hc3p4LmpvendpYWtAaW50ZWwuY29tPg0KPiAtLS0NCj4gICBjb25maWcvY29tbW9u X2Jhc2UgICAgICAgICAgICAgICAgICAgfCAgMSAtDQo+ICAgZG9jL2d1aWRlcy9jb21wcmVzc2Rl dnMvcWF0X2NvbXAucnN0IHwgIDEgLQ0KPiAgIGRvYy9ndWlkZXMvY3J5cHRvZGV2cy9xYXQucnN0 ICAgICAgICB8ICA1IC0tLS0NCj4gICBkcml2ZXJzL2NvbXByZXNzL3FhdC9xYXRfY29tcC5jICAg ICAgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0NCj4gICBkcml2ZXJz L2NvbXByZXNzL3FhdC9xYXRfY29tcC5oICAgICAgfCAxMyArKysrLS0tLQ0KPiAgIGRyaXZlcnMv Y29tcHJlc3MvcWF0L3FhdF9jb21wX3BtZC5jICB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysr KystLS0tLQ0KPiAgIDYgZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDI2IGRlbGV0 aW9ucygtKQ0KPg0KPiBkaWZmIC0tZ2l0IGEvY29uZmlnL2NvbW1vbl9iYXNlIGIvY29uZmlnL2Nv bW1vbl9iYXNlDQo+IGluZGV4IDBiMDlhOTMuLjkxYzdiNzMgMTAwNjQ0DQo+IC0tLSBhL2NvbmZp Zy9jb21tb25fYmFzZQ0KPiArKysgYi9jb25maWcvY29tbW9uX2Jhc2UNCj4gQEAgLTU0OSw3ICs1 NDksNiBAQCBDT05GSUdfUlRFX0xJQlJURV9QTURfUUFUX1NZTT1uDQo+ICAgIyBNYXguIG51bWJl ciBvZiBRdWlja0Fzc2lzdCBkZXZpY2VzLCB3aGljaCBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGF0dGFj aGVkDQo+ICAgIw0KPiAgIENPTkZJR19SVEVfUE1EX1FBVF9NQVhfUENJX0RFVklDRVM9NDgNCj4g LUNPTkZJR19SVEVfUE1EX1FBVF9DT01QX1NHTF9NQVhfU0VHTUVOVFM9MTYNCj4gICBDT05GSUdf UlRFX1BNRF9RQVRfQ09NUF9JTV9CVUZGRVJfU0laRT02NTUzNg0KPiAgIA0KPiAgICMNCj4gZGlm ZiAtLWdpdCBhL2RvYy9ndWlkZXMvY29tcHJlc3NkZXZzL3FhdF9jb21wLnJzdCBiL2RvYy9ndWlk ZXMvY29tcHJlc3NkZXZzL3FhdF9jb21wLnJzdA0KPiBpbmRleCA1NjMxY2IxLi42ZjU4M2E0IDEw MDY0NA0KPiAtLS0gYS9kb2MvZ3VpZGVzL2NvbXByZXNzZGV2cy9xYXRfY29tcC5yc3QNCj4gKysr IGIvZG9jL2d1aWRlcy9jb21wcmVzc2RldnMvcWF0X2NvbXAucnN0DQo+IEBAIC0zNSw3ICszNSw2 IEBAIExpbWl0YXRpb25zDQo+ICAgKiBDb21wcmVzc2RldiBsZXZlbCAwLCBubyBjb21wcmVzc2lv biwgaXMgbm90IHN1cHBvcnRlZC4NCj4gICAqIFF1ZXVlIHBhaXJzIGFyZSBub3QgdGhyZWFkLXNh ZmUgKHRoYXQgaXMsIHdpdGhpbiBhIHNpbmdsZSBxdWV1ZSBwYWlyLCBSWCBhbmQgVFggZnJvbSBk aWZmZXJlbnQgbGNvcmVzIGlzIG5vdCBzdXBwb3J0ZWQpLg0KPiAgICogTm8gQlNEIHN1cHBvcnQg YXMgQlNEIFFBVCBrZXJuZWwgZHJpdmVyIG5vdCBhdmFpbGFibGUuDQo+IC0qIE51bWJlciBvZiBz ZWdtZW50cyBpbiBtYnVmIGNoYWlucyBpbiB0aGUgb3AgbXVzdCBiZSA8PSBSVEVfUE1EX1FBVF9D T01QX1NHTF9NQVhfU0VHTUVOVFMgZnJvbSB0aGUgY29uZmlnIGZpbGUuDQo+ICAgKiBXaGVuIHVz aW5nIERlZmxhdGUgZHluYW1pYyBodWZmbWFuIGVuY29kaW5nIGZvciBjb21wcmVzc2lvbiwgdGhl IGlucHV0IHNpemUgKG9wLnNyYy5sZW5ndGgpDQo+ICAgICBtdXN0IGJlIDwgQ09ORklHX1JURV9Q TURfUUFUX0NPTVBfSU1fQlVGRkVSX1NJWkUgZnJvbSB0aGUgY29uZmlnIGZpbGUsDQo+ICAgICBz ZWUgOnJlZjpgYnVpbGRpbmdfcWF0X2NvbmZpZ2AgZm9yIG1vcmUgZGV0YWlscy4NCj4gZGlmZiAt LWdpdCBhL2RvYy9ndWlkZXMvY3J5cHRvZGV2cy9xYXQucnN0IGIvZG9jL2d1aWRlcy9jcnlwdG9k ZXZzL3FhdC5yc3QNCj4gaW5kZXggYjdlYWNlMS4uMDNiZDBjMSAxMDA2NDQNCj4gLS0tIGEvZG9j L2d1aWRlcy9jcnlwdG9kZXZzL3FhdC5yc3QNCj4gKysrIGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZz L3FhdC5yc3QNCj4gQEAgLTE1Niw3ICsxNTYsNiBAQCBUaGVzZSBhcmUgdGhlIGJ1aWxkIGNvbmZp Z3VyYXRpb24gb3B0aW9ucyBhZmZlY3RpbmcgUUFULCBhbmQgdGhlaXIgZGVmYXVsdCB2YWx1ZQ0K PiAgIAlDT05GSUdfUlRFX0xJQlJURV9QTURfUUFUPXkNCj4gICAJQ09ORklHX1JURV9MSUJSVEVf UE1EX1FBVF9TWU09bg0KPiAgIAlDT05GSUdfUlRFX1BNRF9RQVRfTUFYX1BDSV9ERVZJQ0VTPTQ4 DQo+IC0JQ09ORklHX1JURV9QTURfUUFUX0NPTVBfU0dMX01BWF9TRUdNRU5UUz0xNg0KPiAgIAlD T05GSUdfUlRFX1BNRF9RQVRfQ09NUF9JTV9CVUZGRVJfU0laRT02NTUzNg0KPiAgIA0KPiAgIENP TkZJR19SVEVfTElCUlRFX1BNRF9RQVQgbXVzdCBiZSBlbmFibGVkIGZvciBhbnkgUUFUIFBNRCB0 byBiZSBidWlsdC4NCj4gQEAgLTE3NCwxMCArMTczLDYgQEAgTm90ZSwgdGhlcmUgYXJlIHNlcGFy YXRlIGNvbmZpZyBpdGVtcyBmb3IgbWF4IGNyeXB0b2RldnMgQ09ORklHX1JURV9DUllQVE9fTUFY X0QNCj4gICBhbmQgbWF4IGNvbXByZXNzZGV2cyBDT05GSUdfUlRFX0NPTVBSRVNTX01BWF9ERVZT LCBpZiBuZWNlc3NhcnkgdGhlc2Ugc2hvdWxkIGJlDQo+ICAgYWRqdXN0ZWQgdG8gaGFuZGxlIHRo ZSB0b3RhbCBvZiBRQVQgYW5kIG90aGVyIGRldmljZXMgd2hpY2ggdGhlIHByb2Nlc3Mgd2lsbCB1 c2UuDQo+ICAgDQo+IC1RQVQgYWxsb2NhdGVzIGludGVybmFsIHN0cnVjdHVyZXMgdG8gaGFuZGxl IFNHTHMuIEZvciB0aGUgY29tcHJlc3Npb24gc2VydmljZQ0KPiAtQ09ORklHX1JURV9QTURfUUFU X0NPTVBfU0dMX01BWF9TRUdNRU5UUyBjYW4gYmUgY2hhbmdlZCBpZiBtb3JlIHNlZ21lbnRzIGFy ZSBuZWVkZWQuDQo+IC1BbiBleHRyYSAobWF4X2luZmxpZ2h0X29wcyB4IDE2KSBieXRlcyBwZXIg cXVldWVfcGFpciB3aWxsIGJlIHVzZWQgZm9yIGV2ZXJ5IGluY3JlbWVudC4NCj4gLQ0KPiAgIFFB VCBjb21wcmVzc2lvbiBQTUQgbmVlZHMgaW50ZXJtZWRpYXRlIGJ1ZmZlcnMgdG8gc3VwcG9ydCBE ZWZsYXRlIGNvbXByZXNzaW9uDQo+ICAgd2l0aCBEeW5hbWljIEh1ZmZtYW4gZW5jb2RpbmcuIENP TkZJR19SVEVfUE1EX1FBVF9DT01QX0lNX0JVRkZFUl9TSVpFDQo+ICAgc3BlY2lmaWVzIHRoZSBz aXplIG9mIGEgc2luZ2xlIGJ1ZmZlciwgdGhlIFBNRCB3aWxsIGFsbG9jYXRlIGEgbXVsdGlwbGUg b2YgdGhlc2UsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NvbXByZXNzL3FhdC9xYXRfY29tcC5j IGIvZHJpdmVycy9jb21wcmVzcy9xYXQvcWF0X2NvbXAuYw0KPiBpbmRleCAzMmNhNzUzLi5jMDIx ZjRhIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2NvbXByZXNzL3FhdC9xYXRfY29tcC5jDQo+ICsr KyBiL2RyaXZlcnMvY29tcHJlc3MvcWF0L3FhdF9jb21wLmMNCj4gQEAgLTEsNSArMSw1IEBADQo+ ICAgLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiAtICogQ29weXJp Z2h0KGMpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24NCj4gKyAqIENvcHlyaWdodChjKSAyMDE4LTIw MTkgSW50ZWwgQ29ycG9yYXRpb24NCj4gICAgKi8NCj4gICANCj4gICAjaW5jbHVkZSA8cnRlX21l bXBvb2wuaD4NCj4gQEAgLTU1LDIyICs1NSw3MCBAQCBxYXRfY29tcF9idWlsZF9yZXF1ZXN0KHZv aWQgKmluX29wLCB1aW50OF90ICpvdXRfbXNnLA0KPiAgIAkJSUNQX1FBVF9GV19DT01OX1BUUl9U WVBFX1NFVChjb21wX3JlcS0+Y29tbl9oZHIuY29tbl9yZXFfZmxhZ3MsDQo+ICAgCQkJCVFBVF9D T01OX1BUUl9UWVBFX1NHTCk7DQo+ICAgDQo+ICsJCWlmICh1bmxpa2VseShvcC0+bV9zcmMtPm5i X3NlZ3MgPiBjb29raWUtPnNyY19uYl9lbGVtcykpIHsNCj4gKwkJCS8qIHdlIG5lZWQgdG8gYWxs b2NhdGUgbW9yZSBlbGVtZW50cyBpbiBTR0wqLw0KPiArCQkJdm9pZCAqdG1wOw0KPiArDQo+ICsJ CQl0bXAgPSBydGVfcmVhbGxvY19zb2NrZXQoY29va2llLT5xYXRfc2dsX3NyY19kLA0KPiArCQkJ CQkgIHNpemVvZihzdHJ1Y3QgcWF0X3NnbCkgKw0KPiArCQkJCQkgIHNpemVvZihzdHJ1Y3QgcWF0 X2ZsYXRfYnVmKSAqDQo+ICsJCQkJCSAgb3AtPm1fc3JjLT5uYl9zZWdzLCA2NCwNCj4gKwkJCQkJ ICBydGVfc29ja2V0X2lkKCkpOw0KPiArDQo+ICsJCQlpZiAodW5saWtlbHkodG1wID09IE5VTEwp KSB7DQo+ICsJCQkJUUFUX0RQX0xPRyhFUlIsICJRQVQgUE1EIGNhbid0IGFsbG9jYXRlIG1lbW9y eSINCj4gKwkJCQkJICAgIiBmb3IgJWQgZWxlbWVudHMgb2YgU0dMIiwNCj4gKwkJCQkJICAgb3At Pm1fc3JjLT5uYl9zZWdzKTsNCj4gKwkJCQlvcC0+c3RhdHVzID0gUlRFX0NPTVBfT1BfU1RBVFVT X0lOVkFMSURfQVJHUzsNCj4gKwkJCQlyZXR1cm4gLUVOT01FTTsNCj4gKwkJCX0NCj4gKwkJCS8q IG5ldyBTR0wgaXMgdmFsaWQgbm93ICovDQo+ICsJCQljb29raWUtPnFhdF9zZ2xfc3JjX2QgPSAo c3RydWN0IHFhdF9zZ2wgKil0bXA7DQo+ICsJCQljb29raWUtPnNyY19uYl9lbGVtcyA9IG9wLT5t X3NyYy0+bmJfc2VnczsNCj4gKwkJCWNvb2tpZS0+cWF0X3NnbF9zcmNfcGh5c19hZGRyID0NCj4g KwkJCQlydGVfbWFsbG9jX3ZpcnQyaW92YShjb29raWUtPnFhdF9zZ2xfc3JjX2QpOw0KPiArCQl9 DQo+ICsNCj4gICAJCXJldCA9IHFhdF9zZ2xfZmlsbF9hcnJheShvcC0+bV9zcmMsDQo+ICAgCQkJ CW9wLT5zcmMub2Zmc2V0LA0KPiAtCQkJCSZjb29raWUtPnFhdF9zZ2xfc3JjLA0KPiArCQkJCWNv b2tpZS0+cWF0X3NnbF9zcmNfZCwNCj4gICAJCQkJb3AtPnNyYy5sZW5ndGgsDQo+IC0JCQkJUlRF X1BNRF9RQVRfQ09NUF9TR0xfTUFYX1NFR01FTlRTKTsNCj4gKwkJCQkoY29uc3QgdWludDE2X3Qp Y29va2llLT5zcmNfbmJfZWxlbXMpOw0KPiAgIAkJaWYgKHJldCkgew0KPiAgIAkJCVFBVF9EUF9M T0coRVJSLCAiUUFUIFBNRCBDYW5ub3QgZmlsbCBzb3VyY2Ugc2dsIGFycmF5Iik7DQo+ICAgCQkJ b3AtPnN0YXR1cyA9IFJURV9DT01QX09QX1NUQVRVU19JTlZBTElEX0FSR1M7DQo+ICAgCQkJcmV0 dXJuIHJldDsNCj4gICAJCX0NCj4gICANCj4gKwkJaWYgKHVubGlrZWx5KG9wLT5tX2RzdC0+bmJf c2VncyA+IGNvb2tpZS0+ZHN0X25iX2VsZW1zKSkgew0KPiArCQkJLyogd2UgbmVlZCB0byBhbGxv Y2F0ZSBtb3JlIGVsZW1lbnRzIGluIFNHTCovDQo+ICsJCQlzdHJ1Y3QgcWF0X3NnbCAqdG1wOw0K PiArDQo+ICsJCQl0bXAgPSBydGVfcmVhbGxvY19zb2NrZXQoY29va2llLT5xYXRfc2dsX2RzdF9k LA0KPiArCQkJCQkgIHNpemVvZihzdHJ1Y3QgcWF0X3NnbCkgKw0KPiArCQkJCQkgIHNpemVvZihz dHJ1Y3QgcWF0X2ZsYXRfYnVmKSAqDQo+ICsJCQkJCSAgb3AtPm1fZHN0LT5uYl9zZWdzLCA2NCwN Cj4gKwkJCQkJICBydGVfc29ja2V0X2lkKCkpOw0KPiArDQo+ICsJCQlpZiAodW5saWtlbHkodG1w ID09IE5VTEwpKSB7DQo+ICsJCQkJUUFUX0RQX0xPRyhFUlIsICJRQVQgUE1EIGNhbid0IGFsbG9j YXRlIG1lbW9yeSINCj4gKwkJCQkJICAgIiBmb3IgJWQgZWxlbWVudHMgb2YgU0dMIiwNCj4gKwkJ CQkJICAgb3AtPm1fZHN0LT5uYl9zZWdzKTsNCj4gKwkJCQlvcC0+c3RhdHVzID0gUlRFX0NPTVBf T1BfU1RBVFVTX0lOVkFMSURfQVJHUzsNCj4gKwkJCQlyZXR1cm4gLUVJTlZBTDsNCj4gKwkJCX0N Cj4gKwkJCS8qIG5ldyBTR0wgaXMgdmFsaWQgbm93ICovDQo+ICsJCQljb29raWUtPnFhdF9zZ2xf ZHN0X2QgPSAoc3RydWN0IHFhdF9zZ2wgKil0bXA7DQo+ICsJCQljb29raWUtPmRzdF9uYl9lbGVt cyA9IG9wLT5tX2RzdC0+bmJfc2VnczsNCj4gKwkJCWNvb2tpZS0+cWF0X3NnbF9kc3RfcGh5c19h ZGRyID0NCj4gKwkJCQlydGVfbWFsbG9jX3ZpcnQyaW92YShjb29raWUtPnFhdF9zZ2xfZHN0X2Qp Ow0KPiArCQl9DQo+ICsNCj4gICAJCXJldCA9IHFhdF9zZ2xfZmlsbF9hcnJheShvcC0+bV9kc3Qs DQo+ICAgCQkJCW9wLT5kc3Qub2Zmc2V0LA0KPiAtCQkJCSZjb29raWUtPnFhdF9zZ2xfZHN0LA0K PiArCQkJCWNvb2tpZS0+cWF0X3NnbF9kc3RfZCwNCj4gICAJCQkJY29tcF9yZXEtPmNvbXBfcGFy cy5vdXRfYnVmZmVyX3N6LA0KPiAtCQkJCVJURV9QTURfUUFUX0NPTVBfU0dMX01BWF9TRUdNRU5U Uyk7DQo+ICsJCQkJKGNvbnN0IHVpbnQxNl90KWNvb2tpZS0+ZHN0X25iX2VsZW1zKTsNCj4gICAJ CWlmIChyZXQpIHsNCj4gICAJCQlRQVRfRFBfTE9HKEVSUiwgIlFBVCBQTUQgQ2Fubm90IGZpbGwg ZGVzdC4gc2dsIGFycmF5Iik7DQo+ICAgCQkJb3AtPnN0YXR1cyA9IFJURV9DT01QX09QX1NUQVRV U19JTlZBTElEX0FSR1M7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NvbXByZXNzL3FhdC9xYXRf Y29tcC5oIGIvZHJpdmVycy9jb21wcmVzcy9xYXQvcWF0X2NvbXAuaA0KPiBpbmRleCAxOWY0OGRm Li4yNDY1ZjEyIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2NvbXByZXNzL3FhdC9xYXRfY29tcC5o DQo+ICsrKyBiL2RyaXZlcnMvY29tcHJlc3MvcWF0L3FhdF9jb21wLmgNCj4gQEAgLTEsNSArMSw1 IEBADQo+ICAgLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiAtICog Q29weXJpZ2h0KGMpIDIwMTUtMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbg0KPiArICogQ29weXJpZ2h0 KGMpIDIwMTUtMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbg0KPiAgICAqLw0KPiAgIA0KPiAgICNpZm5k ZWYgX1FBVF9DT01QX0hfDQo+IEBAIC0zNywxNiArMzcsMTUgQEAgc3RydWN0IHFhdF9pbnRlcl9z Z2wgew0KPiAgIAlzdHJ1Y3QgcWF0X2ZsYXRfYnVmIGJ1ZmZlcnNbUUFUX05VTV9CVUZTX0lOX0lN X1NHTF07DQo+ICAgfSBfX3J0ZV9wYWNrZWQgX19ydGVfY2FjaGVfYWxpZ25lZDsNCj4gICANCj4g LXN0cnVjdCBxYXRfY29tcF9zZ2wgew0KPiAtCXFhdF9zZ2xfaGRyOw0KPiAtCXN0cnVjdCBxYXRf ZmxhdF9idWYgYnVmZmVyc1tSVEVfUE1EX1FBVF9DT01QX1NHTF9NQVhfU0VHTUVOVFNdOw0KPiAt fSBfX3J0ZV9wYWNrZWQgX19ydGVfY2FjaGVfYWxpZ25lZDsNCj4gICANCj4gICBzdHJ1Y3QgcWF0 X2NvbXBfb3BfY29va2llIHsNCj4gLQlzdHJ1Y3QgcWF0X2NvbXBfc2dsIHFhdF9zZ2xfc3JjOw0K PiAtCXN0cnVjdCBxYXRfY29tcF9zZ2wgcWF0X3NnbF9kc3Q7DQo+ICAgCXBoeXNfYWRkcl90IHFh dF9zZ2xfc3JjX3BoeXNfYWRkcjsNCj4gICAJcGh5c19hZGRyX3QgcWF0X3NnbF9kc3RfcGh5c19h ZGRyOw0KPiArCS8qIGR5bmFtaWNhbGx5IGNyZWF0ZWQgU0dMcyAqLw0KPiArCXVpbnQxNl90IHNy Y19uYl9lbGVtczsNCj4gKwl1aW50MTZfdCBkc3RfbmJfZWxlbXM7DQo+ICsJc3RydWN0IHFhdF9z Z2wgKnFhdF9zZ2xfc3JjX2Q7DQo+ICsJc3RydWN0IHFhdF9zZ2wgKnFhdF9zZ2xfZHN0X2Q7DQo+ ICAgfTsNCj4gICANCj4gICBzdHJ1Y3QgcWF0X2NvbXBfeGZvcm0gew0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9jb21wcmVzcy9xYXQvcWF0X2NvbXBfcG1kLmMgYi9kcml2ZXJzL2NvbXByZXNzL3Fh dC9xYXRfY29tcF9wbWQuYw0KPiBpbmRleCAyN2M4ODU2Li5mMDM0YTE5IDEwMDY0NA0KPiAtLS0g YS9kcml2ZXJzL2NvbXByZXNzL3FhdC9xYXRfY29tcF9wbWQuYw0KPiArKysgYi9kcml2ZXJzL2Nv bXByZXNzL3FhdC9xYXRfY29tcF9wbWQuYw0KPiBAQCAtMSwxMCArMSwxNCBAQA0KPiAgIC8qIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gLSAqIENvcHlyaWdodChjKSAy MDE1LTIwMTggSW50ZWwgQ29ycG9yYXRpb24NCj4gKyAqIENvcHlyaWdodChjKSAyMDE1LTIwMTkg SW50ZWwgQ29ycG9yYXRpb24NCj4gICAgKi8NCj4gICANCj4gKyNpbmNsdWRlIDxydGVfbWFsbG9j Lmg+DQo+ICsNCj4gICAjaW5jbHVkZSAicWF0X2NvbXAuaCINCj4gICAjaW5jbHVkZSAicWF0X2Nv bXBfcG1kLmgiDQo+ICAgDQo+ICsjZGVmaW5lIFFBVF9QTURfQ09NUF9TR0xfREVGX1NFR01FTlRT IDE2DQo+ICsNCj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9jb21wcmVzc2Rldl9jYXBhYmls aXRpZXMgcWF0X2NvbXBfZ2VuX2NhcGFiaWxpdGllc1tdID0gew0KPiAgIAl7LyogQ09NUFJFU1NJ T04gLSBkZWZsYXRlICovDQo+ICAgCSAuYWxnbyA9IFJURV9DT01QX0FMR09fREVGTEFURSwNCj4g QEAgLTYwLDYgKzY0LDEwIEBAIHN0YXRpYyBpbnQNCj4gICBxYXRfY29tcF9xcF9yZWxlYXNlKHN0 cnVjdCBydGVfY29tcHJlc3NkZXYgKmRldiwgdWludDE2X3QgcXVldWVfcGFpcl9pZCkNCj4gICB7 DQo+ICAgCXN0cnVjdCBxYXRfY29tcF9kZXZfcHJpdmF0ZSAqcWF0X3ByaXZhdGUgPSBkZXYtPmRh dGEtPmRldl9wcml2YXRlOw0KPiArCXN0cnVjdCBxYXRfcXAgKipxcF9hZGRyID0NCj4gKwkJKHN0 cnVjdCBxYXRfcXAgKiopJihkZXYtPmRhdGEtPnF1ZXVlX3BhaXJzW3F1ZXVlX3BhaXJfaWRdKTsN Cj4gKwlzdHJ1Y3QgcWF0X3FwICpxcCA9IChzdHJ1Y3QgcWF0X3FwICopKnFwX2FkZHI7DQo+ICsJ dWludDMyX3QgaTsNCj4gICANCj4gICAJUUFUX0xPRyhERUJVRywgIlJlbGVhc2UgY29tcCBxcCAl dSBvbiBkZXZpY2UgJWQiLA0KPiAgIAkJCQlxdWV1ZV9wYWlyX2lkLCBkZXYtPmRhdGEtPmRldl9p ZCk7DQo+IEBAIC02Nyw2ICs3NSwxNCBAQCBxYXRfY29tcF9xcF9yZWxlYXNlKHN0cnVjdCBydGVf Y29tcHJlc3NkZXYgKmRldiwgdWludDE2X3QgcXVldWVfcGFpcl9pZCkNCj4gICAJcWF0X3ByaXZh dGUtPnFhdF9kZXYtPnFwc19pbl91c2VbUUFUX1NFUlZJQ0VfQ09NUFJFU1NJT05dW3F1ZXVlX3Bh aXJfaWRdDQo+ICAgCQkJCQkJPSBOVUxMOw0KPiAgIA0KPiArCWZvciAoaSA9IDA7IGkgPCBxcC0+ bmJfZGVzY3JpcHRvcnM7IGkrKykgew0KPiArDQo+ICsJCXN0cnVjdCBxYXRfY29tcF9vcF9jb29r aWUgKmNvb2tpZSA9IHFwLT5vcF9jb29raWVzW2ldOw0KPiArDQo+ICsJCXJ0ZV9mcmVlKGNvb2tp ZS0+cWF0X3NnbF9zcmNfZCk7DQo+ICsJCXJ0ZV9mcmVlKGNvb2tpZS0+cWF0X3NnbF9kc3RfZCk7 DQo+ICsJfQ0KPiArDQo+ICAgCXJldHVybiBxYXRfcXBfcmVsZWFzZSgoc3RydWN0IHFhdF9xcCAq KikNCj4gICAJCQkmKGRldi0+ZGF0YS0+cXVldWVfcGFpcnNbcXVldWVfcGFpcl9pZF0pKTsNCj4g ICB9DQo+IEBAIC0xMjIsMTUgKzEzOCwzNCBAQCBxYXRfY29tcF9xcF9zZXR1cChzdHJ1Y3QgcnRl X2NvbXByZXNzZGV2ICpkZXYsIHVpbnQxNl90IHFwX2lkLA0KPiAgIAkJc3RydWN0IHFhdF9jb21w X29wX2Nvb2tpZSAqY29va2llID0NCj4gICAJCQkJcXAtPm9wX2Nvb2tpZXNbaV07DQo+ICAgDQo+ ICsJCWNvb2tpZS0+cWF0X3NnbF9zcmNfZCA9IHJ0ZV96bWFsbG9jX3NvY2tldChOVUxMLA0KPiAr CQkJCQlzaXplb2Yoc3RydWN0IHFhdF9zZ2wpICsNCj4gKwkJCQkJc2l6ZW9mKHN0cnVjdCBxYXRf ZmxhdF9idWYpICoNCj4gKwkJCQkJUUFUX1BNRF9DT01QX1NHTF9ERUZfU0VHTUVOVFMsDQo+ICsJ CQkJCTY0LCBzb2NrZXRfaWQpOw0KPiArDQo+ICsJCWNvb2tpZS0+cWF0X3NnbF9kc3RfZCA9IHJ0 ZV96bWFsbG9jX3NvY2tldChOVUxMLA0KPiArCQkJCQlzaXplb2Yoc3RydWN0IHFhdF9zZ2wpICsN Cj4gKwkJCQkJc2l6ZW9mKHN0cnVjdCBxYXRfZmxhdF9idWYpICoNCj4gKwkJCQkJUUFUX1BNRF9D T01QX1NHTF9ERUZfU0VHTUVOVFMsDQo+ICsJCQkJCTY0LCBzb2NrZXRfaWQpOw0KPiArDQo+ICsJ CWlmIChjb29raWUtPnFhdF9zZ2xfc3JjX2QgPT0gTlVMTCB8fA0KPiArCQkJCWNvb2tpZS0+cWF0 X3NnbF9kc3RfZCA9PSBOVUxMKSB7DQo+ICsJCQlRQVRfTE9HKEVSUiwgIkNhbid0IGFsbG9jYXRl IFNHTCINCj4gKwkJCQkgICAgICIgZm9yIGRldmljZSAlcyIsDQo+ICsJCQkJICAgICBxYXRfcHJp dmF0ZS0+cWF0X2Rldi0+bmFtZSk7DQo+ICsJCQlyZXR1cm4gLUVOT01FTTsNCj4gKwkJfQ0KPiAr DQo+ICAgCQljb29raWUtPnFhdF9zZ2xfc3JjX3BoeXNfYWRkciA9DQo+IC0JCQkJcnRlX21lbXBv b2xfdmlydDJpb3ZhKGNvb2tpZSkgKw0KPiAtCQkJCW9mZnNldG9mKHN0cnVjdCBxYXRfY29tcF9v cF9jb29raWUsDQo+IC0JCQkJcWF0X3NnbF9zcmMpOw0KPiArCQkJCXJ0ZV9tYWxsb2NfdmlydDJp b3ZhKGNvb2tpZS0+cWF0X3NnbF9zcmNfZCk7DQo+ICAgDQo+ICAgCQljb29raWUtPnFhdF9zZ2xf ZHN0X3BoeXNfYWRkciA9DQo+IC0JCQkJcnRlX21lbXBvb2xfdmlydDJpb3ZhKGNvb2tpZSkgKw0K PiAtCQkJCW9mZnNldG9mKHN0cnVjdCBxYXRfY29tcF9vcF9jb29raWUsDQo+IC0JCQkJcWF0X3Nn bF9kc3QpOw0KPiArCQkJCXJ0ZV9tYWxsb2NfdmlydDJpb3ZhKGNvb2tpZS0+cWF0X3NnbF9kc3Rf ZCk7DQo+ICsNCj4gKwkJY29va2llLT5kc3RfbmJfZWxlbXMgPSBjb29raWUtPnNyY19uYl9lbGVt cyA9DQo+ICsJCQkJUUFUX1BNRF9DT01QX1NHTF9ERUZfU0VHTUVOVFM7DQo+ICAgCX0NCj4gICAN Cj4gICAJcmV0dXJuIHJldDsNCg0K