From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH v2 1/3] x86: nuke PV superpage option and code Date: Wed, 26 Jul 2017 08:44:54 +0100 Message-ID: <20170726074456.25511-2-wei.liu2@citrix.com> References: <20170726074456.25511-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1daH0A-0006jm-HV for xen-devel@lists.xenproject.org; Wed, 26 Jul 2017 07:45:02 +0000 In-Reply-To: <20170726074456.25511-1-wei.liu2@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 , Ian Jackson , Jan Beulich List-Id: xen-devel@lists.xenproject.org RGVsZXRlIHRoZSB1c2VyIHZpc2libGUgb3B0aW9uIGFuZCBjb2RlIGZvciBQViBzdXBlcnBhZ2Ug c3VwcG9ydC4gVGhlCm1tIGNvZGUgaXMgbW9kaWZpZWQgYXMgaWYgdGhlIG9wdGlvbiBpcyBzZXQg dG8gZmFsc2UgKHRoZSBkZWZhdWx0CnZhbHVlKS4KClJldHVybiB0aGUgYWRkcmVzcyBzcGFjZSBv Y2N1cGllZCBieSBzcGFnZV9pbmZvIGJhY2sgdG8gdGhlIHJlc2VydmVkCmFkZHJlc3Mgc3BhY2Uu CgpTaWduZWQtb2ZmLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KRG9uZSBz b21lIGJhc2ljIHRlc3Rpbmcgd2l0aCB4dGYsIGFsc28gdGVzdGVkIHdpdGggYmFzaWMgUFYgZ3Vl c3QgbGlmZQpjeWNsZS4KCnYyOiBNZXJnZSB0aGUgcGF0Y2ggdG8gdXBkYXRlIGRvY3MgaGVyZSwg cmViYXNlIG9uIHRvcCBvZiBzdGFnaW5nCi0tLQogZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUu bWFya2Rvd24gfCAgIDcgLQogeGVuL2FyY2gveDg2L2RvbWFpbi5jICAgICAgICAgICAgICAgfCAg IDIgLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICAgICAgfCAyNTcgKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5j ICAgICAgICB8ICAgMiAtCiB4ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZpZy5oICAgICAgICB8ICAx NiArLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvbW0uaCAgICAgICAgICAgIHwgIDIwIC0tLQogeGVu L2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmggICAgICAgICAgfCAgMTEgLS0KIHhlbi9pbmNsdWRlL2Fz bS14ODYvcGFnaW5nLmggICAgICAgIHwgICAzICstCiB4ZW4vaW5jbHVkZS9hc20teDg2L3g4Nl82 NC9wYWdlLmggICB8ICAgMiAtCiA5IGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDMw NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5t YXJrZG93biBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCmluZGV4IGExMzA0 NTI0NjIuLjQwMDJlYWIwOGIgMTAwNjQ0Ci0tLSBhL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5l Lm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCkBAIC0x MzMsMTMgKzEzMyw2IEBAIHJlc3VtZS4KIGBzM19tb2RlYCBpbnN0cnVjdHMgWGVuIHRvIHNldCB1 cCB0aGUgYm9vdCB0aW1lIChvcHRpb24gYHZnYT1gKSB2aWRlbwogbW9kZSBkdXJpbmcgUzMgcmVz dW1lLgogCi0jIyMgYWxsb3dzdXBlcnBhZ2UKLT4gYD0gPGJvb2xlYW4+YAotCi0+IERlZmF1bHQ6 IGB0cnVlYAotCi1QZXJtaXQgWGVuIHRvIHVzZSBzdXBlcnBhZ2VzIHdoZW4gcGVyZm9ybWluZyBt ZW1vcnkgbWFuYWdlbWVudC4KLQogIyMjIGFsdHAybSAoSW50ZWwpCiA+IGA9IDxib29sZWFuPmAK IApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L2RvbWFp bi5jCmluZGV4IGRkOGJmMTMwMmYuLjFjZTgwNGIwNWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMKQEAgLTE3ODIsOCArMTc4Miw2 IEBAIHN0YXRpYyBpbnQgcmVsaW5xdWlzaF9tZW1vcnkoCiAgICAgICAgICAgICBCVUcoKTsKICAg ICAgICAgfQogCi0gICAgICAgIGNsZWFyX3N1cGVycGFnZV9tYXJrKHBhZ2UpOwotCiAgICAgICAg IGlmICggdGVzdF9hbmRfY2xlYXJfYml0KF9QR0NfYWxsb2NhdGVkLCAmcGFnZS0+Y291bnRfaW5m bykgKQogICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMKaW5kZXggNTFjOTNjMTY4Zi4uOTdiM2I0YmEy YyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysrIGIveGVuL2FyY2gveDg2L21tLmMK QEAgLTE1MCwxOCArMTUwLDExIEBAIHN0cnVjdCByYW5nZXNldCAqX19yZWFkX21vc3RseSBtbWlv X3JvX3JhbmdlczsKIAogI2RlZmluZSBQQUdFX0NBQ0hFX0FUVFJTIChfUEFHRV9QQVR8X1BBR0Vf UENEfF9QQUdFX1BXVCkKIAotYm9vbCBfX3JlYWRfbW9zdGx5IG9wdF9hbGxvd19zdXBlcnBhZ2U7 Ci1ib29sZWFuX3BhcmFtKCJhbGxvd3N1cGVycGFnZSIsIG9wdF9hbGxvd19zdXBlcnBhZ2UpOwot Ci1zdGF0aWMgdm9pZCBwdXRfc3VwZXJwYWdlKHVuc2lnbmVkIGxvbmcgbWZuKTsKLQogc3RhdGlj IHVpbnQzMl90IGJhc2VfZGlzYWxsb3dfbWFzazsKIC8qIEdsb2JhbCBiaXQgaXMgYWxsb3dlZCB0 byBiZSBzZXQgb24gTDEgUFRFcy4gSW50ZW5kZWQgZm9yIHVzZXIgbWFwcGluZ3MuICovCiAjZGVm aW5lIEwxX0RJU0FMTE9XX01BU0sgKChiYXNlX2Rpc2FsbG93X21hc2sgfCBfUEFHRV9HTlRUQUIp ICYgfl9QQUdFX0dMT0JBTCkKIAotI2RlZmluZSBMMl9ESVNBTExPV19NQVNLICh1bmxpa2VseShv cHRfYWxsb3dfc3VwZXJwYWdlKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgID8gYmFzZV9k aXNhbGxvd19tYXNrICYgfl9QQUdFX1BTRSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDog YmFzZV9kaXNhbGxvd19tYXNrKQorI2RlZmluZSBMMl9ESVNBTExPV19NQVNLIGJhc2VfZGlzYWxs b3dfbWFzawogCiAjZGVmaW5lIGwzX2Rpc2FsbG93X21hc2soZCkgKCFpc19wdl8zMmJpdF9kb21h aW4oZCkgPyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VfZGlzYWxsb3dfbWFz ayA6IDB4RkZGRkYxOThVKQpAQCAtMjE5LDE1ICsyMTIsNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQg aW5pdF9mcmFtZXRhYmxlX2NodW5rKHZvaWQgKnN0YXJ0LCB2b2lkICplbmQpCiAgICAgbWVtc2V0 KGVuZCwgLTEsIHMgLSBlKTsKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IGluaXRfc3BhZ2V0YWJs ZSh2b2lkKQotewotICAgIEJVSUxEX0JVR19PTihYRU5fVklSVF9FTkQgPiBTUEFHRVRBQkxFX1ZJ UlRfU1RBUlQpOwotCi0gICAgaW5pdF9mcmFtZXRhYmxlX2NodW5rKHNwYWdlX3RhYmxlLAotICAg ICAgICAgICAgICAgICAgICAgICAgICBtZW1faG90cGx1ZyA/IHNwYWdlX3RhYmxlICsgU1BBR0VU QUJMRV9OUgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBkeF90b19z cGFnZShtYXhfcGR4IC0gMSkgKyAxKTsKLX0KLQogdm9pZCBfX2luaXQgaW5pdF9mcmFtZXRhYmxl KHZvaWQpCiB7CiAgICAgdW5zaWduZWQgaW50IHNpZHgsIGVpZHgsIG5pZHg7CkBAIC0yNTIsOSAr MjM2LDYgQEAgdm9pZCBfX2luaXQgaW5pdF9mcmFtZXRhYmxlKHZvaWQpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgOiBlbmRfcGc7CiAgICAgaW5pdF9mcmFtZXRhYmxlX2NodW5rKHBkeF90b19w YWdlKHNpZHggKiBQRFhfR1JPVVBfQ09VTlQpLCB0b3BfcGcpOwogICAgIG1lbXNldChlbmRfcGcs IC0xLCAodW5zaWduZWQgbG9uZyl0b3BfcGcgLSAodW5zaWduZWQgbG9uZyllbmRfcGcpOwotCi0g ICAgaWYgKG9wdF9hbGxvd19zdXBlcnBhZ2UpCi0gICAgICAgIGluaXRfc3BhZ2V0YWJsZSgpOwog fQogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMTEyOSwyMCArMTExMCw3IEBAIGdldF9wYWdlX2Zyb21f bDJlKAogICAgICAgICByZXR1cm4gcmM7CiAgICAgfQogCi0gICAgaWYgKCAhb3B0X2FsbG93X3N1 cGVycGFnZSApCi0gICAgewotICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIlBWIHN1 cGVycGFnZXMgZGlzYWJsZWQgaW4gaHlwZXJ2aXNvclxuIik7Ci0gICAgICAgIHJldHVybiAtRUlO VkFMOwotICAgIH0KLQotICAgIGlmICggbWZuICYgKEwxX1BBR0VUQUJMRV9FTlRSSUVTIC0gMSkg KQotICAgIHsKLSAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsCi0gICAgICAgICAgICAg ICAgICJVbmFsaWduZWQgc3VwZXJwYWdlIG1hcCBhdHRlbXB0IG1mbiAlIiBQUklfbWZuICJcbiIs IG1mbik7Ci0gICAgICAgIHJldHVybiAtRUlOVkFMOwotICAgIH0KLQotICAgIHJldHVybiBnZXRf c3VwZXJwYWdlKG1mbiwgZCk7CisgICAgcmV0dXJuIC1FSU5WQUw7CiB9CiAKIApAQCAtMTMxNSw4 ICsxMjgzLDEzIEBAIHN0YXRpYyBpbnQgcHV0X3BhZ2VfZnJvbV9sMmUobDJfcGdlbnRyeV90IGwy ZSwgdW5zaWduZWQgbG9uZyBwZm4pCiAgICAgICAgIHJldHVybiAxOwogCiAgICAgaWYgKCBsMmVf Z2V0X2ZsYWdzKGwyZSkgJiBfUEFHRV9QU0UgKQotICAgICAgICBwdXRfc3VwZXJwYWdlKGwyZV9n ZXRfcGZuKGwyZSkpOwotICAgIGVsc2UKKyAgICB7CisgICAgICAgIHN0cnVjdCBwYWdlX2luZm8g KnBhZ2UgPSBtZm5fdG9fcGFnZShsMmVfZ2V0X3BmbihsMmUpKTsKKyAgICAgICAgdW5zaWduZWQg aW50IGk7CisKKyAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMXUgPDwgUEFHRVRBQkxFX09SREVS KTsgaSsrLCBwYWdlKysgKQorICAgICAgICAgICAgcHV0X3BhZ2VfYW5kX3R5cGUocGFnZSk7Cisg ICAgfSBlbHNlCiAgICAgICAgIHB1dF9wYWdlX2FuZF90eXBlKGwyZV9nZXRfcGFnZShsMmUpKTsK IAogICAgIHJldHVybiAwOwpAQCAtMjY3NiwxOTcgKzI2NDksNiBAQCBpbnQgZ2V0X3BhZ2VfdHlw ZV9wcmVlbXB0aWJsZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBsb25nIHR5cGUp CiAgICAgcmV0dXJuIF9fZ2V0X3BhZ2VfdHlwZShwYWdlLCB0eXBlLCAxKTsKIH0KIAotc3RhdGlj IGludCBnZXRfc3BhZ2VfcGFnZXMoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgc3RydWN0IGRvbWFp biAqZCkKLXsKLSAgICB1bnNpZ25lZCBpbnQgaTsKLQotICAgIGZvciAoIGkgPSAwOyBpIDwgKDF1 IDw8IFBBR0VUQUJMRV9PUkRFUik7IGkrKywgcGFnZSsrICkKLSAgICB7Ci0gICAgICAgIGlmICgg IWdldF9wYWdlX2FuZF90eXBlKHBhZ2UsIGQsIFBHVF93cml0YWJsZV9wYWdlKSApCi0gICAgICAg IHsKLSAgICAgICAgICAgIHdoaWxlICggaS0tID4gMCApCi0gICAgICAgICAgICAgICAgcHV0X3Bh Z2VfYW5kX3R5cGUoLS1wYWdlKTsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0g ICAgfQotICAgIHJldHVybiAxOwotfQotCi1zdGF0aWMgdm9pZCBwdXRfc3BhZ2VfcGFnZXMoc3Ry dWN0IHBhZ2VfaW5mbyAqcGFnZSkKLXsKLSAgICB1bnNpZ25lZCBpbnQgaTsKLQotICAgIGZvciAo IGkgPSAwOyBpIDwgKDF1IDw8IFBBR0VUQUJMRV9PUkRFUik7IGkrKywgcGFnZSsrICkKLSAgICAg ICAgcHV0X3BhZ2VfYW5kX3R5cGUocGFnZSk7Ci19Ci0KLXN0YXRpYyBpbnQgbWFya19zdXBlcnBh Z2Uoc3RydWN0IHNwYWdlX2luZm8gKnNwYWdlLCBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHVu c2lnbmVkIGxvbmcgeCwgbngsIHkgPSBzcGFnZS0+dHlwZV9pbmZvOwotICAgIGludCBwYWdlc19k b25lID0gMDsKLQotICAgIEFTU0VSVChvcHRfYWxsb3dfc3VwZXJwYWdlKTsKLQotICAgIGRvIHsK LSAgICAgICAgeCA9IHk7Ci0gICAgICAgIG54ID0geCArIDE7Ci0gICAgICAgIGlmICggKHggJiBT R1RfdHlwZV9tYXNrKSA9PSBTR1RfbWFyayApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGdkcHJp bnRrKFhFTkxPR19XQVJOSU5HLAotICAgICAgICAgICAgICAgICAgICAgIkR1cGxpY2F0ZSBzdXBl cnBhZ2UgbWFyayBhdHRlbXB0IG1mbiAlIiBQUklfbWZuICJcbiIsCi0gICAgICAgICAgICAgICAg ICAgICBzcGFnZV90b19tZm4oc3BhZ2UpKTsKLSAgICAgICAgICAgIGlmICggcGFnZXNfZG9uZSAp Ci0gICAgICAgICAgICAgICAgcHV0X3NwYWdlX3BhZ2VzKHNwYWdlX3RvX3BhZ2Uoc3BhZ2UpKTsK LSAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwotICAgICAgICB9Ci0gICAgICAgIGlmICggKHgg JiBTR1RfdHlwZV9tYXNrKSA9PSBTR1RfZHluYW1pYyApCi0gICAgICAgIHsKLSAgICAgICAgICAg IGlmICggcGFnZXNfZG9uZSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHV0X3Nw YWdlX3BhZ2VzKHNwYWdlX3RvX3BhZ2Uoc3BhZ2UpKTsKLSAgICAgICAgICAgICAgICBwYWdlc19k b25lID0gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmICggIXBh Z2VzX2RvbmUgKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoICFnZXRfc3BhZ2VfcGFnZXMo c3BhZ2VfdG9fcGFnZShzcGFnZSksIGQpICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg ICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKLSAgICAgICAgICAgICAgICAgICAgICAgICAiU3Vw ZXJwYWdlIHR5cGUgY29uZmxpY3QgaW4gbWFyayBhdHRlbXB0IG1mbiAlIiBQUklfbWZuICJcbiIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc3BhZ2VfdG9fbWZuKHNwYWdlKSk7Ci0gICAgICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwYWdl c19kb25lID0gMTsKLSAgICAgICAgfQotICAgICAgICBueCA9IChueCAmIH5TR1RfdHlwZV9tYXNr KSB8IFNHVF9tYXJrOwotCi0gICAgfSB3aGlsZSAoICh5ID0gY21weGNoZygmc3BhZ2UtPnR5cGVf aW5mbywgeCwgbngpKSAhPSB4ICk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCB1 bm1hcmtfc3VwZXJwYWdlKHN0cnVjdCBzcGFnZV9pbmZvICpzcGFnZSkKLXsKLSAgICB1bnNpZ25l ZCBsb25nIHgsIG54LCB5ID0gc3BhZ2UtPnR5cGVfaW5mbzsKLSAgICB1bnNpZ25lZCBsb25nIGRv X3BhZ2VzID0gMDsKLQotICAgIEFTU0VSVChvcHRfYWxsb3dfc3VwZXJwYWdlKTsKLQotICAgIGRv IHsKLSAgICAgICAgeCA9IHk7Ci0gICAgICAgIG54ID0geCAtIDE7Ci0gICAgICAgIGlmICggKHgg JiBTR1RfdHlwZV9tYXNrKSAhPSBTR1RfbWFyayApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGdk cHJpbnRrKFhFTkxPR19XQVJOSU5HLAotICAgICAgICAgICAgICAgICAgICAgIkF0dGVtcHQgdG8g dW5tYXJrIHVubWFya2VkIHN1cGVycGFnZSBtZm4gJSIgUFJJX21mbiAiXG4iLAotICAgICAgICAg ICAgICAgICAgICAgc3BhZ2VfdG9fbWZuKHNwYWdlKSk7Ci0gICAgICAgICAgICByZXR1cm4gLUVJ TlZBTDsKLSAgICAgICAgfQotICAgICAgICBpZiAoIChueCAmIFNHVF9jb3VudF9tYXNrKSA9PSAw ICkKLSAgICAgICAgewotICAgICAgICAgICAgbnggPSAobnggJiB+U0dUX3R5cGVfbWFzaykgfCBT R1Rfbm9uZTsKLSAgICAgICAgICAgIGRvX3BhZ2VzID0gMTsKLSAgICAgICAgfQotICAgICAgICBl bHNlCi0gICAgICAgIHsKLSAgICAgICAgICAgIG54ID0gKG54ICYgflNHVF90eXBlX21hc2spIHwg U0dUX2R5bmFtaWM7Ci0gICAgICAgIH0KLSAgICB9IHdoaWxlICggKHkgPSBjbXB4Y2hnKCZzcGFn ZS0+dHlwZV9pbmZvLCB4LCBueCkpICE9IHggKTsKLQotICAgIGlmICggZG9fcGFnZXMgKQotICAg ICAgICBwdXRfc3BhZ2VfcGFnZXMoc3BhZ2VfdG9fcGFnZShzcGFnZSkpOwotCi0gICAgcmV0dXJu IDA7Ci19Ci0KLXZvaWQgY2xlYXJfc3VwZXJwYWdlX21hcmsoc3RydWN0IHBhZ2VfaW5mbyAqcGFn ZSkKLXsKLSAgICBzdHJ1Y3Qgc3BhZ2VfaW5mbyAqc3BhZ2U7Ci0KLSAgICBpZiAoICFvcHRfYWxs b3dfc3VwZXJwYWdlICkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc3BhZ2UgPSBwYWdlX3RvX3Nw YWdlKHBhZ2UpOwotICAgIGlmICgoc3BhZ2UtPnR5cGVfaW5mbyAmIFNHVF90eXBlX21hc2spID09 IFNHVF9tYXJrKQotICAgICAgICB1bm1hcmtfc3VwZXJwYWdlKHNwYWdlKTsKLQotfQotCi1pbnQg Z2V0X3N1cGVycGFnZSh1bnNpZ25lZCBsb25nIG1mbiwgc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAg ICBzdHJ1Y3Qgc3BhZ2VfaW5mbyAqc3BhZ2U7Ci0gICAgdW5zaWduZWQgbG9uZyB4LCBueCwgeTsK LSAgICBpbnQgcGFnZXNfZG9uZSA9IDA7Ci0KLSAgICBBU1NFUlQob3B0X2FsbG93X3N1cGVycGFn ZSk7Ci0KLSAgICBpZiAoICFtZm5fdmFsaWQoX21mbihtZm4gfCAoTDFfUEFHRVRBQkxFX0VOVFJJ RVMgLSAxKSkpICkKLSAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0KLSAgICBzcGFnZSA9IG1mbl90 b19zcGFnZShtZm4pOwotICAgIHkgPSBzcGFnZS0+dHlwZV9pbmZvOwotICAgIGRvIHsKLSAgICAg ICAgeCA9IHk7Ci0gICAgICAgIG54ID0geCArIDE7Ci0gICAgICAgIGlmICggKHggJiBTR1RfdHlw ZV9tYXNrKSAhPSBTR1Rfbm9uZSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICggcGFnZXNf ZG9uZSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHV0X3NwYWdlX3BhZ2VzKHNw YWdlX3RvX3BhZ2Uoc3BhZ2UpKTsKLSAgICAgICAgICAgICAgICBwYWdlc19kb25lID0gMDsKLSAg ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgIHsKLSAgICAgICAg ICAgIGlmICggIWdldF9zcGFnZV9wYWdlcyhzcGFnZV90b19wYWdlKHNwYWdlKSwgZCkgKQotICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAotICAg ICAgICAgICAgICAgICAgICAgICAgICJUeXBlIGNvbmZsaWN0IG9uIHN1cGVycGFnZSBtYXBwaW5n IG1mbiAlIiBQUklfbWZuICJcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc3BhZ2VfdG9f bWZuKHNwYWdlKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0gICAgICAgICAg ICB9Ci0gICAgICAgICAgICBwYWdlc19kb25lID0gMTsKLSAgICAgICAgICAgIG54ID0gKG54ICYg flNHVF90eXBlX21hc2spIHwgU0dUX2R5bmFtaWM7Ci0gICAgICAgIH0KLSAgICB9IHdoaWxlICgg KHkgPSBjbXB4Y2hnKCZzcGFnZS0+dHlwZV9pbmZvLCB4LCBueCkpICE9IHggKTsKLQotICAgIHJl dHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBwdXRfc3VwZXJwYWdlKHVuc2lnbmVkIGxvbmcgbWZu KQotewotICAgIHN0cnVjdCBzcGFnZV9pbmZvICpzcGFnZTsKLSAgICB1bnNpZ25lZCBsb25nIHgs IG54LCB5OwotICAgIHVuc2lnbmVkIGxvbmcgZG9fcGFnZXMgPSAwOwotCi0gICAgaWYgKCAhb3B0 X2FsbG93X3N1cGVycGFnZSApCi0gICAgewotICAgICAgICBwdXRfc3BhZ2VfcGFnZXMobWZuX3Rv X3BhZ2UobWZuKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBzcGFnZSA9IG1mbl90 b19zcGFnZShtZm4pOwotICAgIHkgPSBzcGFnZS0+dHlwZV9pbmZvOwotICAgIGRvIHsKLSAgICAg ICAgeCA9IHk7Ci0gICAgICAgIG54ID0geCAtIDE7Ci0gICAgICAgIGlmICgoeCAmIFNHVF90eXBl X21hc2spID09IFNHVF9keW5hbWljKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoKG54ICYg U0dUX2NvdW50X21hc2spID09IDApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbngg PSAobnggJiB+U0dUX3R5cGVfbWFzaykgfCBTR1Rfbm9uZTsKLSAgICAgICAgICAgICAgICBkb19w YWdlcyA9IDE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgIH0gd2hpbGUgKCh5ID0g Y21weGNoZygmc3BhZ2UtPnR5cGVfaW5mbywgeCwgbngpKSAhPSB4KTsKLQotICAgIGlmIChkb19w YWdlcykKLSAgICAgICAgcHV0X3NwYWdlX3BhZ2VzKHNwYWdlX3RvX3BhZ2Uoc3BhZ2UpKTsKLQot ICAgIHJldHVybjsKLX0KLQogaW50IHB1dF9vbGRfZ3Vlc3RfdGFibGUoc3RydWN0IHZjcHUgKnYp CiB7CiAgICAgaW50IHJjOwpAQCAtMzU5OSwyNyArMzM4MSw4IEBAIGxvbmcgZG9fbW11ZXh0X29w KAogCiAgICAgICAgIGNhc2UgTU1VRVhUX01BUktfU1VQRVI6CiAgICAgICAgIGNhc2UgTU1VRVhU X1VOTUFSS19TVVBFUjoKLSAgICAgICAgewotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4g PSBvcC5hcmcxLm1mbjsKLQotICAgICAgICAgICAgaWYgKCAhb3B0X2FsbG93X3N1cGVycGFnZSAp Ci0gICAgICAgICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKLSAgICAgICAgICAgIGVsc2UgaWYg KCB1bmxpa2VseShjdXJyZCAhPSBwZ19vd25lcikgKQotICAgICAgICAgICAgICAgIHJjID0gLUVQ RVJNOwotICAgICAgICAgICAgZWxzZSBpZiAoIG1mbiAmIChMMV9QQUdFVEFCTEVfRU5UUklFUyAt IDEpICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FS TklORywKLSAgICAgICAgICAgICAgICAgICAgICAgICAiVW5hbGlnbmVkIHN1cGVycGFnZSBtZm4g JSIgUFJJX21mbiAiXG4iLCBtZm4pOwotICAgICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKLSAg ICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKCAhbWZuX3ZhbGlkKF9tZm4obWZuIHwg KEwxX1BBR0VUQUJMRV9FTlRSSUVTIC0gMSkpKSApCi0gICAgICAgICAgICAgICAgcmMgPSAtRUlO VkFMOwotICAgICAgICAgICAgZWxzZSBpZiAoIG9wLmNtZCA9PSBNTVVFWFRfTUFSS19TVVBFUiAp Ci0gICAgICAgICAgICAgICAgcmMgPSBtYXJrX3N1cGVycGFnZShtZm5fdG9fc3BhZ2UobWZuKSwg Y3VycmQpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJjID0gdW5tYXJrX3N1 cGVycGFnZShtZm5fdG9fc3BhZ2UobWZuKSk7CisgICAgICAgICAgICByYyA9IC1FT1BOT1RTVVBQ OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KIAogICAgICAgICBkZWZhdWx0OgogICAg ICAgICAgICAgcmMgPSAtRU5PU1lTOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2RvbTBf YnVpbGQuYyBiL3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMKaW5kZXggMThjMTlhMjU2Zi4u ZTY3ZmZkZDdiOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYworKysg Yi94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jCkBAIC0xODEsOCArMTgxLDYgQEAgc3RhdGlj IF9faW5pdCB2b2lkIHNldHVwX3B2X3BoeXNtYXAoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg bG9uZyBwZ3RibF9wZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAwKSkgIT0gTlVMTCApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgKnBsMmUg PSBsMmVfZnJvbV9wYWdlKHBhZ2UsIEwxX1BST1R8X1BBR0VfRElSVFl8X1BBR0VfUFNFKTsKLSAg ICAgICAgICAgICAgICBpZiAoIG9wdF9hbGxvd19zdXBlcnBhZ2UgKQotICAgICAgICAgICAgICAg ICAgICBnZXRfc3VwZXJwYWdlKHBhZ2VfdG9fbWZuKHBhZ2UpLCBkKTsKICAgICAgICAgICAgICAg ICB2cGh5c21hcF9zdGFydCArPSAxVUwgPDwgTDJfUEFHRVRBQkxFX1NISUZUOwogICAgICAgICAg ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9jb25maWcuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY29uZmlnLmgKaW5kZXggZGM0 MjRmOTllNC4uYmMwNzMwZmQ5ZCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25m aWcuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZpZy5oCkBAIC0xNDMsMTkgKzE0Mywx NSBAQCBleHRlcm4gdW5zaWduZWQgY2hhciBib290X2VkaWRfaW5mb1sxMjhdOwogICogIDB4ZmZm ZjgyZDA4MDAwMDAwMCAtIDB4ZmZmZjgyZDBiZmZmZmZmZiBbMUdCLCAgIDJeMzAgYnl0ZXMsIFBN TDQ6MjYxXQogICogICAgWGVuIHRleHQsIHN0YXRpYyBkYXRhLCBic3MuCiAjaWZuZGVmIENPTkZJ R19CSUdNRU0KLSAqICAweGZmZmY4MmQwYzAwMDAwMDAgLSAweGZmZmY4MmRmZmJmZmZmZmYgWzYx R0IgLSA2NE1CLCAgICAgICBQTUw0OjI2MV0KKyAqICAweGZmZmY4MmQwYzAwMDAwMDAgLSAweGZm ZmY4MmRmZmZmZmZmZmYgWzYxR0IsICAgICAgICAgICAgICBQTUw0OjI2MV0KICAqICAgIFJlc2Vy dmVkIGZvciBmdXR1cmUgdXNlLgotICogIDB4ZmZmZjgyZGZmYzAwMDAwMCAtIDB4ZmZmZjgyZGZm ZmZmZmZmZiBbNjRNQiwgIDJeMjYgYnl0ZXMsIFBNTDQ6MjYxXQotICogICAgU3VwZXItcGFnZSBp bmZvcm1hdGlvbiBhcnJheS4KICAqICAweGZmZmY4MmUwMDAwMDAwMDAgLSAweGZmZmY4MmZmZmZm ZmZmZmYgWzEyOEdCLCAyXjM3IGJ5dGVzLCBQTUw0OjI2MV0KICAqICAgIFBhZ2UtZnJhbWUgaW5m b3JtYXRpb24gYXJyYXkuCiAgKiAgMHhmZmZmODMwMDAwMDAwMDAwIC0gMHhmZmZmODdmZmZmZmZm ZmZmIFs1VEIsIDUqMl40MCBieXRlcywgUE1MNDoyNjItMjcxXQogICogICAgMToxIGRpcmVjdCBt YXBwaW5nIG9mIGFsbCBwaHlzaWNhbCBtZW1vcnkuCiAjZWxzZQotICogIDB4ZmZmZjgyZDBjMDAw MDAwMCAtIDB4ZmZmZjgyZmZkZmZmZmZmZiBbMTg4LjVHQiwgICAgICAgICAgIFBNTDQ6MjYxXQor ICogIDB4ZmZmZjgyZDBjMDAwMDAwMCAtIDB4ZmZmZjgyZmZmZmZmZmZmZiBbMTg5R0IsICAgICAg ICAgICAgIFBNTDQ6MjYxXQogICogICAgUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCi0gKiAgMHhm ZmZmODJmZmUwMDAwMDAwIC0gMHhmZmZmODJmZmZmZmZmZmZmIFs1MTJNQiwgMl4yOSBieXRlcywg UE1MNDoyNjFdCi0gKiAgICBTdXBlci1wYWdlIGluZm9ybWF0aW9uIGFycmF5LgogICogIDB4ZmZm ZjgzMDAwMDAwMDAwMCAtIDB4ZmZmZjg0N2ZmZmZmZmZmZiBbMS41VEIsIDMqMl4zOSBieXRlcywg UE1MNDoyNjItMjY0XQogICogICAgUGFnZS1mcmFtZSBpbmZvcm1hdGlvbiBhcnJheS4KICAqICAw eGZmZmY4NDgwMDAwMDAwMDAgLSAweGZmZmY4N2ZmZmZmZmZmZmYgWzMuNVRCLCA3KjJeMzkgYnl0 ZXMsIFBNTDQ6MjY1LTI3MV0KQEAgLTIzMCwxNCArMjI2LDYgQEAgZXh0ZXJuIHVuc2lnbmVkIGNo YXIgYm9vdF9lZGlkX2luZm9bMTI4XTsKICNkZWZpbmUgWEVOX1ZJUlRfU1RBUlQgICAgICAgICAg KEhJUk9fQ09NUEFUX01QVF9WSVJUX0VORCkKICNkZWZpbmUgWEVOX1ZJUlRfRU5EICAgICAgICAg ICAgKFhFTl9WSVJUX1NUQVJUICsgR0IoMSkpCiAKLS8qIFNsb3QgMjYxOiBzdXBlcnBhZ2UgaW5m b3JtYXRpb24gYXJyYXkgKDY0TUIgb3IgNTEyTUIpLiAqLwotI2RlZmluZSBTUEFHRVRBQkxFX1ZJ UlRfRU5EICAgICBGUkFNRVRBQkxFX1ZJUlRfU1RBUlQKLSNkZWZpbmUgU1BBR0VUQUJMRV9OUiAg ICAgICAgICAgKCgoRlJBTUVUQUJMRV9OUiAtIDEpID4+IChTVVBFUlBBR0VfU0hJRlQgLSBcCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UEFHRV9TSElGVCkpICsgMSkKLSNkZWZpbmUgU1BBR0VUQUJMRV9TSVpFICAgICAgICAgKFNQQUdF VEFCTEVfTlIgKiBzaXplb2Yoc3RydWN0IHNwYWdlX2luZm8pKQotI2RlZmluZSBTUEFHRVRBQkxF X1ZJUlRfU1RBUlQgICAoKFNQQUdFVEFCTEVfVklSVF9FTkQgLSBTUEFHRVRBQkxFX1NJWkUpICYg XAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9BQygtMSxVTCkgPDwgU1VQRVJQ QUdFX1NISUZUKSkKLQogI2lmbmRlZiBDT05GSUdfQklHTUVNCiAvKiBTbG90IDI2MTogcGFnZS1m cmFtZSBpbmZvcm1hdGlvbiBhcnJheSAoMTI4R0IpLiAqLwogI2RlZmluZSBGUkFNRVRBQkxFX1NJ WkUgICAgICAgICBHQigxMjgpCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgg Yi94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgKaW5kZXggMjU1MGUzNWY4NS4uMmJmM2YzMzVhZCAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvbW0uaApAQCAtMjMzLDIxICsyMzMsNiBAQCBzdHJ1Y3QgcGFnZV9pbmZvCiAjZGVmaW5l IFBHQ19jb3VudF93aWR0aCAgIFBHX3NoaWZ0KDkpCiAjZGVmaW5lIFBHQ19jb3VudF9tYXNrICAg ICgoMVVMPDxQR0NfY291bnRfd2lkdGgpLTEpCiAKLXN0cnVjdCBzcGFnZV9pbmZvCi17Ci0gICAg ICAgdW5zaWduZWQgbG9uZyB0eXBlX2luZm87Ci19OwotCi0gLyogVGhlIGZvbGxvd2luZyBwYWdl IHR5cGVzIGFyZSBNVVRVQUxMWSBFWENMVVNJVkUuICovCi0jZGVmaW5lIFNHVF9ub25lICAgICAg ICAgIFBHX21hc2soMCwgMikgIC8qIHN1cGVycGFnZSBub3QgaW4gdXNlICovCi0jZGVmaW5lIFNH VF9tYXJrICAgICAgICAgIFBHX21hc2soMSwgMikgIC8qIE1hcmtlZCBhcyBhIHN1cGVycGFnZSAq LwotI2RlZmluZSBTR1RfZHluYW1pYyAgICAgICBQR19tYXNrKDIsIDIpICAvKiBoYXMgYmVlbiBk eW5hbWljYWxseSBtYXBwZWQgYXMgYSBzdXBlcnBhZ2UgKi8KLSNkZWZpbmUgU0dUX3R5cGVfbWFz ayAgICAgUEdfbWFzaygzLCAyKSAgLyogQml0cyAzMC0zMSBvciA2Mi02My4gKi8KLQotIC8qIENv dW50IG9mIHVzZXMgb2YgdGhpcyBzdXBlcnBhZ2UgYXMgaXRzIGN1cnJlbnQgdHlwZS4gKi8KLSNk ZWZpbmUgU0dUX2NvdW50X3dpZHRoICAgUEdfc2hpZnQoMykKLSNkZWZpbmUgU0dUX2NvdW50X21h c2sgICAgKCgxVUw8PFNHVF9jb3VudF93aWR0aCktMSkKLQogI2RlZmluZSBpc194ZW5faGVhcF9w YWdlKHBhZ2UpICgocGFnZSktPmNvdW50X2luZm8gJiBQR0NfeGVuX2hlYXApCiAjZGVmaW5lIGlz X3hlbl9oZWFwX21mbihtZm4pIFwKICAgICAoX19tZm5fdmFsaWQobWZuKSAmJiBpc194ZW5faGVh cF9wYWdlKF9fbWZuX3RvX3BhZ2UobWZuKSkpCkBAIC0yODIsOCArMjY3LDYgQEAgZXh0ZXJuIHZv aWQgc2hhcmVfeGVuX3BhZ2Vfd2l0aF9wcml2aWxlZ2VkX2d1ZXN0cygKIGV4dGVybiB2b2lkIGZy ZWVfc2hhcmVkX2RvbWhlYXBfcGFnZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlKTsKIAogI2RlZmlu ZSBmcmFtZV90YWJsZSAoKHN0cnVjdCBwYWdlX2luZm8gKilGUkFNRVRBQkxFX1ZJUlRfU1RBUlQp Ci0jZGVmaW5lIHNwYWdlX3RhYmxlICgoc3RydWN0IHNwYWdlX2luZm8gKilTUEFHRVRBQkxFX1ZJ UlRfU1RBUlQpCi1pbnQgZ2V0X3N1cGVycGFnZSh1bnNpZ25lZCBsb25nIG1mbiwgc3RydWN0IGRv bWFpbiAqZCk7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBtYXhfcGFnZTsKIGV4dGVybiB1bnNpZ25l ZCBsb25nIHRvdGFsX3BhZ2VzOwogdm9pZCBpbml0X2ZyYW1ldGFibGUodm9pZCk7CkBAIC0zMjks OCArMzEyLDYgQEAgdm9pZCB6YXBfcm9fbXB0KHVuc2lnbmVkIGxvbmcgbWZuKTsKIAogYm9vbCBp c19pb21lbV9wYWdlKG1mbl90IG1mbik7CiAKLXZvaWQgY2xlYXJfc3VwZXJwYWdlX21hcmsoc3Ry dWN0IHBhZ2VfaW5mbyAqcGFnZSk7Ci0KIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmdldF9wbGF0Zm9y bV9iYWRwYWdlcyh1bnNpZ25lZCBpbnQgKmFycmF5X3NpemUpOwogLyogUGVyIHBhZ2UgbG9ja3M6 CiAgKiBwYWdlX2xvY2soKSBpcyB1c2VkIGZvciB0d28gcHVycG9zZXM6IHB0ZSBzZXJpYWxpemF0 aW9uLCBhbmQgbWVtb3J5IHNoYXJpbmcuCkBAIC00MDMsNyArMzg0LDYgQEAgc3RhdGljIGlubGlu ZSBpbnQgZ2V0X3BhZ2VfYW5kX3R5cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwKIAogaW50IGNo ZWNrX2Rlc2NyaXB0b3IoY29uc3Qgc3RydWN0IGRvbWFpbiAqLCBzdHJ1Y3QgZGVzY19zdHJ1Y3Qg KmQpOwogCi1leHRlcm4gYm9vbCBvcHRfYWxsb3dfc3VwZXJwYWdlOwogZXh0ZXJuIHBhZGRyX3Qg bWVtX2hvdHBsdWc7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS14ODYvcGFnZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKaW5kZXgg NDc0YjliZGU3OC4uMGY4NDNjMmE0NiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9w YWdlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKQEAgLTIzOSwxNSArMjM5LDYg QEAgdm9pZCBjb3B5X3BhZ2Vfc3NlMih2b2lkICosIGNvbnN0IHZvaWQgKik7CiAjZGVmaW5lIF9f cGZuX3RvX3BhZGRyKHBmbikgKChwYWRkcl90KShwZm4pIDw8IFBBR0VfU0hJRlQpCiAjZGVmaW5l IF9fcGFkZHJfdG9fcGZuKHBhKSAgKCh1bnNpZ25lZCBsb25nKSgocGEpID4+IFBBR0VfU0hJRlQp KQogCi0KLS8qIENvbnZlcnQgYmV0d2VlbiBtYWNoaW5lIGZyYW1lIG51bWJlcnMgYW5kIHNwYWdl LWluZm8gc3RydWN0dXJlcy4gKi8KLSNkZWZpbmUgX19tZm5fdG9fc3BhZ2UobWZuKSAgKHNwYWdl X3RhYmxlICsgcGZuX3RvX3NkeChtZm4pKQotI2RlZmluZSBfX3NwYWdlX3RvX21mbihwZykgICBz ZHhfdG9fcGZuKCh1bnNpZ25lZCBsb25nKSgocGcpIC0gc3BhZ2VfdGFibGUpKQotCi0vKiBDb252 ZXJ0IGJldHdlZW4gcGFnZS1pbmZvIHN0cnVjdHVyZXMgYW5kIHNwYWdlLWluZm8gc3RydWN0dXJl cy4gKi8KLSNkZWZpbmUgcGFnZV90b19zcGFnZShwYWdlKSAgKHNwYWdlX3RhYmxlKygoKHBhZ2Up LWZyYW1lX3RhYmxlKT4+KFNVUEVSUEFHRV9TSElGVC1QQUdFX1NISUZUKSkpCi0jZGVmaW5lIHNw YWdlX3RvX3BhZ2Uoc3BhZ2UpICAoZnJhbWVfdGFibGUrKCgoc3BhZ2UpLXNwYWdlX3RhYmxlKTw8 KFNVUEVSUEFHRV9TSElGVC1QQUdFX1NISUZUKSkpCi0KIC8qCiAgKiBXZSBkZWZpbmUgbm9uLXVu ZGVyc2NvcmVkIHdyYXBwZXJzIGZvciBhYm92ZSBjb252ZXJzaW9uIGZ1bmN0aW9ucy4gVGhlc2Ug YXJlCiAgKiBvdmVycmlkZGVuIGluIHZhcmlvdXMgc291cmNlIGZpbGVzIHdoaWxlIHVuZGVyc2Nv cmVkIHZlcnNpb25zIHJlbWFpbiBpbnRhY3QuCkBAIC0yNTksOCArMjUwLDYgQEAgdm9pZCBjb3B5 X3BhZ2Vfc3NlMih2b2lkICosIGNvbnN0IHZvaWQgKik7CiAjZGVmaW5lIG1hZGRyX3RvX3ZpcnQo bWEpICAgX19tYWRkcl90b192aXJ0KCh1bnNpZ25lZCBsb25nKShtYSkpCiAjZGVmaW5lIG1mbl90 b19wYWdlKG1mbikgICAgX19tZm5fdG9fcGFnZShtZm4pCiAjZGVmaW5lIHBhZ2VfdG9fbWZuKHBn KSAgICAgX19wYWdlX3RvX21mbihwZykKLSNkZWZpbmUgbWZuX3RvX3NwYWdlKG1mbikgICAgX19t Zm5fdG9fc3BhZ2UobWZuKQotI2RlZmluZSBzcGFnZV90b19tZm4ocGcpICAgICBfX3NwYWdlX3Rv X21mbihwZykKICNkZWZpbmUgbWFkZHJfdG9fcGFnZShtYSkgICBfX21hZGRyX3RvX3BhZ2UobWEp CiAjZGVmaW5lIHBhZ2VfdG9fbWFkZHIocGcpICAgX19wYWdlX3RvX21hZGRyKHBnKQogI2RlZmlu ZSB2aXJ0X3RvX3BhZ2UodmEpICAgIF9fdmlydF90b19wYWdlKHZhKQpkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9wYWdpbmcuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnaW5nLmgK aW5kZXggNDRlODZkNmExZi4uNjRiZjJmOTY4YSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9wYWdpbmcuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2luZy5oCkBAIC0zNzEs OCArMzcxLDcgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcGFnaW5nX21heF9wYWRkcl9i aXRzKGNvbnN0IHN0cnVjdCBkb21haW4gKmQpCiB7CiAgICAgdW5zaWduZWQgaW50IGJpdHMgPSBw YWdpbmdfbW9kZV9oYXAoZCkgPyBoYXBfcGFkZHJfYml0cyA6IHBhZGRyX2JpdHM7CiAKLSAgICBp ZiAoICFJU19FTkFCTEVEKEJJR01FTSkgJiYgcGFnaW5nX21vZGVfc2hhZG93KGQpICYmCi0gICAg ICAgICAoIWlzX3B2X2RvbWFpbihkKSB8fCBvcHRfYWxsb3dfc3VwZXJwYWdlKSApCisgICAgaWYg KCAhSVNfRU5BQkxFRChCSUdNRU0pICYmIHBhZ2luZ19tb2RlX3NoYWRvdyhkKSAmJiAhaXNfcHZf ZG9tYWluKGQpICkKICAgICB7CiAgICAgICAgIC8qIFNoYWRvd2VkIHN1cGVycGFnZXMgc3RvcmUg R0ZOcyBpbiAzMi1iaXQgcGFnZV9pbmZvIGZpZWxkcy4gKi8KICAgICAgICAgYml0cyA9IG1pbihi aXRzLCAzMlUgKyBQQUdFX1NISUZUKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYv eDg2XzY0L3BhZ2UuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYveDg2XzY0L3BhZ2UuaAppbmRleCAz MWJhOTc1ZTNkLi4xYjQ4MzA5MzYzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3g4 Nl82NC9wYWdlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni94ODZfNjQvcGFnZS5oCkBAIC00 MSw4ICs0MSw2IEBACiAKIGV4dGVybiB1bnNpZ25lZCBsb25nIHhlbl92aXJ0X2VuZDsKIAotI2Rl ZmluZSBzcGFnZV90b19wZHgoc3BnKSAoKChzcGcpIC0gc3BhZ2VfdGFibGUpPDwoU1VQRVJQQUdF X1NISUZULVBBR0VfU0hJRlQpKQotI2RlZmluZSBwZHhfdG9fc3BhZ2UocGR4KSAoc3BhZ2VfdGFi bGUgKyAoKHBkeCk+PihTVVBFUlBBR0VfU0hJRlQtUEFHRV9TSElGVCkpKQogLyoKICAqIE5vdGU6 IFRoZXNlIGFyZSBzb2xlbHkgZm9yIHRoZSB1c2UgYnkgcGFnZV97Z2V0LHNldH1fb3duZXIoKSwg YW5kCiAgKiAgICAgICB0aGVyZWZvcmUgZG9uJ3QgbmVlZCB0byBoYW5kbGUgdGhlIFhFTl9WSVJU X3tTVEFSVCxFTkR9IHJhbmdlLgotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==