From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v7.2 07/24] x86/mm: Introduce modify_xen_mappings() Date: Mon, 11 Apr 2016 18:46:24 +0100 Message-ID: <1460396784-9196-1-git-send-email-andrew.cooper3@citrix.com> References: <570BEA7E02000078000E642A@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <570BEA7E02000078000E642A@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: George Dunlap , Andrew Cooper , Jan Beulich List-Id: xen-devel@lists.xenproject.org VG8gc2ltcGx5IGNoYW5nZSB0aGUgcGVybWlzc2lvbnMgb24gZXhpc3RpbmcgWGVuIG1hcHBpbmdz LiAgVGhlIGV4aXN0aW5nCmRlc3Ryb3lfeGVuX21hcHBpbmdzKCkgaXMgYWx0ZXJlZCB0byBzdXBw b3J0IGEgY2hhbmdlIHRoZSBQVEUgcGVybWlzc2lvbnMuCgpBIG5ldyBkZXN0cm95X3hlbl9tYXBw aW5ncygpIGlzIGludHJvZHVjZWQsIGFzIHRoZSBzcGVjaWFsIGNhc2Ugb2Ygbm90IHBhc3NpbmcK X1BBR0VfUFJFU0VOVCB0byBtb2RpZnlfeGVuX21hcHBpbmdzKCkuCgpBcyBjbGVhbnVwIChhbmQg YW4gaWRlYWwgZnVuY3Rpb25hbCB0ZXN0KSwgdGhlIGJvb3QgbG9naWMgd2hpY2ggcmVtYXBzIFhl bidzCmNvZGUgYW5kIGRhdGEgd2l0aCByZWR1Y2VkIHBlcm1pc3Npb25zIGlzIGFsdGVyZWQgdG8g dXNlCm1vZGlmeV94ZW5fbWFwcGluZ3MoKSwgcmF0aGVyIHRoYW4gbWFwX3BhZ2VzX3RvX3hlbigp IHBhc3NpbmcgdGhlIHNhbWUgbWZuJ3MKYmFjayBpbi4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpC ZXVsaWNoQHN1c2UuY29tPgpDQzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRy aXguY29tPgoKdjcuMToKICogQWxsb3cgY2FsbGVycyB0byBwYXNzIFBBR0VfSFlQRVJWSVNPUl94 eHggY29uc3RhbnRzLCBmb3IgY29uc2lzdGVudGx5IHdpdGgKICAgc2ltaWxhciBmdW5jdGlvbnMu CiAqIFJlcGxhY2Ugb25lIG9wZW5jb2RlZCAwIHdpdGggaXRzIGxvZ2ljYWwgZXF1aXZhbGVudCwg X1BBR0VfTk9ORS4KdjcuMjoKICogQWRkIGNoZWNrIGZvciBjcmVhdGluZyBuZXcgbWFwcGluZ3Mg b2YgNEsgZW50cmllcy4KICogQ29ycmVjdCB0aGUgY29udGludWUgbG9naWMuICBJbnZlcnQgdGhl IHNlbnNlIG9mIHRoZSBjb21tZW50IHRvIG1hdGNoIHRoZQogICBjb2RlLgotLS0KIHhlbi9hcmNo L3g4Ni9tbS5jICAgIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLQogeGVuL2FyY2gveDg2L3NldHVwLmMgfCAyMiArKysrKysrLS0tLS0tLS0K IHhlbi9pbmNsdWRlL3hlbi9tbS5oIHwgIDIgKysKIDMgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0 aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMg Yi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCBiY2E3NTMyLi4zMjMwYjlkIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtNTk1Niw3ICs1OTU2 LDE5IEBAIGludCBwb3B1bGF0ZV9wdF9yYW5nZSh1bnNpZ25lZCBsb25nIHZpcnQsIHVuc2lnbmVk IGxvbmcgbWZuLAogICAgIHJldHVybiBtYXBfcGFnZXNfdG9feGVuKHZpcnQsIG1mbiwgbnJfbWZu cywgTUFQX1NNQUxMX1BBR0VTKTsKIH0KIAotdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNp Z25lZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSkKKy8qCisgKiBBbHRlciB0aGUgcGVybWlzc2lv bnMgb2YgYSByYW5nZSBvZiBYZW4gdmlydHVhbCBhZGRyZXNzIHNwYWNlLgorICoKKyAqIERvZXMg bm90IGNyZWF0ZSBuZXcgbWFwcGluZ3MsIGFuZCBkb2VzIG5vdCBtb2RpZnkgdGhlIG1mbiBpbiBl eGlzdGluZworICogbWFwcGluZ3MsIGJ1dCB3aWxsIHNoYXR0ZXIgc3VwZXJwYWdlcyBpZiBuZWNl c3NhcnksIGFuZCB3aWxsIGRlc3Ryb3kKKyAqIG1hcHBpbmdzIGlmIG5vdCBwYXNzZWQgX1BBR0Vf UFJFU0VOVC4KKyAqCisgKiBUaGUgb25seSBmbGFncyBjb25zaWRlcmVkIGFyZSBOWCwgUlcgYW5k IFBSRVNFTlQuICBBbGwgb3RoZXIgaW5wdXQgZmxhZ3MKKyAqIGFyZSBpZ25vcmVkLgorICoKKyAq IEl0IGlzIGFuIGVycm9yIHRvIGNhbGwgd2l0aCBwcmVzZW50IGZsYWdzIG92ZXIgYW4gdW5wb3B1 bGF0ZWQgcmFuZ2UuCisgKi8KK3ZvaWQgbW9kaWZ5X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25n IHMsIHVuc2lnbmVkIGxvbmcgZSwgdW5zaWduZWQgaW50IG5mKQogewogICAgIGJvb2xfdCBsb2Nr aW5nID0gc3lzdGVtX3N0YXRlID4gU1lTX1NUQVRFX2Jvb3Q7CiAgICAgbDJfcGdlbnRyeV90ICpw bDJlOwpAQCAtNTk2NCw2ICs1OTc2LDEwIEBAIHZvaWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5z aWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUpCiAgICAgdW5zaWduZWQgaW50ICBpOwogICAg IHVuc2lnbmVkIGxvbmcgdiA9IHM7CiAKKyAgICAvKiBTZXQgb2YgdmFsaWQgUFRFIGJpdHMgd2hp Y2ggbWF5IGJlIGFsdGVyZWQuICovCisjZGVmaW5lIEZMQUdTX01BU0sgKF9QQUdFX05YfF9QQUdF X1JXfF9QQUdFX1BSRVNFTlQpCisgICAgbmYgJj0gRkxBR1NfTUFTSzsKKwogICAgIEFTU0VSVChJ U19BTElHTkVEKHMsIFBBR0VfU0laRSkpOwogICAgIEFTU0VSVChJU19BTElHTkVEKGUsIFBBR0Vf U0laRSkpOwogCkBAIC01OTczLDYgKzU5ODksOSBAQCB2b2lkIGRlc3Ryb3lfeGVuX21hcHBpbmdz KHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlKQogCiAgICAgICAgIGlmICggIShsM2Vf Z2V0X2ZsYWdzKCpwbDNlKSAmIF9QQUdFX1BSRVNFTlQpICkKICAgICAgICAgeworICAgICAgICAg ICAgLyogQ29uZmlybSB0aGUgY2FsbGVyIGlzbid0IHRyeWluZyB0byBjcmVhdGUgbmV3IG1hcHBp bmdzLiAqLworICAgICAgICAgICAgQVNTRVJUKCEobmYgJiBfUEFHRV9QUkVTRU5UKSk7CisKICAg ICAgICAgICAgIHYgKz0gMVVMIDw8IEwzX1BBR0VUQUJMRV9TSElGVDsKICAgICAgICAgICAgIHYg Jj0gfigoMVVMIDw8IEwzX1BBR0VUQUJMRV9TSElGVCkgLSAxKTsKICAgICAgICAgICAgIGNvbnRp bnVlOwpAQCAtNTk4NCw4ICs2MDAzLDEyIEBAIHZvaWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5z aWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUpCiAgICAgICAgICAgICAgICAgIGwxX3RhYmxl X29mZnNldCh2KSA9PSAwICYmCiAgICAgICAgICAgICAgICAgICgoZSAtIHYpID49ICgxVUwgPDwg TDNfUEFHRVRBQkxFX1NISUZUKSkgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8q IFBBR0UxR0I6IHdob2xlIHN1cGVycGFnZSBpcyBkZXN0cm95ZWQuICovCi0gICAgICAgICAgICAg ICAgbDNlX3dyaXRlX2F0b21pYyhwbDNlLCBsM2VfZW1wdHkoKSk7CisgICAgICAgICAgICAgICAg LyogUEFHRTFHQjogd2hvbGUgc3VwZXJwYWdlIGlzIG1vZGlmaWVkLiAqLworICAgICAgICAgICAg ICAgIGwzX3BnZW50cnlfdCBubDNlID0gIShuZiAmIF9QQUdFX1BSRVNFTlQpID8gbDNlX2VtcHR5 KCkKKyAgICAgICAgICAgICAgICAgICAgOiBsM2VfZnJvbV9wZm4obDNlX2dldF9wZm4oKnBsM2Up LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobDNlX2dldF9mbGFncygqcGwz ZSkgJiB+RkxBR1NfTUFTSykgfCBuZik7CisKKyAgICAgICAgICAgICAgICBsM2Vfd3JpdGVfYXRv bWljKHBsM2UsIG5sM2UpOwogICAgICAgICAgICAgICAgIHYgKz0gMVVMIDw8IEwzX1BBR0VUQUJM RV9TSElGVDsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KQEAgLTYw MTYsNiArNjAzOSw5IEBAIHZvaWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBz LCB1bnNpZ25lZCBsb25nIGUpCiAKICAgICAgICAgaWYgKCAhKGwyZV9nZXRfZmxhZ3MoKnBsMmUp ICYgX1BBR0VfUFJFU0VOVCkgKQogICAgICAgICB7CisgICAgICAgICAgICAvKiBDb25maXJtIHRo ZSBjYWxsZXIgaXNuJ3QgdHJ5aW5nIHRvIGNyZWF0ZSBuZXcgbWFwcGluZ3MuICovCisgICAgICAg ICAgICBBU1NFUlQoIShuZiAmIF9QQUdFX1BSRVNFTlQpKTsKKwogICAgICAgICAgICAgdiArPSAx VUwgPDwgTDJfUEFHRVRBQkxFX1NISUZUOwogICAgICAgICAgICAgdiAmPSB+KCgxVUwgPDwgTDJf UEFHRVRBQkxFX1NISUZUKSAtIDEpOwogICAgICAgICAgICAgY29udGludWU7CkBAIC02MDI2LDgg KzYwNTIsMTIgQEAgdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHMsIHVu c2lnbmVkIGxvbmcgZSkKICAgICAgICAgICAgIGlmICggKGwxX3RhYmxlX29mZnNldCh2KSA9PSAw KSAmJgogICAgICAgICAgICAgICAgICAoKGUtdikgPj0gKDFVTCA8PCBMMl9QQUdFVEFCTEVfU0hJ RlQpKSApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLyogUFNFOiB3aG9sZSBzdXBl cnBhZ2UgaXMgZGVzdHJveWVkLiAqLwotICAgICAgICAgICAgICAgIGwyZV93cml0ZV9hdG9taWMo cGwyZSwgbDJlX2VtcHR5KCkpOworICAgICAgICAgICAgICAgIC8qIFBTRTogd2hvbGUgc3VwZXJw YWdlIGlzIG1vZGlmaWVkLiAqLworICAgICAgICAgICAgICAgIGwyX3BnZW50cnlfdCBubDJlID0g IShuZiAmIF9QQUdFX1BSRVNFTlQpID8gbDJlX2VtcHR5KCkKKyAgICAgICAgICAgICAgICAgICAg OiBsMmVfZnJvbV9wZm4obDJlX2dldF9wZm4oKnBsMmUpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobDJlX2dldF9mbGFncygqcGwyZSkgJiB+RkxBR1NfTUFTSykgfCBuZik7 CisKKyAgICAgICAgICAgICAgICBsMmVfd3JpdGVfYXRvbWljKHBsMmUsIG5sMmUpOwogICAgICAg ICAgICAgICAgIHYgKz0gMVVMIDw8IEwyX1BBR0VUQUJMRV9TSElGVDsKICAgICAgICAgICAgIH0K ICAgICAgICAgICAgIGVsc2UKQEAgLTYwNTUsMTMgKzYwODUsMjcgQEAgdm9pZCBkZXN0cm95X3hl bl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSkKICAgICAgICAgfQog ICAgICAgICBlbHNlCiAgICAgICAgIHsKKyAgICAgICAgICAgIGwxX3BnZW50cnlfdCBubDFlOwor CiAgICAgICAgICAgICAvKiBPcmRpbmFyeSA0a0IgbWFwcGluZy4gKi8KICAgICAgICAgICAgIHBs MWUgPSBsMmVfdG9fbDFlKCpwbDJlKSArIGwxX3RhYmxlX29mZnNldCh2KTsKLSAgICAgICAgICAg IGwxZV93cml0ZV9hdG9taWMocGwxZSwgbDFlX2VtcHR5KCkpOworCisgICAgICAgICAgICAvKiBD b25maXJtIHRoZSBjYWxsZXIgaXNuJ3QgdHJ5aW5nIHRvIGNyZWF0ZSBuZXcgbWFwcGluZ3MuICov CisgICAgICAgICAgICBpZiAoICEobDFlX2dldF9mbGFncygqcGwxZSkgJiBfUEFHRV9QUkVTRU5U KSApCisgICAgICAgICAgICAgICAgQVNTRVJUKCEobmYgJiBfUEFHRV9QUkVTRU5UKSk7CisKKyAg ICAgICAgICAgIG5sMWUgPSAhKG5mICYgX1BBR0VfUFJFU0VOVCkgPyBsMWVfZW1wdHkoKQorICAg ICAgICAgICAgICAgIDogbDFlX2Zyb21fcGZuKGwxZV9nZXRfcGZuKCpwbDFlKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobDFlX2dldF9mbGFncygqcGwxZSkgJiB+RkxBR1NfTUFT SykgfCBuZik7CisKKyAgICAgICAgICAgIGwxZV93cml0ZV9hdG9taWMocGwxZSwgbmwxZSk7CiAg ICAgICAgICAgICB2ICs9IFBBR0VfU0laRTsKIAotICAgICAgICAgICAgLyogSWYgd2UgYXJlIGRv bmUgd2l0aCB0aGUgTDJFLCBjaGVjayBpZiBpdCBpcyBub3cgZW1wdHkuICovCi0gICAgICAgICAg ICBpZiAoICh2ICE9IGUpICYmIChsMV90YWJsZV9vZmZzZXQodikgIT0gMCkgKQorICAgICAgICAg ICAgLyoKKyAgICAgICAgICAgICAqIElmIHdlIG5vdCBkZXN0cm95aW5nIG1hcHBpbmdzLCBvciBh cmUgbm90IGRvbmUgd2l0aCB0aGUgTDJFLAorICAgICAgICAgICAgICogc2tpcCB0aGUgZW1wdHkm ZnJlZSBjaGVjay4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKCAobmYgJiBfUEFH RV9QUkVTRU5UKSB8fCAoKHYgIT0gZSkgJiYgKGwxX3RhYmxlX29mZnNldCh2KSAhPSAwKSkgKQog ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgcGwxZSA9IGwyZV90b19sMWUo KnBsMmUpOwogICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBMMV9QQUdFVEFCTEVfRU5UUklF UzsgaSsrICkKQEAgLTYwNzYsOCArNjEyMCwxMiBAQCB2b2lkIGRlc3Ryb3lfeGVuX21hcHBpbmdz KHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlKQogICAgICAgICAgICAgfQogICAgICAg ICB9CiAKLSAgICAgICAgLyogSWYgd2UgYXJlIGRvbmUgd2l0aCB0aGUgTDNFLCBjaGVjayBpZiBp dCBpcyBub3cgZW1wdHkuICovCi0gICAgICAgIGlmICggKHYgIT0gZSkgJiYgKGwyX3RhYmxlX29m ZnNldCh2KSArIGwxX3RhYmxlX29mZnNldCh2KSAhPSAwKSApCisgICAgICAgIC8qCisgICAgICAg ICAqIElmIHdlIG5vdCBkZXN0cm95aW5nIG1hcHBpbmdzLCBvciBhcmUgbm90IGRvbmUgd2l0aCB0 aGUgTDNFLAorICAgICAgICAgKiBza2lwIHRoZSBlbXB0eSZmcmVlIGNoZWNrLgorICAgICAgICAg Ki8KKyAgICAgICAgaWYgKCAobmYgJiBfUEFHRV9QUkVTRU5UKSB8fAorICAgICAgICAgICAgICgo diAhPSBlKSAmJiAobDJfdGFibGVfb2Zmc2V0KHYpICsgbDFfdGFibGVfb2Zmc2V0KHYpICE9IDAp KSApCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgcGwyZSA9IGwzZV90b19sMmUoKnBs M2UpOwogICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEwyX1BBR0VUQUJMRV9FTlRSSUVTOyBpKysg KQpAQCAtNjA5MywxMCArNjE0MSwxNyBAQCB2b2lkIGRlc3Ryb3lfeGVuX21hcHBpbmdzKHVuc2ln bmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlKQogICAgIH0KIAogICAgIGZsdXNoX2FyZWEoTlVM TCwgRkxVU0hfVExCX0dMT0JBTCk7CisKKyN1bmRlZiBGTEFHU19NQVNLCiB9CiAKICN1bmRlZiBm bHVzaF9hcmVhCiAKK3ZvaWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1 bnNpZ25lZCBsb25nIGUpCit7CisgICAgbW9kaWZ5X3hlbl9tYXBwaW5ncyhzLCBlLCBfUEFHRV9O T05FKTsKK30KKwogdm9pZCBfX3NldF9maXhtYXAoCiAgICAgZW51bSBmaXhlZF9hZGRyZXNzZXMg aWR4LCB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQgbG9uZyBmbGFncykKIHsKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggMzY5 NmMzMS4uMWEyMjNkNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVu L2FyY2gveDg2L3NldHVwLmMKQEAgLTEyMTQsMjMgKzEyMTQsMTkgQEAgdm9pZCBfX2luaXQgbm9y ZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICBpZiAoICF1c2luZ18y TV9tYXBwaW5nKCkgKQogICAgIHsKICAgICAgICAgLyogTWFyayAudGV4dCBhcyBSWCAoYXZvaWRp bmcgdGhlIGZpcnN0IDJNIHN1cGVycGFnZSkuICovCi0gICAgICAgIG1hcF9wYWdlc190b194ZW4o WEVOX1ZJUlRfU1RBUlQgKyBNQigyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQRk5fRE9X TihfX3BhKFhFTl9WSVJUX1NUQVJUICsgTUIoMikpKSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICBQRk5fRE9XTihfXzJNX3RleHRfZW5kIC0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoY29uc3QgY2hhciAqKShYRU5fVklSVF9TVEFSVCArIE1CKDIpKSksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgUEFHRV9IWVBFUlZJU09SX1JYKTsKKyAgICAgICAgbW9kaWZ5X3hlbl9t YXBwaW5ncyhYRU5fVklSVF9TVEFSVCArIE1CKDIpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICh1bnNpZ25lZCBsb25nKSZfXzJNX3RleHRfZW5kLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBBR0VfSFlQRVJWSVNPUl9SWCk7CiAKICAgICAgICAgLyogTWFyayAucm9kYXRhIGFz IFJPLiAqLwotICAgICAgICBtYXBfcGFnZXNfdG9feGVuKCh1bnNpZ25lZCBsb25nKSZfXzJNX3Jv ZGF0YV9zdGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQRk5fRE9XTihfX3BhKF9fMk1f cm9kYXRhX3N0YXJ0KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgUEZOX0RPV04oX18yTV9y b2RhdGFfZW5kIC0gX18yTV9yb2RhdGFfc3RhcnQpLAotICAgICAgICAgICAgICAgICAgICAgICAg IFBBR0VfSFlQRVJWSVNPUl9STyk7CisgICAgICAgIG1vZGlmeV94ZW5fbWFwcGluZ3MoKHVuc2ln bmVkIGxvbmcpJl9fMk1fcm9kYXRhX3N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICh1bnNpZ25lZCBsb25nKSZfXzJNX3JvZGF0YV9lbmQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUEFHRV9IWVBFUlZJU09SX1JPKTsKIAogICAgICAgICAvKiBNYXJrIC5kYXRhIGFuZCAu YnNzIGFzIFJXLiAqLwotICAgICAgICBtYXBfcGFnZXNfdG9feGVuKCh1bnNpZ25lZCBsb25nKSZf XzJNX3J3ZGF0YV9zdGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQRk5fRE9XTihfX3Bh KF9fMk1fcndkYXRhX3N0YXJ0KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgUEZOX0RPV04o X18yTV9yd2RhdGFfZW5kIC0gX18yTV9yd2RhdGFfc3RhcnQpLAotICAgICAgICAgICAgICAgICAg ICAgICAgIFBBR0VfSFlQRVJWSVNPUl9SVyk7CisgICAgICAgIG1vZGlmeV94ZW5fbWFwcGluZ3Mo KHVuc2lnbmVkIGxvbmcpJl9fMk1fcndkYXRhX3N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICh1bnNpZ25lZCBsb25nKSZfXzJNX3J3ZGF0YV9lbmQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUEFHRV9IWVBFUlZJU09SX1JXKTsKIAogICAgICAgICAvKiBEcm9wIHRoZSBy ZW1haW5pbmcgbWFwcGluZ3MgaW4gdGhlIHNoYXR0ZXJlZCBzdXBlcnBhZ2UuICovCiAgICAgICAg IGRlc3Ryb3lfeGVuX21hcHBpbmdzKCh1bnNpZ25lZCBsb25nKSZfXzJNX3J3ZGF0YV9lbmQsCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbW0uaCBiL3hlbi9pbmNsdWRlL3hlbi9tbS5oCmlu ZGV4IGQ2MjM5NGYuLmQ0NzIxZmMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9tbS5oCisr KyBiL3hlbi9pbmNsdWRlL3hlbi9tbS5oCkBAIC0xMDMsNiArMTAzLDggQEAgaW50IG1hcF9wYWdl c190b194ZW4oCiAgICAgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgdW5zaWduZWQgbG9uZyBucl9t Zm5zLAogICAgIHVuc2lnbmVkIGludCBmbGFncyk7CisvKiBBbHRlciB0aGUgcGVybWlzc2lvbnMg b2YgYSByYW5nZSBvZiBYZW4gdmlydHVhbCBhZGRyZXNzIHNwYWNlLiAqLwordm9pZCBtb2RpZnlf eGVuX21hcHBpbmdzKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlLCB1bnNpZ25lZCBp bnQgZmxhZ3MpOwogdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHYsIHVu c2lnbmVkIGxvbmcgZSk7CiAvKgogICogQ3JlYXRlIG9ubHkgbm9uLWxlYWYgcGFnZSB0YWJsZSBl bnRyaWVzIGZvciB0aGUKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK