From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v9 09/27] x86/mm: Introduce modify_xen_mappings() Date: Mon, 25 Apr 2016 11:34:56 -0400 Message-ID: <1461598514-5440-10-git-send-email-konrad.wilk@oracle.com> References: <1461598514-5440-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 1auiZC-0005Wx-GF for xen-devel@lists.xenproject.org; Mon, 25 Apr 2016 15:36:54 +0000 In-Reply-To: <1461598514-5440-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 eGlzdGluZwpkZXN0cm95X3hlbl9tYXBwaW5ncygpIGlzIGFsdGVyZWQgdG8gc3VwcG9ydCBjaGFu Z2luZyB0aGUgUFRFIHBlcm1pc3Npb25zLgoKQSBuZXcgZGVzdHJveV94ZW5fbWFwcGluZ3MoKSBp cyBpbnRyb2R1Y2VkLCBhcyB0aGUgc3BlY2lhbCBjYXNlIG9mIG5vdCBwYXNzaW5nCl9QQUdFX1BS RVNFTlQgdG8gbW9kaWZ5X3hlbl9tYXBwaW5ncygpLgoKQXMgY2xlYW51cCAoYW5kIGFuIGlkZWFs IGZ1bmN0aW9uYWwgdGVzdCksIHRoZSBib290IGxvZ2ljIHdoaWNoIHJlbWFwcyBYZW4ncwpjb2Rl IGFuZCBkYXRhIHdpdGggcmVkdWNlZCBwZXJtaXNzaW9ucyBpcyBhbHRlcmVkIHRvIHVzZQptb2Rp ZnlfeGVuX21hcHBpbmdzKCksIHJhdGhlciB0aGFuIG1hcF9wYWdlc190b194ZW4oKSBwYXNzaW5n IHRoZSBzYW1lIG1mbidzCmJhY2sgaW4uCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVr IFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBHZW9yZ2UgRHVubGFw IDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+CgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4K Q0M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KCnY3OiBOZXcK djg6CiAqIEFsbG93IGNhbGxlcnMgdG8gcGFzcyBQQUdFX0hZUEVSVklTT1JfeHh4IGNvbnN0YW50 cywgZm9yIGNvbnNpc3RlbnRseSB3aXRoCiAgIHNpbWlsYXIgZnVuY3Rpb25zLgogKiBSZXBsYWNl IG9uZSBvcGVuY29kZWQgMCB3aXRoIGl0cyBsb2dpY2FsIGVxdWl2YWxlbnQsIF9QQUdFX05PTkUu CiAqIEFkZCBjaGVjayBmb3IgY3JlYXRpbmcgbmV3IG1hcHBpbmdzIG9mIDRLIGVudHJpZXMuCiAq IENvcnJlY3QgdGhlIGNvbnRpbnVlIGxvZ2ljLiAgSW52ZXJ0IHRoZSBzZW5zZSBvZiB0aGUgY29t bWVudCB0byBtYXRjaCB0aGUKICAgY29kZS4KICogQWRkZWQgUmV2aWV3ZWQtYnkgR2VvcmdlIGFu ZCBKYW4uIEZpeCBtaXNzaW5nICJhcmUiIGluIGNvbW1lbnQuCnY5OiBBZGQgbWlzc2luZyBzZWNv bmQgJ2FyZScuCi0tLQotLS0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgIHwgNzUgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogeGVuL2FyY2gveDg2L3Nl dHVwLmMgfCAyMiArKysrKysrLS0tLS0tLS0KIHhlbi9pbmNsdWRlL3hlbi9tbS5oIHwgIDIgKysK IDMgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCA2MzNm MGRjLi4yYmI5MjBiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJj aC94ODYvbW0uYwpAQCAtNTk1Niw3ICs1OTU2LDE5IEBAIGludCBwb3B1bGF0ZV9wdF9yYW5nZSh1 bnNpZ25lZCBsb25nIHZpcnQsIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgIHJldHVybiBtYXBfcGFn ZXNfdG9feGVuKHZpcnQsIG1mbiwgbnJfbWZucywgTUFQX1NNQUxMX1BBR0VTKTsKIH0KIAotdm9p ZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSkK Ky8qCisgKiBBbHRlciB0aGUgcGVybWlzc2lvbnMgb2YgYSByYW5nZSBvZiBYZW4gdmlydHVhbCBh ZGRyZXNzIHNwYWNlLgorICoKKyAqIERvZXMgbm90IGNyZWF0ZSBuZXcgbWFwcGluZ3MsIGFuZCBk b2VzIG5vdCBtb2RpZnkgdGhlIG1mbiBpbiBleGlzdGluZworICogbWFwcGluZ3MsIGJ1dCB3aWxs IHNoYXR0ZXIgc3VwZXJwYWdlcyBpZiBuZWNlc3NhcnksIGFuZCB3aWxsIGRlc3Ryb3kKKyAqIG1h cHBpbmdzIGlmIG5vdCBwYXNzZWQgX1BBR0VfUFJFU0VOVC4KKyAqCisgKiBUaGUgb25seSBmbGFn cyBjb25zaWRlcmVkIGFyZSBOWCwgUlcgYW5kIFBSRVNFTlQuICBBbGwgb3RoZXIgaW5wdXQgZmxh Z3MKKyAqIGFyZSBpZ25vcmVkLgorICoKKyAqIEl0IGlzIGFuIGVycm9yIHRvIGNhbGwgd2l0aCBw cmVzZW50IGZsYWdzIG92ZXIgYW4gdW5wb3B1bGF0ZWQgcmFuZ2UuCisgKi8KK3ZvaWQgbW9kaWZ5 X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSwgdW5zaWduZWQg aW50IG5mKQogewogICAgIGJvb2xfdCBsb2NraW5nID0gc3lzdGVtX3N0YXRlID4gU1lTX1NUQVRF X2Jvb3Q7CiAgICAgbDJfcGdlbnRyeV90ICpwbDJlOwpAQCAtNTk2NCw2ICs1OTc2LDEwIEBAIHZv aWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUp CiAgICAgdW5zaWduZWQgaW50ICBpOwogICAgIHVuc2lnbmVkIGxvbmcgdiA9IHM7CiAKKyAgICAv KiBTZXQgb2YgdmFsaWQgUFRFIGJpdHMgd2hpY2ggbWF5IGJlIGFsdGVyZWQuICovCisjZGVmaW5l IEZMQUdTX01BU0sgKF9QQUdFX05YfF9QQUdFX1JXfF9QQUdFX1BSRVNFTlQpCisgICAgbmYgJj0g RkxBR1NfTUFTSzsKKwogICAgIEFTU0VSVChJU19BTElHTkVEKHMsIFBBR0VfU0laRSkpOwogICAg IEFTU0VSVChJU19BTElHTkVEKGUsIFBBR0VfU0laRSkpOwogCkBAIC01OTczLDYgKzU5ODksOSBA QCB2b2lkIGRlc3Ryb3lfeGVuX21hcHBpbmdzKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9u ZyBlKQogCiAgICAgICAgIGlmICggIShsM2VfZ2V0X2ZsYWdzKCpwbDNlKSAmIF9QQUdFX1BSRVNF TlQpICkKICAgICAgICAgeworICAgICAgICAgICAgLyogQ29uZmlybSB0aGUgY2FsbGVyIGlzbid0 IHRyeWluZyB0byBjcmVhdGUgbmV3IG1hcHBpbmdzLiAqLworICAgICAgICAgICAgQVNTRVJUKCEo bmYgJiBfUEFHRV9QUkVTRU5UKSk7CisKICAgICAgICAgICAgIHYgKz0gMVVMIDw8IEwzX1BBR0VU QUJMRV9TSElGVDsKICAgICAgICAgICAgIHYgJj0gfigoMVVMIDw8IEwzX1BBR0VUQUJMRV9TSElG VCkgLSAxKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNTk4NCw4ICs2MDAzLDEyIEBAIHZv aWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUp CiAgICAgICAgICAgICAgICAgIGwxX3RhYmxlX29mZnNldCh2KSA9PSAwICYmCiAgICAgICAgICAg ICAgICAgICgoZSAtIHYpID49ICgxVUwgPDwgTDNfUEFHRVRBQkxFX1NISUZUKSkgKQogICAgICAg ICAgICAgewotICAgICAgICAgICAgICAgIC8qIFBBR0UxR0I6IHdob2xlIHN1cGVycGFnZSBpcyBk ZXN0cm95ZWQuICovCi0gICAgICAgICAgICAgICAgbDNlX3dyaXRlX2F0b21pYyhwbDNlLCBsM2Vf ZW1wdHkoKSk7CisgICAgICAgICAgICAgICAgLyogUEFHRTFHQjogd2hvbGUgc3VwZXJwYWdlIGlz IG1vZGlmaWVkLiAqLworICAgICAgICAgICAgICAgIGwzX3BnZW50cnlfdCBubDNlID0gIShuZiAm IF9QQUdFX1BSRVNFTlQpID8gbDNlX2VtcHR5KCkKKyAgICAgICAgICAgICAgICAgICAgOiBsM2Vf ZnJvbV9wZm4obDNlX2dldF9wZm4oKnBsM2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobDNlX2dldF9mbGFncygqcGwzZSkgJiB+RkxBR1NfTUFTSykgfCBuZik7CisKKyAg ICAgICAgICAgICAgICBsM2Vfd3JpdGVfYXRvbWljKHBsM2UsIG5sM2UpOwogICAgICAgICAgICAg ICAgIHYgKz0gMVVMIDw8IEwzX1BBR0VUQUJMRV9TSElGVDsKICAgICAgICAgICAgICAgICBjb250 aW51ZTsKICAgICAgICAgICAgIH0KQEAgLTYwMTYsNiArNjAzOSw5IEBAIHZvaWQgZGVzdHJveV94 ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUpCiAKICAgICAgICAg aWYgKCAhKGwyZV9nZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFJFU0VOVCkgKQogICAgICAgICB7 CisgICAgICAgICAgICAvKiBDb25maXJtIHRoZSBjYWxsZXIgaXNuJ3QgdHJ5aW5nIHRvIGNyZWF0 ZSBuZXcgbWFwcGluZ3MuICovCisgICAgICAgICAgICBBU1NFUlQoIShuZiAmIF9QQUdFX1BSRVNF TlQpKTsKKwogICAgICAgICAgICAgdiArPSAxVUwgPDwgTDJfUEFHRVRBQkxFX1NISUZUOwogICAg ICAgICAgICAgdiAmPSB+KCgxVUwgPDwgTDJfUEFHRVRBQkxFX1NISUZUKSAtIDEpOwogICAgICAg ICAgICAgY29udGludWU7CkBAIC02MDI2LDggKzYwNTIsMTIgQEAgdm9pZCBkZXN0cm95X3hlbl9t YXBwaW5ncyh1bnNpZ25lZCBsb25nIHMsIHVuc2lnbmVkIGxvbmcgZSkKICAgICAgICAgICAgIGlm ICggKGwxX3RhYmxlX29mZnNldCh2KSA9PSAwKSAmJgogICAgICAgICAgICAgICAgICAoKGUtdikg Pj0gKDFVTCA8PCBMMl9QQUdFVEFCTEVfU0hJRlQpKSApCiAgICAgICAgICAgICB7Ci0gICAgICAg ICAgICAgICAgLyogUFNFOiB3aG9sZSBzdXBlcnBhZ2UgaXMgZGVzdHJveWVkLiAqLwotICAgICAg ICAgICAgICAgIGwyZV93cml0ZV9hdG9taWMocGwyZSwgbDJlX2VtcHR5KCkpOworICAgICAgICAg ICAgICAgIC8qIFBTRTogd2hvbGUgc3VwZXJwYWdlIGlzIG1vZGlmaWVkLiAqLworICAgICAgICAg ICAgICAgIGwyX3BnZW50cnlfdCBubDJlID0gIShuZiAmIF9QQUdFX1BSRVNFTlQpID8gbDJlX2Vt cHR5KCkKKyAgICAgICAgICAgICAgICAgICAgOiBsMmVfZnJvbV9wZm4obDJlX2dldF9wZm4oKnBs MmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobDJlX2dldF9mbGFncygq cGwyZSkgJiB+RkxBR1NfTUFTSykgfCBuZik7CisKKyAgICAgICAgICAgICAgICBsMmVfd3JpdGVf YXRvbWljKHBsMmUsIG5sMmUpOwogICAgICAgICAgICAgICAgIHYgKz0gMVVMIDw8IEwyX1BBR0VU QUJMRV9TSElGVDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKQEAgLTYwNTUsMTMg KzYwODUsMjcgQEAgdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHMsIHVu c2lnbmVkIGxvbmcgZSkKICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgIHsKKyAgICAg ICAgICAgIGwxX3BnZW50cnlfdCBubDFlOworCiAgICAgICAgICAgICAvKiBPcmRpbmFyeSA0a0Ig bWFwcGluZy4gKi8KICAgICAgICAgICAgIHBsMWUgPSBsMmVfdG9fbDFlKCpwbDJlKSArIGwxX3Rh YmxlX29mZnNldCh2KTsKLSAgICAgICAgICAgIGwxZV93cml0ZV9hdG9taWMocGwxZSwgbDFlX2Vt cHR5KCkpOworCisgICAgICAgICAgICAvKiBDb25maXJtIHRoZSBjYWxsZXIgaXNuJ3QgdHJ5aW5n IHRvIGNyZWF0ZSBuZXcgbWFwcGluZ3MuICovCisgICAgICAgICAgICBpZiAoICEobDFlX2dldF9m bGFncygqcGwxZSkgJiBfUEFHRV9QUkVTRU5UKSApCisgICAgICAgICAgICAgICAgQVNTRVJUKCEo bmYgJiBfUEFHRV9QUkVTRU5UKSk7CisKKyAgICAgICAgICAgIG5sMWUgPSAhKG5mICYgX1BBR0Vf UFJFU0VOVCkgPyBsMWVfZW1wdHkoKQorICAgICAgICAgICAgICAgIDogbDFlX2Zyb21fcGZuKGwx ZV9nZXRfcGZuKCpwbDFlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobDFlX2dl dF9mbGFncygqcGwxZSkgJiB+RkxBR1NfTUFTSykgfCBuZik7CisKKyAgICAgICAgICAgIGwxZV93 cml0ZV9hdG9taWMocGwxZSwgbmwxZSk7CiAgICAgICAgICAgICB2ICs9IFBBR0VfU0laRTsKIAot ICAgICAgICAgICAgLyogSWYgd2UgYXJlIGRvbmUgd2l0aCB0aGUgTDJFLCBjaGVjayBpZiBpdCBp cyBub3cgZW1wdHkuICovCi0gICAgICAgICAgICBpZiAoICh2ICE9IGUpICYmIChsMV90YWJsZV9v ZmZzZXQodikgIT0gMCkgKQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIElmIHdlIGFy ZSBub3QgZGVzdHJveWluZyBtYXBwaW5ncywgb3Igbm90IGRvbmUgd2l0aCB0aGUgTDJFLAorICAg ICAgICAgICAgICogc2tpcCB0aGUgZW1wdHkmZnJlZSBjaGVjay4KKyAgICAgICAgICAgICAqLwor ICAgICAgICAgICAgaWYgKCAobmYgJiBfUEFHRV9QUkVTRU5UKSB8fCAoKHYgIT0gZSkgJiYgKGwx X3RhYmxlX29mZnNldCh2KSAhPSAwKSkgKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg ICAgICAgICAgcGwxZSA9IGwyZV90b19sMWUoKnBsMmUpOwogICAgICAgICAgICAgZm9yICggaSA9 IDA7IGkgPCBMMV9QQUdFVEFCTEVfRU5UUklFUzsgaSsrICkKQEAgLTYwNzYsOCArNjEyMCwxMiBA QCB2b2lkIGRlc3Ryb3lfeGVuX21hcHBpbmdzKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9u ZyBlKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgLyogSWYgd2UgYXJlIGRv bmUgd2l0aCB0aGUgTDNFLCBjaGVjayBpZiBpdCBpcyBub3cgZW1wdHkuICovCi0gICAgICAgIGlm ICggKHYgIT0gZSkgJiYgKGwyX3RhYmxlX29mZnNldCh2KSArIGwxX3RhYmxlX29mZnNldCh2KSAh PSAwKSApCisgICAgICAgIC8qCisgICAgICAgICAqIElmIHdlIGFyZSBub3QgZGVzdHJveWluZyBt YXBwaW5ncywgb3Igbm90IGRvbmUgd2l0aCB0aGUgTDNFLAorICAgICAgICAgKiBza2lwIHRoZSBl bXB0eSZmcmVlIGNoZWNrLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAobmYgJiBfUEFHRV9Q UkVTRU5UKSB8fAorICAgICAgICAgICAgICgodiAhPSBlKSAmJiAobDJfdGFibGVfb2Zmc2V0KHYp ICsgbDFfdGFibGVfb2Zmc2V0KHYpICE9IDApKSApCiAgICAgICAgICAgICBjb250aW51ZTsKICAg ICAgICAgcGwyZSA9IGwzZV90b19sMmUoKnBsM2UpOwogICAgICAgICBmb3IgKCBpID0gMDsgaSA8 IEwyX1BBR0VUQUJMRV9FTlRSSUVTOyBpKysgKQpAQCAtNjA5MywxMCArNjE0MSwxNyBAQCB2b2lk IGRlc3Ryb3lfeGVuX21hcHBpbmdzKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlKQog ICAgIH0KIAogICAgIGZsdXNoX2FyZWEoTlVMTCwgRkxVU0hfVExCX0dMT0JBTCk7CisKKyN1bmRl ZiBGTEFHU19NQVNLCiB9CiAKICN1bmRlZiBmbHVzaF9hcmVhCiAKK3ZvaWQgZGVzdHJveV94ZW5f bWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUpCit7CisgICAgbW9kaWZ5 X3hlbl9tYXBwaW5ncyhzLCBlLCBfUEFHRV9OT05FKTsKK30KKwogdm9pZCBfX3NldF9maXhtYXAo CiAgICAgZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWdu ZWQgbG9uZyBmbGFncykKIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jIGIveGVu L2FyY2gveDg2L3NldHVwLmMKaW5kZXggMjJkYzE0OC4uNTAyOTU2OCAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVuL2FyY2gveDg2L3NldHVwLmMKQEAgLTEyMjAsMjMg KzEyMjAsMTkgQEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9u ZyBtYmlfcCkKICAgICBpZiAoICF1c2luZ18yTV9tYXBwaW5nKCkgKQogICAgIHsKICAgICAgICAg LyogTWFyayAudGV4dCBhcyBSWCAoYXZvaWRpbmcgdGhlIGZpcnN0IDJNIHN1cGVycGFnZSkuICov Ci0gICAgICAgIG1hcF9wYWdlc190b194ZW4oWEVOX1ZJUlRfU1RBUlQgKyBNQigyKSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICBQRk5fRE9XTihfX3BhKFhFTl9WSVJUX1NUQVJUICsgTUIoMikp KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQRk5fRE9XTihfXzJNX3RleHRfZW5kIC0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqKShYRU5fVklSVF9T VEFSVCArIE1CKDIpKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgUEFHRV9IWVBFUlZJU09S X1JYKTsKKyAgICAgICAgbW9kaWZ5X3hlbl9tYXBwaW5ncyhYRU5fVklSVF9TVEFSVCArIE1CKDIp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKSZfXzJNX3RleHRf ZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBR0VfSFlQRVJWSVNPUl9SWCk7CiAK ICAgICAgICAgLyogTWFyayAucm9kYXRhIGFzIFJPLiAqLwotICAgICAgICBtYXBfcGFnZXNfdG9f eGVuKCh1bnNpZ25lZCBsb25nKSZfXzJNX3JvZGF0YV9zdGFydCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICBQRk5fRE9XTihfX3BhKF9fMk1fcm9kYXRhX3N0YXJ0KSksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgUEZOX0RPV04oX18yTV9yb2RhdGFfZW5kIC0gX18yTV9yb2RhdGFfc3RhcnQp LAotICAgICAgICAgICAgICAgICAgICAgICAgIFBBR0VfSFlQRVJWSVNPUl9STyk7CisgICAgICAg IG1vZGlmeV94ZW5fbWFwcGluZ3MoKHVuc2lnbmVkIGxvbmcpJl9fMk1fcm9kYXRhX3N0YXJ0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKSZfXzJNX3JvZGF0YV9l bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFHRV9IWVBFUlZJU09SX1JPKTsKIAog ICAgICAgICAvKiBNYXJrIC5kYXRhIGFuZCAuYnNzIGFzIFJXLiAqLwotICAgICAgICBtYXBfcGFn ZXNfdG9feGVuKCh1bnNpZ25lZCBsb25nKSZfXzJNX3J3ZGF0YV9zdGFydCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICBQRk5fRE9XTihfX3BhKF9fMk1fcndkYXRhX3N0YXJ0KSksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgUEZOX0RPV04oX18yTV9yd2RhdGFfZW5kIC0gX18yTV9yd2RhdGFf c3RhcnQpLAotICAgICAgICAgICAgICAgICAgICAgICAgIFBBR0VfSFlQRVJWSVNPUl9SVyk7Cisg ICAgICAgIG1vZGlmeV94ZW5fbWFwcGluZ3MoKHVuc2lnbmVkIGxvbmcpJl9fMk1fcndkYXRhX3N0 YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKSZfXzJNX3J3 ZGF0YV9lbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFHRV9IWVBFUlZJU09SX1JX KTsKIAogICAgICAgICAvKiBEcm9wIHRoZSByZW1haW5pbmcgbWFwcGluZ3MgaW4gdGhlIHNoYXR0 ZXJlZCBzdXBlcnBhZ2UuICovCiAgICAgICAgIGRlc3Ryb3lfeGVuX21hcHBpbmdzKCh1bnNpZ25l ZCBsb25nKSZfXzJNX3J3ZGF0YV9lbmQsCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbW0u aCBiL3hlbi9pbmNsdWRlL3hlbi9tbS5oCmluZGV4IGQ2MjM5NGYuLmQ0NzIxZmMgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL3hlbi9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9tbS5oCkBAIC0x MDMsNiArMTAzLDggQEAgaW50IG1hcF9wYWdlc190b194ZW4oCiAgICAgdW5zaWduZWQgbG9uZyBt Zm4sCiAgICAgdW5zaWduZWQgbG9uZyBucl9tZm5zLAogICAgIHVuc2lnbmVkIGludCBmbGFncyk7 CisvKiBBbHRlciB0aGUgcGVybWlzc2lvbnMgb2YgYSByYW5nZSBvZiBYZW4gdmlydHVhbCBhZGRy ZXNzIHNwYWNlLiAqLwordm9pZCBtb2RpZnlfeGVuX21hcHBpbmdzKHVuc2lnbmVkIGxvbmcgcywg dW5zaWduZWQgbG9uZyBlLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwogdm9pZCBkZXN0cm95X3hlbl9t YXBwaW5ncyh1bnNpZ25lZCBsb25nIHYsIHVuc2lnbmVkIGxvbmcgZSk7CiAvKgogICogQ3JlYXRl IG9ubHkgbm9uLWxlYWYgcGFnZSB0YWJsZSBlbnRyaWVzIGZvciB0aGUKLS0gCjIuNS4wCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK