From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/3] x86/mm: Consolidate all Xen L4 slot writing into init_xen_l4_slots() Date: Thu, 12 Oct 2017 14:54:22 +0100 Message-ID: <1507816462-15881-4-git-send-email-andrew.cooper3@citrix.com> References: <1507816462-15881-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1507816462-15881-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Wei Liu , George Dunlap , Andrew Cooper , Tim Deegan , Julien Grall , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlcmUgYXJlIGN1cnJlbnRseSB0aHJlZSBmdW5jdGlvbnMgd2hpY2ggd3JpdGUgTDQgcGFnZXRh YmxlcyBmb3IgWGVuLCBidXQKdGhleSBhbGwgYmVoYXZlIHN1YnRseSBkaWZmZXJlbnRseS4gIHNo X2luc3RhbGxfeGVuX2VudHJpZXNfaW5fbDQoKSBpbgpwYXJ0aWN1bGFyIGlzIGNhdGVyaW5nIGZv ciB0d28gZGlmZmVyZW50IHVzZWNhc2VzLCB3aGljaCBtYWtlcyB0aGUgc2FmZXR5IG9mCnRoZSBs aW5lYXIgbWFwcGluZ3MgaGFyZCB0byBmb2xsb3cuCgpCeSBjb25zb2xpZGF0aW5nIHRoZSBMNCBw YWdldGFibGUgd3JpdGluZyBpbiBhIHNpbmdsZSBmdW5jdGlvbiwgdGhlIHJlc3VsdGluZwpzZXR1 cCBvZiBYZW4ncyB2aXJ0dWFsIGxheW91dCBpcyBlYXNpZXIgdG8gdW5kZXJzdGFuZC4KCk5vIHBy YWN0aWNhbCBjaGFuZ2VzIHRvIHRoZSByZXN1bHRpbmcgTDQsIGFsdGhvdWdoIHRoZSBsb2dpYyBo YXMgYmVlbgpyZWFycmFuZ2VkIHRvIGF2b2lkIHJld3JpdGluZyBzb21lIHNsb3RzLiAgVGhpcyBj aGFuZ2VzIHRoZSB6YXBfcm9fbXB0CnBhcmFtZXRlciB0byBzaW1wbHkgcm9fbXB0LgoKQm90aCB7 aGFwLHNofV9pbnN0YWxsX3hlbl9lbnRyaWVzX2luX2w0KCkgZ2V0IGZvbGRlZCBpbnRvIHRoZWly IGNhbGxlcnMuICBUaGUKaGFwIHNpZGUgb25seSBhIHNpbmdsZSBjYWxsZXIsIHdoaWxlIHRoZSBz aGFkb3cgc2lkZSBoYXMgdHdvLiAgVGhlIHNoYWRvdwpzcGxpdCBoZWxwcyBoaWdobGlnaHQgdGhl IGNvcnJlY3RuZXNzIG9mIHRoZSBsaW5lYXIgc2xvdHMuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxK QmV1bGljaEBzdXNlLmNvbT4KQ0M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDQzogR2Vvcmdl IER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgpDQzogV2VpIExpdSA8d2VpLmxp dTJAY2l0cml4LmNvbT4KQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Ci0t LQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgIHwgIDg3ICsrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLQogeGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYyAgICAgIHwgIDMxICsr Ky0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jIHwgMTA2ICsrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvcHYvZG9tMF9i dWlsZC5jICAgfCAgIDMgKy0KIHhlbi9hcmNoL3g4Ni9wdi9kb21haW4uYyAgICAgICB8ICAgMiAr LQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oICAgICAgIHwgICA0ICstCiA2IGZpbGVzIGNoYW5n ZWQsIDEwNSBpbnNlcnRpb25zKCspLCAxMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCBlYTRhZjE2Li41MDk3OTU4 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpA QCAtMTUyMSwzNyArMTUyMSw4NSBAQCB2b2lkIGluaXRfeGVuX3BhZV9sMl9zbG90cyhsMl9wZ2Vu dHJ5X3QgKmwydCwgY29uc3Qgc3RydWN0IGRvbWFpbiAqZCkKIH0KIAogLyoKKyAqIEZpbGwgYW4g TDQgd2l0aCBYZW4gZW50cmllcy4KKyAqCiAgKiBUaGlzIGZ1bmN0aW9uIG11c3Qgd3JpdGUgYWxs IFJPT1RfUEFHRVRBQkxFX1BWX1hFTl9TTE9UUywgdG8gY2xvYmJlciBhbnkKICAqIHZhbHVlcyBh IGd1ZXN0IG1heSBoYXZlIGxlZnQgdGhlcmUgZnJvbSBhbGxvY19sNF90YWJsZSgpLgorICoKKyAq IGw0dCBhbmQgbDRtZm4gYXJlIG1hbmRhdG9yeSwgYnV0IGw0bWZuIGRvZXNuJ3QgbmVlZCB0byBi ZSB0aGUgbWZuIHVuZGVyCisgKiAqbDR0LiAgQWxsIG90aGVyIHBhcmFtZXRlcnMgYXJlIG9wdGlv bmFsIGFuZCB3aWxsIGVpdGhlciBmaWxsIG9yIHplcm8gdGhlCisgKiBhcHByb3ByaWF0ZSBzbG90 cy4gIFBhZ2V0YWJsZXMgbm90IHNoYXJlZCB3aXRoIGd1ZXN0cyB3aWxsIGdhaW4gdGhlCisgKiBl eHRlbmRlZCBkaXJlY3RtYXAuCiAgKi8KLXZvaWQgaW5pdF9ndWVzdF9sNF90YWJsZShsNF9wZ2Vu dHJ5X3QgbDR0YWJbXSwgY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICBib29sIHphcF9yb19tcHQpCit2b2lkIGluaXRfeGVuX2w0X3Nsb3RzKGw0X3BnZW50 cnlfdCAqbDR0LCBtZm5fdCBsNG1mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Ry dWN0IGRvbWFpbiAqZCwgbWZuX3Qgc2w0bWZuLCBib29sIHJvX21wdCkKIHsKLSAgICAvKiBYZW4g cHJpdmF0ZSBtYXBwaW5ncy4gKi8KLSAgICBtZW1jcHkoJmw0dGFiW1JPT1RfUEFHRVRBQkxFX0ZJ UlNUX1hFTl9TTE9UXSwKLSAgICAgICAgICAgJmlkbGVfcGdfdGFibGVbUk9PVF9QQUdFVEFCTEVf RklSU1RfWEVOX1NMT1RdLAotICAgICAgICAgICByb290X3BndF9wdl94ZW5fc2xvdHMgKiBzaXpl b2YobDRfcGdlbnRyeV90KSk7CisgICAgLyoKKyAgICAgKiBQViB2Y3B1cyBuZWVkIGEgc2hvcnRl bmVkIGRpcmVjdG1hcC4gIEhWTSBhbmQgSWRsZSB2Y3B1cyBnZXQgdGhlIGZ1bGwKKyAgICAgKiBk aXJlY3RtYXAuCisgICAgICovCisgICAgYm9vbCBzaG9ydF9kaXJlY3RtYXAgPSBkICYmICFwYWdp bmdfbW9kZV9leHRlcm5hbChkKTsKKworICAgIC8qIFNsb3QgMjU2OiBSTyBNMlAgKGlmIGFwcGxp Y2FibGUpLiAqLworICAgIGw0dFtsNF90YWJsZV9vZmZzZXQoUk9fTVBUX1ZJUlRfU1RBUlQpXSA9 CisgICAgICAgIHJvX21wdCA/IGlkbGVfcGdfdGFibGVbbDRfdGFibGVfb2Zmc2V0KFJPX01QVF9W SVJUX1NUQVJUKV0KKyAgICAgICAgICAgICAgIDogbDRlX2VtcHR5KCk7CisKKyAgICAvKiBTbG90 IDI1NzogUENJIE1NQ0ZHLiAqLworICAgIGw0dFtsNF90YWJsZV9vZmZzZXQoUENJX01DRkdfVklS VF9TVEFSVCldID0KKyAgICAgICAgaWRsZV9wZ190YWJsZVtsNF90YWJsZV9vZmZzZXQoUENJX01D RkdfVklSVF9TVEFSVCldOworCisgICAgLyogU2xvdCAyNTg6IFNlbGYgbGluZWFyIG1hcHBpbmdz LiAqLworICAgIEFTU0VSVCghbWZuX2VxKGw0bWZuLCBJTlZBTElEX01GTikpOworICAgIGw0dFts NF90YWJsZV9vZmZzZXQoTElORUFSX1BUX1ZJUlRfU1RBUlQpXSA9CisgICAgICAgIGw0ZV9mcm9t X21mbihsNG1mbiwgX19QQUdFX0hZUEVSVklTT1JfUlcpOworCisgICAgLyogU2xvdCAyNTk6IFNo YWRvdyBsaW5lYXIgbWFwcGluZ3MgKGlmIGFwcGxpY2FibGUpIC4qLworICAgIGw0dFtsNF90YWJs ZV9vZmZzZXQoU0hfTElORUFSX1BUX1ZJUlRfU1RBUlQpXSA9CisgICAgICAgIG1mbl9lcShzbDRt Zm4sIElOVkFMSURfTUZOKSA/IGw0ZV9lbXB0eSgpIDoKKyAgICAgICAgbDRlX2Zyb21fbWZuKHNs NG1mbiwgX19QQUdFX0hZUEVSVklTT1JfUlcpOworCisgICAgLyogU2xvdCAyNjA6IFBlci1kb21h aW4gbWFwcGluZ3MgKGlmIGFwcGxpY2FibGUpLiAqLworICAgIGw0dFtsNF90YWJsZV9vZmZzZXQo UEVSRE9NQUlOX1ZJUlRfU1RBUlQpXSA9CisgICAgICAgIGQgPyBsNGVfZnJvbV9wYWdlKGQtPmFy Y2gucGVyZG9tYWluX2wzX3BnLCBfX1BBR0VfSFlQRVJWSVNPUl9SVykKKyAgICAgICAgICA6IGw0 ZV9lbXB0eSgpOworCisgICAgLyogU2xvdCAyNjEtOiB0ZXh0L2RhdGEvYnNzLCBSVyBNMlAsIHZt YXAsIGZyYW1ldGFibGUsIGRpcmVjdG1hcC4gKi8KICNpZm5kZWYgTkRFQlVHCi0gICAgaWYgKCB1 bmxpa2VseShyb290X3BndF9wdl94ZW5fc2xvdHMgPCBST09UX1BBR0VUQUJMRV9QVl9YRU5fU0xP VFMpICkKKyAgICBpZiAoIHNob3J0X2RpcmVjdG1hcCAmJgorICAgICAgICAgdW5saWtlbHkocm9v dF9wZ3RfcHZfeGVuX3Nsb3RzIDwgUk9PVF9QQUdFVEFCTEVfUFZfWEVOX1NMT1RTKSApCiAgICAg ewotICAgICAgICBsNF9wZ2VudHJ5X3QgKm5leHQgPSAmbDR0YWJbUk9PVF9QQUdFVEFCTEVfRklS U1RfWEVOX1NMT1QgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdF9w Z3RfcHZfeGVuX3Nsb3RzXTsKKyAgICAgICAgLyoKKyAgICAgICAgICogSWYgdXNpbmcgaGlnaG1l bS1zdGFydD0sIGFydGlmaWNpYWxseSBzaG9ydGVuIHRoZSBkaXJlY3RtYXAgdG8KKyAgICAgICAg ICogc2ltdWxhdGUgdmVyeSBsYXJnZSBtYWNoaW5lcy4KKyAgICAgICAgICovCisgICAgICAgIGw0 X3BnZW50cnlfdCAqbmV4dDsKKworICAgICAgICBtZW1jcHkoJmw0dFtsNF90YWJsZV9vZmZzZXQo WEVOX1ZJUlRfU1RBUlQpXSwKKyAgICAgICAgICAgICAgICZpZGxlX3BnX3RhYmxlW2w0X3RhYmxl X29mZnNldChYRU5fVklSVF9TVEFSVCldLAorICAgICAgICAgICAgICAgKFJPT1RfUEFHRVRBQkxF X0ZJUlNUX1hFTl9TTE9UICsgcm9vdF9wZ3RfcHZfeGVuX3Nsb3RzIC0KKyAgICAgICAgICAgICAg ICBsNF90YWJsZV9vZmZzZXQoWEVOX1ZJUlRfU1RBUlQpKSAqIHNpemVvZigqbDR0KSk7CisKKyAg ICAgICAgbmV4dCA9ICZsNHRbUk9PVF9QQUdFVEFCTEVfRklSU1RfWEVOX1NMT1QgKyByb290X3Bn dF9wdl94ZW5fc2xvdHNdOwogCiAgICAgICAgIGlmICggbDRlX2dldF9pbnRwdGUoc3BsaXRfbDRl KSApCiAgICAgICAgICAgICAqbmV4dCsrID0gc3BsaXRfbDRlOwogCiAgICAgICAgIG1lbXNldChu ZXh0LCAwLAotICAgICAgICAgICAgICAgX3AoJmw0dGFiW1JPT1RfUEFHRVRBQkxFX0xBU1RfWEVO X1NMT1QgKyAxXSkgLSBfcChuZXh0KSk7CisgICAgICAgICAgICAgICBfcCgmbDR0W1JPT1RfUEFH RVRBQkxFX0xBU1RfWEVOX1NMT1QgKyAxXSkgLSBfcChuZXh0KSk7CiAgICAgfQotI2Vsc2UKLSAg ICBCVUlMRF9CVUdfT04ocm9vdF9wZ3RfcHZfeGVuX3Nsb3RzICE9IFJPT1RfUEFHRVRBQkxFX1BW X1hFTl9TTE9UUyk7CisgICAgZWxzZQogI2VuZGlmCi0gICAgbDR0YWJbbDRfdGFibGVfb2Zmc2V0 KExJTkVBUl9QVF9WSVJUX1NUQVJUKV0gPQotICAgICAgICBsNGVfZnJvbV9wZm4oZG9tYWluX3Bh Z2VfbWFwX3RvX21mbihsNHRhYiksIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsKLSAgICBsNHRhYlts NF90YWJsZV9vZmZzZXQoUEVSRE9NQUlOX1ZJUlRfU1RBUlQpXSA9Ci0gICAgICAgIGw0ZV9mcm9t X3BhZ2UoZC0+YXJjaC5wZXJkb21haW5fbDNfcGcsIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsKLSAg ICBpZiAoIHphcF9yb19tcHQgfHwgaXNfcHZfMzJiaXRfZG9tYWluKGQpICkKLSAgICAgICAgbDR0 YWJbbDRfdGFibGVfb2Zmc2V0KFJPX01QVF9WSVJUX1NUQVJUKV0gPSBsNGVfZW1wdHkoKTsKKyAg ICB7CisgICAgICAgIHVuc2lnbmVkIGludCBzbG90cyA9IChzaG9ydF9kaXJlY3RtYXAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID8gUk9PVF9QQUdFVEFCTEVfUFZfWEVOX1NMT1RTCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFJPT1RfUEFHRVRBQkxFX1hFTl9TTE9UUyk7 CisKKyAgICAgICAgbWVtY3B5KCZsNHRbbDRfdGFibGVfb2Zmc2V0KFhFTl9WSVJUX1NUQVJUKV0s CisgICAgICAgICAgICAgICAmaWRsZV9wZ190YWJsZVtsNF90YWJsZV9vZmZzZXQoWEVOX1ZJUlRf U1RBUlQpXSwKKyAgICAgICAgICAgICAgIChST09UX1BBR0VUQUJMRV9GSVJTVF9YRU5fU0xPVCAr IHNsb3RzIC0KKyAgICAgICAgICAgICAgICBsNF90YWJsZV9vZmZzZXQoWEVOX1ZJUlRfU1RBUlQp KSAqIHNpemVvZigqbDR0KSk7CisgICAgfQogfQogCiBib29sIGZpbGxfcm9fbXB0KG1mbl90IG1m bikKQEAgLTE2MjksNyArMTY3Nyw4IEBAIHN0YXRpYyBpbnQgYWxsb2NfbDRfdGFibGUoc3RydWN0 IHBhZ2VfaW5mbyAqcGFnZSkKIAogICAgIGlmICggcmMgPj0gMCApCiAgICAgewotICAgICAgICBp bml0X2d1ZXN0X2w0X3RhYmxlKHBsNGUsIGQsICFWTV9BU1NJU1QoZCwgbTJwX3N0cmljdCkpOwor ICAgICAgICBpbml0X3hlbl9sNF9zbG90cyhwbDRlLCBfbWZuKHBmbiksCisgICAgICAgICAgICAg ICAgICAgICAgICAgIGQsIElOVkFMSURfTUZOLCBWTV9BU1NJU1QoZCwgbTJwX3N0cmljdCkpOwog ICAgICAgICBhdG9taWNfaW5jKCZkLT5hcmNoLnB2X2RvbWFpbi5ucl9sNF9wYWdlcyk7CiAgICAg ICAgIHJjID0gMDsKICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5j IGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYwppbmRleCBkYzg1ZTgyLi4xZTdlOGQwIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9o YXAvaGFwLmMKQEAgLTM5MSw0MSArMzkxLDI0IEBAIGludCBoYXBfc2V0X2FsbG9jYXRpb24oc3Ry dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHBhZ2VzLCBib29sICpwcmVlbXB0ZWQpCiAgICAg cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGhhcF9pbnN0YWxsX3hlbl9lbnRyaWVzX2luX2w0 KHN0cnVjdCB2Y3B1ICp2LCBtZm5fdCBsNG1mbikKLXsKLSAgICBzdHJ1Y3QgZG9tYWluICpkID0g di0+ZG9tYWluOwotICAgIGw0X3BnZW50cnlfdCAqbDRlOwotCi0gICAgbDRlID0gbWFwX2RvbWFp bl9wYWdlKGw0bWZuKTsKLQotICAgIC8qIENvcHkgdGhlIGNvbW1vbiBYZW4gbWFwcGluZ3MgZnJv bSB0aGUgaWRsZSBkb21haW4gKi8KLSAgICBtZW1jcHkoJmw0ZVtST09UX1BBR0VUQUJMRV9GSVJT VF9YRU5fU0xPVF0sCi0gICAgICAgICAgICZpZGxlX3BnX3RhYmxlW1JPT1RfUEFHRVRBQkxFX0ZJ UlNUX1hFTl9TTE9UXSwKLSAgICAgICAgICAgUk9PVF9QQUdFVEFCTEVfWEVOX1NMT1RTICogc2l6 ZW9mKGw0X3BnZW50cnlfdCkpOwotCi0gICAgLyogSW5zdGFsbCB0aGUgcGVyLWRvbWFpbiBtYXBw aW5ncyBmb3IgdGhpcyBkb21haW4gKi8KLSAgICBsNGVbbDRfdGFibGVfb2Zmc2V0KFBFUkRPTUFJ Tl9WSVJUX1NUQVJUKV0gPQotICAgICAgICBsNGVfZnJvbV9wYWdlKGQtPmFyY2gucGVyZG9tYWlu X2wzX3BnLCBfX1BBR0VfSFlQRVJWSVNPUl9SVyk7Ci0KLSAgICAvKiBJbnN0YWxsIGEgbGluZWFy IG1hcHBpbmcgKi8KLSAgICBsNGVbbDRfdGFibGVfb2Zmc2V0KExJTkVBUl9QVF9WSVJUX1NUQVJU KV0gPQotICAgICAgICBsNGVfZnJvbV9tZm4obDRtZm4sIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsK LQotICAgIHVubWFwX2RvbWFpbl9wYWdlKGw0ZSk7Ci19Ci0KIHN0YXRpYyBtZm5fdCBoYXBfbWFr ZV9tb25pdG9yX3RhYmxlKHN0cnVjdCB2Y3B1ICp2KQogewogICAgIHN0cnVjdCBkb21haW4gKmQg PSB2LT5kb21haW47CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7CisgICAgbDRfcGdlbnRyeV90 ICpsNGU7CiAgICAgbWZuX3QgbTRtZm47CiAKICAgICBBU1NFUlQocGFnZXRhYmxlX2dldF9wZm4o di0+YXJjaC5tb25pdG9yX3RhYmxlKSA9PSAwKTsKIAogICAgIGlmICggKHBnID0gaGFwX2FsbG9j KGQpKSA9PSBOVUxMICkKICAgICAgICAgZ290byBvb207CisKICAgICBtNG1mbiA9IHBhZ2VfdG9f bWZuKHBnKTsKLSAgICBoYXBfaW5zdGFsbF94ZW5fZW50cmllc19pbl9sNCh2LCBtNG1mbik7Cisg ICAgbDRlID0gX19tYXBfZG9tYWluX3BhZ2UocGcpOworCisgICAgaW5pdF94ZW5fbDRfc2xvdHMo bDRlLCBtNG1mbiwgZCwgSU5WQUxJRF9NRk4sIGZhbHNlKTsKKyAgICB1bm1hcF9kb21haW5fcGFn ZShsNGUpOworCiAgICAgcmV0dXJuIG00bWZuOwogCiAgb29tOgpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21tL3NoYWRvdy9tdWx0aS5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5j CmluZGV4IDFiNzZlMGMuLmIxMzlkOWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFk b3cvbXVsdGkuYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMKQEAgLTE0NDgs ODAgKzE0NDgsNiBAQCBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAjZW5kaWYKIAogCi0KLS8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KLS8qIEZ1bmN0aW9ucyB0byBpbnN0YWxsIFhlbiBtYXBwaW5ncyBhbmQgbGluZWFy IG1hcHBpbmdzIGluIHNoYWRvdyBwYWdlcyAqLwotCi0vLyBYWFggLS0gdGhpcyBmdW5jdGlvbiBz aG91bGQgcHJvYmFibHkgYmUgbW92ZWQgdG8gc2hhZG93LWNvbW1vbi5jLCBidXQgdGhhdAotLy8g ICAgICAgIHByb2JhYmx5IHdhbnRzIHRvIHdhaXQgdW50aWwgdGhlIHNoYWRvdyB0eXBlcyBoYXZl IGJlZW4gbW92ZWQgZnJvbQotLy8gICAgICAgIHNoYWRvdy10eXBlcy5oIHRvIHNoYWRvdy1wcml2 YXRlLmgKLS8vCi0jaWYgR1VFU1RfUEFHSU5HX0xFVkVMUyA9PSA0Ci12b2lkIHNoX2luc3RhbGxf eGVuX2VudHJpZXNfaW5fbDQoc3RydWN0IGRvbWFpbiAqZCwgbWZuX3QgZ2w0bWZuLCBtZm5fdCBz bDRtZm4pCi17Ci0gICAgc2hhZG93X2w0ZV90ICpzbDRlOwotICAgIHVuc2lnbmVkIGludCBzbG90 czsKLQotICAgIHNsNGUgPSBtYXBfZG9tYWluX3BhZ2Uoc2w0bWZuKTsKLSAgICBCVUlMRF9CVUdf T04oc2l6ZW9mIChsNF9wZ2VudHJ5X3QpICE9IHNpemVvZiAoc2hhZG93X2w0ZV90KSk7Ci0KLSAg ICAvKiBDb3B5IHRoZSBjb21tb24gWGVuIG1hcHBpbmdzIGZyb20gdGhlIGlkbGUgZG9tYWluICov Ci0gICAgc2xvdHMgPSAoc2hhZG93X21vZGVfZXh0ZXJuYWwoZCkKLSAgICAgICAgICAgICA/IFJP T1RfUEFHRVRBQkxFX1hFTl9TTE9UUwotICAgICAgICAgICAgIDogUk9PVF9QQUdFVEFCTEVfUFZf WEVOX1NMT1RTKTsKLSAgICBtZW1jcHkoJnNsNGVbUk9PVF9QQUdFVEFCTEVfRklSU1RfWEVOX1NM T1RdLAotICAgICAgICAgICAmaWRsZV9wZ190YWJsZVtST09UX1BBR0VUQUJMRV9GSVJTVF9YRU5f U0xPVF0sCi0gICAgICAgICAgIHNsb3RzICogc2l6ZW9mKGw0X3BnZW50cnlfdCkpOwotCi0gICAg LyogSW5zdGFsbCB0aGUgcGVyLWRvbWFpbiBtYXBwaW5ncyBmb3IgdGhpcyBkb21haW4gKi8KLSAg ICBzbDRlW3NoYWRvd19sNF90YWJsZV9vZmZzZXQoUEVSRE9NQUlOX1ZJUlRfU1RBUlQpXSA9Ci0g ICAgICAgIHNoYWRvd19sNGVfZnJvbV9tZm4ocGFnZV90b19tZm4oZC0+YXJjaC5wZXJkb21haW5f bDNfcGcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fUEFHRV9IWVBFUlZJU09SX1JX KTsKLQotICAgIGlmICggIXNoYWRvd19tb2RlX2V4dGVybmFsKGQpICYmICFpc19wdl8zMmJpdF9k b21haW4oZCkgJiYKLSAgICAgICAgICFWTV9BU1NJU1QoZCwgbTJwX3N0cmljdCkgKQotICAgIHsK LSAgICAgICAgLyogb3BlbiBjb2RlZCB6YXBfcm9fbXB0KG1mbl94KHNsNG1mbikpOiAqLwotICAg ICAgICBzbDRlW3NoYWRvd19sNF90YWJsZV9vZmZzZXQoUk9fTVBUX1ZJUlRfU1RBUlQpXSA9IHNo YWRvd19sNGVfZW1wdHkoKTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIExpbmVhciBtYXBwaW5n IHNsb3RzOgotICAgICAqCi0gICAgICogQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdpdGggZ2w0bWZu ID09IHNsNG1mbiBpcyB1c2VkIHRvIGNvbnN0cnVjdCBhCi0gICAgICogbW9uaXRvciB0YWJsZSBm b3IgdHJhbnNsYXRlZCBkb21haW5zLiAgSW4gdGhpcyBjYXNlLCBnbDRtZm4gZm9ybXMgdGhlCi0g ICAgICogc2VsZi1saW5lYXIgbWFwcGluZyAoaS5lLiBub3QgcG9pbnRpbmcgaW50byB0aGUgdHJh bnNsYXRlZCBkb21haW4pLCBhbmQKLSAgICAgKiB0aGUgc2hhZG93LWxpbmVhciBzbG90IGlzIHNr aXBwZWQuICBUaGUgc2hhZG93LWxpbmVhciBzbG90IGlzIGVpdGhlcgotICAgICAqIGZpbGxlZCB3 aGVuIGNvbnN0cnVjdGluZyBsb3dlciBsZXZlbCBtb25pdG9yIHRhYmxlcywgb3IgdmlhCi0gICAg ICogc2hfdXBkYXRlX2NyMygpIGZvciA0LWxldmVsIGd1ZXN0cy4KLSAgICAgKgotICAgICAqIENh bGxpbmcgdGhpcyBmdW5jdGlvbiB3aXRoIGdsNG1mbiAhPSBzbDRtZm4gaXMgdXNlZCBmb3Igbm9u LXRyYW5zbGF0ZWQKLSAgICAgKiBndWVzdHMsIHdoZXJlIHRoZSBzaGFkb3ctbGluZWFyIHNsb3Qg aXMgYWN0dWFsbHkgc2VsZi1saW5lYXIsIGFuZCB0aGUKLSAgICAgKiBndWVzdC1saW5lYXIgc2xv dCBwb2ludHMgaW50byB0aGUgZ3Vlc3RzIHZpZXcgb2YgaXRzIHBhZ2V0YWJsZXMuCi0gICAgICov Ci0gICAgaWYgKCBzaGFkb3dfbW9kZV90cmFuc2xhdGUoZCkgKQotICAgIHsKLSAgICAgICAgQVNT RVJUKG1mbl9lcShnbDRtZm4sIHNsNG1mbikpOwotCi0gICAgICAgIHNsNGVbc2hhZG93X2w0X3Rh YmxlX29mZnNldChTSF9MSU5FQVJfUFRfVklSVF9TVEFSVCldID0KLSAgICAgICAgICAgIHNoYWRv d19sNGVfZW1wdHkoKTsKLSAgICB9Ci0gICAgZWxzZQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFt Zm5fZXEoZ2w0bWZuLCBzbDRtZm4pKTsKLQotICAgICAgICBzbDRlW3NoYWRvd19sNF90YWJsZV9v ZmZzZXQoU0hfTElORUFSX1BUX1ZJUlRfU1RBUlQpXSA9Ci0gICAgICAgICAgICBzaGFkb3dfbDRl X2Zyb21fbWZuKHNsNG1mbiwgX19QQUdFX0hZUEVSVklTT1JfUlcpOwotICAgIH0KLQotICAgIHNs NGVbc2hhZG93X2w0X3RhYmxlX29mZnNldChMSU5FQVJfUFRfVklSVF9TVEFSVCldID0KLSAgICAg ICAgc2hhZG93X2w0ZV9mcm9tX21mbihnbDRtZm4sIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsKLQot ICAgIHVubWFwX2RvbWFpbl9wYWdlKHNsNGUpOwotfQotI2VuZGlmCi0KLQogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLwogLyogQ3JlYXRlIGEgc2hhZG93IG9mIGEgZ2l2ZW4gZ3Vlc3QgcGFnZS4KICAqLwpA QCAtMTU4MCw4ICsxNTA2LDE2IEBAIHNoX21ha2Vfc2hhZG93KHN0cnVjdCB2Y3B1ICp2LCBtZm5f dCBnbWZuLCB1MzIgc2hhZG93X3R5cGUpCiAgICAgICAgIHsKICNpZiBHVUVTVF9QQUdJTkdfTEVW RUxTID09IDQKICAgICAgICAgY2FzZSBTSF90eXBlX2w0X3NoYWRvdzoKLSAgICAgICAgICAgIHNo X2luc3RhbGxfeGVuX2VudHJpZXNfaW5fbDQodi0+ZG9tYWluLCBnbWZuLCBzbWZuKTsKLSAgICAg ICAgICAgIGJyZWFrOworICAgICAgICB7CisgICAgICAgICAgICBzaGFkb3dfbDRlX3QgKmw0dCA9 IG1hcF9kb21haW5fcGFnZShzbWZuKTsKKworICAgICAgICAgICAgQlVJTERfQlVHX09OKHNpemVv ZihsNF9wZ2VudHJ5X3QpICE9IHNpemVvZihzaGFkb3dfbDRlX3QpKTsKKworICAgICAgICAgICAg aW5pdF94ZW5fbDRfc2xvdHMobDR0LCBnbWZuLCBkLCBzbWZuLCAoIWlzX3B2XzMyYml0X2RvbWFp bihkKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVk1fQVNTSVNUKGQsIG0ycF9zdHJpY3QpKSk7CisgICAgICAgICAgICB1bm1hcF9kb21haW5f cGFnZShsNHQpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogI2VuZGlmCiAjaWYgR1VFU1Rf UEFHSU5HX0xFVkVMUyA+PSAzCiAgICAgICAgIGNhc2UgU0hfdHlwZV9sMmhfc2hhZG93OgpAQCAt MTYzMiwxOSArMTU2NiwyNyBAQCBzaF9tYWtlX21vbml0b3JfdGFibGUoc3RydWN0IHZjcHUgKnYp CiAKICAgICB7CiAgICAgICAgIG1mbl90IG00bWZuOworICAgICAgICBsNF9wZ2VudHJ5X3QgKmw0 ZTsKKwogICAgICAgICBtNG1mbiA9IHNoYWRvd19hbGxvYyhkLCBTSF90eXBlX21vbml0b3JfdGFi bGUsIDApOwotICAgICAgICBzaF9pbnN0YWxsX3hlbl9lbnRyaWVzX2luX2w0KGQsIG00bWZuLCBt NG1mbik7Ci0gICAgICAgIC8qIFJlbWVtYmVyIHRoZSBsZXZlbCBvZiB0aGlzIHRhYmxlICovCiAg ICAgICAgIG1mbl90b19wYWdlKG00bWZuKS0+c2hhZG93X2ZsYWdzID0gNDsKKworICAgICAgICBs NGUgPSBtYXBfZG9tYWluX3BhZ2UobTRtZm4pOworCisgICAgICAgIC8qCisgICAgICAgICAqIENy ZWF0ZSBhIHNlbGYtbGluZWFyIG1hcHBpbmcsIGJ1dCBubyBzaGFkb3ctbGluZWFyIG1hcHBpbmcu ICBBCisgICAgICAgICAqIHNoYWRvdy1saW5lYXIgbWFwcGluZyB3aWxsIGVpdGhlciBiZSBpbnNl cnRlZCBiZWxvdyB3aGVuIGNyZWF0aW5nCisgICAgICAgICAqIGxvd2VyIGxldmVsIG1vbml0b3Ig dGFibGVzLCBvciBsYXRlciBpbiBzaF91cGRhdGVfY3IzKCkuCisgICAgICAgICAqLworICAgICAg ICBpbml0X3hlbl9sNF9zbG90cyhsNGUsIG00bWZuLCBkLCBJTlZBTElEX01GTiwgZmFsc2UpOwor CiAjaWYgU0hBRE9XX1BBR0lOR19MRVZFTFMgPCA0CiAgICAgICAgIHsKICAgICAgICAgICAgIG1m bl90IG0zbWZuLCBtMm1mbjsKLSAgICAgICAgICAgIGw0X3BnZW50cnlfdCAqbDRlOwogICAgICAg ICAgICAgbDNfcGdlbnRyeV90ICpsM2U7CiAgICAgICAgICAgICAvKiBJbnN0YWxsIGFuIGwzIHRh YmxlIGFuZCBhbiBsMiB0YWJsZSB0aGF0IHdpbGwgaG9sZCB0aGUgc2hhZG93CiAgICAgICAgICAg ICAgKiBsaW5lYXIgbWFwIGVudHJpZXMuICBUaGlzIG92ZXJyaWRlcyB0aGUgbGluZWFyIG1hcCBl bnRyeSB0aGF0CiAgICAgICAgICAgICAgKiB3YXMgaW5zdGFsbGVkIGJ5IHNoX2luc3RhbGxfeGVu X2VudHJpZXNfaW5fbDQuICovCi0gICAgICAgICAgICBsNGUgPSBtYXBfZG9tYWluX3BhZ2UobTRt Zm4pOwogCiAgICAgICAgICAgICBtM21mbiA9IHNoYWRvd19hbGxvYyhkLCBTSF90eXBlX21vbml0 b3JfdGFibGUsIDApOwogICAgICAgICAgICAgbWZuX3RvX3BhZ2UobTNtZm4pLT5zaGFkb3dfZmxh Z3MgPSAzOwpAQCAtMTY3OSw5ICsxNjIxLDExIEBAIHNoX21ha2VfbW9uaXRvcl90YWJsZShzdHJ1 Y3QgdmNwdSAqdikKICAgICAgICAgICAgICAgICB1bm1hcF9kb21haW5fcGFnZShsM2UpOwogICAg ICAgICAgICAgfQogCi0gICAgICAgICAgICB1bm1hcF9kb21haW5fcGFnZShsNGUpOwogICAgICAg ICB9CiAjZW5kaWYgLyogU0hBRE9XX1BBR0lOR19MRVZFTFMgPCA0ICovCisKKyAgICAgICAgdW5t YXBfZG9tYWluX3BhZ2UobDRlKTsKKwogICAgICAgICByZXR1cm4gbTRtZm47CiAgICAgfQogfQpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYyBiL3hlbi9hcmNoL3g4Ni9w di9kb20wX2J1aWxkLmMKaW5kZXggZWM3Zjk2ZC4uZWNjZTE3NSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L3B2L2RvbTBfYnVpbGQuYworKysgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5j CkBAIC01ODgsNyArNTg4LDggQEAgaW50IF9faW5pdCBkb20wX2NvbnN0cnVjdF9wdihzdHJ1Y3Qg ZG9tYWluICpkLAogICAgICAgICBsM3N0YXJ0ID0gX192YShtcHRfYWxsb2MpOyBtcHRfYWxsb2Mg Kz0gUEFHRV9TSVpFOwogICAgIH0KICAgICBjbGVhcl9wYWdlKGw0dGFiKTsKLSAgICBpbml0X2d1 ZXN0X2w0X3RhYmxlKGw0dGFiLCBkLCAwKTsKKyAgICBpbml0X3hlbl9sNF9zbG90cyhsNHRhYiwg X21mbih2aXJ0X3RvX21mbihsNHN0YXJ0KSksCisgICAgICAgICAgICAgICAgICAgICAgZCwgSU5W QUxJRF9NRk4sIHRydWUpOwogICAgIHYtPmFyY2guZ3Vlc3RfdGFibGUgPSBwYWdldGFibGVfZnJv bV9wYWRkcihfX3BhKGw0c3RhcnQpKTsKICAgICBpZiAoIGlzX3B2XzMyYml0X2RvbWFpbihkKSAp CiAgICAgICAgIHYtPmFyY2guZ3Vlc3RfdGFibGVfdXNlciA9IHYtPmFyY2guZ3Vlc3RfdGFibGU7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvcHYv ZG9tYWluLmMKaW5kZXggYzhiOWNiNi4uYTI0MjAzNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L3B2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYwpAQCAtMzUsNyArMzUs NyBAQCBzdGF0aWMgaW50IHNldHVwX2NvbXBhdF9sNChzdHJ1Y3QgdmNwdSAqdikKIAogICAgIGw0 dGFiID0gX19tYXBfZG9tYWluX3BhZ2UocGcpOwogICAgIGNsZWFyX3BhZ2UobDR0YWIpOwotICAg IGluaXRfZ3Vlc3RfbDRfdGFibGUobDR0YWIsIHYtPmRvbWFpbiwgMSk7CisgICAgaW5pdF94ZW5f bDRfc2xvdHMobDR0YWIsIHBhZ2VfdG9fbWZuKHBnKSwgdi0+ZG9tYWluLCBJTlZBTElEX01GTiwg ZmFsc2UpOwogICAgIHVubWFwX2RvbWFpbl9wYWdlKGw0dGFiKTsKIAogICAgIC8qIFRoaXMgcGFn ZSBuZWVkcyB0byBsb29rIGxpa2UgYSBwYWdldGFibGUgc28gdGhhdCBpdCBjYW4gYmUgc2hhZG93 ZWQgKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvbW0uaAppbmRleCBkYTNjNWUyLi44MzYyNjA4IDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L21tLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCkBAIC0zNDEs OCArMzQxLDggQEAgaW50IGZyZWVfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHVu c2lnbmVkIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICBpbnQgcHJlZW1wdGlibGUpOwog CiB2b2lkIGluaXRfeGVuX3BhZV9sMl9zbG90cyhsMl9wZ2VudHJ5X3QgKmwydCwgY29uc3Qgc3Ry dWN0IGRvbWFpbiAqZCk7Ci12b2lkIGluaXRfZ3Vlc3RfbDRfdGFibGUobDRfcGdlbnRyeV90W10s IGNvbnN0IHN0cnVjdCBkb21haW4gKiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBib29sX3Qg emFwX3JvX21wdCk7Cit2b2lkIGluaXRfeGVuX2w0X3Nsb3RzKGw0X3BnZW50cnlfdCAqbDR0LCBt Zm5fdCBsNG1mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGRvbWFpbiAq ZCwgbWZuX3Qgc2w0bWZuLCBib29sIHJvX21wdCk7CiBib29sIGZpbGxfcm9fbXB0KG1mbl90IG1m bik7CiB2b2lkIHphcF9yb19tcHQobWZuX3QgbWZuKTsKIAotLSAKMi4xLjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK