From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 1/3] Revert "x86/mm: move PV l4 table setup code" and "x86/mm: factor out pv_arch_init_memory" Date: Thu, 12 Oct 2017 14:54:20 +0100 Message-ID: <1507816462-15881-2-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: Andrew Cooper , Julien Grall , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyByZXZlcnRzIGNvbW1pdCBmM2I5NWZkMDdmZGI1NWIxZGIwOTFmZWRlMWI5YTdjNzFmMWVh YTFiIGFuZAoxYmQzOTczOGE1YTM0ZjUyOWE2MTBmYjI3NWNjODNlZTVhYzc1NDdhLgoKVGhlIGZv bGxvd2luZyBwYXRjaGVzIChwb3N0IFhTQS0yNDMgZml4ZXMpIHJlcXVpcmVzIGluaXRfZ3Vlc3Rf bDRfdGFibGUoKQpiZWluZyBjb21tb24gY29kZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29w ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVs aWNoQHN1c2UuY29tPgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ0M6IEp1bGll biBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CgpUaGVzZSBwYWdldGFibGUgZml4ZXMgaGF2 ZSBiZWVuIHBlbmRpbmcgZm9yIGxvbmdlciB0aGFuIHRoZSBtbSBjbGVhbnVwIGJlaW5nCnJldmVy dGVkIGhlcmUuICBIYWQgSSBiZWVuIGluIHRoZSBvZmZpY2Ugd2hlbiB0aGVzZSBwYXRjaGVzIHdl cmUgcHJvcG9zZWQsIEkKd291bGQgaGF2ZSBxdWlldGx5IGFycmFuZ2VkIGZvciB0aGVtIG5vdCB0 byBiZSBjb21taXR0ZWQuCi0tLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICB8IDc3ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiB4ZW4vYXJjaC94ODYvcHYv ZG9tMF9idWlsZC5jIHwgIDIgLS0KIHhlbi9hcmNoL3g4Ni9wdi9kb21haW4uYyAgICAgfCAgNSAt LS0KIHhlbi9hcmNoL3g4Ni9wdi9tbS5jICAgICAgICAgfCA4MiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3B2L21tLmggICAgICAgICB8 ICAzIC0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L21tLmggICAgIHwgIDIgKysKIHhlbi9pbmNsdWRl L2FzbS14ODYvcHYvbW0uaCAgfCAgNCAtLS0KIDcgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9u cygrKSwgOTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94 ZW4vYXJjaC94ODYvbW0uYwppbmRleCA1NjI4YmM3Li5mOTBhNDJhIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtMTI1LDcgKzEyNSw2IEBA CiAKICNpbmNsdWRlIDxhc20vaHZtL2dyYW50X3RhYmxlLmg+CiAjaW5jbHVkZSA8YXNtL3B2L2dy YW50X3RhYmxlLmg+Ci0jaW5jbHVkZSA8YXNtL3B2L21tLmg+CiAKICNpbmNsdWRlICJwdi9tbS5o IgogCkBAIC0yNDMsNiArMjQyLDE0IEBAIHZvaWQgX19pbml0IGluaXRfZnJhbWV0YWJsZSh2b2lk KQogICAgIG1lbXNldChlbmRfcGcsIC0xLCAodW5zaWduZWQgbG9uZyl0b3BfcGcgLSAodW5zaWdu ZWQgbG9uZyllbmRfcGcpOwogfQogCisjaWZuZGVmIE5ERUJVRworc3RhdGljIHVuc2lnbmVkIGlu dCBfX3JlYWRfbW9zdGx5IHJvb3RfcGd0X3B2X3hlbl9zbG90cworICAgID0gUk9PVF9QQUdFVEFC TEVfUFZfWEVOX1NMT1RTOworc3RhdGljIGw0X3BnZW50cnlfdCBfX3JlYWRfbW9zdGx5IHNwbGl0 X2w0ZTsKKyNlbHNlCisjZGVmaW5lIHJvb3RfcGd0X3B2X3hlbl9zbG90cyBST09UX1BBR0VUQUJM RV9QVl9YRU5fU0xPVFMKKyNlbmRpZgorCiB2b2lkIF9faW5pdCBhcmNoX2luaXRfbWVtb3J5KHZv aWQpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBpLCBwZm4sIHJzdGFydF9wZm4sIHJlbmRfcGZuLCBp b3N0YXJ0X3BmbiwgaW9lbmRfcGZuOwpAQCAtMzM4LDcgKzM0NSwzOSBAQCB2b2lkIF9faW5pdCBh cmNoX2luaXRfbWVtb3J5KHZvaWQpCiAKICAgICBtZW1fc2hhcmluZ19pbml0KCk7CiAKLSAgICBw dl9hcmNoX2luaXRfbWVtb3J5KCk7CisjaWZuZGVmIE5ERUJVRworICAgIGlmICggaGlnaG1lbV9z dGFydCApCisgICAgeworICAgICAgICB1bnNpZ25lZCBsb25nIHNwbGl0X3ZhID0gKHVuc2lnbmVk IGxvbmcpX192YShoaWdobWVtX3N0YXJ0KTsKKworICAgICAgICBpZiAoIHNwbGl0X3ZhIDwgSFlQ RVJWSVNPUl9WSVJUX0VORCAmJgorICAgICAgICAgICAgIHNwbGl0X3ZhIC0gMSA9PSAodW5zaWdu ZWQgbG9uZylfX3ZhKGhpZ2htZW1fc3RhcnQgLSAxKSApCisgICAgICAgIHsKKyAgICAgICAgICAg IHJvb3RfcGd0X3B2X3hlbl9zbG90cyA9IGw0X3RhYmxlX29mZnNldChzcGxpdF92YSkgLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUk9PVF9QQUdFVEFCTEVfRklSU1RfWEVO X1NMT1Q7CisgICAgICAgICAgICBBU1NFUlQocm9vdF9wZ3RfcHZfeGVuX3Nsb3RzIDwgUk9PVF9Q QUdFVEFCTEVfUFZfWEVOX1NMT1RTKTsKKyAgICAgICAgICAgIGlmICggbDRfdGFibGVfb2Zmc2V0 KHNwbGl0X3ZhKSA9PSBsNF90YWJsZV9vZmZzZXQoc3BsaXRfdmEgLSAxKSApCisgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgbDNfcGdlbnRyeV90ICpsM3RhYiA9IGFsbG9jX3hlbl9wYWdl dGFibGUoKTsKKworICAgICAgICAgICAgICAgIGlmICggbDN0YWIgKQorICAgICAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgbDNfcGdlbnRyeV90ICpsM2lkbGUgPQorICAg ICAgICAgICAgICAgICAgICAgICAgbDRlX3RvX2wzZShpZGxlX3BnX3RhYmxlW2w0X3RhYmxlX29m ZnNldChzcGxpdF92YSldKTsKKworICAgICAgICAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8 IGwzX3RhYmxlX29mZnNldChzcGxpdF92YSk7ICsraSApCisgICAgICAgICAgICAgICAgICAgICAg ICBsM3RhYltpXSA9IGwzaWRsZVtpXTsKKyAgICAgICAgICAgICAgICAgICAgZm9yICggOyBpIDwg TDNfUEFHRVRBQkxFX0VOVFJJRVM7ICsraSApCisgICAgICAgICAgICAgICAgICAgICAgICBsM3Rh YltpXSA9IGwzZV9lbXB0eSgpOworICAgICAgICAgICAgICAgICAgICBzcGxpdF9sNGUgPSBsNGVf ZnJvbV9wZm4odmlydF90b19tZm4obDN0YWIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgX19QQUdFX0hZUEVSVklTT1JfUlcpOworICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICsrcm9vdF9wZ3Rf cHZfeGVuX3Nsb3RzOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorI2VuZGlmCiB9 CiAKIGludCBwYWdlX2lzX3JhbV90eXBlKHVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBsb25n IG1lbV90eXBlKQpAQCAtMTQ3OSw2ICsxNTE4LDQwIEBAIHN0YXRpYyBpbnQgYWxsb2NfbDNfdGFi bGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkKICAgICByZXR1cm4gcmMgPiAwID8gMCA6IHJjOwog fQogCisvKgorICogVGhpcyBmdW5jdGlvbiBtdXN0IHdyaXRlIGFsbCBST09UX1BBR0VUQUJMRV9Q Vl9YRU5fU0xPVFMsIHRvIGNsb2JiZXIgYW55CisgKiB2YWx1ZXMgYSBndWVzdCBtYXkgaGF2ZSBs ZWZ0IHRoZXJlIGZyb20gYWxsb2NfbDRfdGFibGUoKS4KKyAqLwordm9pZCBpbml0X2d1ZXN0X2w0 X3RhYmxlKGw0X3BnZW50cnlfdCBsNHRhYltdLCBjb25zdCBzdHJ1Y3QgZG9tYWluICpkLAorICAg ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgemFwX3JvX21wdCkKK3sKKyAgICAvKiBYZW4gcHJp dmF0ZSBtYXBwaW5ncy4gKi8KKyAgICBtZW1jcHkoJmw0dGFiW1JPT1RfUEFHRVRBQkxFX0ZJUlNU X1hFTl9TTE9UXSwKKyAgICAgICAgICAgJmlkbGVfcGdfdGFibGVbUk9PVF9QQUdFVEFCTEVfRklS U1RfWEVOX1NMT1RdLAorICAgICAgICAgICByb290X3BndF9wdl94ZW5fc2xvdHMgKiBzaXplb2Yo bDRfcGdlbnRyeV90KSk7CisjaWZuZGVmIE5ERUJVRworICAgIGlmICggdW5saWtlbHkocm9vdF9w Z3RfcHZfeGVuX3Nsb3RzIDwgUk9PVF9QQUdFVEFCTEVfUFZfWEVOX1NMT1RTKSApCisgICAgewor ICAgICAgICBsNF9wZ2VudHJ5X3QgKm5leHQgPSAmbDR0YWJbUk9PVF9QQUdFVEFCTEVfRklSU1Rf WEVOX1NMT1QgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdF9wZ3Rf cHZfeGVuX3Nsb3RzXTsKKworICAgICAgICBpZiAoIGw0ZV9nZXRfaW50cHRlKHNwbGl0X2w0ZSkg KQorICAgICAgICAgICAgKm5leHQrKyA9IHNwbGl0X2w0ZTsKKworICAgICAgICBtZW1zZXQobmV4 dCwgMCwKKyAgICAgICAgICAgICAgIF9wKCZsNHRhYltST09UX1BBR0VUQUJMRV9MQVNUX1hFTl9T TE9UICsgMV0pIC0gX3AobmV4dCkpOworICAgIH0KKyNlbHNlCisgICAgQlVJTERfQlVHX09OKHJv b3RfcGd0X3B2X3hlbl9zbG90cyAhPSBST09UX1BBR0VUQUJMRV9QVl9YRU5fU0xPVFMpOworI2Vu ZGlmCisgICAgbDR0YWJbbDRfdGFibGVfb2Zmc2V0KExJTkVBUl9QVF9WSVJUX1NUQVJUKV0gPQor ICAgICAgICBsNGVfZnJvbV9wZm4oZG9tYWluX3BhZ2VfbWFwX3RvX21mbihsNHRhYiksIF9fUEFH RV9IWVBFUlZJU09SX1JXKTsKKyAgICBsNHRhYltsNF90YWJsZV9vZmZzZXQoUEVSRE9NQUlOX1ZJ UlRfU1RBUlQpXSA9CisgICAgICAgIGw0ZV9mcm9tX3BhZ2UoZC0+YXJjaC5wZXJkb21haW5fbDNf cGcsIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsKKyAgICBpZiAoIHphcF9yb19tcHQgfHwgaXNfcHZf MzJiaXRfZG9tYWluKGQpICkKKyAgICAgICAgbDR0YWJbbDRfdGFibGVfb2Zmc2V0KFJPX01QVF9W SVJUX1NUQVJUKV0gPSBsNGVfZW1wdHkoKTsKK30KKwogYm9vbCBmaWxsX3JvX21wdChtZm5fdCBt Zm4pCiB7CiAgICAgbDRfcGdlbnRyeV90ICpsNHRhYiA9IG1hcF9kb21haW5fcGFnZShtZm4pOwpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYyBiL3hlbi9hcmNoL3g4Ni9w di9kb20wX2J1aWxkLmMKaW5kZXggZGNiZWU0My4uZWM3Zjk2ZCAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L3B2L2RvbTBfYnVpbGQuYworKysgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5j CkBAIC0yMCw4ICsyMCw2IEBACiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KICNpbmNsdWRlIDxhc20v c2V0dXAuaD4KIAotI2luY2x1ZGUgIm1tLmgiCi0KIC8qIEFsbG93IHJpbmctMyBhY2Nlc3MgaW4g bG9uZyBtb2RlIGFzIGd1ZXN0IGNhbm5vdCB1c2UgcmluZyAxIC4uLiAqLwogI2RlZmluZSBCQVNF X1BST1QgKF9QQUdFX1BSRVNFTlR8X1BBR0VfUld8X1BBR0VfQUNDRVNTRUR8X1BBR0VfVVNFUikK ICNkZWZpbmUgTDFfUFJPVCAoQkFTRV9QUk9UfF9QQUdFX0dVRVNUX0tFUk5FTCkKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYyBiL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYwpp bmRleCA5MGQ1NTY5Li5jOGI5Y2I2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvZG9tYWlu LmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jCkBAIC05LDEzICs5LDggQEAKICNpbmNs dWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CiAKLSNpbmNsdWRlIDxhc20v cDJtLmg+Ci0jaW5jbHVkZSA8YXNtL3BhZ2luZy5oPgotI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgog I2luY2x1ZGUgPGFzbS9wdi9kb21haW4uaD4KIAotI2luY2x1ZGUgIm1tLmgiCi0KIC8qIE92ZXJy aWRlIG1hY3JvcyBmcm9tIGFzbS9wYWdlLmggdG8gbWFrZSB0aGVtIHdvcmsgd2l0aCBtZm5fdCAq LwogI3VuZGVmIG1mbl90b19wYWdlCiAjZGVmaW5lIG1mbl90b19wYWdlKG1mbikgX19tZm5fdG9f cGFnZShtZm5feChtZm4pKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L21tLmMgYi94ZW4v YXJjaC94ODYvcHYvbW0uYwppbmRleCBlNDVkNjI4Li42ODkwZTgwIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvcHYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvcHYvbW0uYwpAQCAtMjMsNyArMjMs NiBAQAogCiAjaW5jbHVkZSA8YXNtL2N1cnJlbnQuaD4KICNpbmNsdWRlIDxhc20vcDJtLmg+Ci0j aW5jbHVkZSA8YXNtL3NldHVwLmg+CiAKICNpbmNsdWRlICJtbS5oIgogCkBAIC0xMzQsODcgKzEz Myw2IEBAIGJvb2wgcHZfbWFwX2xkdF9zaGFkb3dfcGFnZSh1bnNpZ25lZCBpbnQgb2Zmc2V0KQog ICAgIHJldHVybiB0cnVlOwogfQogCi0jaWZuZGVmIE5ERUJVRwotc3RhdGljIHVuc2lnbmVkIGlu dCBfX3JlYWRfbW9zdGx5IHJvb3RfcGd0X3B2X3hlbl9zbG90cwotICAgID0gUk9PVF9QQUdFVEFC TEVfUFZfWEVOX1NMT1RTOwotc3RhdGljIGw0X3BnZW50cnlfdCBfX3JlYWRfbW9zdGx5IHNwbGl0 X2w0ZTsKLSNlbHNlCi0jZGVmaW5lIHJvb3RfcGd0X3B2X3hlbl9zbG90cyBST09UX1BBR0VUQUJM RV9QVl9YRU5fU0xPVFMKLSNlbmRpZgotCi0vKgotICogVGhpcyBmdW5jdGlvbiBtdXN0IHdyaXRl IGFsbCBST09UX1BBR0VUQUJMRV9QVl9YRU5fU0xPVFMsIHRvIGNsb2JiZXIgYW55Ci0gKiB2YWx1 ZXMgYSBndWVzdCBtYXkgaGF2ZSBsZWZ0IHRoZXJlIGZyb20gYWxsb2NfbDRfdGFibGUoKS4KLSAq Lwotdm9pZCBpbml0X2d1ZXN0X2w0X3RhYmxlKGw0X3BnZW50cnlfdCBsNHRhYltdLCBjb25zdCBz dHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgemFwX3JvX21w dCkKLXsKLSAgICAvKiBYZW4gcHJpdmF0ZSBtYXBwaW5ncy4gKi8KLSAgICBtZW1jcHkoJmw0dGFi W1JPT1RfUEFHRVRBQkxFX0ZJUlNUX1hFTl9TTE9UXSwKLSAgICAgICAgICAgJmlkbGVfcGdfdGFi bGVbUk9PVF9QQUdFVEFCTEVfRklSU1RfWEVOX1NMT1RdLAotICAgICAgICAgICByb290X3BndF9w dl94ZW5fc2xvdHMgKiBzaXplb2YobDRfcGdlbnRyeV90KSk7Ci0jaWZuZGVmIE5ERUJVRwotICAg IGlmICggdW5saWtlbHkocm9vdF9wZ3RfcHZfeGVuX3Nsb3RzIDwgUk9PVF9QQUdFVEFCTEVfUFZf WEVOX1NMT1RTKSApCi0gICAgewotICAgICAgICBsNF9wZ2VudHJ5X3QgKm5leHQgPSAmbDR0YWJb Uk9PVF9QQUdFVEFCTEVfRklSU1RfWEVOX1NMT1QgKwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcm9vdF9wZ3RfcHZfeGVuX3Nsb3RzXTsKLQotICAgICAgICBpZiAoIGw0ZV9n ZXRfaW50cHRlKHNwbGl0X2w0ZSkgKQotICAgICAgICAgICAgKm5leHQrKyA9IHNwbGl0X2w0ZTsK LQotICAgICAgICBtZW1zZXQobmV4dCwgMCwKLSAgICAgICAgICAgICAgIF9wKCZsNHRhYltST09U X1BBR0VUQUJMRV9MQVNUX1hFTl9TTE9UICsgMV0pIC0gX3AobmV4dCkpOwotICAgIH0KLSNlbHNl Ci0gICAgQlVJTERfQlVHX09OKHJvb3RfcGd0X3B2X3hlbl9zbG90cyAhPSBST09UX1BBR0VUQUJM RV9QVl9YRU5fU0xPVFMpOwotI2VuZGlmCi0gICAgbDR0YWJbbDRfdGFibGVfb2Zmc2V0KExJTkVB Ul9QVF9WSVJUX1NUQVJUKV0gPQotICAgICAgICBsNGVfZnJvbV9wZm4oZG9tYWluX3BhZ2VfbWFw X3RvX21mbihsNHRhYiksIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsKLSAgICBsNHRhYltsNF90YWJs ZV9vZmZzZXQoUEVSRE9NQUlOX1ZJUlRfU1RBUlQpXSA9Ci0gICAgICAgIGw0ZV9mcm9tX3BhZ2Uo ZC0+YXJjaC5wZXJkb21haW5fbDNfcGcsIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsKLSAgICBpZiAo IHphcF9yb19tcHQgfHwgaXNfcHZfMzJiaXRfZG9tYWluKGQpICkKLSAgICAgICAgbDR0YWJbbDRf dGFibGVfb2Zmc2V0KFJPX01QVF9WSVJUX1NUQVJUKV0gPSBsNGVfZW1wdHkoKTsKLX0KLQotdm9p ZCBwdl9hcmNoX2luaXRfbWVtb3J5KHZvaWQpCi17Ci0jaWZuZGVmIE5ERUJVRwotICAgIHVuc2ln bmVkIGludCBpOwotCi0gICAgaWYgKCBoaWdobWVtX3N0YXJ0ICkKLSAgICB7Ci0gICAgICAgIHVu c2lnbmVkIGxvbmcgc3BsaXRfdmEgPSAodW5zaWduZWQgbG9uZylfX3ZhKGhpZ2htZW1fc3RhcnQp OwotCi0gICAgICAgIGlmICggc3BsaXRfdmEgPCBIWVBFUlZJU09SX1ZJUlRfRU5EICYmCi0gICAg ICAgICAgICAgc3BsaXRfdmEgLSAxID09ICh1bnNpZ25lZCBsb25nKV9fdmEoaGlnaG1lbV9zdGFy dCAtIDEpICkKLSAgICAgICAgewotICAgICAgICAgICAgcm9vdF9wZ3RfcHZfeGVuX3Nsb3RzID0g bDRfdGFibGVfb2Zmc2V0KHNwbGl0X3ZhKSAtCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBST09UX1BBR0VUQUJMRV9GSVJTVF9YRU5fU0xPVDsKLSAgICAgICAgICAgIEFTU0VS VChyb290X3BndF9wdl94ZW5fc2xvdHMgPCBST09UX1BBR0VUQUJMRV9QVl9YRU5fU0xPVFMpOwot ICAgICAgICAgICAgaWYgKCBsNF90YWJsZV9vZmZzZXQoc3BsaXRfdmEpID09IGw0X3RhYmxlX29m ZnNldChzcGxpdF92YSAtIDEpICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsM19w Z2VudHJ5X3QgKmwzdGFiID0gYWxsb2NfeGVuX3BhZ2V0YWJsZSgpOwotCi0gICAgICAgICAgICAg ICAgaWYgKCBsM3RhYiApCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBj b25zdCBsM19wZ2VudHJ5X3QgKmwzaWRsZSA9Ci0gICAgICAgICAgICAgICAgICAgICAgICBsNGVf dG9fbDNlKGlkbGVfcGdfdGFibGVbbDRfdGFibGVfb2Zmc2V0KHNwbGl0X3ZhKV0pOwotCi0gICAg ICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgbDNfdGFibGVfb2Zmc2V0KHNwbGl0X3Zh KTsgKytpICkKLSAgICAgICAgICAgICAgICAgICAgICAgIGwzdGFiW2ldID0gbDNpZGxlW2ldOwot ICAgICAgICAgICAgICAgICAgICBmb3IgKCA7IGkgPCBMM19QQUdFVEFCTEVfRU5UUklFUzsgKytp ICkKLSAgICAgICAgICAgICAgICAgICAgICAgIGwzdGFiW2ldID0gbDNlX2VtcHR5KCk7Ci0gICAg ICAgICAgICAgICAgICAgIHNwbGl0X2w0ZSA9IGw0ZV9mcm9tX3Bmbih2aXJ0X3RvX21mbihsM3Rh YiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1BBR0Vf SFlQRVJWSVNPUl9SVyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UK LSAgICAgICAgICAgICAgICAgICAgKytyb290X3BndF9wdl94ZW5fc2xvdHM7Ci0gICAgICAgICAg ICB9Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLX0KLQogLyoKICAqIExvY2FsIHZhcmlhYmxl czoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9tbS5oIGIveGVuL2Fy Y2gveDg2L3B2L21tLmgKaW5kZXggMTY5YzllMC4uNzUwMmQ1MyAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L3B2L21tLmgKKysrIGIveGVuL2FyY2gveDg2L3B2L21tLmgKQEAgLTMsOSArMyw2IEBA CiAKIGwxX3BnZW50cnlfdCAqbWFwX2d1ZXN0X2wxZSh1bnNpZ25lZCBsb25nIGxpbmVhciwgbWZu X3QgKmdsMW1mbik7CiAKLXZvaWQgaW5pdF9ndWVzdF9sNF90YWJsZShsNF9wZ2VudHJ5X3QgbDR0 YWJbXSwgY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBi b29sIHphcF9yb19tcHQpOwotCiBpbnQgbmV3X2d1ZXN0X2NyMyhtZm5fdCBtZm4pOwogCiAvKiBS ZWFkIGEgUFYgZ3Vlc3QncyBsMWUgdGhhdCBtYXBzIHRoaXMgbGluZWFyIGFkZHJlc3MuICovCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L21tLmggYi94ZW4vaW5jbHVkZS9hc20teDg2 L21tLmgKaW5kZXggMjZmMDE1My4uZWVhYzRkNyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaApAQCAtMzQwLDYgKzM0MCw4 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqX19wYWdlX3RvX3ZpcnQoY29uc3Qgc3RydWN0IHBhZ2Vf aW5mbyAqcGcpCiBpbnQgZnJlZV9wYWdlX3R5cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5z aWduZWQgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgIGludCBwcmVlbXB0aWJsZSk7CiAK K3ZvaWQgaW5pdF9ndWVzdF9sNF90YWJsZShsNF9wZ2VudHJ5X3RbXSwgY29uc3Qgc3RydWN0IGRv bWFpbiAqLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xfdCB6YXBfcm9fbXB0KTsKIGJv b2wgZmlsbF9yb19tcHQobWZuX3QgbWZuKTsKIHZvaWQgemFwX3JvX21wdChtZm5fdCBtZm4pOwog CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3B2L21tLmggYi94ZW4vaW5jbHVkZS9h c20teDg2L3B2L21tLmgKaW5kZXggMDc3ODVlMC4uNWQyZmU0YyAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9wdi9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcHYvbW0uaApA QCAtMzAsOCArMzAsNiBAQCB2b2lkIHB2X2Rlc3Ryb3lfZ2R0KHN0cnVjdCB2Y3B1ICp2KTsKIAog Ym9vbCBwdl9tYXBfbGR0X3NoYWRvd19wYWdlKHVuc2lnbmVkIGludCBvZmYpOwogCi12b2lkIHB2 X2FyY2hfaW5pdF9tZW1vcnkodm9pZCk7Ci0KICNlbHNlCiAKICNpbmNsdWRlIDx4ZW4vZXJybm8u aD4KQEAgLTUxLDggKzQ5LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIHB2X2Rlc3Ryb3lfZ2R0KHN0 cnVjdCB2Y3B1ICp2KSB7IEFTU0VSVF9VTlJFQUNIQUJMRSgpOyB9CiAKIHN0YXRpYyBpbmxpbmUg Ym9vbCBwdl9tYXBfbGR0X3NoYWRvd19wYWdlKHVuc2lnbmVkIGludCBvZmYpIHsgcmV0dXJuIGZh bHNlOyB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBwdl9hcmNoX2luaXRfbWVtb3J5KHZvaWQpIHt9 Ci0KICNlbmRpZgogCiAjZW5kaWYgLyogX19YODZfUFZfTU1fSF9fICovCi0tIAoyLjEuNAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=