From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v9 4/5] x86/ioreq server: Asynchronously reset outstanding p2m_ioreq_server entries. Date: Tue, 21 Mar 2017 10:05:29 +0000 Message-ID: <95784bba51a24ffea9a07da56776c192@AMSPEX02CL03.citrite.net> References: <1490064773-26751-1-git-send-email-yu.c.zhang@linux.intel.com> <1490064773-26751-5-git-send-email-yu.c.zhang@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1490064773-26751-5-git-send-email-yu.c.zhang@linux.intel.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: 'Yu Zhang' , "xen-devel@lists.xen.org" Cc: Kevin Tian , Jan Beulich , Andrew Cooper , George Dunlap , "zhiyuan.lv@intel.com" , Jun Nakajima List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IFl1IFpoYW5nIFttYWlsdG86eXUu Yy56aGFuZ0BsaW51eC5pbnRlbC5jb21dCj4gU2VudDogMjEgTWFyY2ggMjAxNyAwMjo1Mwo+IFRv OiB4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwo+IENjOiB6aGl5dWFuLmx2QGludGVsLmNvbTsgUGF1 bCBEdXJyYW50IDxQYXVsLkR1cnJhbnRAY2l0cml4LmNvbT47IEphbgo+IEJldWxpY2ggPGpiZXVs aWNoQHN1c2UuY29tPjsgQW5kcmV3IENvb3Blcgo+IDxBbmRyZXcuQ29vcGVyM0BjaXRyaXguY29t PjsgR2VvcmdlIER1bmxhcAo+IDxHZW9yZ2UuRHVubGFwQGNpdHJpeC5jb20+OyBKdW4gTmFrYWpp bWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+Owo+IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50 ZWwuY29tPgo+IFN1YmplY3Q6IFtQQVRDSCB2OSA0LzVdIHg4Ni9pb3JlcSBzZXJ2ZXI6IEFzeW5j aHJvbm91c2x5IHJlc2V0IG91dHN0YW5kaW5nCj4gcDJtX2lvcmVxX3NlcnZlciBlbnRyaWVzLgo+ IAo+IEFmdGVyIGFuIGlvcmVxIHNlcnZlciBoYXMgdW5tYXBwZWQsIHRoZSByZW1haW5pbmcgcDJt X2lvcmVxX3NlcnZlcgo+IGVudHJpZXMgbmVlZCB0byBiZSByZXNldCBiYWNrIHRvIHAybV9yYW1f cncuIFRoaXMgcGF0Y2ggZG9lcyB0aGlzCj4gYXN5bmNocm9ub3VzbHkgd2l0aCB0aGUgY3VycmVu dCBwMm1fY2hhbmdlX2VudHJ5X3R5cGVfZ2xvYmFsKCkKPiBpbnRlcmZhY2UuCj4gCj4gVGhpcyBw YXRjaCBhbHNvIGRpc2FsbG93cyBsaXZlIG1pZ3JhdGlvbiwgd2hlbiB0aGVyZSdzIHN0aWxsIGFu eQo+IG91dHN0YW5kaW5nIHAybV9pb3JlcV9zZXJ2ZXIgZW50cnkgbGVmdC4gVGhlIGNvcmUgcmVh c29uIGlzIG91cgo+IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgcDJtX2NoYW5nZV9lbnRyeV90 eXBlX2dsb2JhbCgpIGNhbiBub3QKPiB0ZWxsIHRoZSBzdGF0ZSBvZiBwMm1faW9yZXFfc2VydmVy IGVudHJpZXMoY2FuIG5vdCBkZWNpZGUgaWYgYW4KPiBlbnRyeSBpcyB0byBiZSBlbXVsYXRlZCBv ciB0byBiZSByZXN5bmNlZCkuCj4gCj4gTm90ZTogbmV3IGZpZWxkIGVudHJ5X2NvdW50IGlzIGlu dHJvZHVjZWQgaW4gc3RydWN0IHAybV9kb21haW4sCj4gdG8gcmVjb3JkIHRoZSBudW1iZXIgb2Yg cDJtX2lvcmVxX3NlcnZlciBwMm0gcGFnZSB0YWJsZSBlbnRyaWVzLgo+IE9uZSBuYXR1cmUgb2Yg dGhlc2UgZW50cmllcyBpcyB0aGF0IHRoZXkgb25seSBwb2ludCB0byA0SyBzaXplZAo+IHBhZ2Ug ZnJhbWVzLCBiZWNhdXNlIGFsbCBwMm1faW9yZXFfc2VydmVyIGVudHJpZXMgYXJlIG9yaWdpbmF0 ZWQKPiBmcm9tIHAybV9yYW1fcncgb25lcyBpbiBwMm1fY2hhbmdlX3R5cGVfb25lKCkuIFdlIGRv IG5vdCBuZWVkIHRvCj4gd29ycnkgYWJvdXQgdGhlIGNvdW50aW5nIGZvciAyTS8xRyBzaXplZCBw YWdlcy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBZdSBaaGFuZyA8eXUuYy56aGFuZ0BsaW51eC5pbnRl bC5jb20+CgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv bT4KCj4gLS0tCj4gQ2M6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Cj4g Q2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KPiBDYzogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KPiBDYzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1 bmxhcEBldS5jaXRyaXguY29tPgo+IENjOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRl bC5jb20+Cj4gQ2M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgo+IAo+IGNoYW5n ZXMgaW4gdjQ6Cj4gICAtIEFjY29yZGluZyB0byBjb21tZW50cyBmcm9tIEphbjogdXNlIEFTU0VS VCgpIGluc3RlYWQgb2YgJ2lmJwo+ICAgICBjb25kaXRpb24gaW4gcDJtX2NoYW5nZV90eXBlX29u ZSgpLgo+ICAgLSBBY2NvcmRpbmcgdG8gY29tbWVudHMgZnJvbSBKYW46IGNvbW1pdCBtZXNzYWdl IGNoYW5nZXMgdG8gbWVudGlvbgo+ICAgICB0aGUgcDJtX2lvcmVxX3NlcnZlciBhcmUgYWxsIGJh c2VkIG9uIDRLIHNpemVkIHBhZ2VzLgo+IAo+IGNoYW5nZXMgaW4gdjM6Cj4gICAtIE1vdmUgdGhl IHN5bmNocm9ub3VzbHkgcmVzZXR0aW5nIGxvZ2ljIGludG8gcGF0Y2ggNS4KPiAgIC0gQWNjb3Jk aW5nIHRvIGNvbW1lbnRzIGZyb20gSmFuOiBpbnRyb2R1Y2UgcDJtX2NoZWNrX2NoYW5nZWFibGUo KQo+ICAgICB0byBjbGFyaWZ5IHRoZSBwMm0gdHlwZSBjaGFuZ2UgY29kZS4KPiAgIC0gQWNjb3Jk aW5nIHRvIGNvbW1lbnRzIGZyb20gR2VvcmdlOiB1c2UgbG9ja3MgaW4gdGhlIHNhbWUgb3JkZXIK PiAgICAgdG8gYXZvaWQgZGVhZGxvY2ssIGNhbGwgcDJtX2NoYW5nZV9lbnRyeV90eXBlX2dsb2Jh bCgpIGFmdGVyIHVubWFwCj4gICAgIG9mIHRoZSBpb3JlcSBzZXJ2ZXIgaXMgZmluaXNoZWQuCj4g Cj4gY2hhbmdlcyBpbiB2MjoKPiAgIC0gTW92ZSB0aGUgY2FsY3VsYXRpb24gb2YgaW9yZXEgc2Vy dmVyIHBhZ2UgZW50cnlfY291dCBpbnRvCj4gICAgIHAybV9jaGFuZ2VfdHlwZV9vbmUoKSBzbyB0 aGF0IHdlIGRvIG5vdCBuZWVkIGEgc2VwZXJhdGUgbG9jay4KPiAgICAgTm90ZTogZW50cnlfY291 bnQgaXMgYWxzbyBjYWxjdWxhdGVkIGluIHJlc29sdmVfbWlzY29uZmlnKCkvCj4gICAgIGRvX3Jl Y2FsYygpLCBmb3J0dW5hdGVseSBjYWxsZXJzIG9mIGJvdGggcm91dGluZXMgaGF2ZSBwMm0KPiAg ICAgbG9jayBwcm90ZWN0ZWQgYWxyZWFkeS4KPiAgIC0gU2ltcGxpZnkgbG9naWMgaW4gaHZtb3Bf c2V0X21lbV90eXBlKCkuCj4gICAtIEludHJvZHVjZSByb3V0aW5lIHAybV9maW5pc2hfdHlwZV9j aGFuZ2UoKSB0byB3YWxrIHRoZSBwMm0KPiAgICAgdGFibGUgYW5kIGRvIHRoZSBwMm0gcmVzZXQu Cj4gLS0tCj4gIHhlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyAgfCAgOCArKysrKysrKwo+ICB4ZW4v YXJjaC94ODYvbW0vaGFwL2hhcC5jIHwgIDkgKysrKysrKysrCj4gIHhlbi9hcmNoL3g4Ni9tbS9w Mm0tZXB0LmMgfCAgOCArKysrKysrLQo+ICB4ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgIHwgMTMg KysrKysrKysrKystLQo+ICB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgIHwgMjAgKysrKysrKysr KysrKysrKysrKysKPiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaCB8ICA5ICsrKysrKysrLQo+ ICA2IGZpbGVzIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyBiL3hlbi9hcmNoL3g4Ni9odm0v aW9yZXEuYwo+IGluZGV4IDc0Njc5OWYuLjEwMmM2YzIgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gv eDg2L2h2bS9pb3JlcS5jCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCj4gQEAgLTk0 OSw2ICs5NDksMTQgQEAgaW50IGh2bV9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyKHN0cnVj dAo+IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKPiAKPiAgICAgIHNwaW5fdW5sb2NrX3JlY3Vy c2l2ZSgmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKPiAKPiArICAgIGlm ICggcmMgPT0gMCAmJiBmbGFncyA9PSAwICkKPiArICAgIHsKPiArICAgICAgICBzdHJ1Y3QgcDJt X2RvbWFpbiAqcDJtID0gcDJtX2dldF9ob3N0cDJtKGQpOwo+ICsKPiArICAgICAgICBpZiAoIHJl YWRfYXRvbWljKCZwMm0tPmlvcmVxLmVudHJ5X2NvdW50KSApCj4gKyAgICAgICAgICAgIHAybV9j aGFuZ2VfZW50cnlfdHlwZV9nbG9iYWwoZCwgcDJtX2lvcmVxX3NlcnZlciwKPiBwMm1fcmFtX3J3 KTsKPiArICAgIH0KPiArCj4gICAgICByZXR1cm4gcmM7Cj4gIH0KPiAKPiBkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYyBiL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKPiBp bmRleCBhNTdiMzg1Li42ZWM5NTBhIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAv aGFwLmMKPiArKysgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCj4gQEAgLTE4Nyw2ICsxODcs MTUgQEAgb3V0Ogo+ICAgKi8KPiAgc3RhdGljIGludCBoYXBfZW5hYmxlX2xvZ19kaXJ0eShzdHJ1 Y3QgZG9tYWluICpkLCBib29sX3QgbG9nX2dsb2JhbCkKPiAgewo+ICsgICAgc3RydWN0IHAybV9k b21haW4gKnAybSA9IHAybV9nZXRfaG9zdHAybShkKTsKPiArCj4gKyAgICAvKgo+ICsgICAgICog UmVmdXNlIHRvIHR1cm4gb24gZ2xvYmFsIGxvZy1kaXJ0eSBtb2RlIGlmCj4gKyAgICAgKiB0aGVy ZSdzIG91dHN0YW5kaW5nIHAybV9pb3JlcV9zZXJ2ZXIgcGFnZXMuCj4gKyAgICAgKi8KPiArICAg IGlmICggbG9nX2dsb2JhbCAmJiByZWFkX2F0b21pYygmcDJtLT5pb3JlcS5lbnRyeV9jb3VudCkg KQo+ICsgICAgICAgIHJldHVybiAtRUJVU1k7Cj4gKwo+ICAgICAgLyogdHVybiBvbiBQR19sb2df ZGlydHkgYml0IGluIHBhZ2luZyBtb2RlICovCj4gICAgICBwYWdpbmdfbG9jayhkKTsKPiAgICAg IGQtPmFyY2gucGFnaW5nLm1vZGUgfD0gUEdfbG9nX2RpcnR5Owo+IGRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvbW0vcDJtLWVwdC5jIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwo+IGluZGV4 IGNjMWViMjEuLjFkZjNkMDkgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1lcHQu Ywo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKPiBAQCAtNTQ0LDYgKzU0NCwxMiBA QCBzdGF0aWMgaW50IHJlc29sdmVfbWlzY29uZmlnKHN0cnVjdCBwMm1fZG9tYWluCj4gKnAybSwg dW5zaWduZWQgbG9uZyBnZm4pCj4gICAgICAgICAgICAgICAgICAgICAgZS5pcGF0ID0gaXBhdDsK PiAgICAgICAgICAgICAgICAgICAgICBpZiAoIGUucmVjYWxjICYmIHAybV9pc19jaGFuZ2VhYmxl KGUuc2FfcDJtdCkgKQo+ICAgICAgICAgICAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAg ICAgICAgICAgIGlmICggZS5zYV9wMm10ID09IHAybV9pb3JlcV9zZXJ2ZXIgKQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybS0+ aW9yZXEuZW50cnlfY291bnQtLTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NF UlQocDJtLT5pb3JlcS5lbnRyeV9jb3VudCA+PSAwKTsKPiArICAgICAgICAgICAgICAgICAgICAg ICAgIH0KPiArCj4gICAgICAgICAgICAgICAgICAgICAgICAgICBlLnNhX3AybXQgPSBwMm1faXNf bG9nZGlydHlfcmFuZ2UocDJtLCBnZm4gKyBpLCBnZm4gKyBpKQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPyBwMm1fcmFtX2xvZ2RpcnR5IDogcDJtX3JhbV9ydzsKPiAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVwdF9wMm1fdHlwZV90b19mbGFncyhwMm0sICZlLCBl LnNhX3AybXQsIGUuYWNjZXNzKTsKPiBAQCAtOTY1LDcgKzk3MSw3IEBAIHN0YXRpYyBtZm5fdCBl cHRfZ2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluCj4gKnAybSwKPiAgICAgIGlmICggaXNfZXB0 ZV92YWxpZChlcHRfZW50cnkpICkKPiAgICAgIHsKPiAgICAgICAgICBpZiAoIChyZWNhbGMgfHwg ZXB0X2VudHJ5LT5yZWNhbGMpICYmCj4gLSAgICAgICAgICAgICBwMm1faXNfY2hhbmdlYWJsZShl cHRfZW50cnktPnNhX3AybXQpICkKPiArICAgICAgICAgICAgIHAybV9jaGVja19jaGFuZ2VhYmxl KGVwdF9lbnRyeS0+c2FfcDJtdCkgKQo+ICAgICAgICAgICAgICAqdCA9IHAybV9pc19sb2dkaXJ0 eV9yYW5nZShwMm0sIGdmbiwgZ2ZuKSA/IHAybV9yYW1fbG9nZGlydHkKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwMm1fcmFtX3J3Owo+ ICAgICAgICAgIGVsc2UKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5jIGIv eGVuL2FyY2gveDg2L21tL3AybS1wdC5jCj4gaW5kZXggZjZjNDVlYy4uMTY5ZGU3NSAxMDA2NDQK PiAtLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKPiArKysgYi94ZW4vYXJjaC94ODYvbW0v cDJtLXB0LmMKPiBAQCAtNDM2LDExICs0MzYsMTMgQEAgc3RhdGljIGludCBkb19yZWNhbGMoc3Ry dWN0IHAybV9kb21haW4gKnAybSwKPiB1bnNpZ25lZCBsb25nIGdmbikKPiAgICAgICAgICAgbmVl ZHNfcmVjYWxjKGwxLCAqcGVudCkgKQo+ICAgICAgewo+ICAgICAgICAgIGwxX3BnZW50cnlfdCBl ID0gKnBlbnQ7Cj4gKyAgICAgICAgcDJtX3R5cGVfdCBwMm10X29sZDsKPiAKPiAgICAgICAgICBp ZiAoICF2YWxpZF9yZWNhbGMobDEsIGUpICkKPiAgICAgICAgICAgICAgUDJNX0RFQlVHKCJib2d1 cyByZWNhbGMgbGVhZiBhdCBkJWQ6JWx4OiV1XG4iLAo+ICAgICAgICAgICAgICAgICAgICAgICAg cDJtLT5kb21haW4tPmRvbWFpbl9pZCwgZ2ZuLCBsZXZlbCk7Cj4gLSAgICAgICAgaWYgKCBwMm1f aXNfY2hhbmdlYWJsZShwMm1fZmxhZ3NfdG9fdHlwZShsMWVfZ2V0X2ZsYWdzKGUpKSkgKQo+ICsg ICAgICAgIHAybXRfb2xkID0gcDJtX2ZsYWdzX3RvX3R5cGUobDFlX2dldF9mbGFncyhlKSk7Cj4g KyAgICAgICAgaWYgKCBwMm1faXNfY2hhbmdlYWJsZShwMm10X29sZCkgKQo+ICAgICAgICAgIHsK PiAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtYXNrID0gfjBVTCA8PCAobGV2ZWwgKiBQQUdF VEFCTEVfT1JERVIpOwo+ICAgICAgICAgICAgICBwMm1fdHlwZV90IHAybXQgPSBwMm1faXNfbG9n ZGlydHlfcmFuZ2UocDJtLCBnZm4gJiBtYXNrLCBnZm4gfAo+IH5tYXNrKQo+IEBAIC00NjAsNiAr NDYyLDEzIEBAIHN0YXRpYyBpbnQgZG9fcmVjYWxjKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCj4g dW5zaWduZWQgbG9uZyBnZm4pCj4gICAgICAgICAgICAgICAgICAgICAgIG1mbiAmPSB+KF9QQUdF X1BTRV9QQVQgPj4gUEFHRV9TSElGVCk7Cj4gICAgICAgICAgICAgICAgICBmbGFncyB8PSBfUEFH RV9QU0U7Cj4gICAgICAgICAgICAgIH0KPiArCj4gKyAgICAgICAgICAgIGlmICggcDJtdF9vbGQg PT0gcDJtX2lvcmVxX3NlcnZlciApCj4gKyAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAg IHAybS0+aW9yZXEuZW50cnlfY291bnQtLTsKPiArICAgICAgICAgICAgICAgIEFTU0VSVChwMm0t PmlvcmVxLmVudHJ5X2NvdW50ID49IDApOwo+ICsgICAgICAgICAgICB9Cj4gKwo+ICAgICAgICAg ICAgICBlID0gbDFlX2Zyb21fcGZuKG1mbiwgZmxhZ3MpOwo+ICAgICAgICAgICAgICBwMm1fYWRk X2lvbW11X2ZsYWdzKCZlLCBsZXZlbCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAocDJtdCA9PSBwMm1fcmFtX3J3KQo+IEBAIC03MjksNyArNzM4LDcgQEAgcDJtX3B0X3NldF9l bnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLAo+IHVuc2lnbmVkIGxvbmcgZ2ZuLCBtZm5fdCBt Zm4sCj4gIHN0YXRpYyBpbmxpbmUgcDJtX3R5cGVfdCByZWNhbGNfdHlwZShib29sX3QgcmVjYWxj LCBwMm1fdHlwZV90IHQsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbikKPiAgewo+IC0gICAgaWYg KCAhcmVjYWxjIHx8ICFwMm1faXNfY2hhbmdlYWJsZSh0KSApCj4gKyAgICBpZiAoICFyZWNhbGMg fHwgIXAybV9jaGVja19jaGFuZ2VhYmxlKHQpICkKPiAgICAgICAgICByZXR1cm4gdDsKPiAgICAg IHJldHVybiBwMm1faXNfbG9nZGlydHlfcmFuZ2UocDJtLCBnZm4sIGdmbikgPyBwMm1fcmFtX2xv Z2RpcnR5Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDogcDJtX3JhbV9ydzsKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVu L2FyY2gveDg2L21tL3AybS5jCj4gaW5kZXggZGQ0ZTQ3Ny4uZTNlNTRmMSAxMDA2NDQKPiAtLS0g YS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKPiArKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKPiBA QCAtOTU0LDYgKzk1NCwyNiBAQCBpbnQgcDJtX2NoYW5nZV90eXBlX29uZShzdHJ1Y3QgZG9tYWlu ICpkLAo+IHVuc2lnbmVkIGxvbmcgZ2ZuLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJt LT5kZWZhdWx0X2FjY2VzcykKPiAgICAgICAgICAgOiAtRUJVU1k7Cj4gCj4gKyAgICBpZiAoICFy YyApCj4gKyAgICB7Cj4gKyAgICAgICAgc3dpdGNoICggbnQgKQo+ICsgICAgICAgIHsKPiArICAg ICAgICBjYXNlIHAybV9yYW1fcnc6Cj4gKyAgICAgICAgICAgIGlmICggb3QgPT0gcDJtX2lvcmVx X3NlcnZlciApCj4gKyAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgIHAybS0+aW9yZXEu ZW50cnlfY291bnQtLTsKPiArICAgICAgICAgICAgICAgIEFTU0VSVChwMm0tPmlvcmVxLmVudHJ5 X2NvdW50ID49IDApOwo+ICsgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgIGJyZWFrOwo+ICsg ICAgICAgIGNhc2UgcDJtX2lvcmVxX3NlcnZlcjoKPiArICAgICAgICAgICAgQVNTRVJUKG90ID09 IHAybV9yYW1fcncpOwo+ICsgICAgICAgICAgICBwMm0tPmlvcmVxLmVudHJ5X2NvdW50Kys7Cj4g KyAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgICAgIGJy ZWFrOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiArCj4gICAgICBnZm5fdW5sb2NrKHAybSwgZ2Zu LCAwKTsKPiAKPiAgICAgIHJldHVybiByYzsKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKPiBpbmRleCAzNzg2NjgwLi4z OTVmMTI1IDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKPiArKysgYi94 ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCj4gQEAgLTEyMCw3ICsxMjAsMTAgQEAgdHlwZWRlZiB1 bnNpZ25lZCBpbnQgcDJtX3F1ZXJ5X3Q7Cj4gCj4gIC8qIFR5cGVzIHRoYXQgY2FuIGJlIHN1Ympl Y3QgdG8gYnVsayB0cmFuc2l0aW9ucy4gKi8KPiAgI2RlZmluZSBQMk1fQ0hBTkdFQUJMRV9UWVBF UyAocDJtX3RvX21hc2socDJtX3JhbV9ydykgXAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IHAybV90b19tYXNrKHAybV9yYW1fbG9nZGlydHkpICkKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCBwMm1fdG9fbWFzayhwMm1fcmFtX2xvZ2RpcnR5KSBcCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgcDJtX3RvX21hc2socDJtX2lvcmVxX3NlcnZlcikg KQo+ICsKPiArI2RlZmluZSBQMk1fSU9SRVFfVFlQRVMgKHAybV90b19tYXNrKHAybV9pb3JlcV9z ZXJ2ZXIpKQo+IAo+ICAjZGVmaW5lIFAyTV9QT0RfVFlQRVMgKHAybV90b19tYXNrKHAybV9wb3B1 bGF0ZV9vbl9kZW1hbmQpKQo+IAo+IEBAIC0xNTcsNiArMTYwLDcgQEAgdHlwZWRlZiB1bnNpZ25l ZCBpbnQgcDJtX3F1ZXJ5X3Q7Cj4gICNkZWZpbmUgcDJtX2lzX3JlYWRvbmx5KF90KSAocDJtX3Rv X21hc2soX3QpICYgUDJNX1JPX1RZUEVTKQo+ICAjZGVmaW5lIHAybV9pc19kaXNjYXJkX3dyaXRl KF90KSAocDJtX3RvX21hc2soX3QpICYKPiBQMk1fRElTQ0FSRF9XUklURV9UWVBFUykKPiAgI2Rl ZmluZSBwMm1faXNfY2hhbmdlYWJsZShfdCkgKHAybV90b19tYXNrKF90KSAmCj4gUDJNX0NIQU5H RUFCTEVfVFlQRVMpCj4gKyNkZWZpbmUgcDJtX2lzX2lvcmVxKF90KSAocDJtX3RvX21hc2soX3Qp ICYgUDJNX0lPUkVRX1RZUEVTKQo+ICAjZGVmaW5lIHAybV9pc19wb2QoX3QpIChwMm1fdG9fbWFz ayhfdCkgJiBQMk1fUE9EX1RZUEVTKQo+ICAjZGVmaW5lIHAybV9pc19ncmFudChfdCkgKHAybV90 b19tYXNrKF90KSAmIFAyTV9HUkFOVF9UWVBFUykKPiAgLyogR3JhbnQgdHlwZXMgYXJlICpub3Qq IGNvbnNpZGVyZWQgdmFsaWQsIGJlY2F1c2UgdGhleSBjYW4gYmUKPiBAQCAtMTc4LDYgKzE4Miw4 IEBAIHR5cGVkZWYgdW5zaWduZWQgaW50IHAybV9xdWVyeV90Owo+IAo+ICAjZGVmaW5lIHAybV9h bGxvd3NfaW52YWxpZF9tZm4odCkgKHAybV90b19tYXNrKHQpICYKPiBQMk1fSU5WQUxJRF9NRk5f VFlQRVMpCj4gCj4gKyNkZWZpbmUgcDJtX2NoZWNrX2NoYW5nZWFibGUodCkgKHAybV9pc19jaGFu Z2VhYmxlKHQpICYmCj4gIXAybV9pc19pb3JlcSh0KSkKPiArCj4gIHR5cGVkZWYgZW51bSB7Cj4g ICAgICBwMm1faG9zdCwKPiAgICAgIHAybV9uZXN0ZWQsCj4gQEAgLTM0OSw2ICszNTUsNyBAQCBz dHJ1Y3QgcDJtX2RvbWFpbiB7Cj4gICAgICAgICAgICAqIGFyZSB0byBiZSBlbXVsYXRlZCBieSBh biBpb3JlcSBzZXJ2ZXIuCj4gICAgICAgICAgICAqLwo+ICAgICAgICAgICB1bnNpZ25lZCBpbnQg ZmxhZ3M7Cj4gKyAgICAgICAgIGxvbmcgZW50cnlfY291bnQ7Cj4gICAgICAgfSBpb3JlcTsKPiAg fTsKPiAKPiAtLQo+IDEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==