From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v13 05/11] x86/mm: add HYPERVISOR_memory_op to acquire guest resources Date: Mon, 30 Oct 2017 17:48:23 +0000 Message-ID: <20171030174829.4518-6-paul.durrant@citrix.com> References: <20171030174829.4518-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e9EAy-0006nc-Li for xen-devel@lists.xenproject.org; Mon, 30 Oct 2017 17:48:40 +0000 In-Reply-To: <20171030174829.4518-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jan Beulich , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org Q2VydGFpbiBtZW1vcnkgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIGd1ZXN0IGFyZSBub3Qg bmVjZXNzYXJpbHkKcHJlc2VudCBpbiB0aGUgZ3Vlc3QgUDJNLgoKVGhpcyBwYXRjaCBhZGRzIHRo ZSBib2lsZXJwbGF0ZSBmb3IgbmV3IG1lbW9yeSBvcCB0byBhbGxvdyBzdWNoIGEgcmVzb3VyY2UK dG8gYmUgcHJpdi1tYXBwZWQgZGlyZWN0bHksIGJ5IGVpdGhlciBhIFBWIG9yIEhWTSB0b29scyBk b21haW4uCgpOT1RFOiBXaGlsc3QgdGhlIG5ldyBvcCBpcyBub3QgaW50cmluc2ljbHkgc3BlY2lm aWMgdG8gdGhlIHg4NiBhcmNoaXRlY3R1cmUsCiAgICAgIEkgaGF2ZSBubyBtZWFucyB0byB0ZXN0 IGl0IG9uIGFuIEFSTSBwbGF0Zm9ybSBhbmQgc28gY2Fubm90IHZlcmlmeQogICAgICB0aGF0IGl0 IGZ1bmN0aW9ucyBjb3JyZWN0bHkuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwu ZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBA ZXUuY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVubGFw IDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tz b25AZXUuY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtA b3JhY2xlLmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9y Zz4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0 cml4LmNvbT4KQ2M6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgpDYzog SnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KCnYxMzoKIC0gVXNlIHhlbl9wZm5f dCBmb3IgbWZuX2xpc3QuCiAtIEFkZHJlc3NlZCBmdXJ0aGVyIGNvbW1lbnRzIGZyb20gSmFuIGFu ZCBKdWxpZW4uCgp2MTI6CiAtIEFkZHJlc3NlZCBtb3JlIGNvbW1lbnRzIGZvcm0gSmFuLgogLSBS ZW1vdmVkICNpZmRlZiBDT05GSUdfWDg2IGZyb20gY29tbW9uIGNvZGUgYW5kIGluc3RlYWQgaW50 cm9kdWNlZCBhCiAgIHN0dWIgc2V0X2ZvcmVpZ25fcDJtX2VudHJ5KCkgaW4gYXNtLWFybS9wMm0u aCByZXR1cm5pbmcgLUVPUE5PVFNVUFAuCiAtIFJlc3RyaWN0ZWQgbWVjaGFuaXNtIGZvciBxdWVy eWluZyBpbXBsZW1lbnRhdGlvbiBsaW1pdCBvbiBucl9mcmFtZXMKICAgYW5kIHNpbXBsaWZpZWQg Y29tcGF0IGNvZGUuCgp2MTE6CiAtIEFkZHJlc3NlZCBtb3JlIGNvbW1lbnRzIGZyb20gSmFuLgoK djk6CiAtIEFkZHJlc3NlZCBtb3JlIGNvbW1lbnRzIGZyb20gSmFuLgoKdjg6CiAtIE1vdmUgdGhl IGNvZGUgaW50byBjb21tb24gYXMgcmVxdWVzdGVkIGJ5IEphbi4KIC0gTWFrZSB0aGUgZ21mbl9s aXN0IGhhbmRsZSBhIDY0LWJpdCB0eXBlIHRvIGF2b2lkIGxpbWl0aW5nIHRoZSBNRk4KICAgcmFu Z2UgZm9yIGEgMzItYml0IHRvb2xzIGRvbWFpbi4KIC0gQWRkIG1pc3NpbmcgcGFkLgogLSBBZGQg Y29tcGF0IGNvZGUuCiAtIE1ha2UgdGhpcyBwYXRjaCBkZWFsIHdpdGggcHVyZWx5IGJvaWxlcnBs YXRlLgogLSBEcm9wIEdlb3JnZSdzIEEtYiBhbmQgV2VpJ3MgUi1iIGJlY2F1c2UgdGhlIGNoYW5n ZXMgYXJlIG5vbi10cml2aWFsLAogICBhbmQgdXBkYXRlIENjIGxpc3Qgbm93IHRoZSBib2lsZXJw bGF0ZSBpcyBjb21tb24uCgp2NToKIC0gU3dpdGNoZWQgX19jb3B5X3RvL2Zyb21fZ3Vlc3Rfb2Zm c2V0KCkgdG8gY29weV90by9mcm9tX2d1ZXN0X29mZnNldCgpLgotLS0KIHRvb2xzL2ZsYXNrL3Bv bGljeS9tb2R1bGVzL3hlbi5pZiAgIHwgIDQgKy0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0uYyAgICAg ICAgICAgICAgIHwgIDMgKy0KIHhlbi9jb21tb24vY29tcGF0L21lbW9yeS5jICAgICAgICAgIHwg OTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2NvbW1vbi9tZW1v cnkuYyAgICAgICAgICAgICAgICAgfCA5MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKIHhlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmggICAgICAgICAgIHwgMTAgKysrKwogeGVu L2luY2x1ZGUvYXNtLXg4Ni9wMm0uaCAgICAgICAgICAgfCAgMyArKwogeGVuL2luY2x1ZGUvcHVi bGljL21lbW9yeS5oICAgICAgICAgfCA0MyArKysrKysrKysrKysrKysrLQogeGVuL2luY2x1ZGUv eGxhdC5sc3QgICAgICAgICAgICAgICAgfCAgMSArCiB4ZW4vaW5jbHVkZS94c20vZHVtbXkuaCAg ICAgICAgICAgICB8ICA2ICsrKwogeGVuL2luY2x1ZGUveHNtL3hzbS5oICAgICAgICAgICAgICAg fCAgNiArKysKIHhlbi94c20vZHVtbXkuYyAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogeGVu L3hzbS9mbGFzay9ob29rcy5jICAgICAgICAgICAgICAgfCAgNiArKysKIHhlbi94c20vZmxhc2sv cG9saWN5L2FjY2Vzc192ZWN0b3JzIHwgIDIgKwogMTMgZmlsZXMgY2hhbmdlZCwgMjY5IGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5 L21vZHVsZXMveGVuLmlmIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmCmluZGV4 IDU1NDM3NDk2ZjYuLjA3Y2JhOGExNWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9t b2R1bGVzL3hlbi5pZgorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYKQEAg LTUyLDcgKzUyLDggQEAgZGVmaW5lKGBjcmVhdGVfZG9tYWluX2NvbW1vbicsIGAKIAkJCXNldHRp bWUgc2V0ZG9tYWluaGFuZGxlIGdldHZjcHVjb250ZXh0IHNldF9taXNjX2luZm8gfTsKIAlhbGxv dyAkMSAkMjpkb21haW4yIHsgc2V0X2NwdWlkIHNldHRzYyBzZXRzY2hlZHVsZXIgc2V0Y2xhaW0K IAkJCXNldF9tYXhfZXZ0Y2huIHNldF92bnVtYWluZm8gZ2V0X3ZudW1haW5mbyBjYWNoZWZsdXNo Ci0JCQlwc3JfY210X29wIHBzcl9jYXRfb3Agc29mdF9yZXNldCBzZXRfZ250dGFiX2xpbWl0cyB9 OworCQkJcHNyX2NtdF9vcCBwc3JfY2F0X29wIHNvZnRfcmVzZXQgc2V0X2dudHRhYl9saW1pdHMK KwkJCXJlc291cmNlX21hcCB9OwogCWFsbG93ICQxICQyOnNlY3VyaXR5IGNoZWNrX2NvbnRleHQ7 CiAJYWxsb3cgJDEgJDI6c2hhZG93IGVuYWJsZTsKIAlhbGxvdyAkMSAkMjptbXUgeyBtYXBfcmVh ZCBtYXBfd3JpdGUgYWRqdXN0IG1lbW9yeW1hcCBwaHlzbWFwIHBpbnBhZ2UgbW11ZXh0X29wIHVw ZGF0ZW1wIH07CkBAIC0xNTIsNiArMTUzLDcgQEAgZGVmaW5lKGBkZXZpY2VfbW9kZWwnLCBgCiAJ YWxsb3cgJDEgJDJfdGFyZ2V0OmRvbWFpbiB7IGdldGRvbWFpbmluZm8gc2h1dGRvd24gfTsKIAlh bGxvdyAkMSAkMl90YXJnZXQ6bW11IHsgbWFwX3JlYWQgbWFwX3dyaXRlIGFkanVzdCBwaHlzbWFw IHRhcmdldF9oYWNrIH07CiAJYWxsb3cgJDEgJDJfdGFyZ2V0Omh2bSB7IGdldHBhcmFtIHNldHBh cmFtIGh2bWN0bCBjYWNoZWF0dHIgZG0gfTsKKwlhbGxvdyAkMSAkMl90YXJnZXQ6ZG9tYWluMiBy ZXNvdXJjZV9tYXA7CiAnKQogCiAjIG1ha2VfZGV2aWNlX21vZGVsKHByaXYsIGRtX2RvbSwgaHZt X2RvbSkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9t bS9wMm0uYwppbmRleCBjNzJhM2NkZWJiLi43MWJiOWI0ZjkzIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC0xMTMyLDggKzEx MzIsNyBAQCBzdGF0aWMgaW50IHNldF90eXBlZF9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgbG9uZyBnZm5fbCwKIH0KIAogLyogU2V0IGZvcmVpZ24gbWZuIGluIHRoZSBnaXZl biBndWVzdCdzIHAybSB0YWJsZS4gKi8KLXN0YXRpYyBpbnQgc2V0X2ZvcmVpZ25fcDJtX2VudHJ5 KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbWZuX3QgbWZuKQoraW50IHNldF9mb3JlaWduX3AybV9lbnRyeShzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwgbWZuX3QgbWZuKQogewogICAgIHJldHVy biBzZXRfdHlwZWRfcDJtX2VudHJ5KGQsIGdmbiwgbWZuLCBQQUdFX09SREVSXzRLLCBwMm1fbWFw X2ZvcmVpZ24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX2dldF9ob3N0cDJt KGQpLT5kZWZhdWx0X2FjY2Vzcyk7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2NvbXBhdC9tZW1v cnkuYyBiL3hlbi9jb21tb24vY29tcGF0L21lbW9yeS5jCmluZGV4IDM1YmIyNTk4MDguLjlhN2Ni MWE3MWIgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vY29tcGF0L21lbW9yeS5jCisrKyBiL3hlbi9j b21tb24vY29tcGF0L21lbW9yeS5jCkBAIC03MSw2ICs3MSw3IEBAIGludCBjb21wYXRfbWVtb3J5 X29wKHVuc2lnbmVkIGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgY29tcGF0 KQogICAgICAgICAgICAgc3RydWN0IHhlbl9yZW1vdmVfZnJvbV9waHlzbWFwICp4cmZwOwogICAg ICAgICAgICAgc3RydWN0IHhlbl92bnVtYV90b3BvbG9neV9pbmZvICp2bnVtYTsKICAgICAgICAg ICAgIHN0cnVjdCB4ZW5fbWVtX2FjY2Vzc19vcCAqbWFvOworICAgICAgICAgICAgc3RydWN0IHhl bl9tZW1fYWNxdWlyZV9yZXNvdXJjZSAqbWFyOwogICAgICAgICB9IG5hdDsKICAgICAgICAgdW5p b24gewogICAgICAgICAgICAgc3RydWN0IGNvbXBhdF9tZW1vcnlfcmVzZXJ2YXRpb24gcnNydjsK QEAgLTc5LDYgKzgwLDcgQEAgaW50IGNvbXBhdF9tZW1vcnlfb3AodW5zaWduZWQgaW50IGNtZCwg WEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBjb21wYXQpCiAgICAgICAgICAgICBzdHJ1Y3Qg Y29tcGF0X2FkZF90b19waHlzbWFwX2JhdGNoIGF0cGI7CiAgICAgICAgICAgICBzdHJ1Y3QgY29t cGF0X3ZudW1hX3RvcG9sb2d5X2luZm8gdm51bWE7CiAgICAgICAgICAgICBzdHJ1Y3QgY29tcGF0 X21lbV9hY2Nlc3Nfb3AgbWFvOworICAgICAgICAgICAgc3RydWN0IGNvbXBhdF9tZW1fYWNxdWly ZV9yZXNvdXJjZSBtYXI7CiAgICAgICAgIH0gY21wOwogCiAgICAgICAgIHNldF94ZW5fZ3Vlc3Rf aGFuZGxlKG5hdC5obmQsIENPTVBBVF9BUkdfWExBVF9WSVJUX0JBU0UpOwpAQCAtMzk1LDYgKzM5 Nyw1NyBAQCBpbnQgY29tcGF0X21lbW9yeV9vcCh1bnNpZ25lZCBpbnQgY21kLCBYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHZvaWQpIGNvbXBhdCkKICAgICAgICAgfQogI2VuZGlmCiAKKyAgICAgICAg Y2FzZSBYRU5NRU1fYWNxdWlyZV9yZXNvdXJjZToKKyAgICAgICAgeworICAgICAgICAgICAgeGVu X3Bmbl90ICp4ZW5fZnJhbWVfbGlzdDsKKyAgICAgICAgICAgIHVuc2lnbmVkIGludCBtYXhfbnJf ZnJhbWVzOworCisgICAgICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmY21wLm1hciwgY29t cGF0LCAxKSApCisgICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICAgICAgICAg IC8qCisgICAgICAgICAgICAgKiBUaGUgbnVtYmVyIG9mIGZyYW1lcyBoYW5kbGVkIGlzIGN1cnJl bnRseSBsaW1pdGVkIHRvIGEKKyAgICAgICAgICAgICAqIHNtYWxsIG51bWJlciBieSB0aGUgdW5k ZXJseWluZyBpbXBsZW1lbnRhdGlvbiwgc28gdGhlCisgICAgICAgICAgICAgKiBzY3JhdGNoIHNw YWNlIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBib3VuY2luZyB0aGUKKyAgICAgICAgICAgICAq IGZyYW1lIGFkZHJlc3Nlcy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgbWF4X25yX2Zy YW1lcyA9IChDT01QQVRfQVJHX1hMQVRfU0laRSAtIHNpemVvZigqbmF0Lm1hcikpIC8KKyAgICAg ICAgICAgICAgICBzaXplb2YoKnhlbl9mcmFtZV9saXN0KTsKKworICAgICAgICAgICAgaWYgKCBj bXAubWFyLm5yX2ZyYW1lcyA+IG1heF9ucl9mcmFtZXMgKQorICAgICAgICAgICAgICAgIHJldHVy biAtRTJCSUc7CisKKyAgICAgICAgICAgIGlmICggY29tcGF0X2hhbmRsZV9pc19udWxsKGNtcC5t YXIuZnJhbWVfbGlzdCkgKQorICAgICAgICAgICAgICAgIHhlbl9mcmFtZV9saXN0ID0gTlVMTDsK KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB4ZW5fZnJh bWVfbGlzdCA9ICh4ZW5fcGZuX3QgKikobmF0Lm1hciArIDEpOworCisgICAgICAgICAgICAgICAg aWYgKCAhY29tcGF0X2hhbmRsZV9va2F5KGNtcC5tYXIuZnJhbWVfbGlzdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21wLm1hci5ucl9mcmFtZXMpICkKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICAgICAgICAgICAgICBmb3IgKCBp ID0gMDsgaSA8IGNtcC5tYXIubnJfZnJhbWVzOyBpKysgKQorICAgICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAgICAgY29tcGF0X3Bmbl90IGZyYW1lOworCisgICAgICAgICAgICAgICAg ICAgIGlmICggX19jb3B5X2Zyb21fY29tcGF0X29mZnNldCgKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmZyYW1lLCBjbXAubWFyLmZyYW1lX2xpc3QsIGksIDEpICkKKyAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOworCisgICAgICAgICAgICAgICAgICAgIHhlbl9m cmFtZV9saXN0W2ldID0gZnJhbWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor CisjZGVmaW5lIFhMQVRfbWVtX2FjcXVpcmVfcmVzb3VyY2VfSE5ETF9mcmFtZV9saXN0KF9kXywg X3NfKSBcCisgICAgICAgICAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZSgoX2RfKS0+ZnJhbWVfbGlz dCwgeGVuX2ZyYW1lX2xpc3QpCisKKyAgICAgICAgICAgIFhMQVRfbWVtX2FjcXVpcmVfcmVzb3Vy Y2UobmF0Lm1hciwgJmNtcC5tYXIpOworCisjdW5kZWYgWExBVF9tZW1fYWNxdWlyZV9yZXNvdXJj ZV9ITkRMX2ZyYW1lX2xpc3QKKworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAg ICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBjb21wYXRfYXJjaF9tZW1vcnlfb3AoY21k LCBjb21wYXQpOwogICAgICAgICB9CkBAIC01MzUsNiArNTg4LDQ4IEBAIGludCBjb21wYXRfbWVt b3J5X29wKHVuc2lnbmVkIGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgY29t cGF0KQogICAgICAgICAgICAgICAgIHJjID0gLUVGQVVMVDsKICAgICAgICAgICAgIGJyZWFrOwog CisgICAgICAgIGNhc2UgWEVOTUVNX2FjcXVpcmVfcmVzb3VyY2U6CisgICAgICAgIHsKKyAgICAg ICAgICAgIGNvbnN0IHhlbl9wZm5fdCAqeGVuX2ZyYW1lX2xpc3QgPSAoeGVuX3Bmbl90ICopKG5h dC5tYXIgKyAxKTsKKyAgICAgICAgICAgIGNvbXBhdF9wZm5fdCAqY29tcGF0X2ZyYW1lX2xpc3Qg PSAoY29tcGF0X3Bmbl90ICopKG5hdC5tYXIgKyAxKTsKKworICAgICAgICAgICAgaWYgKCBjb21w YXRfaGFuZGxlX2lzX251bGwoY21wLm1hci5mcmFtZV9saXN0KSApCisgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoY29tcGF0X21lbV9hY3F1aXJl X3Jlc291cmNlX3QpOworCisgICAgICAgICAgICAgICAgaWYgKCBfX2NvcHlfZmllbGRfdG9fZ3Vl c3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoY29tcGF0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdF9tZW1fYWNx dWlyZV9yZXNvdXJjZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmY21wLm1hciwgbnJf ZnJhbWVzKSApCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOworICAgICAgICAg ICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8q CisgICAgICAgICAgICAgICAgICogTk9URTogdGhlIHNtYWxsZXIgY29tcGF0IGFycmF5IG92ZXJ3 cml0ZXMgdGhlIG5hdGl2ZQorICAgICAgICAgICAgICAgICAqICAgICAgIGFycmF5LgorICAgICAg ICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIEJVSUxEX0JVR19PTihzaXplb2YoY29tcGF0 X3Bmbl90KSA+IHNpemVvZih4ZW5fcGZuX3QpKTsKKworICAgICAgICAgICAgICAgIGZvciAoIGkg PSAwOyBpIDwgY21wLm1hci5ucl9mcmFtZXM7IGkrKyApCisgICAgICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgICAgICBjb21wYXRfcGZuX3QgZnJhbWUgPSB4ZW5fZnJhbWVfbGlzdFtpXTsK KworICAgICAgICAgICAgICAgICAgICBpZiAoIGZyYW1lICE9IHhlbl9mcmFtZV9saXN0W2ldICkK KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRVJBTkdFOworCisgICAgICAgICAgICAg ICAgICAgIGNvbXBhdF9mcmFtZV9saXN0W2ldID0gZnJhbWU7CisgICAgICAgICAgICAgICAgfQor CisgICAgICAgICAgICAgICAgaWYgKCBfX2NvcHlfdG9fY29tcGF0X29mZnNldChjbXAubWFyLmZy YW1lX2xpc3QsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb21wYXRfZnJhbWVfbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNtcC5tYXIubnJfZnJhbWVzKSApCisgICAgICAgICAgICAgICAgICAgIHJldHVy biAtRUZBVUxUOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg fQorCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBkb21haW5fY3Jhc2goY3VycmVudC0+ ZG9tYWluKTsKICAgICAgICAgICAgIHNwbGl0ID0gMDsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24v bWVtb3J5LmMgYi94ZW4vY29tbW9uL21lbW9yeS5jCmluZGV4IGFkOTg3ZTBmMjkuLmZiM2JhNWNj MjggMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbWVtb3J5LmMKKysrIGIveGVuL2NvbW1vbi9tZW1v cnkuYwpAQCAtOTY1LDYgKzk2NSw5NCBAQCBzdGF0aWMgbG9uZyB4YXRwX3Blcm1pc3Npb25fY2hl Y2soc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNwYWNlKQogICAgIHJldHVybiB4c21f YWRkX3RvX3BoeXNtYXAoWFNNX1RBUkdFVCwgY3VycmVudC0+ZG9tYWluLCBkKTsKIH0KIAorc3Rh dGljIGludCBhY3F1aXJlX3Jlc291cmNlKAorICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVu X21lbV9hY3F1aXJlX3Jlc291cmNlX3QpIGFyZykKK3sKKyAgICBzdHJ1Y3QgZG9tYWluICpkLCAq Y3VycmQgPSBjdXJyZW50LT5kb21haW47CisgICAgeGVuX21lbV9hY3F1aXJlX3Jlc291cmNlX3Qg eG1hcjsKKyAgICAvKgorICAgICAqIFRoZSBtZm5fbGlzdCBhbmQgZ2ZuX2xpc3QgKGJlbG93KSBh cnJheXMgYXJlIG9rIG9uIHN0YWNrIGZvciB0aGUKKyAgICAgKiBtb21lbnQgc2luY2UgdGhleSBh cmUgc21hbGwsIGJ1dCBpZiB0aGV5IG5lZWQgdG8gZ3JvdyBpbiBmdXR1cmUKKyAgICAgKiB1c2Ut Y2FzZXMgdGhlbiBwZXItQ1BVIGFycmF5cyBvciBoZWFwIGFsbG9jYXRpb25zIG1heSBiZSByZXF1 aXJlZC4KKyAgICAgKi8KKyAgICB4ZW5fcGZuX3QgbWZuX2xpc3RbMl07CisgICAgaW50IHJjOwor CisgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJnhtYXIsIGFyZywgMSkgKQorICAgICAgICByZXR1 cm4gLUVGQVVMVDsKKworICAgIGlmICggeG1hci5wYWQgIT0gMCApCisgICAgICAgIHJldHVybiAt RUlOVkFMOworCisgICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbCh4bWFyLmZyYW1lX2xpc3Qp ICkKKyAgICB7CisgICAgICAgIGlmICggeG1hci5ucl9mcmFtZXMgPiAwICkKKyAgICAgICAgICAg IHJldHVybiAtRUlOVkFMOworCisgICAgICAgIHhtYXIubnJfZnJhbWVzID0gQVJSQVlfU0laRSht Zm5fbGlzdCk7CisKKyAgICAgICAgaWYgKCBfX2NvcHlfZmllbGRfdG9fZ3Vlc3QoYXJnLCAmeG1h ciwgbnJfZnJhbWVzKSApCisgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgICAgICBy ZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAoIHhtYXIubnJfZnJhbWVzID4gQVJSQVlfU0laRSht Zm5fbGlzdCkgKQorICAgICAgICByZXR1cm4gLUUyQklHOworCisgICAgcmMgPSByY3VfbG9ja19y ZW1vdGVfZG9tYWluX2J5X2lkKHhtYXIuZG9taWQsICZkKTsKKyAgICBpZiAoIHJjICkKKyAgICAg ICAgcmV0dXJuIHJjOworCisgICAgcmMgPSB4c21fZG9tYWluX3Jlc291cmNlX21hcChYU01fRE1f UFJJViwgZCk7CisgICAgaWYgKCByYyApCisgICAgICAgIGdvdG8gb3V0OworCisgICAgc3dpdGNo ICggeG1hci50eXBlICkKKyAgICB7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmMgPSAtRU9QTk9U U1VQUDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKCByYyApCisgICAgICAgIGdv dG8gb3V0OworCisgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGN1cnJkKSApCisgICAg eworICAgICAgICBpZiAoIGNvcHlfdG9fZ3Vlc3QoeG1hci5mcmFtZV9saXN0LCBtZm5fbGlzdCwg eG1hci5ucl9mcmFtZXMpICkKKyAgICAgICAgICAgIHJjID0gLUVGQVVMVDsKKyAgICB9CisgICAg ZWxzZQorICAgIHsKKyAgICAgICAgeGVuX3Bmbl90IGdmbl9saXN0W0FSUkFZX1NJWkUobWZuX2xp c3QpXTsKKyAgICAgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICAgICAgcmMgPSAtRUZBVUxUOwor ICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdChnZm5fbGlzdCwgeG1hci5mcmFtZV9saXN0LCB4 bWFyLm5yX2ZyYW1lcykgKQorICAgICAgICAgICAgZ290byBvdXQ7CisKKyAgICAgICAgZm9yICgg aSA9IDA7IGkgPCB4bWFyLm5yX2ZyYW1lczsgaSsrICkKKyAgICAgICAgeworICAgICAgICAgICAg cmMgPSBzZXRfZm9yZWlnbl9wMm1fZW50cnkoY3VycmQsIGdmbl9saXN0W2ldLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21mbihtZm5fbGlzdFtpXSkpOworICAgICAg ICAgICAgaWYgKCByYyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAg ICAgICAgICAgICAgKiBNYWtlIHN1cmUgcmMgaXMgLUVJTyBmb3IgYW55IGl0ZXJhdGlvbiBvdGhl ciB0aGFuCisgICAgICAgICAgICAgICAgICogdGhlIGZpcnN0LgorICAgICAgICAgICAgICAgICAq LworICAgICAgICAgICAgICAgIHJjID0gKGkgIT0gMCkgPyAtRUlPIDogcmM7CisgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyBvdXQ6Cisg ICAgcmN1X3VubG9ja19kb21haW4oZCk7CisgICAgcmV0dXJuIHJjOworfQorCiBsb25nIGRvX21l bW9yeV9vcCh1bnNpZ25lZCBsb25nIGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBh cmcpCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCwgKmN1cnJfZCA9IGN1cnJlbnQtPmRvbWFpbjsK QEAgLTE0MDYsNiArMTQ5NCwxMSBAQCBsb25nIGRvX21lbW9yeV9vcCh1bnNpZ25lZCBsb25nIGNt ZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgfQogI2VuZGlmCiAKKyAg ICBjYXNlIFhFTk1FTV9hY3F1aXJlX3Jlc291cmNlOgorICAgICAgICByYyA9IGFjcXVpcmVfcmVz b3VyY2UoCisgICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9tZW1fYWNxdWly ZV9yZXNvdXJjZV90KSk7CisgICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAg cmMgPSBhcmNoX21lbW9yeV9vcChjbWQsIGFyZyk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgK aW5kZXggZmFhZGNmZThmZS4uZGIyY2M1ZDdhMyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LWFybS9wMm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCkBAIC0zNDYsNiArMzQ2 LDE2IEBAIHN0YXRpYyBpbmxpbmUgZ2ZuX3QgZ2ZuX25leHRfYm91bmRhcnkoZ2ZuX3QgZ2ZuLCB1 bnNpZ25lZCBpbnQgb3JkZXIpCiAgICAgcmV0dXJuIGdmbl9hZGQoZ2ZuLCAxVUwgPDwgb3JkZXIp OwogfQogCitzdGF0aWMgaW5saW5lIGludCBzZXRfZm9yZWlnbl9wMm1fZW50cnkoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbWZuX3QgbWZuKQoreworICAgIC8qCisgICAgICogTk9URTogSWYgdGhpcyBp cyBpbXBsZW1lbnRlZCB0aGVuIHByb3BlciByZWZlcmVuY2UgY291bnRpbmcgb2YKKyAgICAgKiAg ICAgICBmb3JlaWduIGVudHJpZXMgd2lsbCBuZWVkIHRvIGJlIGltcG1lbWVudGVkLgorICAgICAq LworICAgIHJldHVybiAtRU9QTk9UU1VQUDsKK30KKwogI2VuZGlmIC8qIF9YRU5fUDJNX0ggKi8K IAogLyoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmggYi94ZW4vaW5jbHVk ZS9hc20teDg2L3AybS5oCmluZGV4IDE3YjFkMGM4ZDMuLjQ0ZjdlYzA4OGMgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0u aApAQCAtNjIwLDYgKzYyMCw5IEBAIHZvaWQgcDJtX21lbW9yeV90eXBlX2NoYW5nZWQoc3RydWN0 IGRvbWFpbiAqZCk7CiBpbnQgcDJtX2lzX2xvZ2RpcnR5X3JhbmdlKHN0cnVjdCBwMm1fZG9tYWlu ICosIHVuc2lnbmVkIGxvbmcgc3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgZW5kKTsKIAorLyogU2V0IGZvcmVpZ24gZW50cnkgaW4gdGhlIHAybSB0YWJsZSAo Zm9yIHByaXYtbWFwcGluZykgKi8KK2ludCBzZXRfZm9yZWlnbl9wMm1fZW50cnkoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sIG1mbl90IG1mbik7CisKIC8qIFNldCBtbWlvIGFk ZHJlc3NlcyBpbiB0aGUgcDJtIHRhYmxlIChmb3IgcGFzcy10aHJvdWdoKSAqLwogaW50IHNldF9t bWlvX3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwgbWZuX3Qg bWZuLAogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgb3JkZXIsIHAybV9hY2Nl c3NfdCBhY2Nlc3MpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oIGIv eGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oCmluZGV4IDI5Mzg2ZGY5OGIuLjgzZTYwYjY2MDMg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaAorKysgYi94ZW4vaW5jbHVk ZS9wdWJsaWMvbWVtb3J5LmgKQEAgLTU5OSw2ICs1OTksNDcgQEAgc3RydWN0IHhlbl9yZXNlcnZl ZF9kZXZpY2VfbWVtb3J5X21hcCB7CiB0eXBlZGVmIHN0cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNl X21lbW9yeV9tYXAgeGVuX3Jlc2VydmVkX2RldmljZV9tZW1vcnlfbWFwX3Q7CiBERUZJTkVfWEVO X0dVRVNUX0hBTkRMRSh4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXBfdCk7CiAKKy8qCisg KiBHZXQgdGhlIHBhZ2VzIGZvciBhIHBhcnRpY3VsYXIgZ3Vlc3QgcmVzb3VyY2UsIHNvIHRoYXQg dGhleSBjYW4gYmUKKyAqIG1hcHBlZCBkaXJlY3RseSBieSBhIHRvb2xzIGRvbWFpbi4KKyAqLwor I2RlZmluZSBYRU5NRU1fYWNxdWlyZV9yZXNvdXJjZSAyOAorc3RydWN0IHhlbl9tZW1fYWNxdWly ZV9yZXNvdXJjZSB7CisgICAgLyogSU4gLSB0aGUgZG9tYWluIHdob3NlIHJlc291cmNlIGlzIHRv IGJlIG1hcHBlZCAqLworICAgIGRvbWlkX3QgZG9taWQ7CisgICAgLyogSU4gLSB0aGUgdHlwZSBv ZiByZXNvdXJjZSAqLworICAgIHVpbnQxNl90IHR5cGU7CisgICAgLyoKKyAgICAgKiBJTiAtIGEg dHlwZS1zcGVjaWZpYyByZXNvdXJjZSBpZGVudGlmaWVyLCB3aGljaCBtdXN0IGJlIHplcm8KKyAg ICAgKiAgICAgIHVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlLgorICAgICAqLworICAgIHVpbnQzMl90 IGlkOworICAgIC8qIElOL09VVCAtIEFzIGFuIElOIHBhcmFtZXRlciBudW1iZXIgb2YgZnJhbWVz IG9mIHRoZSByZXNvdXJjZQorICAgICAqICAgICAgICAgIHRvIGJlIG1hcHBlZC4gSG93ZXZlciwg aWYgdGhlIHNwZWNpZmllZCB2YWx1ZSBpcyAwIGFuZAorICAgICAqICAgICAgICAgIGZyYW1lX2xp c3QgaXMgTlVMTCB0aGVuIHRoaXMgZmllbGQgd2lsbCBiZSBzZXQgdG8gdGhlCisgICAgICogICAg ICAgICAgbWF4aW11bSB2YWx1ZSBzdXBwb3J0ZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uIG9uIHJl dHVybi4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBucl9mcmFtZXM7CisgICAgdWludDMyX3QgcGFk OworICAgIC8qIElOIC0gdGhlIGluZGV4IG9mIHRoZSBpbml0aWFsIGZyYW1lIHRvIGJlIG1hcHBl ZC4gVGhpcyBwYXJhbWV0ZXIKKyAgICAgKiAgICAgIGlzIGlnbm9yZWQgaWYgbnJfZnJhbWVzIGlz IDAuCisgICAgICovCisgICAgdWludDY0X2FsaWduZWRfdCBmcmFtZTsKKyAgICAvKiBJTi9PVVQg LSBJZiB0aGUgdG9vbHMgZG9tYWluIGlzIFBWIHRoZW4sIHVwb24gcmV0dXJuLCBmcmFtZV9saXN0 CisgICAgICogICAgICAgICAgd2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgTUZOcyBvZiB0aGUg cmVzb3VyY2UuCisgICAgICogICAgICAgICAgSWYgdGhlIHRvb2xzIGRvbWFpbiBpcyBIVk0gdGhl biBpdCBpcyBleHBlY3RlZCB0aGF0LCBvbgorICAgICAqICAgICAgICAgIGVudHJ5LCBmcmFtZV9s aXN0IHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggYSBsaXN0IG9mIEdGTnMKKyAgICAgKiAgICAgICAg ICB0aGF0IHdpbGwgYmUgbWFwcGVkIHRvIHRoZSBNRk5zIG9mIHRoZSByZXNvdXJjZS4KKyAgICAg KiAgICAgICAgICBJZiAtRUlPIGlzIHJldHVybmVkIHRoZW4gdGhlIGZyYW1lX2xpc3QgaGFzIG9u bHkgYmVlbgorICAgICAqICAgICAgICAgIHBhcnRpYWxseSBtYXBwZWQgYW5kIGl0IGlzIHVwIHRv IHRoZSBjYWxsZXIgdG8gdW5tYXAgYWxsCisgICAgICogICAgICAgICAgdGhlIEdGTnMuCisgICAg ICogICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgbWF5IGJlIE5VTEwgaWYgbnJfZnJhbWVzIGlzIDAu CisgICAgICovCisgICAgWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcGZuX3QpIGZyYW1lX2xpc3Q7Cit9 OwordHlwZWRlZiBzdHJ1Y3QgeGVuX21lbV9hY3F1aXJlX3Jlc291cmNlIHhlbl9tZW1fYWNxdWly ZV9yZXNvdXJjZV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbV9hY3F1aXJlX3Jl c291cmNlX3QpOworCiAjZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVO X1RPT0xTX18pICovCiAKIC8qCkBAIC02NTAsNyArNjkxLDcgQEAgc3RydWN0IHhlbl92bnVtYV90 b3BvbG9neV9pbmZvIHsKIHR5cGVkZWYgc3RydWN0IHhlbl92bnVtYV90b3BvbG9neV9pbmZvIHhl bl92bnVtYV90b3BvbG9neV9pbmZvX3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdm51 bWFfdG9wb2xvZ3lfaW5mb190KTsKIAotLyogTmV4dCBhdmFpbGFibGUgc3Vib3AgbnVtYmVyIGlz IDI4ICovCisvKiBOZXh0IGF2YWlsYWJsZSBzdWJvcCBudW1iZXIgaXMgMjkgKi8KIAogI2VuZGlm IC8qIF9fWEVOX1BVQkxJQ19NRU1PUllfSF9fICovCiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3hsYXQubHN0IGIveGVuL2luY2x1ZGUveGxhdC5sc3QKaW5kZXggNDM0NmNiZWRjZi4uNTgwNmVm MGFkOCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGxhdC5sc3QKKysrIGIveGVuL2luY2x1ZGUv eGxhdC5sc3QKQEAgLTg0LDYgKzg0LDcgQEAKICEJbWVtb3J5X21hcAkJCW1lbW9yeS5oCiAhCW1l bW9yeV9yZXNlcnZhdGlvbgkJbWVtb3J5LmgKICEJbWVtX2FjY2Vzc19vcAkJCW1lbW9yeS5oCish CW1lbV9hY3F1aXJlX3Jlc291cmNlCQltZW1vcnkuaAogIQlwb2RfdGFyZ2V0CQkJbWVtb3J5LmgK ICEJcmVtb3ZlX2Zyb21fcGh5c21hcAkJbWVtb3J5LmgKICEJcmVzZXJ2ZWRfZGV2aWNlX21lbW9y eV9tYXAJbWVtb3J5LmgKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oIGIveGVu L2luY2x1ZGUveHNtL2R1bW15LmgKaW5kZXggYjJjZDU2Y2RjNS4uNTRkYWU3YWU4YSAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15 LmgKQEAgLTcyNCwzICs3MjQsOSBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX3hlbl92ZXJz aW9uIChYU01fREVGQVVMVF9BUkcgdWludDMyX3Qgb3ApCiAgICAgICAgIHJldHVybiB4c21fZGVm YXVsdF9hY3Rpb24oWFNNX1BSSVYsIGN1cnJlbnQtPmRvbWFpbiwgTlVMTCk7CiAgICAgfQogfQor CitzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX2RvbWFpbl9yZXNvdXJjZV9tYXAoWFNNX0RFRkFV TFRfQVJHIHN0cnVjdCBkb21haW4gKmQpCit7CisgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0RN X1BSSVYpOworICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5k b21haW4sIGQpOworfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveHNtL3hzbS5oIGIveGVuL2lu Y2x1ZGUveHNtL3hzbS5oCmluZGV4IDdmN2ZlZmZjNjguLmQwZGI4NjBhZTAgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3hzbS94c20uaAorKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKQEAgLTE4 MCw2ICsxODAsNyBAQCBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgewogICAgIGludCAoKmRtX29wKSAo c3RydWN0IGRvbWFpbiAqZCk7CiAjZW5kaWYKICAgICBpbnQgKCp4ZW5fdmVyc2lvbikgKHVpbnQz Ml90IGNtZCk7CisgICAgaW50ICgqZG9tYWluX3Jlc291cmNlX21hcCkgKHN0cnVjdCBkb21haW4g KmQpOwogfTsKIAogI2lmZGVmIENPTkZJR19YU00KQEAgLTY5Miw2ICs2OTMsMTEgQEAgc3RhdGlj IGlubGluZSBpbnQgeHNtX3hlbl92ZXJzaW9uICh4c21fZGVmYXVsdF90IGRlZiwgdWludDMyX3Qg b3ApCiAgICAgcmV0dXJuIHhzbV9vcHMtPnhlbl92ZXJzaW9uKG9wKTsKIH0KIAorc3RhdGljIGlu bGluZSBpbnQgeHNtX2RvbWFpbl9yZXNvdXJjZV9tYXAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVj dCBkb21haW4gKmQpCit7CisgICAgcmV0dXJuIHhzbV9vcHMtPmRvbWFpbl9yZXNvdXJjZV9tYXAo ZCk7Cit9CisKICNlbmRpZiAvKiBYU01fTk9fV1JBUFBFUlMgKi8KIAogI2lmZGVmIENPTkZJR19N VUxUSUJPT1QKZGlmZiAtLWdpdCBhL3hlbi94c20vZHVtbXkuYyBiL3hlbi94c20vZHVtbXkuYwpp bmRleCA0NzliMTAzNjE0Li42ZTc1MTE5OWVlIDEwMDY0NAotLS0gYS94ZW4veHNtL2R1bW15LmMK KysrIGIveGVuL3hzbS9kdW1teS5jCkBAIC0xNTcsNCArMTU3LDUgQEAgdm9pZCBfX2luaXQgeHNt X2ZpeHVwX29wcyAoc3RydWN0IHhzbV9vcGVyYXRpb25zICpvcHMpCiAgICAgc2V0X3RvX2R1bW15 X2lmX251bGwob3BzLCBkbV9vcCk7CiAjZW5kaWYKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChv cHMsIHhlbl92ZXJzaW9uKTsKKyAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGRvbWFpbl9y ZXNvdXJjZV9tYXApOwogfQpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVu L3hzbS9mbGFzay9ob29rcy5jCmluZGV4IGYwMWI0Y2ZhYWEuLjM5ODUxZmU2MWYgMTAwNjQ0Ci0t LSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAg LTE3MTgsNiArMTcxOCwxMSBAQCBzdGF0aWMgaW50IGZsYXNrX3hlbl92ZXJzaW9uICh1aW50MzJf dCBvcCkKICAgICB9CiB9CiAKK3N0YXRpYyBpbnQgZmxhc2tfZG9tYWluX3Jlc291cmNlX21hcChz dHJ1Y3QgZG9tYWluICpkKQoreworICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NM QVNTX0RPTUFJTjIsIERPTUFJTjJfX1JFU09VUkNFX01BUCk7Cit9CisKIGxvbmcgZG9fZmxhc2tf b3AoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4c21fb3BfdCkgdV9mbGFza19vcCk7CiBpbnQgY29t cGF0X2ZsYXNrX29wKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeHNtX29wX3QpIHVfZmxhc2tfb3Ap OwogCkBAIC0xODUxLDYgKzE4NTYsNyBAQCBzdGF0aWMgc3RydWN0IHhzbV9vcGVyYXRpb25zIGZs YXNrX29wcyA9IHsKICAgICAuZG1fb3AgPSBmbGFza19kbV9vcCwKICNlbmRpZgogICAgIC54ZW5f dmVyc2lvbiA9IGZsYXNrX3hlbl92ZXJzaW9uLAorICAgIC5kb21haW5fcmVzb3VyY2VfbWFwID0g Zmxhc2tfZG9tYWluX3Jlc291cmNlX21hcCwKIH07CiAKIHZvaWQgX19pbml0IGZsYXNrX2luaXQo Y29uc3Qgdm9pZCAqcG9saWN5X2J1ZmZlciwgc2l6ZV90IHBvbGljeV9zaXplKQpkaWZmIC0tZ2l0 IGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgYi94ZW4veHNtL2ZsYXNrL3Bv bGljeS9hY2Nlc3NfdmVjdG9ycwppbmRleCAzYTJkODYzYjhmLi4zNDFhZGUxZjdkIDEwMDY0NAot LS0gYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycworKysgYi94ZW4veHNtL2Zs YXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwpAQCAtMjUwLDYgKzI1MCw4IEBAIGNsYXNzIGRvbWFp bjIKICAgICBwc3JfY2F0X29wCiAjIFhFTl9ET01DVExfc2V0X2dudHRhYl9saW1pdHMKICAgICBz ZXRfZ250dGFiX2xpbWl0cworIyBYRU5NRU1fcmVzb3VyY2VfbWFwCisgICAgcmVzb3VyY2VfbWFw CiB9CiAKICMgU2ltaWxhciB0byBjbGFzcyBkb21haW4sIGJ1dCBwcmltYXJpbHkgY29udGFpbnMg ZG9tY3RscyByZWxhdGVkIHRvIEhWTSBkb21haW5zCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK