From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v7 07/24] x86/mm: Introduce modify_xen_mappings() Date: Sun, 10 Apr 2016 17:14:39 -0400 Message-ID: <1460322896-1115-8-git-send-email-konrad.wilk@oracle.com> References: <1460322896-1115-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1apMhT-00085n-3o for xen-devel@lists.xenproject.org; Sun, 10 Apr 2016 21:15:19 +0000 In-Reply-To: <1460322896-1115-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: xen-devel@lists.xenproject.org, konrad@kernel.org, sasha.levin@oracle.com, andrew.cooper3@citrix.com, ross.lagerwall@citrix.com, mpohlack@amazon.de Cc: George Dunlap , Jan Beulich List-Id: xen-devel@lists.xenproject.org RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KClRvIHNpbXBs eSBjaGFuZ2UgdGhlIHBlcm1pc3Npb25zIG9uIGV4aXN0aW5nIFhlbiBtYXBwaW5ncy4gIFRoZSBl eGlzdGluZwpkZXN0cm95X3hlbl9tYXBwaW5ncygpIGlzIGFsdGVyZWQgdG8gc3VwcG9ydCBhIGNo YW5nZSB0aGUgUFRFIHBlcm1pc3Npb25zLgoKQSBuZXcgZGVzdHJveV94ZW5fbWFwcGluZ3MoKSBp cyBpbnRyb2R1Y2VkLCBhcyB0aGUgc3BlY2lhbCBjYXNlIG9mIG5vdCBwYXNzaW5nCl9QQUdFX1BS RVNFTlQgdG8gbW9kaWZ5X3hlbl9tYXBwaW5ncygpLgoKQXMgY2xlYW51cCAoYW5kIGFuIGlkZWFs IGZ1bmN0aW9uYWwgdGVzdCksIHRoZSBib290IGxvZ2ljIHdoaWNoIHJlbWFwcyBYZW4ncwpjb2Rl IGFuZCBkYXRhIHdpdGggcmVkdWNlZCBwZXJtaXNzaW9ucyBpcyBhbHRlcmVkIHRvIHVzZQptb2Rp ZnlfeGVuX21hcHBpbmdzKCksIHJhdGhlciB0aGFuIG1hcF9wYWdlc190b194ZW4oKSBwYXNzaW5n IHRoZSBzYW1lIG1mbidzCmJhY2sgaW4uCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBz dXNlLmNvbT4KQ0M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4K LS0tCiB4ZW4vYXJjaC94ODYvbW0uYyAgICB8IDY5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9zZXR1cC5jIHwgMjIgKysr KysrKy0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL3hlbi9tbS5oIHwgIDIgKysKIDMgZmlsZXMgY2hh bmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCBjYTJkMGJiLi5jY2VmOTQ2 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpA QCAtNTk1Niw3ICs1OTU2LDE3IEBAIGludCBwb3B1bGF0ZV9wdF9yYW5nZSh1bnNpZ25lZCBsb25n IHZpcnQsIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgIHJldHVybiBtYXBfcGFnZXNfdG9feGVuKHZp cnQsIG1mbiwgbnJfbWZucywgTUFQX1NNQUxMX1BBR0VTKTsKIH0KIAotdm9pZCBkZXN0cm95X3hl bl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSkKKy8qCisgKiBBbHRl ciB0aGUgcGVybWlzc2lvbnMgb2YgYSByYW5nZSBvZiBYZW4gdmlydHVhbCBhZGRyZXNzIHNwYWNl LgorICoKKyAqIERvZXMgbm90IGNyZWF0ZSBuZXcgbWFwcGluZ3MsIGFuZCBkb2VzIG5vdCBtb2Rp ZnkgdGhlIG1mbiBpbiBleGlzdGluZworICogbWFwcGluZ3MsIGJ1dCB3aWxsIHNoYXR0ZXIgc3Vw ZXJwYWdlcyBpZiBuZWNlc3NhcnksIGFuZCB3aWxsIGRlc3Ryb3kKKyAqIG1hcHBpbmdzIGlmIG5v dCBwYXNzZWQgX1BBR0VfUFJFU0VOVC4KKyAqCisgKiBJdCBpcyBhbiBlcnJvciB0byBjYWxsIHdp dGggcHJlc2VudCBmbGFncyBvdmVyIGFuIHVucG9wdWxhdGVkIHJhbmdlLiAgSXQgaXMKKyAqIGFu IGVycm9yIHRvIHRyeSB0byBtb2RpZnkgZmxhZ3Mgb3RoZXIgdGhhbiBOWCwgUlcgYW5kIFBSRVNF TlQuCisgKi8KK3ZvaWQgbW9kaWZ5X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHMsIHVuc2ln bmVkIGxvbmcgZSwgdW5zaWduZWQgaW50IG5mKQogewogICAgIGJvb2xfdCBsb2NraW5nID0gc3lz dGVtX3N0YXRlID4gU1lTX1NUQVRFX2Jvb3Q7CiAgICAgbDJfcGdlbnRyeV90ICpwbDJlOwpAQCAt NTk2NCw4ICs1OTc0LDEyIEBAIHZvaWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9u ZyBzLCB1bnNpZ25lZCBsb25nIGUpCiAgICAgdW5zaWduZWQgaW50ICBpOwogICAgIHVuc2lnbmVk IGxvbmcgdiA9IHM7CiAKKyAgICAvKiBTZXQgb2YgdmFsaWQgUFRFIGJpdHMgd2hpY2ggbWF5IGJl IGFsdGVyZWQuICovCisjZGVmaW5lIEZMQUdTX01BU0sgKF9QQUdFX05YfF9QQUdFX1JXfF9QQUdF X1BSRVNFTlQpCisKICAgICBBU1NFUlQoSVNfQUxJR05FRChzLCBQQUdFX1NJWkUpKTsKICAgICBB U1NFUlQoSVNfQUxJR05FRChlLCBQQUdFX1NJWkUpKTsKKyAgICBBU1NFUlQoIShuZiAmIH5GTEFH U19NQVNLKSk7CiAKICAgICB3aGlsZSAoIHYgPCBlICkKICAgICB7CkBAIC01OTczLDYgKzU5ODcs OSBAQCB2b2lkIGRlc3Ryb3lfeGVuX21hcHBpbmdzKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQg bG9uZyBlKQogCiAgICAgICAgIGlmICggIShsM2VfZ2V0X2ZsYWdzKCpwbDNlKSAmIF9QQUdFX1BS RVNFTlQpICkKICAgICAgICAgeworICAgICAgICAgICAgLyogQ29uZmlybSB0aGUgY2FsbGVyIGlz bid0IHRyeWluZyB0byBjcmVhdGUgbmV3IG1hcHBpbmdzLiAqLworICAgICAgICAgICAgQVNTRVJU KCEobmYgJiBfUEFHRV9QUkVTRU5UKSk7CisKICAgICAgICAgICAgIHYgKz0gMVVMIDw8IEwzX1BB R0VUQUJMRV9TSElGVDsKICAgICAgICAgICAgIHYgJj0gfigoMVVMIDw8IEwzX1BBR0VUQUJMRV9T SElGVCkgLSAxKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNTk4NCw4ICs2MDAxLDEyIEBA IHZvaWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25n IGUpCiAgICAgICAgICAgICAgICAgIGwxX3RhYmxlX29mZnNldCh2KSA9PSAwICYmCiAgICAgICAg ICAgICAgICAgICgoZSAtIHYpID49ICgxVUwgPDwgTDNfUEFHRVRBQkxFX1NISUZUKSkgKQogICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgIC8qIFBBR0UxR0I6IHdob2xlIHN1cGVycGFnZSBp cyBkZXN0cm95ZWQuICovCi0gICAgICAgICAgICAgICAgbDNlX3dyaXRlX2F0b21pYyhwbDNlLCBs M2VfZW1wdHkoKSk7CisgICAgICAgICAgICAgICAgLyogUEFHRTFHQjogd2hvbGUgc3VwZXJwYWdl IGlzIG1vZGlmaWVkLiAqLworICAgICAgICAgICAgICAgIGwzX3BnZW50cnlfdCBubDNlID0gIShu ZiAmIF9QQUdFX1BSRVNFTlQpID8gbDNlX2VtcHR5KCkKKyAgICAgICAgICAgICAgICAgICAgOiBs M2VfZnJvbV9wZm4obDNlX2dldF9wZm4oKnBsM2UpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobDNlX2dldF9mbGFncygqcGwzZSkgJiB+RkxBR1NfTUFTSykgfCBuZik7CisK KyAgICAgICAgICAgICAgICBsM2Vfd3JpdGVfYXRvbWljKHBsM2UsIG5sM2UpOwogICAgICAgICAg ICAgICAgIHYgKz0gMVVMIDw8IEwzX1BBR0VUQUJMRV9TSElGVDsKICAgICAgICAgICAgICAgICBj b250aW51ZTsKICAgICAgICAgICAgIH0KQEAgLTYwMTYsNiArNjAzNyw5IEBAIHZvaWQgZGVzdHJv eV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUpCiAKICAgICAg ICAgaWYgKCAhKGwyZV9nZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFJFU0VOVCkgKQogICAgICAg ICB7CisgICAgICAgICAgICAvKiBDb25maXJtIHRoZSBjYWxsZXIgaXNuJ3QgdHJ5aW5nIHRvIGNy ZWF0ZSBuZXcgbWFwcGluZ3MuICovCisgICAgICAgICAgICBBU1NFUlQoIShuZiAmIF9QQUdFX1BS RVNFTlQpKTsKKwogICAgICAgICAgICAgdiArPSAxVUwgPDwgTDJfUEFHRVRBQkxFX1NISUZUOwog ICAgICAgICAgICAgdiAmPSB+KCgxVUwgPDwgTDJfUEFHRVRBQkxFX1NISUZUKSAtIDEpOwogICAg ICAgICAgICAgY29udGludWU7CkBAIC02MDI2LDggKzYwNTAsMTIgQEAgdm9pZCBkZXN0cm95X3hl bl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSkKICAgICAgICAgICAg IGlmICggKGwxX3RhYmxlX29mZnNldCh2KSA9PSAwKSAmJgogICAgICAgICAgICAgICAgICAoKGUt dikgPj0gKDFVTCA8PCBMMl9QQUdFVEFCTEVfU0hJRlQpKSApCiAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgICAgLyogUFNFOiB3aG9sZSBzdXBlcnBhZ2UgaXMgZGVzdHJveWVkLiAqLwotICAg ICAgICAgICAgICAgIGwyZV93cml0ZV9hdG9taWMocGwyZSwgbDJlX2VtcHR5KCkpOworICAgICAg ICAgICAgICAgIC8qIFBTRTogd2hvbGUgc3VwZXJwYWdlIGlzIG1vZGlmaWVkLiAqLworICAgICAg ICAgICAgICAgIGwyX3BnZW50cnlfdCBubDJlID0gIShuZiAmIF9QQUdFX1BSRVNFTlQpID8gbDJl X2VtcHR5KCkKKyAgICAgICAgICAgICAgICAgICAgOiBsMmVfZnJvbV9wZm4obDJlX2dldF9wZm4o KnBsMmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobDJlX2dldF9mbGFn cygqcGwyZSkgJiB+RkxBR1NfTUFTSykgfCBuZik7CisKKyAgICAgICAgICAgICAgICBsMmVfd3Jp dGVfYXRvbWljKHBsMmUsIG5sMmUpOwogICAgICAgICAgICAgICAgIHYgKz0gMVVMIDw8IEwyX1BB R0VUQUJMRV9TSElGVDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKQEAgLTYwNTUs MTMgKzYwODMsMjMgQEAgdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHMs IHVuc2lnbmVkIGxvbmcgZSkKICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgIHsKKyAg ICAgICAgICAgIGwxX3BnZW50cnlfdCBubDFlOworCiAgICAgICAgICAgICAvKiBPcmRpbmFyeSA0 a0IgbWFwcGluZy4gKi8KICAgICAgICAgICAgIHBsMWUgPSBsMmVfdG9fbDFlKCpwbDJlKSArIGwx X3RhYmxlX29mZnNldCh2KTsKLSAgICAgICAgICAgIGwxZV93cml0ZV9hdG9taWMocGwxZSwgbDFl X2VtcHR5KCkpOworCisgICAgICAgICAgICBubDFlID0gIShuZiAmIF9QQUdFX1BSRVNFTlQpID8g bDFlX2VtcHR5KCkKKyAgICAgICAgICAgICAgICA6IGwxZV9mcm9tX3BmbihsMWVfZ2V0X3Bmbigq cGwxZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGwxZV9nZXRfZmxhZ3MoKnBs MWUpICYgfkZMQUdTX01BU0spIHwgbmYpOworCisgICAgICAgICAgICBsMWVfd3JpdGVfYXRvbWlj KHBsMWUsIG5sMWUpOwogICAgICAgICAgICAgdiArPSBQQUdFX1NJWkU7CiAKLSAgICAgICAgICAg IC8qIElmIHdlIGFyZSBkb25lIHdpdGggdGhlIEwyRSwgY2hlY2sgaWYgaXQgaXMgbm93IGVtcHR5 LiAqLwotICAgICAgICAgICAgaWYgKCAodiAhPSBlKSAmJiAobDFfdGFibGVfb2Zmc2V0KHYpICE9 IDApICkKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBJZiB3ZSBhcmUgZGVzdHJveWlu ZyBtYXBwaW5ncyBhbmQgZG9uZSB3aXRoIHRoZSBMMkUsIGNoZWNrIGlmCisgICAgICAgICAgICAg KiBpdCBpcyBub3cgZW1wdHkuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICggKG5m ICYgX1BBR0VfUFJFU0VOVCkgJiYgKHYgIT0gZSkgJiYgKGwxX3RhYmxlX29mZnNldCh2KSAhPSAw KSApCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBwbDFlID0gbDJlX3Rv X2wxZSgqcGwyZSk7CiAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEwxX1BBR0VUQUJMRV9F TlRSSUVTOyBpKysgKQpAQCAtNjA3Niw4ICs2MTE0LDEyIEBAIHZvaWQgZGVzdHJveV94ZW5fbWFw cGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUpCiAgICAgICAgICAgICB9CiAg ICAgICAgIH0KIAotICAgICAgICAvKiBJZiB3ZSBhcmUgZG9uZSB3aXRoIHRoZSBMM0UsIGNoZWNr IGlmIGl0IGlzIG5vdyBlbXB0eS4gKi8KLSAgICAgICAgaWYgKCAodiAhPSBlKSAmJiAobDJfdGFi bGVfb2Zmc2V0KHYpICsgbDFfdGFibGVfb2Zmc2V0KHYpICE9IDApICkKKyAgICAgICAgLyoKKyAg ICAgICAgICogSWYgd2UgYXJlIGRlc3Ryb3lpbmcgbWFwcGluZ3MgYW5kIGRvbmUgd2l0aCB0aGUg TDNFLCBjaGVjayBpZiBpdCBpcworICAgICAgICAgKiBub3cgZW1wdHkuCisgICAgICAgICAqLwor ICAgICAgICBpZiAoIChuZiAmIF9QQUdFX1BSRVNFTlQpICYmICh2ICE9IGUpICYmCisgICAgICAg ICAgICAgKGwyX3RhYmxlX29mZnNldCh2KSArIGwxX3RhYmxlX29mZnNldCh2KSAhPSAwKSApCiAg ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgcGwyZSA9IGwzZV90b19sMmUoKnBsM2UpOwog ICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEwyX1BBR0VUQUJMRV9FTlRSSUVTOyBpKysgKQpAQCAt NjA5MywxMCArNjEzNSwxNyBAQCB2b2lkIGRlc3Ryb3lfeGVuX21hcHBpbmdzKHVuc2lnbmVkIGxv bmcgcywgdW5zaWduZWQgbG9uZyBlKQogICAgIH0KIAogICAgIGZsdXNoX2FyZWEoTlVMTCwgRkxV U0hfVExCX0dMT0JBTCk7CisKKyN1bmRlZiBGTEFHU19NQVNLCiB9CiAKICN1bmRlZiBmbHVzaF9h cmVhCiAKK3ZvaWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25l ZCBsb25nIGUpCit7CisgICAgbW9kaWZ5X3hlbl9tYXBwaW5ncyhzLCBlLCAwKTsKK30KKwogdm9p ZCBfX3NldF9maXhtYXAoCiAgICAgZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCB1bnNpZ25lZCBs b25nIG1mbiwgdW5zaWduZWQgbG9uZyBmbGFncykKIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9zZXR1cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggMjJkYzE0OC4uYjg2NzI0MiAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVuL2FyY2gveDg2L3NldHVw LmMKQEAgLTEyMjAsMjMgKzEyMjAsMTkgQEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94 ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICBpZiAoICF1c2luZ18yTV9tYXBwaW5nKCkgKQog ICAgIHsKICAgICAgICAgLyogTWFyayAudGV4dCBhcyBSWCAoYXZvaWRpbmcgdGhlIGZpcnN0IDJN IHN1cGVycGFnZSkuICovCi0gICAgICAgIG1hcF9wYWdlc190b194ZW4oWEVOX1ZJUlRfU1RBUlQg KyBNQigyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQRk5fRE9XTihfX3BhKFhFTl9WSVJU X1NUQVJUICsgTUIoMikpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQRk5fRE9XTihfXzJN X3RleHRfZW5kIC0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hh ciAqKShYRU5fVklSVF9TVEFSVCArIE1CKDIpKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg UEFHRV9IWVBFUlZJU09SX1JYKTsKKyAgICAgICAgbW9kaWZ5X3hlbl9tYXBwaW5ncyhYRU5fVklS VF9TVEFSVCArIE1CKDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBs b25nKSZfXzJNX3RleHRfZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9QQUdFX1BS RVNFTlQpOwogCiAgICAgICAgIC8qIE1hcmsgLnJvZGF0YSBhcyBSTy4gKi8KLSAgICAgICAgbWFw X3BhZ2VzX3RvX3hlbigodW5zaWduZWQgbG9uZykmX18yTV9yb2RhdGFfc3RhcnQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgUEZOX0RPV04oX19wYShfXzJNX3JvZGF0YV9zdGFydCkpLAotICAg ICAgICAgICAgICAgICAgICAgICAgIFBGTl9ET1dOKF9fMk1fcm9kYXRhX2VuZCAtIF9fMk1fcm9k YXRhX3N0YXJ0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQQUdFX0hZUEVSVklTT1JfUk8p OworICAgICAgICBtb2RpZnlfeGVuX21hcHBpbmdzKCh1bnNpZ25lZCBsb25nKSZfXzJNX3JvZGF0 YV9zdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZykmX18y TV9yb2RhdGFfZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9QQUdFX05YIHwgX1BB R0VfUFJFU0VOVCk7CiAKICAgICAgICAgLyogTWFyayAuZGF0YSBhbmQgLmJzcyBhcyBSVy4gKi8K LSAgICAgICAgbWFwX3BhZ2VzX3RvX3hlbigodW5zaWduZWQgbG9uZykmX18yTV9yd2RhdGFfc3Rh cnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgUEZOX0RPV04oX19wYShfXzJNX3J3ZGF0YV9z dGFydCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgIFBGTl9ET1dOKF9fMk1fcndkYXRhX2Vu ZCAtIF9fMk1fcndkYXRhX3N0YXJ0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQQUdFX0hZ UEVSVklTT1JfUlcpOworICAgICAgICBtb2RpZnlfeGVuX21hcHBpbmdzKCh1bnNpZ25lZCBsb25n KSZfXzJNX3J3ZGF0YV9zdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWdu ZWQgbG9uZykmX18yTV9yd2RhdGFfZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9Q QUdFX05YIHwgX1BBR0VfUlcgfCBfUEFHRV9QUkVTRU5UKTsKIAogICAgICAgICAvKiBEcm9wIHRo ZSByZW1haW5pbmcgbWFwcGluZ3MgaW4gdGhlIHNoYXR0ZXJlZCBzdXBlcnBhZ2UuICovCiAgICAg ICAgIGRlc3Ryb3lfeGVuX21hcHBpbmdzKCh1bnNpZ25lZCBsb25nKSZfXzJNX3J3ZGF0YV9lbmQs CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbW0uaCBiL3hlbi9pbmNsdWRlL3hlbi9tbS5o CmluZGV4IGQ2MjM5NGYuLmQ0NzIxZmMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9tbS5o CisrKyBiL3hlbi9pbmNsdWRlL3hlbi9tbS5oCkBAIC0xMDMsNiArMTAzLDggQEAgaW50IG1hcF9w YWdlc190b194ZW4oCiAgICAgdW5zaWduZWQgbG9uZyBtZm4sCiAgICAgdW5zaWduZWQgbG9uZyBu cl9tZm5zLAogICAgIHVuc2lnbmVkIGludCBmbGFncyk7CisvKiBBbHRlciB0aGUgcGVybWlzc2lv bnMgb2YgYSByYW5nZSBvZiBYZW4gdmlydHVhbCBhZGRyZXNzIHNwYWNlLiAqLwordm9pZCBtb2Rp ZnlfeGVuX21hcHBpbmdzKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlLCB1bnNpZ25l ZCBpbnQgZmxhZ3MpOwogdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHYs IHVuc2lnbmVkIGxvbmcgZSk7CiAvKgogICogQ3JlYXRlIG9ubHkgbm9uLWxlYWYgcGFnZSB0YWJs ZSBlbnRyaWVzIGZvciB0aGUKLS0gCjIuNS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK