From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from outboundhk.mxmail.xiaomi.com ([207.226.244.122]:4097 "EHLO xiaomi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754826AbcLNKMH (ORCPT ); Wed, 14 Dec 2016 05:12:07 -0500 From: =?utf-8?B?5bSU56uL6aOe?= To: "Rafael J. Wysocki" CC: "linux-kernel@vger.kernel.org" , "miklos@szeredi.hu" , "pavel@ucw.cz" , "len.brown@intel.com" , "linux-fsdevel@vger.kernel.org" , "viro@zeniv.linux.org.uk" , =?utf-8?B?5py06Iux5pWP?= , =?utf-8?B?5YiY5omN?= , Jiri Kosina Subject: =?utf-8?B?562U5aSNOiBbUEFUQ0hdIGZ1c2U6IGZyZWV6aW5nIGFib3J0IHdoZW4gdXNl?= =?utf-8?B?IHdhaXRfZXZlbnRfa2lsbGFibGV7LF9leGNsdXNpdmV9KCku?= Date: Wed, 14 Dec 2016 10:09:25 +0000 Message-ID: <1481710223467.95625@xiaomi.com> References: <1480907985-1494-1-git-send-email-cuilifei@xiaomi.com>,<2611375.NpU9fySFZX@aspire.rjw.lan>,<1481178779996.35846@xiaomi.com> In-Reply-To: <1481178779996.35846@xiaomi.com> Content-Language: zh-CN Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-fsdevel-owner@vger.kernel.org List-ID: UmFmYWVsLAoKQW55IHF1ZXN0aW9ucyBhYm91dCB0aGUgcGF0Y2gsIHBsZWFzZSBsZXQgbWUga25v dy4KClRoYW5rcyEKCkJSLApDdWkgTGkgRmVpCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18K5Y+R5Lu25Lq6OiDltJTnq4vpo54K5Y+R6YCB5pe26Ze0OiAyMDE25bm0MTLm nIg45pelIDE0OjMxCuaUtuS7tuS6ujogUmFmYWVsIEouIFd5c29ja2kK5oqE6YCBOiBsaW51eC1r ZXJuZWxAdmdlci5rZXJuZWwub3JnOyBtaWtsb3NAc3plcmVkaS5odTsgcGF2ZWxAdWN3LmN6OyBs ZW4uYnJvd25AaW50ZWwuY29tOyBsaW51eC1mc2RldmVsQHZnZXIua2VybmVsLm9yZzsgdmlyb0B6 ZW5pdi5saW51eC5vcmcudWs7IOactOiLseaVjzsg5YiY5omNOyBKaXJpIEtvc2luYTsg5bSU56uL 6aOeCuS4u+mimDog562U5aSNOiBbUEFUQ0hdIGZ1c2U6IGZyZWV6aW5nIGFib3J0IHdoZW4gdXNl IHdhaXRfZXZlbnRfa2lsbGFibGV7LF9leGNsdXNpdmV9KCkuCgpIaSBSYWZhZWwsCgpUaGUgZnVz ZSB3ZSB1c2VkIGlzIHdpdGhvdXQgdGhlIGNvbW1pdCAiZnVzZTogZG9uJ3QgbWVzcyB3aXRoIGJs b2NraW5nIHNpZ25hbHMiIGNvbW1pdHRlZCBieSBBbCBWaXJvLgpTbyB3ZSBmaW5kIHRoZSBpc3N1 ZSBTSUdCVVMuIEluIHRoZSBwYWdlIGZhdWx0LCB0cnlpbmcgdG8gcmVhZCBwYWdlIGluIGZ1c2Ug aXMgaW50ZXJydXB0ZWQsCndoaWNoIHdpbGwgbGVhZCB0byBTSUdCVVMgaXNzdWUuCgpBbGwgQW5k cm9pZCBwbGF0Zm9ybXMsIGluY2x1ZGUgQW5kcm9pZCBOLCBoYXZlIHRoZSBTSUdVQlMgaXNzdWUu IEFsbCB0aGUgU0lHQlVTIGlzc3VlcyBhcmUgcHJvZHVjZWQKaW4gdGhlIGZyZWV6aW5nIHByb2Nl c3MuCgpJbiBvdXIgQW5kcm9pZCBwbGF0Zm9ybSwgdGhlIHJvb3QtY2F1c2Ugb2YgU0lHQlVTIGlz IDoKc3VzcGVuZCBwcm9jZWR1cmUgd2lsbCBzZXQgdGhlIHNpZ25hbCBwZW5kaW5nIGZsYWcoVElG X1NJR1BFTkRJTkcpIGFuZCB0aGVuIHdha2UgdXAgdGhlIHRhc2sKd2hpY2ggaXMgVEFTS19JTlRF UlJVUFRJQkxFIHN0YXR1cyAuIFRoZSByZXF1ZXN0X3dhaXRfYW5zd2VyLCB3aGljaCBjYWxscyB3 YWl0X2V2ZW50X2ludGVycnVwdGlibGUsCmlzIGludGVycnVwdGVkIGFuZCB0aGUgZnVzZSByZXF1 ZXN0IGlzIHN0aWxsIGluIHBlbmRpbmcgc3RhdHVzLCB3aGljaCBsZWFkcyB0byBTSUdCVVMgc2Vu dCB0byBjYWxsZXIuCgpUaGlzIGlzc3VlIGNhbiBiZSByZXByb2R1Y2VkIGJ5IGFkZGluZyBkZWxh eXMgaW4gZnVuY2l0b24gaGFuZGxlX3JlYWQsCndoaWNoIGlzIGluIHRoZSBBbmRyb2lkIHNkY2Fy ZCBkYWVtb24gcHJvY2Vzcy4KClNvIHdlIG1lcmdlIHRoZSBjb21taXQgImZ1c2U6IGRvbid0IG1l c3Mgd2l0aCBibG9ja2luZyBzaWduYWxzIiwgd2hpY2gganVzdCB1c2Ugd2FpdF9ldmVudF9raWxs YWJsZXssX2V4Y2x1c2l2ZX0oKS4KSXQgZml4IHRoZSBTSUdCVVMgaXNzdWUuIEJ1dCB0aGUgZnJl ZXppbmcgd2lsbCBmYWlsLCBiZWNhdXNlIHRoZSBmcmVlemluZyBwcm9jZWR1cmUgY2Fubm90IHdh a2UgdXAgdGhlIHRhc2sgd2hpY2gKaXMgaW4gVEFTS19LSUxMQUJMRShUQVNLX1dBS0VLSUxMIHwg VEFTS19VTklOVEVSUlVQVElCTEUpIHN0YXR1cy4gQW5kIHRoZSBzdXNwZW5kIHByb2NlZHVyZSB3 aWxsIGFib3J0CnVudGlsIHRoZSB0aW1lIGlzIG91dC4KCkluIHRoaXMgcGF0Y2gsIHdlIHRyeSB0 byBmaXggdGhlIGlzc3VlIG1lbnRpb25lZCBhYm92ZS4KPiAtLS0KPsKgwqAgZnMvZnVzZS9kZXYu YyAgICAgICAgICAgfCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPsKgwqAgaW5j bHVkZS9saW51eC9mcmVlemVyLmggfCAyNiArKysrKysrKysrKysrKysrKysrKysrKysrKwo+wqDC oCAyIGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4KPiBk aWZmIC0tZ2l0IGEvZnMvZnVzZS9kZXYuYyBiL2ZzL2Z1c2UvZGV2LmMKPiBpbmRleCA3MGVhNTdj Li5lMzNhMDgxIDEwMDY0NAo+IC0tLSBhL2ZzL2Z1c2UvZGV2LmMKPiArKysgYi9mcy9mdXNlL2Rl di5jCj4gQEAgLTE5LDYgKzE5LDcgQEAKPsKgwqAgI2luY2x1ZGUgPGxpbnV4L3BpcGVfZnNfaS5o Pgo+wqDCoCAjaW5jbHVkZSA8bGludXgvc3dhcC5oPgo+wqDCoCAjaW5jbHVkZSA8bGludXgvc3Bs aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9mcmVlemVyLmg+Cj7CoMKgCj7CoMKgIE1PRFVMRV9B TElBU19NSVNDREVWKEZVU0VfTUlOT1IpOwo+wqDCoCBNT0RVTEVfQUxJQVMoImRldm5hbWU6ZnVz ZSIpOwo+IEBAIC05OSw2ICsxMDAsMTkgQEAgdm9pZCBmdXNlX3JlcXVlc3RfZnJlZShzdHJ1Y3Qg ZnVzZV9yZXEgKnJlcSkKPsKgwqDCoMKgwqDCoMKgwqAga21lbV9jYWNoZV9mcmVlKGZ1c2VfcmVx X2NhY2hlcCwgcmVxKTsKPsKgwqAgfQo+wqDCoAo+ICtzdGF0aWMgdm9pZCBibG9ja19zaWdzKHNp Z3NldF90ICpvbGRzZXQpCj4gK3sKPiArICAgICBzaWdzZXRfdCBtYXNrOwo+ICsKPiArICAgICBz aWdpbml0c2V0aW52KCZtYXNrLCBzaWdtYXNrKFNJR0tJTEwpKTsKPiArICAgICBzaWdwcm9jbWFz ayhTSUdfQkxPQ0ssICZtYXNrLCBvbGRzZXQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCByZXN0 b3JlX3NpZ3Moc2lnc2V0X3QgKm9sZHNldCkKPiArewo+ICsgICAgIHNpZ3Byb2NtYXNrKFNJR19T RVRNQVNLLCBvbGRzZXQsIE5VTEwpOwo+ICt9Cj4gKwo+wqDCoCB2b2lkIF9fZnVzZV9nZXRfcmVx dWVzdChzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKPsKgwqAgewo+wqDCoMKgwqDCoMKgwqDCoCBhdG9t aWNfaW5jKCZyZXEtPmNvdW50KTsKPiBAQCAtMTM0LDEzICsxNDgsMTggQEAgc3RhdGljIHN0cnVj dCBmdXNlX3JlcSAqX19mdXNlX2dldF9yZXEoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHVuc2lnbmVk IG5wYWdlcywKPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBib29sIGZvcl9iYWNrZ3JvdW5kKQo+wqDC oCB7Cj7CoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBmdXNlX3JlcSAqcmVxOwo+ICsgICAgIHNpZ3Nl dF90IG9sZHNldDsKPiArICAgICBpbnQgaW50cjsKPsKgwqDCoMKgwqDCoMKgwqAgaW50IGVycjsK PsKgwqDCoMKgwqDCoMKgwqAgYXRvbWljX2luYygmZmMtPm51bV93YWl0aW5nKTsKPsKgwqAKPsKg wqDCoMKgwqDCoMKgwqAgaWYgKGZ1c2VfYmxvY2tfYWxsb2MoZmMsIGZvcl9iYWNrZ3JvdW5kKSkg ewo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZXJyID0gLUVJTlRSOwo+IC0gICAg ICAgICAgICAgaWYgKHdhaXRfZXZlbnRfa2lsbGFibGVfZXhjbHVzaXZlKGZjLT5ibG9ja2VkX3dh aXRxLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICFmdXNlX2Jsb2NrX2FsbG9jKGZj LCBmb3JfYmFja2dyb3VuZCkpKQo+ICsgICAgICAgICAgICAgYmxvY2tfc2lncygmb2xkc2V0KTsK PiArICAgICAgICAgICAgIGludHIgPSB3YWl0X2ZhdGFsX2ZyZWV6YWJsZShmYy0+YmxvY2tlZF93 YWl0cSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhZnVzZV9ibG9ja19hbGxvYyhm YywgZm9yX2JhY2tncm91bmQpLCB0cnVlKTsKPiArICAgICAgICAgICAgIHJlc3RvcmVfc2lncygm b2xkc2V0KTsKPiArICAgICAgICAgICAgIGlmIChpbnRyKQo+wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gb3V0Owo+wqDCoMKgwqDCoMKgwqDCoCB9 Cj7CoMKgwqDCoMKgwqDCoMKgIC8qIE1hdGNoZXMgc21wX3dtYigpIGluIGZ1c2Vfc2V0X2luaXRp YWxpemVkKCkgKi8KPiBAQCAtNDI3LDkgKzQ0NiwxMiBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0X3dh aXRfYW5zd2VyKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKPsKg wqDCoMKgwqDCoMKgwqAgfQo+wqDCoAo+wqDCoMKgwqDCoMKgwqDCoCBpZiAoIXRlc3RfYml0KEZS X0ZPUkNFLCAmcmVxLT5mbGFncykpIHsKPiArICAgICAgICAgICAgIHNpZ3NldF90IG9sZHNldDsK PsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIE9ubHkgZmF0YWwgc2lnbmFscyBt YXkgaW50ZXJydXB0IHRoaXMgKi8KPiAtICAgICAgICAgICAgIGVyciA9IHdhaXRfZXZlbnRfa2ls bGFibGUocmVxLT53YWl0cSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRlc3RfYml0KEZSX0ZJTklTSEVELCAmcmVxLT5mbGFncykpOwo+ICsgICAgICAgICAgICAgYmxv Y2tfc2lncygmb2xkc2V0KTsKPiArICAgICAgICAgICAgIGVyciA9IHdhaXRfZmF0YWxfZnJlZXph YmxlKHJlcS0+d2FpdHEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9iaXQo RlJfRklOSVNIRUQsICZyZXEtPmZsYWdzKSwgZmFsc2UpOwo+ICsgICAgICAgICAgICAgcmVzdG9y ZV9zaWdzKCZvbGRzZXQpOwo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFl cnIpCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0 dXJuOwo+wqDCoAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2ZyZWV6ZXIuaCBiL2luY2x1 ZGUvbGludXgvZnJlZXplci5oCj4gaW5kZXggZGQwM2U4My4uMjUwNGNkMCAxMDA2NDQKPiAtLS0g YS9pbmNsdWRlL2xpbnV4L2ZyZWV6ZXIuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvZnJlZXplci5o Cj4gQEAgLTI1Niw2ICsyNTYsMjIgQEAgc3RhdGljIGlubGluZSBpbnQgZnJlZXphYmxlX3NjaGVk dWxlX2hydGltZW91dF9yYW5nZShrdGltZV90ICpleHBpcmVzLAo+wqDCoMKgICAgICAgX19yZXR2 YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKPsKgwqAgfSkKPsKgwqAKPiArI2RlZmluZSB3YWl0X2ZhdGFsX2ZyZWV6YWJsZSh3cSwgY29u ZGl0aW9uLCBleGNsdXNpdmUpICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyh7wqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIFwKPiArICAgICBpbnQgX19yZXQgPSAwOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgIGRvIHvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiArICAgICAg ICAgICAgIGlmIChleGNsdXNpdmUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAo+ICsgICAgICAgICAgICAgICAgICAgICBfX3JldCA9IHdhaXRfZXZlbnRfaW50ZXJy dXB0aWJsZV9leGNsdXNpdmUod3EsICBcICAgIC8vc2V0IHRoZSBUQVNLX0lOVEVSUlVQVElCTEUK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25kaXRpb24pOyAgICAgXCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY2FuIGJlIHdha2Vk IHVwIGJ5IHN1c3BlbmQgcHJvY2VkdXJlCj4gKyAgICAgICAgICAgICBlbHNlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAgICAgICAg ICAgICAgICAgX19yZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUod3EsICAgICAgICAgICAg XAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbmRpdGlvbik7ICAgICBcCj4gKyAgICAgICAgICAgICBpZiAoIV9fcmV0IHx8IGZhdGFsX3Np Z25hbF9wZW5kaW5nKGN1cnJlbnQpKSAgICAgICAgICAgIFwgICAgICAgICAgIC8vY2hlY2sgY29u ZGl0aW9uIG9yIHRoZXJlIGlzIGZhdGFsIHNpZ25hbAo+ICsgICAgICAgICAgICAgICAgICAgICBi cmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vaWYgdHJ1ZSwgd2FpdCBmaW5pc2gKPiArICAgICB9IHdoaWxl ICh0cnlfdG9fZnJlZXplKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XCAgICAgICAgICAgICAgICAgICAvL2lmIGZyZWV6aW5nIGlzIGluIGVmZmVjdCwgdHJ5IHRvIGZy ZWV6ZSB0aGUgdGFzawo+ICsgICAgIF9fcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gK30pCj4gKwo+wqDCoCAjZWxzZSAvKiAh Q09ORklHX0ZSRUVaRVIgKi8KPsKgwqAgc3RhdGljIGlubGluZSBib29sIGZyb3plbihzdHJ1Y3Qg dGFza19zdHJ1Y3QgKnApIHsgcmV0dXJuIGZhbHNlOyB9Cj7CoMKgIHN0YXRpYyBpbmxpbmUgYm9v bCBmcmVlemluZyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgcmV0dXJuIGZhbHNlOyB9Cj4gQEAg LTI5Niw2ICszMTIsMTYgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldF9mcmVlemFibGUodm9pZCkg e30KPsKgwqAgI2RlZmluZSB3YWl0X2V2ZW50X2ZyZWV6ZWtpbGxhYmxlX3Vuc2FmZSh3cSwgY29u ZGl0aW9uKSAgICAgICAgICAgICAgICAgICAgICBcCj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB3YWl0X2V2ZW50X2tpbGxhYmxlKHdxLCBjb25kaXRpb24pCj7CoMKgCj4gKyNkZWZp bmUgd2FpdF9mYXRhbF9mcmVlemFibGUod3EsIGNvbmRpdGlvbiwgZXhjbHVzaXZlKSAgICAgICAg ICAgICAgICAgICAgICAgXAo+ICsoe8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gKyAgICAgaW50IF9f cmV0ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKPiArICAgICBpZiAoZXhjbHVzaXZlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICAgICAgX19yZXQgPSB3YWl0X2V2ZW50X2tp bGxhYmxlX2V4Y2x1c2l2ZSh3cSwgY29uZGl0aW9uKTsgICBcCj4gKyAgICAgZWxzZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAr ICAgICAgICAgICAgIF9fcmV0ID0gd2FpdF9ldmVudF9raWxsYWJsZSh3cSwgY29uZGl0aW9uKTsg ICAgICAgICAgICAgXAo+ICsgICAgIF9fcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gK30pCj4gKwo+wqDCoCAjZW5kaWYgLyog IUNPTkZJR19GUkVFWkVSICovCj7CoMKgCj7CoMKgICNlbmRpZiAgICAgICAvKiBGUkVFWkVSX0hf SU5DTFVERUQgKi8KPgpUaGFua3MuCgpCUiwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwrlj5Hku7bkuro6IFJhZmFlbCBKLiBXeXNvY2tpIDxyandAcmp3eXNvY2tpLm5l dD4K5Y+R6YCB5pe26Ze0OiAyMDE25bm0MTLmnIg35pelIDY6MTUK5pS25Lu25Lq6OiDltJTnq4vp o54K5oqE6YCBOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBtaWtsb3NAc3plcmVkaS5o dTsgcGF2ZWxAdWN3LmN6OyBsZW4uYnJvd25AaW50ZWwuY29tOyBsaW51eC1mc2RldmVsQHZnZXIu a2VybmVsLm9yZzsgdmlyb0B6ZW5pdi5saW51eC5vcmcudWs7IOactOiLseaVjzsg5YiY5omNOyBK aXJpIEtvc2luYQrkuLvpopg6IFJlOiBbUEFUQ0hdIGZ1c2U6IGZyZWV6aW5nIGFib3J0IHdoZW4g dXNlIHdhaXRfZXZlbnRfa2lsbGFibGV7LF9leGNsdXNpdmV9KCkuCgpPbiBNb25kYXksIERlY2Vt YmVyIDA1LCAyMDE2IDExOjE5OjQ1IEFNIGN1aWxpZmVpIHdyb3RlOgo+IEZyZWV6aW5nIHByb2Nl c3MgY2FuIGFib3J0IHdoZW4gYSBjbGllbnQgaXMgd2FpdGluZyB1bmludGVycnVwdGlibHkKPiBm b3IgYSByZXNwb25zZS4gQWRkIG5ldyBtYWNybyB3YWl0X2ZhdGFsX2ZyZWV6YWJsZSB0byB0cnkg dG8gZml4IGl0Lgo+Cj4gU2lnbmVkLW9mZi1ieTogY3VpbGlmZWkgPGN1aWxpZmVpQHhpYW9taS5j b20+CgpJJ20gbm90IGEgYmlnIGZhbiBvZiB0aGlzIHRvIGJlIGhvbmVzdC4KCkRvIHdlIHJlYWxs eSB3YW50IHRvIHN1c3BlbmQgdGhlIHN5c3RlbSAob3IgZnJlZXplIHRhc2tzIGZvciBvdGhlciBy ZWFzb25zKQppZiB0aGF0IGhhcHBlbnM/Cgo+IC0tLQo+wqAgZnMvZnVzZS9kZXYuYyAgICAgICAg ICAgfCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPsKgIGluY2x1ZGUvbGludXgv ZnJlZXplci5oIHwgMjYgKysrKysrKysrKysrKysrKysrKysrKysrKysKPsKgIDIgZmlsZXMgY2hh bmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9m cy9mdXNlL2Rldi5jIGIvZnMvZnVzZS9kZXYuYwo+IGluZGV4IDcwZWE1N2MuLmUzM2EwODEgMTAw NjQ0Cj4gLS0tIGEvZnMvZnVzZS9kZXYuYwo+ICsrKyBiL2ZzL2Z1c2UvZGV2LmMKPiBAQCAtMTks NiArMTksNyBAQAo+wqAgI2luY2x1ZGUgPGxpbnV4L3BpcGVfZnNfaS5oPgo+wqAgI2luY2x1ZGUg PGxpbnV4L3N3YXAuaD4KPsKgICNpbmNsdWRlIDxsaW51eC9zcGxpY2UuaD4KPiArI2luY2x1ZGUg PGxpbnV4L2ZyZWV6ZXIuaD4KPgo+wqAgTU9EVUxFX0FMSUFTX01JU0NERVYoRlVTRV9NSU5PUik7 Cj7CoCBNT0RVTEVfQUxJQVMoImRldm5hbWU6ZnVzZSIpOwo+IEBAIC05OSw2ICsxMDAsMTkgQEAg dm9pZCBmdXNlX3JlcXVlc3RfZnJlZShzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKPsKgwqDCoMKgwqDC oCBrbWVtX2NhY2hlX2ZyZWUoZnVzZV9yZXFfY2FjaGVwLCByZXEpOwo+wqAgfQo+Cj4gK3N0YXRp YyB2b2lkIGJsb2NrX3NpZ3Moc2lnc2V0X3QgKm9sZHNldCkKPiArewo+ICsgICAgIHNpZ3NldF90 IG1hc2s7Cj4gKwo+ICsgICAgIHNpZ2luaXRzZXRpbnYoJm1hc2ssIHNpZ21hc2soU0lHS0lMTCkp Owo+ICsgICAgIHNpZ3Byb2NtYXNrKFNJR19CTE9DSywgJm1hc2ssIG9sZHNldCk7Cj4gK30KPiAr Cj4gK3N0YXRpYyB2b2lkIHJlc3RvcmVfc2lncyhzaWdzZXRfdCAqb2xkc2V0KQo+ICt7Cj4gKyAg ICAgc2lncHJvY21hc2soU0lHX1NFVE1BU0ssIG9sZHNldCwgTlVMTCk7Cj4gK30KPiArCj7CoCB2 b2lkIF9fZnVzZV9nZXRfcmVxdWVzdChzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKPsKgIHsKPsKgwqDC oMKgwqDCoCBhdG9taWNfaW5jKCZyZXEtPmNvdW50KTsKPiBAQCAtMTM0LDEzICsxNDgsMTggQEAg c3RhdGljIHN0cnVjdCBmdXNlX3JlcSAqX19mdXNlX2dldF9yZXEoc3RydWN0IGZ1c2VfY29ubiAq ZmMsIHVuc2lnbmVkIG5wYWdlcywKPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJvb2wgZm9yX2JhY2tncm91 bmQpCj7CoCB7Cj7CoMKgwqDCoMKgwqAgc3RydWN0IGZ1c2VfcmVxICpyZXE7Cj4gKyAgICAgc2ln c2V0X3Qgb2xkc2V0Owo+ICsgICAgIGludCBpbnRyOwo+wqDCoMKgwqDCoMKgIGludCBlcnI7Cj7C oMKgwqDCoMKgwqAgYXRvbWljX2luYygmZmMtPm51bV93YWl0aW5nKTsKPgo+wqDCoMKgwqDCoMKg IGlmIChmdXNlX2Jsb2NrX2FsbG9jKGZjLCBmb3JfYmFja2dyb3VuZCkpIHsKPsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgZXJyID0gLUVJTlRSOwo+IC0gICAgICAgICAgICAgaWYgKHdhaXRf ZXZlbnRfa2lsbGFibGVfZXhjbHVzaXZlKGZjLT5ibG9ja2VkX3dhaXRxLAo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICFmdXNlX2Jsb2NrX2FsbG9jKGZjLCBmb3JfYmFja2dyb3VuZCkp KQo+ICsgICAgICAgICAgICAgYmxvY2tfc2lncygmb2xkc2V0KTsKPiArICAgICAgICAgICAgIGlu dHIgPSB3YWl0X2ZhdGFsX2ZyZWV6YWJsZShmYy0+YmxvY2tlZF93YWl0cSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAhZnVzZV9ibG9ja19hbGxvYyhmYywgZm9yX2JhY2tncm91bmQp LCB0cnVlKTsKPiArICAgICAgICAgICAgIHJlc3RvcmVfc2lncygmb2xkc2V0KTsKPiArICAgICAg ICAgICAgIGlmIChpbnRyKQo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgZ290byBvdXQ7Cj7CoMKgwqDCoMKgwqAgfQo+wqDCoMKgwqDCoMKgIC8qIE1hdGNoZXMg c21wX3dtYigpIGluIGZ1c2Vfc2V0X2luaXRpYWxpemVkKCkgKi8KPiBAQCAtNDI3LDkgKzQ0Niwx MiBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0X3dhaXRfYW5zd2VyKHN0cnVjdCBmdXNlX2Nvbm4gKmZj LCBzdHJ1Y3QgZnVzZV9yZXEgKnJlcSkKPsKgwqDCoMKgwqDCoCB9Cj4KPsKgwqDCoMKgwqDCoCBp ZiAoIXRlc3RfYml0KEZSX0ZPUkNFLCAmcmVxLT5mbGFncykpIHsKPiArICAgICAgICAgICAgIHNp Z3NldF90IG9sZHNldDsKPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogT25seSBmYXRh bCBzaWduYWxzIG1heSBpbnRlcnJ1cHQgdGhpcyAqLwo+IC0gICAgICAgICAgICAgZXJyID0gd2Fp dF9ldmVudF9raWxsYWJsZShyZXEtPndhaXRxLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF9iaXQoRlJfRklOSVNIRUQsICZyZXEtPmZsYWdzKSk7Cj4gKyAgICAg ICAgICAgICBibG9ja19zaWdzKCZvbGRzZXQpOwo+ICsgICAgICAgICAgICAgZXJyID0gd2FpdF9m YXRhbF9mcmVlemFibGUocmVxLT53YWl0cSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2JpdChGUl9GSU5JU0hFRCwgJnJlcS0+ZmxhZ3MpLCBmYWxzZSk7Cj4gKyAgICAgICAg ICAgICByZXN0b3JlX3NpZ3MoJm9sZHNldCk7Cj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGlmICghZXJyKQo+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuOwo+Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZnJlZXplci5oIGIvaW5jbHVk ZS9saW51eC9mcmVlemVyLmgKPiBpbmRleCBkZDAzZTgzLi4yNTA0Y2QwIDEwMDY0NAo+IC0tLSBh L2luY2x1ZGUvbGludXgvZnJlZXplci5oCj4gKysrIGIvaW5jbHVkZS9saW51eC9mcmVlemVyLmgK PiBAQCAtMjU2LDYgKzI1NiwyMiBAQCBzdGF0aWMgaW5saW5lIGludCBmcmVlemFibGVfc2NoZWR1 bGVfaHJ0aW1lb3V0X3JhbmdlKGt0aW1lX3QgKmV4cGlyZXMsCj7CoMKgwqDCoMKgwqAgX19yZXR2 YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKPsKgIH0pCj4KPiArI2RlZmluZSB3YWl0X2ZhdGFsX2ZyZWV6YWJsZSh3cSwgY29uZGl0aW9u LCBleGNsdXNpdmUpICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyh7wqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIFwKPiArICAgICBpbnQgX19yZXQgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgIGRvIHvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiArICAgICAgICAgICAg IGlmIChleGNsdXNpdmUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAo+ICsgICAgICAgICAgICAgICAgICAgICBfX3JldCA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJs ZV9leGNsdXNpdmUod3EsICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uZGl0aW9uKTsgICAgIFwKPiArICAgICAgICAgICAgIGVsc2Ug ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsg ICAgICAgICAgICAgICAgICAgICBfX3JldCA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZSh3cSwg ICAgICAgICAgICBcCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uZGl0aW9uKTsgICAgIFwKPiArICAgICAgICAgICAgIGlmICghX19yZXQg fHwgZmF0YWxfc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpICAgICAgICAgICAgXAo+ICsgICAgICAg ICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCj4gKyAgICAgfSB3aGlsZSAodHJ5X3RvX2ZyZWV6ZSgpKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICBfX3JldDsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICt9KQo+ICsKPsKgICNl bHNlIC8qICFDT05GSUdfRlJFRVpFUiAqLwo+wqAgc3RhdGljIGlubGluZSBib29sIGZyb3plbihz dHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgcmV0dXJuIGZhbHNlOyB9Cj7CoCBzdGF0aWMgaW5saW5l IGJvb2wgZnJlZXppbmcoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiBmYWxzZTsgfQo+ IEBAIC0yOTYsNiArMzEyLDE2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfZnJlZXphYmxlKHZv aWQpIHt9Cj7CoCAjZGVmaW5lIHdhaXRfZXZlbnRfZnJlZXpla2lsbGFibGVfdW5zYWZlKHdxLCBj b25kaXRpb24pICAgICAgICAgICAgICAgICAgICAgIFwKPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgd2FpdF9ldmVudF9raWxsYWJsZSh3cSwgY29uZGl0aW9uKQo+Cj4gKyNkZWZpbmUgd2Fp dF9mYXRhbF9mcmVlemFibGUod3EsIGNvbmRpdGlvbiwgZXhjbHVzaXZlKSAgICAgICAgICAgICAg ICAgICAgICAgXAo+ICsoe8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gKyAgICAgaW50IF9fcmV0ID0g MDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAr ICAgICBpZiAoZXhjbHVzaXZlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAo+ICsgICAgICAgICAgICAgX19yZXQgPSB3YWl0X2V2ZW50X2tpbGxhYmxl X2V4Y2x1c2l2ZSh3cSwgY29uZGl0aW9uKTsgICBcCj4gKyAgICAgZWxzZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgICAg ICAgICAgIF9fcmV0ID0gd2FpdF9ldmVudF9raWxsYWJsZSh3cSwgY29uZGl0aW9uKTsgICAgICAg ICAgICAgXAo+ICsgICAgIF9fcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCj4gK30pCj4gKwo+wqAgI2VuZGlmIC8qICFDT05GSUdf RlJFRVpFUiAqLwo+Cj7CoCAjZW5kaWYgICAgICAgLyogRlJFRVpFUl9IX0lOQ0xVREVEICovCj4K ClRoYW5rcywKUmFmYWVsCgo=