From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCHES v8 1/8] mm: Place unscrubbed pages at the end of pagelist Date: Thu, 17 Aug 2017 11:30:02 +0100 Message-ID: <1fb6bc7c-b303-8bac-46df-3d88c3459c11@arm.com> References: <1502908394-9760-1-git-send-email-boris.ostrovsky@oracle.com> <1502908394-9760-2-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1502908394-9760-2-git-send-email-boris.ostrovsky@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Boris Ostrovsky , xen-devel@lists.xen.org Cc: sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org SGkgQm9yaXMsCgpPbiAxNi8wOC8xNyAxOTozMywgQm9yaXMgT3N0cm92c2t5IHdyb3RlOgo+IC4u IHNvIHRoYXQgaXQncyBlYXN5IHRvIGZpbmQgcGFnZXMgdGhhdCBuZWVkIHRvIGJlIHNjcnViYmVk ICh0aG9zZSBwYWdlcyBhcmUKPiBub3cgbWFya2VkIHdpdGggX1BHQ19uZWVkX3NjcnViIGJpdCku Cj4KPiBXZSBrZWVwIHRyYWNrIG9mIHRoZSBmaXJzdCB1bnNjcnViYmVkIHBhZ2UgaW4gYSBwYWdl IGJ1ZGR5IHVzaW5nIGZpcnN0X2RpcnR5Cj4gZmllbGQuIEZvciBub3cgaXQgY2FuIGhhdmUgdHdv IHZhbHVlcywgMCAod2hvbGUgYnVkZHkgbmVlZHMgc2NydWJiaW5nKSBvcgo+IElOVkFMSURfRElS VFlfSURYICh0aGUgYnVkZHkgZG9lcyBub3QgbmVlZCB0byBiZSBzY3J1YmJlZCkuIFN1YnNlcXVl bnQgcGF0Y2hlcwo+IHdpbGwgYWxsb3cgc2NydWJiaW5nIHRvIGJlIGludGVycnVwdGVkLCByZXN1 bHRpbmcgaW4gZmlyc3RfZGlydHkgdGFraW5nIGFueQo+IHZhbHVlLgo+Cj4gU2lnbmVkLW9mZi1i eTogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KCkZvciB0aGUg QVJNIGJpdHM6CgpBY2tlZC1ieTogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4K CkNoZWVycywKCj4gLS0tCj4gQ2hhbmdlcyBpbiB2ODoKPiAqIENoYW5nZWQgeDg2J3MgZGVmaW5p dGlvbiBvZiBwYWdlX2luZm8udS5mcmVlIGZyb20gdXNpbmcgYml0ZmllbGRzIHRvIG5hdHVyYWwK PiAgIGRhdGF0eXBlcwo+ICogU3dhcHBlZCBvcmRlciBvZiBiaXRmaWVsZHMgaW4gcGFnZV9pbmZv LnUuZnJlZSBmb3IgQVJNCj4gKiBBZGRlZCBCVUlMRF9CVUdfT04gdG8gY2hlY2sgcGFnZV9pbmZv LnUuZnJlZS5maXJzdF9kaXJ0eSBzaXplIG9uIHg4NiwgbW92ZWQKPiAgIHByZXZpb3VzbHkgZGVm aW5lZCBCVUlMRF9CVUdfT04gZnJvbSBpbml0X2hlYXBfcGFnZXMoKSB0byBpbml0X2Jvb3RfcGFn ZXMoKQo+ICAgKHRvIGF2b2lkIGludHJvZHVjaW5nIGV4dHJhICcjaWZkZWYgeDg2JyBhbmQgdG8g a2VlcCBib3RoIHRvZ2V0aGVyKQo+Cj4gIHhlbi9jb21tb24vcGFnZV9hbGxvYy5jICB8IDE1OSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+ICB4ZW4vaW5j bHVkZS9hc20tYXJtL21tLmggfCAgMTcgKysrKy0KPiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5o IHwgIDE1ICsrKysrCj4gIDMgZmlsZXMgY2hhbmdlZCwgMTY3IGluc2VydGlvbnMoKyksIDI0IGRl bGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jIGIveGVu L2NvbW1vbi9wYWdlX2FsbG9jLmMKPiBpbmRleCA0NDRlY2YzLi5hMzlmZDgxIDEwMDY0NAo+IC0t LSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCj4gKysrIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9j LmMKPiBAQCAtMjYxLDcgKzI2MSwxMSBAQCB2b2lkIF9faW5pdCBpbml0X2Jvb3RfcGFnZXMocGFk ZHJfdCBwcywgcGFkZHJfdCBwZSkKPiAgI2lmZGVmIENPTkZJR19YODYKPiAgICAgIGNvbnN0IHVu c2lnbmVkIGxvbmcgKmJhZHBhZ2UgPSBOVUxMOwo+ICAgICAgdW5zaWduZWQgaW50IGksIGFycmF5 X3NpemU7Cj4gKwo+ICsgICAgQlVJTERfQlVHX09OKDggKiBzaXplb2YoKChzdHJ1Y3QgcGFnZV9p bmZvICopMCktPnUuZnJlZS5maXJzdF9kaXJ0eSkgPAo+ICsgICAgICAgICAgICAgICAgIE1BWF9P UkRFUiArIDEpOwo+ICAjZW5kaWYKPiArICAgIEJVSUxEX0JVR19PTihzaXplb2YoKChzdHJ1Y3Qg cGFnZV9pbmZvICopMCktPnUpICE9IHNpemVvZih1bnNpZ25lZCBsb25nKSk7Cj4KPiAgICAgIHBz ID0gcm91bmRfcGd1cChwcyk7Cj4gICAgICBwZSA9IHJvdW5kX3BnZG93bihwZSk7Cj4gQEAgLTM3 NSw2ICszNzksOCBAQCB0eXBlZGVmIHN0cnVjdCBwYWdlX2xpc3RfaGVhZCBoZWFwX2J5X3pvbmVf YW5kX29yZGVyX3RbTlJfWk9ORVNdW01BWF9PUkRFUisxXTsKPiAgc3RhdGljIGhlYXBfYnlfem9u ZV9hbmRfb3JkZXJfdCAqX2hlYXBbTUFYX05VTU5PREVTXTsKPiAgI2RlZmluZSBoZWFwKG5vZGUs IHpvbmUsIG9yZGVyKSAoKCpfaGVhcFtub2RlXSlbem9uZV1bb3JkZXJdKQo+Cj4gK3N0YXRpYyB1 bnNpZ25lZCBsb25nIG5vZGVfbmVlZF9zY3J1YltNQVhfTlVNTk9ERVNdOwo+ICsKPiAgc3RhdGlj IHVuc2lnbmVkIGxvbmcgKmF2YWlsW01BWF9OVU1OT0RFU107Cj4gIHN0YXRpYyBsb25nIHRvdGFs X2F2YWlsX3BhZ2VzOwo+Cj4gQEAgLTY3MCwxMyArNjc2LDMwIEBAIHN0YXRpYyB2b2lkIGNoZWNr X2xvd19tZW1fdmlycSh2b2lkKQo+ICAgICAgfQo+ICB9Cj4KPiArLyogUGFnZXMgdGhhdCBuZWVk IGEgc2NydWIgYXJlIGFkZGVkIHRvIHRhaWwsIG90aGVyd2lzZSB0byBoZWFkLiAqLwo+ICtzdGF0 aWMgdm9pZCBwYWdlX2xpc3RfYWRkX3NjcnViKHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1bnNpZ25l ZCBpbnQgbm9kZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgem9uZSwgdW5zaWduZWQgaW50IG9yZGVyLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBmaXJzdF9kaXJ0eSkKPiArewo+ICsgICAgUEZOX09SREVSKHBn KSA9IG9yZGVyOwo+ICsgICAgcGctPnUuZnJlZS5maXJzdF9kaXJ0eSA9IGZpcnN0X2RpcnR5Owo+ ICsKPiArICAgIGlmICggZmlyc3RfZGlydHkgIT0gSU5WQUxJRF9ESVJUWV9JRFggKQo+ICsgICAg ewo+ICsgICAgICAgIEFTU0VSVChmaXJzdF9kaXJ0eSA8ICgxVSA8PCBvcmRlcikpOwo+ICsgICAg ICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwZywgJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKPiAr ICAgIH0KPiArICAgIGVsc2UKPiArICAgICAgICBwYWdlX2xpc3RfYWRkKHBnLCAmaGVhcChub2Rl LCB6b25lLCBvcmRlcikpOwo+ICt9Cj4gKwo+ICAvKiBBbGxvY2F0ZSAyXkBvcmRlciBjb250aWd1 b3VzIHBhZ2VzLiAqLwo+ICBzdGF0aWMgc3RydWN0IHBhZ2VfaW5mbyAqYWxsb2NfaGVhcF9wYWdl cygKPiAgICAgIHVuc2lnbmVkIGludCB6b25lX2xvLCB1bnNpZ25lZCBpbnQgem9uZV9oaSwKPiAg ICAgIHVuc2lnbmVkIGludCBvcmRlciwgdW5zaWduZWQgaW50IG1lbWZsYWdzLAo+ICAgICAgc3Ry dWN0IGRvbWFpbiAqZCkKPiAgewo+IC0gICAgdW5zaWduZWQgaW50IGksIGosIHpvbmUgPSAwLCBu b2RlbWFza19yZXRyeSA9IDA7Cj4gKyAgICB1bnNpZ25lZCBpbnQgaSwgaiwgem9uZSA9IDAsIG5v ZGVtYXNrX3JldHJ5ID0gMCwgZmlyc3RfZGlydHk7Cj4gICAgICBub2RlaWRfdCBmaXJzdF9ub2Rl LCBub2RlID0gTUVNRl9nZXRfbm9kZShtZW1mbGFncyksIHJlcV9ub2RlID0gbm9kZTsKPiAgICAg IHVuc2lnbmVkIGxvbmcgcmVxdWVzdCA9IDFVTCA8PCBvcmRlcjsKPiAgICAgIHN0cnVjdCBwYWdl X2luZm8gKnBnOwo+IEBAIC03OTAsMTIgKzgxMywyNiBAQCBzdGF0aWMgc3RydWN0IHBhZ2VfaW5m byAqYWxsb2NfaGVhcF9wYWdlcygKPiAgICAgIHJldHVybiBOVUxMOwo+Cj4gICBmb3VuZDoKPiAr Cj4gKyAgICBmaXJzdF9kaXJ0eSA9IHBnLT51LmZyZWUuZmlyc3RfZGlydHk7Cj4gKwo+ICAgICAg LyogV2UgbWF5IGhhdmUgdG8gaGFsdmUgdGhlIGNodW5rIGEgbnVtYmVyIG9mIHRpbWVzLiAqLwo+ ICAgICAgd2hpbGUgKCBqICE9IG9yZGVyICkKPiAgICAgIHsKPiAtICAgICAgICBQRk5fT1JERVIo cGcpID0gLS1qOwo+IC0gICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwZywgJmhlYXAobm9kZSwg em9uZSwgaikpOwo+IC0gICAgICAgIHBnICs9IDEgPDwgajsKPiArICAgICAgICBqLS07Cj4gKyAg ICAgICAgcGFnZV9saXN0X2FkZF9zY3J1YihwZywgbm9kZSwgem9uZSwgaiwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgxVSA8PCBqKSA+IGZpcnN0X2RpcnR5ID8KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZpcnN0X2RpcnR5IDogSU5WQUxJRF9ESVJUWV9JRFgpOwo+ICsg ICAgICAgIHBnICs9IDFVIDw8IGo7Cj4gKwo+ICsgICAgICAgIGlmICggZmlyc3RfZGlydHkgIT0g SU5WQUxJRF9ESVJUWV9JRFggKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgLyogQWRqdXN0 IGZpcnN0X2RpcnR5ICovCj4gKyAgICAgICAgICAgIGlmICggZmlyc3RfZGlydHkgPj0gMVUgPDwg aiApCj4gKyAgICAgICAgICAgICAgICBmaXJzdF9kaXJ0eSAtPSAxVSA8PCBqOwo+ICsgICAgICAg ICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgICBmaXJzdF9kaXJ0eSA9IDA7IC8qIFdlJ3ZlIG1v dmVkIHBhc3Qgb3JpZ2luYWwgZmlyc3RfZGlydHkgKi8KPiArICAgICAgICB9Cj4gICAgICB9Cj4K PiAgICAgIEFTU0VSVChhdmFpbFtub2RlXVt6b25lXSA+PSByZXF1ZXN0KTsKPiBAQCAtODQyLDEy ICs4NzksMjAgQEAgc3RhdGljIGludCByZXNlcnZlX29mZmxpbmVkX3BhZ2Uoc3RydWN0IHBhZ2Vf aW5mbyAqaGVhZCkKPiAgICAgIHVuc2lnbmVkIGludCBub2RlID0gcGh5c190b19uaWQocGFnZV90 b19tYWRkcihoZWFkKSk7Cj4gICAgICBpbnQgem9uZSA9IHBhZ2VfdG9fem9uZShoZWFkKSwgaSwg aGVhZF9vcmRlciA9IFBGTl9PUkRFUihoZWFkKSwgY291bnQgPSAwOwo+ICAgICAgc3RydWN0IHBh Z2VfaW5mbyAqY3VyX2hlYWQ7Cj4gLSAgICBpbnQgY3VyX29yZGVyOwo+ICsgICAgdW5zaWduZWQg aW50IGN1cl9vcmRlciwgZmlyc3RfZGlydHk7Cj4KPiAgICAgIEFTU0VSVChzcGluX2lzX2xvY2tl ZCgmaGVhcF9sb2NrKSk7Cj4KPiAgICAgIGN1cl9oZWFkID0gaGVhZDsKPgo+ICsgICAgLyoKPiAr ICAgICAqIFdlIG1heSBicmVhayB0aGUgYnVkZHkgc28gbGV0J3MgbWFyayB0aGUgaGVhZCBhcyBj bGVhbi4gVGhlbiwgd2hlbgo+ICsgICAgICogbWVyZ2luZyBjaHVua3MgYmFjayBpbnRvIHRoZSBo ZWFwLCB3ZSB3aWxsIHNlZSB3aGV0aGVyIHRoZSBjaHVuayBoYXMKPiArICAgICAqIHVuc2NydWJi ZWQgcGFnZXMgYW5kIHNldCBpdHMgZmlyc3RfZGlydHkgcHJvcGVybHkuCj4gKyAgICAgKi8KPiAr ICAgIGZpcnN0X2RpcnR5ID0gaGVhZC0+dS5mcmVlLmZpcnN0X2RpcnR5Owo+ICsgICAgaGVhZC0+ dS5mcmVlLmZpcnN0X2RpcnR5ID0gSU5WQUxJRF9ESVJUWV9JRFg7Cj4gKwo+ICAgICAgcGFnZV9s aXN0X2RlbChoZWFkLCAmaGVhcChub2RlLCB6b25lLCBoZWFkX29yZGVyKSk7Cj4KPiAgICAgIHdo aWxlICggY3VyX2hlYWQgPCAoaGVhZCArICgxIDw8IGhlYWRfb3JkZXIpKSApCj4gQEAgLTg1OCw2 ICs5MDMsOCBAQCBzdGF0aWMgaW50IHJlc2VydmVfb2ZmbGluZWRfcGFnZShzdHJ1Y3QgcGFnZV9p bmZvICpoZWFkKQo+ICAgICAgICAgIGlmICggcGFnZV9zdGF0ZV9pcyhjdXJfaGVhZCwgb2ZmbGlu ZWQpICkKPiAgICAgICAgICB7Cj4gICAgICAgICAgICAgIGN1cl9oZWFkKys7Cj4gKyAgICAgICAg ICAgIGlmICggZmlyc3RfZGlydHkgIT0gSU5WQUxJRF9ESVJUWV9JRFggJiYgZmlyc3RfZGlydHkg KQo+ICsgICAgICAgICAgICAgICAgZmlyc3RfZGlydHktLTsKPiAgICAgICAgICAgICAgY29udGlu dWU7Cj4gICAgICAgICAgfQo+Cj4gQEAgLTg4NCw5ICs5MzEsMjAgQEAgc3RhdGljIGludCByZXNl cnZlX29mZmxpbmVkX3BhZ2Uoc3RydWN0IHBhZ2VfaW5mbyAqaGVhZCkKPiAgICAgICAgICAgICAg ewo+ICAgICAgICAgICAgICBtZXJnZToKPiAgICAgICAgICAgICAgICAgIC8qIFdlIGRvbid0IGNv bnNpZGVyIG1lcmdpbmcgb3V0c2lkZSB0aGUgaGVhZF9vcmRlci4gKi8KPiAtICAgICAgICAgICAg ICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChjdXJfaGVhZCwgJmhlYXAobm9kZSwgem9uZSwgY3VyX29y ZGVyKSk7Cj4gLSAgICAgICAgICAgICAgICBQRk5fT1JERVIoY3VyX2hlYWQpID0gY3VyX29yZGVy Owo+ICsgICAgICAgICAgICAgICAgcGFnZV9saXN0X2FkZF9zY3J1YihjdXJfaGVhZCwgbm9kZSwg em9uZSwgY3VyX29yZGVyLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo MVUgPDwgY3VyX29yZGVyKSA+IGZpcnN0X2RpcnR5ID8KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmlyc3RfZGlydHkgOiBJTlZBTElEX0RJUlRZX0lEWCk7Cj4gICAgICAg ICAgICAgICAgICBjdXJfaGVhZCArPSAoMSA8PCBjdXJfb3JkZXIpOwo+ICsKPiArICAgICAgICAg ICAgICAgIC8qIEFkanVzdCBmaXJzdF9kaXJ0eSBpZiBuZWVkZWQuICovCj4gKyAgICAgICAgICAg ICAgICBpZiAoIGZpcnN0X2RpcnR5ICE9IElOVkFMSURfRElSVFlfSURYICkKPiArICAgICAgICAg ICAgICAgIHsKPiArICAgICAgICAgICAgICAgICAgICBpZiAoIGZpcnN0X2RpcnR5ID49ICAxVSA8 PCBjdXJfb3JkZXIgKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9kaXJ0eSAtPSAx VSA8PCBjdXJfb3JkZXI7Cj4gKyAgICAgICAgICAgICAgICAgICAgZWxzZQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBmaXJzdF9kaXJ0eSA9IDA7Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKwo+ ICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgICAgIH0KPiAgICAgICAgICB9Cj4g QEAgLTkxMSw5ICs5NjksNTMgQEAgc3RhdGljIGludCByZXNlcnZlX29mZmxpbmVkX3BhZ2Uoc3Ry dWN0IHBhZ2VfaW5mbyAqaGVhZCkKPiAgICAgIHJldHVybiBjb3VudDsKPiAgfQo+Cj4gK3N0YXRp YyB2b2lkIHNjcnViX2ZyZWVfcGFnZXModW5zaWduZWQgaW50IG5vZGUpCj4gK3sKPiArICAgIHN0 cnVjdCBwYWdlX2luZm8gKnBnOwo+ICsgICAgdW5zaWduZWQgaW50IHpvbmU7Cj4gKwo+ICsgICAg QVNTRVJUKHNwaW5faXNfbG9ja2VkKCZoZWFwX2xvY2spKTsKPiArCj4gKyAgICBpZiAoICFub2Rl X25lZWRfc2NydWJbbm9kZV0gKQo+ICsgICAgICAgIHJldHVybjsKPiArCj4gKyAgICBmb3IgKCB6 b25lID0gMDsgem9uZSA8IE5SX1pPTkVTOyB6b25lKysgKQo+ICsgICAgewo+ICsgICAgICAgIHVu c2lnbmVkIGludCBvcmRlciA9IE1BWF9PUkRFUjsKPiArCj4gKyAgICAgICAgZG8gewo+ICsgICAg ICAgICAgICB3aGlsZSAoICFwYWdlX2xpc3RfZW1wdHkoJmhlYXAobm9kZSwgem9uZSwgb3JkZXIp KSApCj4gKyAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpOwo+ ICsKPiArICAgICAgICAgICAgICAgIC8qIFVuc2NydWJiZWQgcGFnZXMgYXJlIGFsd2F5cyBhdCB0 aGUgZW5kIG9mIHRoZSBsaXN0LiAqLwo+ICsgICAgICAgICAgICAgICAgcGcgPSBwYWdlX2xpc3Rf bGFzdCgmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOwo+ICsgICAgICAgICAgICAgICAgaWYgKCBw Zy0+dS5mcmVlLmZpcnN0X2RpcnR5ID09IElOVkFMSURfRElSVFlfSURYICkKPiArICAgICAgICAg ICAgICAgICAgICBicmVhazsKPiArCj4gKyAgICAgICAgICAgICAgICBmb3IgKCBpID0gcGctPnUu ZnJlZS5maXJzdF9kaXJ0eTsgaSA8ICgxVSA8PCBvcmRlcik7IGkrKykKPiArICAgICAgICAgICAg ICAgIHsKPiArICAgICAgICAgICAgICAgICAgICBpZiAoIHRlc3RfYml0KF9QR0NfbmVlZF9zY3J1 YiwgJnBnW2ldLmNvdW50X2luZm8pICkKPiArICAgICAgICAgICAgICAgICAgICB7Cj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIHNjcnViX29uZV9wYWdlKCZwZ1tpXSk7Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIHBnW2ldLmNvdW50X2luZm8gJj0gflBHQ19uZWVkX3NjcnViOwo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBub2RlX25lZWRfc2NydWJbbm9kZV0tLTsKPiArICAgICAgICAg ICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKwo+ICsgICAgICAgICAgICAgICAg cGFnZV9saXN0X2RlbChwZywgJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKPiArICAgICAgICAg ICAgICAgIHBhZ2VfbGlzdF9hZGRfc2NydWIocGcsIG5vZGUsIHpvbmUsIG9yZGVyLCBJTlZBTElE X0RJUlRZX0lEWCk7Cj4gKwo+ICsgICAgICAgICAgICAgICAgaWYgKCBub2RlX25lZWRfc2NydWJb bm9kZV0gPT0gMCApCj4gKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwo+ICsgICAgICAgICAg ICB9Cj4gKyAgICAgICAgfSB3aGlsZSAoIG9yZGVyLS0gIT0gMCApOwo+ICsgICAgfQo+ICt9Cj4g Kwo+ICAvKiBGcmVlIDJeQG9yZGVyIHNldCBvZiBwYWdlcy4gKi8KPiAgc3RhdGljIHZvaWQgZnJl ZV9oZWFwX3BhZ2VzKAo+IC0gICAgc3RydWN0IHBhZ2VfaW5mbyAqcGcsIHVuc2lnbmVkIGludCBv cmRlcikKPiArICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1bnNpZ25lZCBpbnQgb3JkZXIsIGJv b2wgbmVlZF9zY3J1YikKPiAgewo+ICAgICAgdW5zaWduZWQgbG9uZyBtYXNrLCBtZm4gPSBwYWdl X3RvX21mbihwZyk7Cj4gICAgICB1bnNpZ25lZCBpbnQgaSwgbm9kZSA9IHBoeXNfdG9fbmlkKHBh Z2VfdG9fbWFkZHIocGcpKSwgdGFpbnRlZCA9IDA7Cj4gQEAgLTk1MywxMCArMTA1NSwyMCBAQCBz dGF0aWMgdm9pZCBmcmVlX2hlYXBfcGFnZXMoCj4gICAgICAgICAgLyogVGhpcyBwYWdlIGlzIG5v dCBhIGd1ZXN0IGZyYW1lIGFueSBtb3JlLiAqLwo+ICAgICAgICAgIHBhZ2Vfc2V0X293bmVyKCZw Z1tpXSwgTlVMTCk7IC8qIHNldF9ncGZuX2Zyb21fbWZuIHNub29wcyBwZyBvd25lciAqLwo+ICAg ICAgICAgIHNldF9ncGZuX2Zyb21fbWZuKG1mbiArIGksIElOVkFMSURfTTJQX0VOVFJZKTsKPiAr Cj4gKyAgICAgICAgaWYgKCBuZWVkX3NjcnViICkKPiArICAgICAgICAgICAgcGdbaV0uY291bnRf aW5mbyB8PSBQR0NfbmVlZF9zY3J1YjsKPiAgICAgIH0KPgo+ICAgICAgYXZhaWxbbm9kZV1bem9u ZV0gKz0gMSA8PCBvcmRlcjsKPiAgICAgIHRvdGFsX2F2YWlsX3BhZ2VzICs9IDEgPDwgb3JkZXI7 Cj4gKyAgICBpZiAoIG5lZWRfc2NydWIgKQo+ICsgICAgewo+ICsgICAgICAgIG5vZGVfbmVlZF9z Y3J1Yltub2RlXSArPSAxIDw8IG9yZGVyOwo+ICsgICAgICAgIHBnLT51LmZyZWUuZmlyc3RfZGly dHkgPSAwOwo+ICsgICAgfQo+ICsgICAgZWxzZQo+ICsgICAgICAgIHBnLT51LmZyZWUuZmlyc3Rf ZGlydHkgPSBJTlZBTElEX0RJUlRZX0lEWDsKPgo+ICAgICAgaWYgKCB0bWVtX2VuYWJsZWQoKSAp Cj4gICAgICAgICAgbWlkc2l6ZV9hbGxvY196b25lX3BhZ2VzID0gbWF4KAo+IEBAIC05ODAsNiAr MTA5MiwxMiBAQCBzdGF0aWMgdm9pZCBmcmVlX2hlYXBfcGFnZXMoCj4KPiAgICAgICAgICAgICAg cGFnZV9saXN0X2RlbChwcmVkZWNlc3NvciwgJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKPgo+ ICsgICAgICAgICAgICAvKiBLZWVwIHByZWRlY2Vzc29yJ3MgZmlyc3RfZGlydHkgaWYgaXQgaXMg YWxyZWFkeSBzZXQuICovCj4gKyAgICAgICAgICAgIGlmICggcHJlZGVjZXNzb3ItPnUuZnJlZS5m aXJzdF9kaXJ0eSA9PSBJTlZBTElEX0RJUlRZX0lEWCAmJgo+ICsgICAgICAgICAgICAgICAgIHBn LT51LmZyZWUuZmlyc3RfZGlydHkgIT0gSU5WQUxJRF9ESVJUWV9JRFggKQo+ICsgICAgICAgICAg ICAgICAgcHJlZGVjZXNzb3ItPnUuZnJlZS5maXJzdF9kaXJ0eSA9ICgxVSA8PCBvcmRlcikgKwo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnLT51 LmZyZWUuZmlyc3RfZGlydHk7Cj4gKwo+ICAgICAgICAgICAgICBwZyA9IHByZWRlY2Vzc29yOwo+ ICAgICAgICAgIH0KPiAgICAgICAgICBlbHNlCj4gQEAgLTk5OSwxMiArMTExNywxNCBAQCBzdGF0 aWMgdm9pZCBmcmVlX2hlYXBfcGFnZXMoCj4gICAgICAgICAgb3JkZXIrKzsKPiAgICAgIH0KPgo+ IC0gICAgUEZOX09SREVSKHBnKSA9IG9yZGVyOwo+IC0gICAgcGFnZV9saXN0X2FkZF90YWlsKHBn LCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOwo+ICsgICAgcGFnZV9saXN0X2FkZF9zY3J1Yihw Zywgbm9kZSwgem9uZSwgb3JkZXIsIHBnLT51LmZyZWUuZmlyc3RfZGlydHkpOwo+Cj4gICAgICBp ZiAoIHRhaW50ZWQgKQo+ICAgICAgICAgIHJlc2VydmVfb2ZmbGluZWRfcGFnZShwZyk7Cj4KPiAr ICAgIGlmICggbmVlZF9zY3J1YiApCj4gKyAgICAgICAgc2NydWJfZnJlZV9wYWdlcyhub2RlKTsK PiArCj4gICAgICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsKPiAgfQo+Cj4gQEAgLTEyMjUsNyAr MTM0NSw3IEBAIHVuc2lnbmVkIGludCBvbmxpbmVfcGFnZSh1bnNpZ25lZCBsb25nIG1mbiwgdWlu dDMyX3QgKnN0YXR1cykKPiAgICAgIHNwaW5fdW5sb2NrKCZoZWFwX2xvY2spOwo+Cj4gICAgICBp ZiAoICh5ICYgUEdDX3N0YXRlKSA9PSBQR0Nfc3RhdGVfb2ZmbGluZWQgKQo+IC0gICAgICAgIGZy ZWVfaGVhcF9wYWdlcyhwZywgMCk7Cj4gKyAgICAgICAgZnJlZV9oZWFwX3BhZ2VzKHBnLCAwLCBm YWxzZSk7Cj4KPiAgICAgIHJldHVybiByZXQ7Cj4gIH0KPiBAQCAtMTI5NCw3ICsxNDE0LDcgQEAg c3RhdGljIHZvaWQgaW5pdF9oZWFwX3BhZ2VzKAo+ICAgICAgICAgICAgICBucl9wYWdlcyAtPSBu Owo+ICAgICAgICAgIH0KPgo+IC0gICAgICAgIGZyZWVfaGVhcF9wYWdlcyhwZytpLCAwKTsKPiAr ICAgICAgICBmcmVlX2hlYXBfcGFnZXMocGcgKyBpLCAwLCBmYWxzZSk7Cj4gICAgICB9Cj4gIH0K Pgo+IEBAIC0xNjIxLDcgKzE3NDEsNyBAQCB2b2lkIGZyZWVfeGVuaGVhcF9wYWdlcyh2b2lkICp2 LCB1bnNpZ25lZCBpbnQgb3JkZXIpCj4KPiAgICAgIG1lbWd1YXJkX2d1YXJkX3JhbmdlKHYsIDEg PDwgKG9yZGVyICsgUEFHRV9TSElGVCkpOwo+Cj4gLSAgICBmcmVlX2hlYXBfcGFnZXModmlydF90 b19wYWdlKHYpLCBvcmRlcik7Cj4gKyAgICBmcmVlX2hlYXBfcGFnZXModmlydF90b19wYWdlKHYp LCBvcmRlciwgZmFsc2UpOwo+ICB9Cj4KPiAgI2Vsc2UKPiBAQCAtMTY3NSwxMiArMTc5NSw5IEBA IHZvaWQgZnJlZV94ZW5oZWFwX3BhZ2VzKHZvaWQgKnYsIHVuc2lnbmVkIGludCBvcmRlcikKPiAg ICAgIHBnID0gdmlydF90b19wYWdlKHYpOwo+Cj4gICAgICBmb3IgKCBpID0gMDsgaSA8ICgxdSA8 PCBvcmRlcik7IGkrKyApCj4gLSAgICB7Cj4gLSAgICAgICAgc2NydWJfb25lX3BhZ2UoJnBnW2ld KTsKPiAgICAgICAgICBwZ1tpXS5jb3VudF9pbmZvICY9IH5QR0NfeGVuX2hlYXA7Cj4gLSAgICB9 Cj4KPiAtICAgIGZyZWVfaGVhcF9wYWdlcyhwZywgb3JkZXIpOwo+ICsgICAgZnJlZV9oZWFwX3Bh Z2VzKHBnLCBvcmRlciwgdHJ1ZSk7Cj4gIH0KPgo+ICAjZW5kaWYKPiBAQCAtMTc4OSw3ICsxOTA2 LDcgQEAgc3RydWN0IHBhZ2VfaW5mbyAqYWxsb2NfZG9taGVhcF9wYWdlcygKPiAgICAgIGlmICgg ZCAmJiAhKG1lbWZsYWdzICYgTUVNRl9ub19vd25lcikgJiYKPiAgICAgICAgICAgYXNzaWduX3Bh Z2VzKGQsIHBnLCBvcmRlciwgbWVtZmxhZ3MpICkKPiAgICAgIHsKPiAtICAgICAgICBmcmVlX2hl YXBfcGFnZXMocGcsIG9yZGVyKTsKPiArICAgICAgICBmcmVlX2hlYXBfcGFnZXMocGcsIG9yZGVy LCBmYWxzZSk7Cj4gICAgICAgICAgcmV0dXJuIE5VTEw7Cj4gICAgICB9Cj4KPiBAQCAtMTg1Nywx MSArMTk3NCw3IEBAIHZvaWQgZnJlZV9kb21oZWFwX3BhZ2VzKHN0cnVjdCBwYWdlX2luZm8gKnBn LCB1bnNpZ25lZCBpbnQgb3JkZXIpCj4gICAgICAgICAgICAgIHNjcnViID0gMTsKPiAgICAgICAg ICB9Cj4KPiAtICAgICAgICBpZiAoIHVubGlrZWx5KHNjcnViKSApCj4gLSAgICAgICAgICAgIGZv ciAoIGkgPSAwOyBpIDwgKDEgPDwgb3JkZXIpOyBpKysgKQo+IC0gICAgICAgICAgICAgICAgc2Ny dWJfb25lX3BhZ2UoJnBnW2ldKTsKPiAtCj4gLSAgICAgICAgZnJlZV9oZWFwX3BhZ2VzKHBnLCBv cmRlcik7Cj4gKyAgICAgICAgZnJlZV9oZWFwX3BhZ2VzKHBnLCBvcmRlciwgc2NydWIpOwo+ICAg ICAgfQo+Cj4gICAgICBpZiAoIGRyb3BfZG9tX3JlZiApCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL2FzbS1hcm0vbW0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaAo+IGluZGV4IGVmODRi NzIuLjNiM2QzOGYgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oCj4gKysr IGIveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oCj4gQEAgLTQzLDggKzQzLDE2IEBAIHN0cnVjdCBw YWdlX2luZm8KPiAgICAgICAgICB9IGludXNlOwo+ICAgICAgICAgIC8qIFBhZ2UgaXMgb24gYSBm cmVlIGxpc3Q6ICgoY291bnRfaW5mbyAmIFBHQ19jb3VudF9tYXNrKSA9PSAwKS4gKi8KPiAgICAg ICAgICBzdHJ1Y3Qgewo+ICsgICAgICAgICAgICAvKgo+ICsgICAgICAgICAgICAgKiBJbmRleCBv ZiB0aGUgZmlyc3QgKnBvc3NpYmx5KiB1bnNjcnViYmVkIHBhZ2UgaW4gdGhlIGJ1ZGR5Lgo+ICsg ICAgICAgICAgICAgKiBPbmUgbW9yZSBiaXQgdGhhbiBtYXhpbXVtIHBvc3NpYmxlIG9yZGVyIHRv IGFjY29tbW9kYXRlCj4gKyAgICAgICAgICAgICAqIElOVkFMSURfRElSVFlfSURYLgo+ICsgICAg ICAgICAgICAgKi8KPiArI2RlZmluZSBJTlZBTElEX0RJUlRZX0lEWCAoKDFVTCA8PCAoTUFYX09S REVSICsgMSkpIC0gMSkKPiArICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmaXJzdF9kaXJ0eTpN QVhfT1JERVIgKyAxOwo+ICsKPiAgICAgICAgICAgICAgLyogRG8gVExCcyBuZWVkIGZsdXNoaW5n IGZvciBzYWZldHkgYmVmb3JlIG5leHQgcGFnZSB1c2U/ICovCj4gLSAgICAgICAgICAgIGJvb2xf dCBuZWVkX3RsYmZsdXNoOwo+ICsgICAgICAgICAgICBib29sIG5lZWRfdGxiZmx1c2g6MTsKPiAg ICAgICAgICB9IGZyZWU7Cj4KPiAgICAgIH0gdTsKPiBAQCAtMTA3LDYgKzExNSwxMyBAQCBzdHJ1 Y3QgcGFnZV9pbmZvCj4gICNkZWZpbmUgUEdDX2NvdW50X3dpZHRoICAgUEdfc2hpZnQoOSkKPiAg I2RlZmluZSBQR0NfY291bnRfbWFzayAgICAoKDFVTDw8UEdDX2NvdW50X3dpZHRoKS0xKQo+Cj4g Ky8qCj4gKyAqIFBhZ2UgbmVlZHMgdG8gYmUgc2NydWJiZWQuIFNpbmNlIHRoaXMgYml0IGNhbiBv bmx5IGJlIHNldCBvbiBhIHBhZ2UgdGhhdCBpcwo+ICsgKiBmcmVlIChpLmUuIGluIFBHQ19zdGF0 ZV9mcmVlKSB3ZSBjYW4gcmV1c2UgUEdDX2FsbG9jYXRlZCBiaXQuCj4gKyAqLwo+ICsjZGVmaW5l IF9QR0NfbmVlZF9zY3J1YiAgIF9QR0NfYWxsb2NhdGVkCj4gKyNkZWZpbmUgUEdDX25lZWRfc2Ny dWIgICAgUEdDX2FsbG9jYXRlZAo+ICsKPiAgZXh0ZXJuIG1mbl90IHhlbmhlYXBfbWZuX3N0YXJ0 LCB4ZW5oZWFwX21mbl9lbmQ7Cj4gIGV4dGVybiB2YWRkcl90IHhlbmhlYXBfdmlydF9lbmQ7Cj4g ICNpZmRlZiBDT05GSUdfQVJNXzY0Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYv bW0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaAo+IGluZGV4IDJiZjNmMzMuLjg2YjE3MjMg MTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCj4gKysrIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9tbS5oCj4gQEAgLTg3LDYgKzg3LDE0IEBAIHN0cnVjdCBwYWdlX2luZm8KPgo+ ICAgICAgICAgIC8qIFBhZ2UgaXMgb24gYSBmcmVlIGxpc3Q6ICgoY291bnRfaW5mbyAmIFBHQ19j b3VudF9tYXNrKSA9PSAwKS4gKi8KPiAgICAgICAgICBzdHJ1Y3Qgewo+ICsgICAgICAgICAgICAv Kgo+ICsgICAgICAgICAgICAgKiBJbmRleCBvZiB0aGUgZmlyc3QgKnBvc3NpYmx5KiB1bnNjcnVi YmVkIHBhZ2UgaW4gdGhlIGJ1ZGR5Lgo+ICsgICAgICAgICAgICAgKiBPbmUgbW9yZSBiaXQgdGhh biBtYXhpbXVtIHBvc3NpYmxlIG9yZGVyIHRvIGFjY29tbW9kYXRlCj4gKyAgICAgICAgICAgICAq IElOVkFMSURfRElSVFlfSURYLgo+ICsgICAgICAgICAgICAgKi8KPiArI2RlZmluZSBJTlZBTElE X0RJUlRZX0lEWCAoKDFVTCA8PCAoTUFYX09SREVSICsgMSkpIC0gMSkKPiArICAgICAgICAgICAg dW5zaWduZWQgaW50IGZpcnN0X2RpcnR5Owo+ICsKPiAgICAgICAgICAgICAgLyogRG8gVExCcyBu ZWVkIGZsdXNoaW5nIGZvciBzYWZldHkgYmVmb3JlIG5leHQgcGFnZSB1c2U/ICovCj4gICAgICAg ICAgICAgIGJvb2xfdCBuZWVkX3RsYmZsdXNoOwo+ICAgICAgICAgIH0gZnJlZTsKPiBAQCAtMjMz LDYgKzI0MSwxMyBAQCBzdHJ1Y3QgcGFnZV9pbmZvCj4gICNkZWZpbmUgUEdDX2NvdW50X3dpZHRo ICAgUEdfc2hpZnQoOSkKPiAgI2RlZmluZSBQR0NfY291bnRfbWFzayAgICAoKDFVTDw8UEdDX2Nv dW50X3dpZHRoKS0xKQo+Cj4gKy8qCj4gKyAqIFBhZ2UgbmVlZHMgdG8gYmUgc2NydWJiZWQuIFNp bmNlIHRoaXMgYml0IGNhbiBvbmx5IGJlIHNldCBvbiBhIHBhZ2UgdGhhdCBpcwo+ICsgKiBmcmVl IChpLmUuIGluIFBHQ19zdGF0ZV9mcmVlKSB3ZSBjYW4gcmV1c2UgUEdDX2FsbG9jYXRlZCBiaXQu Cj4gKyAqLwo+ICsjZGVmaW5lIF9QR0NfbmVlZF9zY3J1YiAgIF9QR0NfYWxsb2NhdGVkCj4gKyNk ZWZpbmUgUEdDX25lZWRfc2NydWIgICAgUEdDX2FsbG9jYXRlZAo+ICsKPiAgI2RlZmluZSBpc194 ZW5faGVhcF9wYWdlKHBhZ2UpICgocGFnZSktPmNvdW50X2luZm8gJiBQR0NfeGVuX2hlYXApCj4g ICNkZWZpbmUgaXNfeGVuX2hlYXBfbWZuKG1mbikgXAo+ICAgICAgKF9fbWZuX3ZhbGlkKG1mbikg JiYgaXNfeGVuX2hlYXBfcGFnZShfX21mbl90b19wYWdlKG1mbikpKQo+CgotLSAKSnVsaWVuIEdy YWxsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK