From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v8 07/25] x86/mm: Introduce modify_xen_mappings() Date: Wed, 13 Apr 2016 17:09:38 -0400 Message-ID: <1460581796-30071-8-git-send-email-konrad.wilk@oracle.com> References: <1460581796-30071-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aqS3O-00069M-Aw for xen-devel@lists.xenproject.org; Wed, 13 Apr 2016 21:10:26 +0000 In-Reply-To: <1460581796-30071-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: konrad@kernel.org, xen-devel@lists.xenproject.org, sasha.levin@oracle.com, andrew.cooper3@citrix.com, ross.lagerwall@citrix.com, mpohlack@amazon.de Cc: George Dunlap , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KClRvIHNpbXBs eSBjaGFuZ2UgdGhlIHBlcm1pc3Npb25zIG9uIGV4aXN0aW5nIFhlbiBtYXBwaW5ncy4gIFRoZSBl eGlzdGluZwpkZXN0cm95X3hlbl9tYXBwaW5ncygpIGlzIGFsdGVyZWQgdG8gc3VwcG9ydCBhIGNo YW5nZSB0aGUgUFRFIHBlcm1pc3Npb25zLgoKQSBuZXcgZGVzdHJveV94ZW5fbWFwcGluZ3MoKSBp cyBpbnRyb2R1Y2VkLCBhcyB0aGUgc3BlY2lhbCBjYXNlIG9mIG5vdCBwYXNzaW5nCl9QQUdFX1BS RVNFTlQgdG8gbW9kaWZ5X3hlbl9tYXBwaW5ncygpLgoKQXMgY2xlYW51cCAoYW5kIGFuIGlkZWFs IGZ1bmN0aW9uYWwgdGVzdCksIHRoZSBib290IGxvZ2ljIHdoaWNoIHJlbWFwcyBYZW4ncwpjb2Rl IGFuZCBkYXRhIHdpdGggcmVkdWNlZCBwZXJtaXNzaW9ucyBpcyBhbHRlcmVkIHRvIHVzZQptb2Rp ZnlfeGVuX21hcHBpbmdzKCksIHJhdGhlciB0aGFuIG1hcF9wYWdlc190b194ZW4oKSBwYXNzaW5n IHRoZSBzYW1lIG1mbidzCmJhY2sgaW4uCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVr IFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBHZW9yZ2UgRHVubGFw IDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+CgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4K Q0M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KCnY3OiBOZXcK djg6CiAqIEFsbG93IGNhbGxlcnMgdG8gcGFzcyBQQUdFX0hZUEVSVklTT1JfeHh4IGNvbnN0YW50 cywgZm9yIGNvbnNpc3RlbnRseSB3aXRoCiAgIHNpbWlsYXIgZnVuY3Rpb25zLgogKiBSZXBsYWNl IG9uZSBvcGVuY29kZWQgMCB3aXRoIGl0cyBsb2dpY2FsIGVxdWl2YWxlbnQsIF9QQUdFX05PTkUu CiAqIEFkZCBjaGVjayBmb3IgY3JlYXRpbmcgbmV3IG1hcHBpbmdzIG9mIDRLIGVudHJpZXMuCiAq IENvcnJlY3QgdGhlIGNvbnRpbnVlIGxvZ2ljLiAgSW52ZXJ0IHRoZSBzZW5zZSBvZiB0aGUgY29t bWVudCB0byBtYXRjaCB0aGUKICAgY29kZS4KICogQWRkZWQgUmV2aWV3ZWQtYnkgR2VvcmdlIGFu ZCBKYW4uIEZpeCBtaXNzaW5nICJhcmUiIGluIGNvbW1lbnQuCi0tLQotLS0KIHhlbi9hcmNoL3g4 Ni9tbS5jICAgIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLQogeGVuL2FyY2gveDg2L3NldHVwLmMgfCAyMiArKysrKysrLS0tLS0tLS0KIHhl bi9pbmNsdWRlL3hlbi9tbS5oIHwgIDIgKysKIDMgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9u cygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94 ZW4vYXJjaC94ODYvbW0uYwppbmRleCBjYTJkMGJiLi43Mzc5OGMzIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtNTk1Niw3ICs1OTU2LDE5 IEBAIGludCBwb3B1bGF0ZV9wdF9yYW5nZSh1bnNpZ25lZCBsb25nIHZpcnQsIHVuc2lnbmVkIGxv bmcgbWZuLAogICAgIHJldHVybiBtYXBfcGFnZXNfdG9feGVuKHZpcnQsIG1mbiwgbnJfbWZucywg TUFQX1NNQUxMX1BBR0VTKTsKIH0KIAotdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25l ZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSkKKy8qCisgKiBBbHRlciB0aGUgcGVybWlzc2lvbnMg b2YgYSByYW5nZSBvZiBYZW4gdmlydHVhbCBhZGRyZXNzIHNwYWNlLgorICoKKyAqIERvZXMgbm90 IGNyZWF0ZSBuZXcgbWFwcGluZ3MsIGFuZCBkb2VzIG5vdCBtb2RpZnkgdGhlIG1mbiBpbiBleGlz dGluZworICogbWFwcGluZ3MsIGJ1dCB3aWxsIHNoYXR0ZXIgc3VwZXJwYWdlcyBpZiBuZWNlc3Nh cnksIGFuZCB3aWxsIGRlc3Ryb3kKKyAqIG1hcHBpbmdzIGlmIG5vdCBwYXNzZWQgX1BBR0VfUFJF U0VOVC4KKyAqCisgKiBUaGUgb25seSBmbGFncyBjb25zaWRlcmVkIGFyZSBOWCwgUlcgYW5kIFBS RVNFTlQuICBBbGwgb3RoZXIgaW5wdXQgZmxhZ3MKKyAqIGFyZSBpZ25vcmVkLgorICoKKyAqIEl0 IGlzIGFuIGVycm9yIHRvIGNhbGwgd2l0aCBwcmVzZW50IGZsYWdzIG92ZXIgYW4gdW5wb3B1bGF0 ZWQgcmFuZ2UuCisgKi8KK3ZvaWQgbW9kaWZ5X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHMs IHVuc2lnbmVkIGxvbmcgZSwgdW5zaWduZWQgaW50IG5mKQogewogICAgIGJvb2xfdCBsb2NraW5n ID0gc3lzdGVtX3N0YXRlID4gU1lTX1NUQVRFX2Jvb3Q7CiAgICAgbDJfcGdlbnRyeV90ICpwbDJl OwpAQCAtNTk2NCw2ICs1OTc2LDEwIEBAIHZvaWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWdu ZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUpCiAgICAgdW5zaWduZWQgaW50ICBpOwogICAgIHVu c2lnbmVkIGxvbmcgdiA9IHM7CiAKKyAgICAvKiBTZXQgb2YgdmFsaWQgUFRFIGJpdHMgd2hpY2gg bWF5IGJlIGFsdGVyZWQuICovCisjZGVmaW5lIEZMQUdTX01BU0sgKF9QQUdFX05YfF9QQUdFX1JX fF9QQUdFX1BSRVNFTlQpCisgICAgbmYgJj0gRkxBR1NfTUFTSzsKKwogICAgIEFTU0VSVChJU19B TElHTkVEKHMsIFBBR0VfU0laRSkpOwogICAgIEFTU0VSVChJU19BTElHTkVEKGUsIFBBR0VfU0la RSkpOwogCkBAIC01OTczLDYgKzU5ODksOSBAQCB2b2lkIGRlc3Ryb3lfeGVuX21hcHBpbmdzKHVu c2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlKQogCiAgICAgICAgIGlmICggIShsM2VfZ2V0 X2ZsYWdzKCpwbDNlKSAmIF9QQUdFX1BSRVNFTlQpICkKICAgICAgICAgeworICAgICAgICAgICAg LyogQ29uZmlybSB0aGUgY2FsbGVyIGlzbid0IHRyeWluZyB0byBjcmVhdGUgbmV3IG1hcHBpbmdz LiAqLworICAgICAgICAgICAgQVNTRVJUKCEobmYgJiBfUEFHRV9QUkVTRU5UKSk7CisKICAgICAg ICAgICAgIHYgKz0gMVVMIDw8IEwzX1BBR0VUQUJMRV9TSElGVDsKICAgICAgICAgICAgIHYgJj0g figoMVVMIDw8IEwzX1BBR0VUQUJMRV9TSElGVCkgLSAxKTsKICAgICAgICAgICAgIGNvbnRpbnVl OwpAQCAtNTk4NCw4ICs2MDAzLDEyIEBAIHZvaWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWdu ZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUpCiAgICAgICAgICAgICAgICAgIGwxX3RhYmxlX29m ZnNldCh2KSA9PSAwICYmCiAgICAgICAgICAgICAgICAgICgoZSAtIHYpID49ICgxVUwgPDwgTDNf UEFHRVRBQkxFX1NISUZUKSkgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8qIFBB R0UxR0I6IHdob2xlIHN1cGVycGFnZSBpcyBkZXN0cm95ZWQuICovCi0gICAgICAgICAgICAgICAg bDNlX3dyaXRlX2F0b21pYyhwbDNlLCBsM2VfZW1wdHkoKSk7CisgICAgICAgICAgICAgICAgLyog UEFHRTFHQjogd2hvbGUgc3VwZXJwYWdlIGlzIG1vZGlmaWVkLiAqLworICAgICAgICAgICAgICAg IGwzX3BnZW50cnlfdCBubDNlID0gIShuZiAmIF9QQUdFX1BSRVNFTlQpID8gbDNlX2VtcHR5KCkK KyAgICAgICAgICAgICAgICAgICAgOiBsM2VfZnJvbV9wZm4obDNlX2dldF9wZm4oKnBsM2UpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobDNlX2dldF9mbGFncygqcGwzZSkg JiB+RkxBR1NfTUFTSykgfCBuZik7CisKKyAgICAgICAgICAgICAgICBsM2Vfd3JpdGVfYXRvbWlj KHBsM2UsIG5sM2UpOwogICAgICAgICAgICAgICAgIHYgKz0gMVVMIDw8IEwzX1BBR0VUQUJMRV9T SElGVDsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KQEAgLTYwMTYs NiArNjAzOSw5IEBAIHZvaWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1 bnNpZ25lZCBsb25nIGUpCiAKICAgICAgICAgaWYgKCAhKGwyZV9nZXRfZmxhZ3MoKnBsMmUpICYg X1BBR0VfUFJFU0VOVCkgKQogICAgICAgICB7CisgICAgICAgICAgICAvKiBDb25maXJtIHRoZSBj YWxsZXIgaXNuJ3QgdHJ5aW5nIHRvIGNyZWF0ZSBuZXcgbWFwcGluZ3MuICovCisgICAgICAgICAg ICBBU1NFUlQoIShuZiAmIF9QQUdFX1BSRVNFTlQpKTsKKwogICAgICAgICAgICAgdiArPSAxVUwg PDwgTDJfUEFHRVRBQkxFX1NISUZUOwogICAgICAgICAgICAgdiAmPSB+KCgxVUwgPDwgTDJfUEFH RVRBQkxFX1NISUZUKSAtIDEpOwogICAgICAgICAgICAgY29udGludWU7CkBAIC02MDI2LDggKzYw NTIsMTIgQEAgdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHMsIHVuc2ln bmVkIGxvbmcgZSkKICAgICAgICAgICAgIGlmICggKGwxX3RhYmxlX29mZnNldCh2KSA9PSAwKSAm JgogICAgICAgICAgICAgICAgICAoKGUtdikgPj0gKDFVTCA8PCBMMl9QQUdFVEFCTEVfU0hJRlQp KSApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLyogUFNFOiB3aG9sZSBzdXBlcnBh Z2UgaXMgZGVzdHJveWVkLiAqLwotICAgICAgICAgICAgICAgIGwyZV93cml0ZV9hdG9taWMocGwy ZSwgbDJlX2VtcHR5KCkpOworICAgICAgICAgICAgICAgIC8qIFBTRTogd2hvbGUgc3VwZXJwYWdl IGlzIG1vZGlmaWVkLiAqLworICAgICAgICAgICAgICAgIGwyX3BnZW50cnlfdCBubDJlID0gIShu ZiAmIF9QQUdFX1BSRVNFTlQpID8gbDJlX2VtcHR5KCkKKyAgICAgICAgICAgICAgICAgICAgOiBs MmVfZnJvbV9wZm4obDJlX2dldF9wZm4oKnBsMmUpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobDJlX2dldF9mbGFncygqcGwyZSkgJiB+RkxBR1NfTUFTSykgfCBuZik7CisK KyAgICAgICAgICAgICAgICBsMmVfd3JpdGVfYXRvbWljKHBsMmUsIG5sMmUpOwogICAgICAgICAg ICAgICAgIHYgKz0gMVVMIDw8IEwyX1BBR0VUQUJMRV9TSElGVDsKICAgICAgICAgICAgIH0KICAg ICAgICAgICAgIGVsc2UKQEAgLTYwNTUsMTMgKzYwODUsMjcgQEAgdm9pZCBkZXN0cm95X3hlbl9t YXBwaW5ncyh1bnNpZ25lZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSkKICAgICAgICAgfQogICAg ICAgICBlbHNlCiAgICAgICAgIHsKKyAgICAgICAgICAgIGwxX3BnZW50cnlfdCBubDFlOworCiAg ICAgICAgICAgICAvKiBPcmRpbmFyeSA0a0IgbWFwcGluZy4gKi8KICAgICAgICAgICAgIHBsMWUg PSBsMmVfdG9fbDFlKCpwbDJlKSArIGwxX3RhYmxlX29mZnNldCh2KTsKLSAgICAgICAgICAgIGwx ZV93cml0ZV9hdG9taWMocGwxZSwgbDFlX2VtcHR5KCkpOworCisgICAgICAgICAgICAvKiBDb25m aXJtIHRoZSBjYWxsZXIgaXNuJ3QgdHJ5aW5nIHRvIGNyZWF0ZSBuZXcgbWFwcGluZ3MuICovCisg ICAgICAgICAgICBpZiAoICEobDFlX2dldF9mbGFncygqcGwxZSkgJiBfUEFHRV9QUkVTRU5UKSAp CisgICAgICAgICAgICAgICAgQVNTRVJUKCEobmYgJiBfUEFHRV9QUkVTRU5UKSk7CisKKyAgICAg ICAgICAgIG5sMWUgPSAhKG5mICYgX1BBR0VfUFJFU0VOVCkgPyBsMWVfZW1wdHkoKQorICAgICAg ICAgICAgICAgIDogbDFlX2Zyb21fcGZuKGwxZV9nZXRfcGZuKCpwbDFlKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobDFlX2dldF9mbGFncygqcGwxZSkgJiB+RkxBR1NfTUFTSykg fCBuZik7CisKKyAgICAgICAgICAgIGwxZV93cml0ZV9hdG9taWMocGwxZSwgbmwxZSk7CiAgICAg ICAgICAgICB2ICs9IFBBR0VfU0laRTsKIAotICAgICAgICAgICAgLyogSWYgd2UgYXJlIGRvbmUg d2l0aCB0aGUgTDJFLCBjaGVjayBpZiBpdCBpcyBub3cgZW1wdHkuICovCi0gICAgICAgICAgICBp ZiAoICh2ICE9IGUpICYmIChsMV90YWJsZV9vZmZzZXQodikgIT0gMCkgKQorICAgICAgICAgICAg LyoKKyAgICAgICAgICAgICAqIElmIHdlIG5vdCBkZXN0cm95aW5nIG1hcHBpbmdzLCBvciBhcmUg bm90IGRvbmUgd2l0aCB0aGUgTDJFLAorICAgICAgICAgICAgICogc2tpcCB0aGUgZW1wdHkmZnJl ZSBjaGVjay4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKCAobmYgJiBfUEFHRV9Q UkVTRU5UKSB8fCAoKHYgIT0gZSkgJiYgKGwxX3RhYmxlX29mZnNldCh2KSAhPSAwKSkgKQogICAg ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgcGwxZSA9IGwyZV90b19sMWUoKnBs MmUpOwogICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBMMV9QQUdFVEFCTEVfRU5UUklFUzsg aSsrICkKQEAgLTYwNzYsOCArNjEyMCwxMiBAQCB2b2lkIGRlc3Ryb3lfeGVuX21hcHBpbmdzKHVu c2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlKQogICAgICAgICAgICAgfQogICAgICAgICB9 CiAKLSAgICAgICAgLyogSWYgd2UgYXJlIGRvbmUgd2l0aCB0aGUgTDNFLCBjaGVjayBpZiBpdCBp cyBub3cgZW1wdHkuICovCi0gICAgICAgIGlmICggKHYgIT0gZSkgJiYgKGwyX3RhYmxlX29mZnNl dCh2KSArIGwxX3RhYmxlX29mZnNldCh2KSAhPSAwKSApCisgICAgICAgIC8qCisgICAgICAgICAq IElmIHdlIGFyZSBub3QgZGVzdHJveWluZyBtYXBwaW5ncywgb3Igbm90IGRvbmUgd2l0aCB0aGUg TDNFLAorICAgICAgICAgKiBza2lwIHRoZSBlbXB0eSZmcmVlIGNoZWNrLgorICAgICAgICAgKi8K KyAgICAgICAgaWYgKCAobmYgJiBfUEFHRV9QUkVTRU5UKSB8fAorICAgICAgICAgICAgICgodiAh PSBlKSAmJiAobDJfdGFibGVfb2Zmc2V0KHYpICsgbDFfdGFibGVfb2Zmc2V0KHYpICE9IDApKSAp CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgcGwyZSA9IGwzZV90b19sMmUoKnBsM2Up OwogICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEwyX1BBR0VUQUJMRV9FTlRSSUVTOyBpKysgKQpA QCAtNjA5MywxMCArNjE0MSwxNyBAQCB2b2lkIGRlc3Ryb3lfeGVuX21hcHBpbmdzKHVuc2lnbmVk IGxvbmcgcywgdW5zaWduZWQgbG9uZyBlKQogICAgIH0KIAogICAgIGZsdXNoX2FyZWEoTlVMTCwg RkxVU0hfVExCX0dMT0JBTCk7CisKKyN1bmRlZiBGTEFHU19NQVNLCiB9CiAKICN1bmRlZiBmbHVz aF9hcmVhCiAKK3ZvaWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNp Z25lZCBsb25nIGUpCit7CisgICAgbW9kaWZ5X3hlbl9tYXBwaW5ncyhzLCBlLCBfUEFHRV9OT05F KTsKK30KKwogdm9pZCBfX3NldF9maXhtYXAoCiAgICAgZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4 LCB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQgbG9uZyBmbGFncykKIHsKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9zZXR1cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggMjJkYzE0 OC4uNTAyOTU2OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVuL2Fy Y2gveDg2L3NldHVwLmMKQEAgLTEyMjAsMjMgKzEyMjAsMTkgQEAgdm9pZCBfX2luaXQgbm9yZXR1 cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICBpZiAoICF1c2luZ18yTV9t YXBwaW5nKCkgKQogICAgIHsKICAgICAgICAgLyogTWFyayAudGV4dCBhcyBSWCAoYXZvaWRpbmcg dGhlIGZpcnN0IDJNIHN1cGVycGFnZSkuICovCi0gICAgICAgIG1hcF9wYWdlc190b194ZW4oWEVO X1ZJUlRfU1RBUlQgKyBNQigyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQRk5fRE9XTihf X3BhKFhFTl9WSVJUX1NUQVJUICsgTUIoMikpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQ Rk5fRE9XTihfXzJNX3RleHRfZW5kIC0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoY29uc3QgY2hhciAqKShYRU5fVklSVF9TVEFSVCArIE1CKDIpKSksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgUEFHRV9IWVBFUlZJU09SX1JYKTsKKyAgICAgICAgbW9kaWZ5X3hlbl9tYXBw aW5ncyhYRU5fVklSVF9TVEFSVCArIE1CKDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICh1bnNpZ25lZCBsb25nKSZfXzJNX3RleHRfZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBBR0VfSFlQRVJWSVNPUl9SWCk7CiAKICAgICAgICAgLyogTWFyayAucm9kYXRhIGFzIFJP LiAqLwotICAgICAgICBtYXBfcGFnZXNfdG9feGVuKCh1bnNpZ25lZCBsb25nKSZfXzJNX3JvZGF0 YV9zdGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQRk5fRE9XTihfX3BhKF9fMk1fcm9k YXRhX3N0YXJ0KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgUEZOX0RPV04oX18yTV9yb2Rh dGFfZW5kIC0gX18yTV9yb2RhdGFfc3RhcnQpLAotICAgICAgICAgICAgICAgICAgICAgICAgIFBB R0VfSFlQRVJWSVNPUl9STyk7CisgICAgICAgIG1vZGlmeV94ZW5fbWFwcGluZ3MoKHVuc2lnbmVk IGxvbmcpJl9fMk1fcm9kYXRhX3N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1 bnNpZ25lZCBsb25nKSZfXzJNX3JvZGF0YV9lbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUEFHRV9IWVBFUlZJU09SX1JPKTsKIAogICAgICAgICAvKiBNYXJrIC5kYXRhIGFuZCAuYnNz IGFzIFJXLiAqLwotICAgICAgICBtYXBfcGFnZXNfdG9feGVuKCh1bnNpZ25lZCBsb25nKSZfXzJN X3J3ZGF0YV9zdGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQRk5fRE9XTihfX3BhKF9f Mk1fcndkYXRhX3N0YXJ0KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgUEZOX0RPV04oX18y TV9yd2RhdGFfZW5kIC0gX18yTV9yd2RhdGFfc3RhcnQpLAotICAgICAgICAgICAgICAgICAgICAg ICAgIFBBR0VfSFlQRVJWSVNPUl9SVyk7CisgICAgICAgIG1vZGlmeV94ZW5fbWFwcGluZ3MoKHVu c2lnbmVkIGxvbmcpJl9fMk1fcndkYXRhX3N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICh1bnNpZ25lZCBsb25nKSZfXzJNX3J3ZGF0YV9lbmQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUEFHRV9IWVBFUlZJU09SX1JXKTsKIAogICAgICAgICAvKiBEcm9wIHRoZSByZW1h aW5pbmcgbWFwcGluZ3MgaW4gdGhlIHNoYXR0ZXJlZCBzdXBlcnBhZ2UuICovCiAgICAgICAgIGRl c3Ryb3lfeGVuX21hcHBpbmdzKCh1bnNpZ25lZCBsb25nKSZfXzJNX3J3ZGF0YV9lbmQsCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbW0uaCBiL3hlbi9pbmNsdWRlL3hlbi9tbS5oCmluZGV4 IGQ2MjM5NGYuLmQ0NzIxZmMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9tbS5oCisrKyBi L3hlbi9pbmNsdWRlL3hlbi9tbS5oCkBAIC0xMDMsNiArMTAzLDggQEAgaW50IG1hcF9wYWdlc190 b194ZW4oCiAgICAgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgdW5zaWduZWQgbG9uZyBucl9tZm5z LAogICAgIHVuc2lnbmVkIGludCBmbGFncyk7CisvKiBBbHRlciB0aGUgcGVybWlzc2lvbnMgb2Yg YSByYW5nZSBvZiBYZW4gdmlydHVhbCBhZGRyZXNzIHNwYWNlLiAqLwordm9pZCBtb2RpZnlfeGVu X21hcHBpbmdzKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlLCB1bnNpZ25lZCBpbnQg ZmxhZ3MpOwogdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHYsIHVuc2ln bmVkIGxvbmcgZSk7CiAvKgogICogQ3JlYXRlIG9ubHkgbm9uLWxlYWYgcGFnZSB0YWJsZSBlbnRy aWVzIGZvciB0aGUKLS0gCjIuNS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK