From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrei Vagin Date: Thu, 19 Apr 2018 18:29:13 +0000 Subject: Re: [PATCH v2] target/file: add support of direct and async I/O Message-Id: <20180419182912.GB15064@outlook.office365.com> List-Id: References: <20180322065502.25569-1-avagin@openvz.org> In-Reply-To: <20180322065502.25569-1-avagin@openvz.org> MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1258" Content-Transfer-Encoding: base64 To: target-devel@vger.kernel.org SGVsbG8gTmljaG9sYXMsCgpXaGF0IGRvIHlvdSB0aGluayBhYm91dCB0aGlzIHBhdGNoPwoKVGhh bmtzLApBbmRyZWkKCk9uIFdlZCwgTWFyIDIxLCAyMDE4IGF0IDExOjU1OjAyUE0gLTA3MDAsIEFu ZHJlaSBWYWdpbiB3cm90ZToKPiBUaGVyZSBhcmUgdHdvIGFkdmFudGFnZXM6Cj4gKiBEaXJlY3Qg SS9PIGFsbG93cyB0byBhdm9pZCB0aGUgd3JpdGUtYmFjayBjYWNoZSwgc28gaXQgcmVkdWNlcwo+ ICAgYWZmZWN0cyB0byBvdGhlciBwcm9jZXNzZXMgaW4gdGhlIHN5c3RlbS4KPiAqIEFzeW5jIEkv TyBhbGxvd3MgdG8gaGFuZGxlIGEgZmV3IGNvbW1hbmRzIGNvbmN1cnJlbnRseS4KPiAKPiBESU8g KyBBSU8gc2hvd3MgYSBiZXR0ZXIgcGVyZm9tYW5jZSBmb3IgcmFuZG9tIHdyaXRlIG9wZXJhdGlv bnM6Cj4gCj4gTW9kZTogT19EU1lOQyBBc3luYzogMQo+ICQgLi9maW8gLS1icz00SyAtLWRpcmVj dD0xIC0tcnc9cmFuZHdyaXRlIC0taW9lbmdpbmU9bGliYWlvIC0taW9kZXB0aGQgLS1uYW1lPS9k ZXYvc2RhIC0tcnVudGltZSAgLS1udW1qb2JzPTIKPiAgIFdSSVRFOiBid0UuOU1pQi9zICg0OC4x TUIvcyksIDIxLjlNaUIvcy0yMy4wTWlCL3MgKDIyLjBNQi9zLTI1LjJNQi9zKSwgaW+ROU1pQiAo OTYzTUIpLCBydW4gMDAyLTIwMDIwbXNlYwo+IAo+IE1vZGU6IE9fRFNZTkMgQXN5bmM6IDAKPiAk IC4vZmlvIC0tYnM9NEsgLS1kaXJlY3Q9MSAtLXJ3PXJhbmR3cml0ZSAtLWlvZW5naW5lPWxpYmFp byAtLWlvZGVwdGhkIC0tbmFtZT0vZGV2L3NkYiAtLXJ1bnRpbWUgIC0tbnVtam9icz0yCj4gICBX UklURTogYncWMDdLaUIvcyAoMTY0NWtCL3MpLCA4MDJLaUIvcy04MDVLaUIvcyAoODIxa0Ivcy04 MjRrQi9zKSwgaW8xLjhNaUIgKDMzLjRNQiksIHJ1biAyODAtMjAyOTVtc2VjCj4gCj4gS25vd24g aXNzdWU6Cj4gCj4gRElGIChQSSkgZW11bGF0aW9uIGRvZXNuJ3Qgd29yayB3aGVuIGEgdGFyZ2V0 IHVzZXMgYXN5bmMgSS9PLCBiZWNhdXNlCj4gRElGIG1ldGFkYXRhIGlzIHNhdmVkIGluIGEgc2Vw YXJhdGUgZmlsZSwgYW5kIGl0IGlzIGFub3RoZXIgbm9uLXRyaXZpYWwKPiB0YXNrIGhvdyB0byBz eW5jaHJvbml6ZSB3cml0aW5nIGluIHR3byBmaWxlcywgc28gdGhhdCBhIGZvbGxvd2luZyByZWFk Cj4gb3BlcmF0aW9uIGFsd2F5cyByZXR1cm5zIGEgY29uc2lzdGVuIG1ldGFkYXRhIGZvciBhIHNw ZWNpZmllZCBibG9jay4KPiAKPiB2MjogZml4IGNvbW1lbnRzIGZyb20gQ2hyaXN0b3BoIEhlbGx3 aWcKPiAKPiBDYzogIk5pY2hvbGFzIEEuIEJlbGxpbmdlciIgPG5hYkBsaW51eC1pc2NzaS5vcmc+ Cj4gQ2M6IENocmlzdG9waCBIZWxsd2lnIDxoY2hAaW5mcmFkZWFkLm9yZz4KPiBDYzogQnJ5YW50 IEcuIEx5IDxicnlhbnRseUBsaW51eC52bmV0LmlibS5jb20+Cj4gVGVzdGVkLWJ5OiBCcnlhbnQg Ry4gTHkgPGJyeWFudGx5QGxpbnV4LnZuZXQuaWJtLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBbmRy ZWkgVmFnaW4gPGF2YWdpbkBvcGVudnoub3JnPgo+IC0tLQo+ICBkcml2ZXJzL3RhcmdldC90YXJn ZXRfY29yZV9maWxlLmMgfCAxMzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0KPiAgZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfZmlsZS5oIHwgICAxICsKPiAgMiBmaWxl cyBjaGFuZ2VkLCAxMjQgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2ZpbGUuYyBiL2RyaXZlcnMvdGFyZ2V0 L3RhcmdldF9jb3JlX2ZpbGUuYwo+IGluZGV4IDliMmMwYzc3MzAyMi4uMTY3NTFhZTU1ZDdiIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2ZpbGUuYwo+ICsrKyBiL2Ry aXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2ZpbGUuYwo+IEBAIC0yNTAsNiArMjUwLDg0IEBAIHN0 YXRpYyB2b2lkIGZkX2Rlc3Ryb3lfZGV2aWNlKHN0cnVjdCBzZV9kZXZpY2UgKmRldikKPiAgCX0K PiAgfQo+ICAKPiArc3RydWN0IHRhcmdldF9jb3JlX2ZpbGVfY21kIHsKPiArCXVuc2lnbmVkIGxv bmcJbGVuOwo+ICsJc3RydWN0IHNlX2NtZAkqY21kOwo+ICsJc3RydWN0IGtpb2NiCWlvY2I7Cj4g K307Cj4gKwo+ICtzdGF0aWMgdm9pZCBjbWRfcndfYWlvX2NvbXBsZXRlKHN0cnVjdCBraW9jYiAq aW9jYiwgbG9uZyByZXQsIGxvbmcgcmV0MikKPiArewo+ICsJc3RydWN0IHRhcmdldF9jb3JlX2Zp bGVfY21kICpjbWQ7Cj4gKwo+ICsJY21kID0gY29udGFpbmVyX29mKGlvY2IsIHN0cnVjdCB0YXJn ZXRfY29yZV9maWxlX2NtZCwgaW9jYik7Cj4gKwo+ICsJaWYgKHJldCAhPSBjbWQtPmxlbikKPiAr CQl0YXJnZXRfY29tcGxldGVfY21kKGNtZC0+Y21kLCBTQU1fU1RBVF9DSEVDS19DT05ESVRJT04p Owo+ICsJZWxzZQo+ICsJCXRhcmdldF9jb21wbGV0ZV9jbWQoY21kLT5jbWQsIFNBTV9TVEFUX0dP T0QpOwo+ICsKPiArCWtmcmVlKGNtZCk7Cj4gK30KPiArCj4gK3N0YXRpYyBzZW5zZV9yZWFzb25f dAo+ICtmZF9leGVjdXRlX3J3X2FpbyhzdHJ1Y3Qgc2VfY21kICpjbWQsIHN0cnVjdCBzY2F0dGVy bGlzdCAqc2dsLCB1MzIgc2dsX25lbnRzLAo+ICsJICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rp b24gZGF0YV9kaXJlY3Rpb24pCj4gK3sKPiArCWludCBpc193cml0ZSA9ICEoZGF0YV9kaXJlY3Rp b24gPSBETUFfRlJPTV9ERVZJQ0UpOwo+ICsJc3RydWN0IHNlX2RldmljZSAqZGV2ID0gY21kLT5z ZV9kZXY7Cj4gKwlzdHJ1Y3QgZmRfZGV2ICpmZF9kZXYgPSBGRF9ERVYoZGV2KTsKPiArCXN0cnVj dCBmaWxlICpmaWxlID0gZmRfZGV2LT5mZF9maWxlOwo+ICsJc3RydWN0IHRhcmdldF9jb3JlX2Zp bGVfY21kICphaW9fY21kOwo+ICsJc3RydWN0IGlvdl9pdGVyIGl0ZXIgPSB7fTsKPiArCXN0cnVj dCBzY2F0dGVybGlzdCAqc2c7Cj4gKwlzdHJ1Y3QgYmlvX3ZlYyAqYnZlYzsKPiArCXNzaXplX3Qg bGVuID0gMDsKPiArCWludCByZXQgPSAwLCBpOwo+ICsKPiArCWFpb19jbWQgPSBrbWFsbG9jKHNp emVvZihzdHJ1Y3QgdGFyZ2V0X2NvcmVfZmlsZV9jbWQpLCBHRlBfS0VSTkVMKTsKPiArCWlmICgh YWlvX2NtZCkKPiArCQlyZXR1cm4gVENNX0xPR0lDQUxfVU5JVF9DT01NVU5JQ0FUSU9OX0ZBSUxV UkU7Cj4gKwo+ICsJYnZlYyA9IGtjYWxsb2Moc2dsX25lbnRzLCBzaXplb2Yoc3RydWN0IGJpb192 ZWMpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghYnZlYykgewo+ICsJCWtmcmVlKGFpb19jbWQpOwo+ ICsJCXJldHVybiBUQ01fTE9HSUNBTF9VTklUX0NPTU1VTklDQVRJT05fRkFJTFVSRTsKPiArCX0K PiArCj4gKwlmb3JfZWFjaF9zZyhzZ2wsIHNnLCBzZ2xfbmVudHMsIGkpIHsKPiArCQlidmVjW2ld LmJ2X3BhZ2UgPSBzZ19wYWdlKHNnKTsKPiArCQlidmVjW2ldLmJ2X2xlbiA9IHNnLT5sZW5ndGg7 Cj4gKwkJYnZlY1tpXS5idl9vZmZzZXQgPSBzZy0+b2Zmc2V0Owo+ICsKPiArCQlsZW4gKz0gc2ct Pmxlbmd0aDsKPiArCX0KPiArCj4gKwlpb3ZfaXRlcl9idmVjKCZpdGVyLCBJVEVSX0JWRUMgfCBp c193cml0ZSwgYnZlYywgc2dsX25lbnRzLCBsZW4pOwo+ICsKPiArCWFpb19jbWQtPmNtZCA9IGNt ZDsKPiArCWFpb19jbWQtPmxlbiA9IGxlbjsKPiArCWFpb19jbWQtPmlvY2Iua2lfcG9zID0gY21k LT50X3Rhc2tfbGJhICogZGV2LT5kZXZfYXR0cmliLmJsb2NrX3NpemU7Cj4gKwlhaW9fY21kLT5p b2NiLmtpX2ZpbHAgPSBmaWxlOwo+ICsJYWlvX2NtZC0+aW9jYi5raV9jb21wbGV0ZSA9IGNtZF9y d19haW9fY29tcGxldGU7Cj4gKwlhaW9fY21kLT5pb2NiLmtpX2ZsYWdzID0gSU9DQl9ESVJFQ1Q7 Cj4gKwo+ICsJaWYgKGlzX3dyaXRlICYmIChjbWQtPnNlX2NtZF9mbGFncyAmIFNDRl9GVUEpKQo+ ICsJCWFpb19jbWQtPmlvY2Iua2lfZmxhZ3MgfD0gSU9DQl9EU1lOQzsKPiArCj4gKwlpZiAoaXNf d3JpdGUpCj4gKwkJcmV0ID0gY2FsbF93cml0ZV9pdGVyKGZpbGUsICZhaW9fY21kLT5pb2NiLCAm aXRlcik7Cj4gKwllbHNlCj4gKwkJcmV0ID0gY2FsbF9yZWFkX2l0ZXIoZmlsZSwgJmFpb19jbWQt PmlvY2IsICZpdGVyKTsKPiArCj4gKwlrZnJlZShidmVjKTsKPiArCj4gKwlpZiAocmV0ICE9IC1F SU9DQlFVRVVFRCkKPiArCQljbWRfcndfYWlvX2NvbXBsZXRlKCZhaW9fY21kLT5pb2NiLCByZXQs IDApOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGZkX2RvX3J3KHN0 cnVjdCBzZV9jbWQgKmNtZCwgc3RydWN0IGZpbGUgKmZkLAo+ICAJCSAgICB1MzIgYmxvY2tfc2l6 ZSwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2wsCj4gIAkJICAgIHUzMiBzZ2xfbmVudHMsIHUzMiBk YXRhX2xlbmd0aCwgaW50IGlzX3dyaXRlKQo+IEBAIC01MjcsNyArNjA1LDcgQEAgZmRfZXhlY3V0 ZV91bm1hcChzdHJ1Y3Qgc2VfY21kICpjbWQsIHNlY3Rvcl90IGxiYSwgc2VjdG9yX3Qgbm9sYikK PiAgfQo+ICAKPiAgc3RhdGljIHNlbnNlX3JlYXNvbl90Cj4gLWZkX2V4ZWN1dGVfcncoc3RydWN0 IHNlX2NtZCAqY21kLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbCwgdTMyIHNnbF9uZW50cywKPiAr ZmRfZXhlY3V0ZV9yd19idWZmZXJlZChzdHJ1Y3Qgc2VfY21kICpjbWQsIHN0cnVjdCBzY2F0dGVy bGlzdCAqc2dsLCB1MzIgc2dsX25lbnRzLAo+ICAJICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rp b24gZGF0YV9kaXJlY3Rpb24pCj4gIHsKPiAgCXN0cnVjdCBzZV9kZXZpY2UgKmRldiA9IGNtZC0+ c2VfZGV2Owo+IEBAIC01MzcsMTYgKzYxNSw2IEBAIGZkX2V4ZWN1dGVfcncoc3RydWN0IHNlX2Nt ZCAqY21kLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbCwgdTMyIHNnbF9uZW50cywKPiAgCXNlbnNl X3JlYXNvbl90IHJjOwo+ICAJaW50IHJldCA9IDA7Cj4gIAkvKgo+IC0JICogV2UgYXJlIGN1cnJl bnRseSBsaW1pdGVkIGJ5IHRoZSBudW1iZXIgb2YgaW92ZWNzICgyMDQ4KSBwZXIKPiAtCSAqIHNp bmdsZSB2ZnNfW3dyaXRldixyZWFkdl0gY2FsbC4KPiAtCSAqLwo+IC0JaWYgKGNtZC0+ZGF0YV9s ZW5ndGggPiBGRF9NQVhfQllURVMpIHsKPiAtCQlwcl9lcnIoIkZJTEVJTzogTm90IGFibGUgdG8g cHJvY2VzcyBJL08gb2YgJXUgYnl0ZXMgZHVlIHRvIgo+IC0JCSAgICAgICAiRkRfTUFYX0JZVEVT OiAldSBpb3ZlYyBjb3VudCBsaW1pdGF0aW9uXG4iLAo+IC0JCQljbWQtPmRhdGFfbGVuZ3RoLCBG RF9NQVhfQllURVMpOwo+IC0JCXJldHVybiBUQ01fTE9HSUNBTF9VTklUX0NPTU1VTklDQVRJT05f RkFJTFVSRTsKPiAtCX0KPiAtCS8qCj4gIAkgKiBDYWxsIHZlY3Rvcml6ZWQgZmlsZWlvIGZ1bmN0 aW9ucyB0byBtYXAgc3RydWN0IHNjYXR0ZXJsaXN0Cj4gIAkgKiBwaHlzaWNhbCBtZW1vcnkgYWRk cmVzc2VzIHRvIHN0cnVjdCBpb3ZlYyB2aXJ0dWFsIG1lbW9yeS4KPiAgCSAqLwo+IEBAIC02MjAs MTQgKzY4OCwzOSBAQCBmZF9leGVjdXRlX3J3KHN0cnVjdCBzZV9jbWQgKmNtZCwgc3RydWN0IHNj YXR0ZXJsaXN0ICpzZ2wsIHUzMiBzZ2xfbmVudHMsCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAr c3RhdGljIHNlbnNlX3JlYXNvbl90Cj4gK2ZkX2V4ZWN1dGVfcncoc3RydWN0IHNlX2NtZCAqY21k LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbCwgdTMyIHNnbF9uZW50cywKPiArCSAgICAgIGVudW0g ZG1hX2RhdGFfZGlyZWN0aW9uIGRhdGFfZGlyZWN0aW9uKQo+ICt7Cj4gKwlzdHJ1Y3Qgc2VfZGV2 aWNlICpkZXYgPSBjbWQtPnNlX2RldjsKPiArCXN0cnVjdCBmZF9kZXYgKmZkX2RldiA9IEZEX0RF VihkZXYpOwo+ICsKPiArCS8qCj4gKwkgKiBXZSBhcmUgY3VycmVudGx5IGxpbWl0ZWQgYnkgdGhl IG51bWJlciBvZiBpb3ZlY3MgKDIwNDgpIHBlcgo+ICsJICogc2luZ2xlIHZmc19bd3JpdGV2LHJl YWR2XSBjYWxsLgo+ICsJICovCj4gKwlpZiAoY21kLT5kYXRhX2xlbmd0aCA+IEZEX01BWF9CWVRF Uykgewo+ICsJCXByX2VycigiRklMRUlPOiBOb3QgYWJsZSB0byBwcm9jZXNzIEkvTyBvZiAldSBi eXRlcyBkdWUgdG8iCj4gKwkJICAgICAgICJGRF9NQVhfQllURVM6ICV1IGlvdmVjIGNvdW50IGxp bWl0YXRpb25cbiIsCj4gKwkJCWNtZC0+ZGF0YV9sZW5ndGgsIEZEX01BWF9CWVRFUyk7Cj4gKwkJ cmV0dXJuIFRDTV9MT0dJQ0FMX1VOSVRfQ09NTVVOSUNBVElPTl9GQUlMVVJFOwo+ICsJfQo+ICsK PiArCWlmIChmZF9kZXYtPmZiZF9mbGFncyAmIEZEQkRfSEFTX0FTWU5DX0lPKQo+ICsJCXJldHVy biBmZF9leGVjdXRlX3J3X2FpbyhjbWQsIHNnbCwgc2dsX25lbnRzLCBkYXRhX2RpcmVjdGlvbik7 Cj4gKwlyZXR1cm4gZmRfZXhlY3V0ZV9yd19idWZmZXJlZChjbWQsIHNnbCwgc2dsX25lbnRzLCBk YXRhX2RpcmVjdGlvbik7Cj4gK30KPiArCj4gIGVudW0gewo+IC0JT3B0X2ZkX2Rldl9uYW1lLCBP cHRfZmRfZGV2X3NpemUsIE9wdF9mZF9idWZmZXJlZF9pbywgT3B0X2Vycgo+ICsJT3B0X2ZkX2Rl dl9uYW1lLCBPcHRfZmRfZGV2X3NpemUsIE9wdF9mZF9idWZmZXJlZF9pbywKPiArCU9wdF9mZF9h c3luY19pbywgT3B0X2Vycgo+ICB9Owo+ICAKPiAgc3RhdGljIG1hdGNoX3RhYmxlX3QgdG9rZW5z ID0gewo+ICAJe09wdF9mZF9kZXZfbmFtZSwgImZkX2Rldl9uYW1lPSVzIn0sCj4gIAl7T3B0X2Zk X2Rldl9zaXplLCAiZmRfZGV2X3NpemU9JXMifSwKPiAgCXtPcHRfZmRfYnVmZmVyZWRfaW8sICJm ZF9idWZmZXJlZF9pbz0lZCJ9LAo+ICsJe09wdF9mZF9hc3luY19pbywgImZkX2FzeW5jX2lvPSVk In0sCj4gIAl7T3B0X2VyciwgTlVMTH0KPiAgfTsKPiAgCj4gQEAgLTY5Myw2ICs3ODYsMjEgQEAg c3RhdGljIHNzaXplX3QgZmRfc2V0X2NvbmZpZ2ZzX2Rldl9wYXJhbXMoc3RydWN0IHNlX2Rldmlj ZSAqZGV2LAo+ICAKPiAgCQkJZmRfZGV2LT5mYmRfZmxhZ3MgfD0gRkRCRF9IQVNfQlVGRkVSRURf SU9fV0NFOwo+ICAJCQlicmVhazsKPiArCQljYXNlIE9wdF9mZF9hc3luY19pbzoKPiArCQkJcmV0 ID0gbWF0Y2hfaW50KGFyZ3MsICZhcmcpOwo+ICsJCQlpZiAocmV0KQo+ICsJCQkJZ290byBvdXQ7 Cj4gKwkJCWlmIChhcmcgIT0gMSkgewo+ICsJCQkJcHJfZXJyKCJib2d1cyBmZF9hc3luY19pbz0l ZCB2YWx1ZVxuIiwgYXJnKTsKPiArCQkJCXJldCA9IC1FSU5WQUw7Cj4gKwkJCQlnb3RvIG91dDsK PiArCQkJfQo+ICsKPiArCQkJcHJfZGVidWcoIkZJTEVJTzogVXNpbmcgYXN5bmMgSS9PIgo+ICsJ CQkJIiBvcGVyYXRpb25zIGZvciBzdHJ1Y3QgZmRfZGV2XG4iKTsKPiArCj4gKwkJCWZkX2Rldi0+ ZmJkX2ZsYWdzIHw9IEZEQkRfSEFTX0FTWU5DX0lPOwo+ICsJCQlicmVhazsKPiAgCQlkZWZhdWx0 Ogo+ICAJCQlicmVhazsKPiAgCQl9Cj4gQEAgLTcwOSwxMCArODE3LDExIEBAIHN0YXRpYyBzc2l6 ZV90IGZkX3Nob3dfY29uZmlnZnNfZGV2X3BhcmFtcyhzdHJ1Y3Qgc2VfZGV2aWNlICpkZXYsIGNo YXIgKmIpCj4gIAlzc2l6ZV90IGJsID0gMDsKPiAgCj4gIAlibCA9IHNwcmludGYoYiArIGJsLCAi VENNIEZJTEVJTyBJRDogJXUiLCBmZF9kZXYtPmZkX2Rldl9pZCk7Cj4gLQlibCArPSBzcHJpbnRm KGIgKyBibCwgIiAgICAgICAgRmlsZTogJXMgIFNpemU6ICVsbHUgIE1vZGU6ICVzXG4iLAo+ICsJ YmwgKz0gc3ByaW50ZihiICsgYmwsICIgICAgICAgIEZpbGU6ICVzICBTaXplOiAlbGx1ICBNb2Rl OiAlcyBBc3luYzogJWRcbiIsCj4gIAkJZmRfZGV2LT5mZF9kZXZfbmFtZSwgZmRfZGV2LT5mZF9k ZXZfc2l6ZSwKPiAgCQkoZmRfZGV2LT5mYmRfZmxhZ3MgJiBGREJEX0hBU19CVUZGRVJFRF9JT19X Q0UpID8KPiAtCQkiQnVmZmVyZWQtV0NFIiA6ICJPX0RTWU5DIik7Cj4gKwkJIkJ1ZmZlcmVkLVdD RSIgOiAiT19EU1lOQyIsCj4gKwkJISEoZmRfZGV2LT5mYmRfZmxhZ3MgJiBGREJEX0hBU19BU1lO Q19JTykpOwo+ICAJcmV0dXJuIGJsOwo+ICB9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Rh cmdldC90YXJnZXRfY29yZV9maWxlLmggYi9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV9maWxl LmgKPiBpbmRleCA1M2JlNWZmZDMyNjEuLjkyOWIxZWNkNTQ0ZSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL3RhcmdldC90YXJnZXRfY29yZV9maWxlLmgKPiArKysgYi9kcml2ZXJzL3RhcmdldC90YXJn ZXRfY29yZV9maWxlLmgKPiBAQCAtMjIsNiArMjIsNyBAQAo+ICAjZGVmaW5lIEZCREZfSEFTX1BB VEgJCTB4MDEKPiAgI2RlZmluZSBGQkRGX0hBU19TSVpFCQkweDAyCj4gICNkZWZpbmUgRkRCRF9I QVNfQlVGRkVSRURfSU9fV0NFIDB4MDQKPiArI2RlZmluZSBGREJEX0hBU19BU1lOQ19JTwkgMHgw OAo+ICAjZGVmaW5lIEZEQkRfRk9STUFUX1VOSVRfU0laRQkyMDQ4Cj4gIAo+ICBzdHJ1Y3QgZmRf ZGV2IHsKPiAtLSAKPiAyLjEzLjYKPiAKLS0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6 IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIHRhcmdldC1kZXZlbCIgaW4KdGhlIGJvZHkgb2Yg YSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcKTW9yZSBtYWpvcmRvbW8gaW5m byBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1s