From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/3] x86/smt: Support for enabling/disabling SMT at runtime Date: Tue, 2 Apr 2019 20:57:28 +0100 Message-ID: <1554235048-3373-4-git-send-email-andrew.cooper3@citrix.com> References: <1554235048-3373-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: <1554235048-3373-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5LCBhIHVzZXIgY2FuIGluIGNvbWJpbmUgdGhlIG91dHB1dCBvZiBgeGwgaW5mbyAt bmAsIHRoZSBBUENJIHRhYmxlcywKYW5kIHNvbWUgbWFudWFsIENQVUlEIGRhdGEgdG8gZmlndXJl IG91dCB3aGljaCBDUFUgbnVtYmVycyB0byBmZWVkIGludG8KYHhlbi1ocHRvb2wgY3B1LW9mZmxp bmVgIHRvIGVmZmVjdGl2ZWx5IGRpc2FibGUgU01UIGF0IHJ1bnRpbWUuCgpBIG1vcmUgY29udmVu aWVudCBvcHRpb24gaXMgdG8gdGVhY2ggWGVuIGhvdyB0byBwZXJmb3JtIHRoaXMgYWN0aW9uLgoK Rmlyc3Qgb2YgYWxsLCBleHRlbmQgWEVOX1NZU0NUTF9jcHVfaG90cGx1ZyB3aXRoIHR3byBuZXcg b3BlcmF0aW9ucy4KSW50cm9kdWNlIG5ldyBzbXRfe3VwLGRvd259X2hlbHBlcigpIGZ1bmN0aW9u cyB3aGljaCB3cmFwIHRoZQpjcHVfe3VwLGRvd259X2hlbHBlcigpIGhlbHBlcnMgd2l0aCBsb2dp YyB3aGljaCB1bmRlcnN0YW5kcyBzaWJsaW5ncyBiYXNlZCBvbgp0aGVpciBBUElDX0lELgoKQWRk IGxpYnhjIHN0dWJzLCBhbmQgZXh0ZW5kIHhlbi1ocHRvb2wgd2l0aCBzbXQte2VuYWJsZSxkaXNh YmxlfSBvcHRpb25zLgpUaGVzZSBhcmUgaW50ZW5kZWQgdG8gYmUgc2hvcnRoYW5kcyBmb3IgYSBs b29wIG92ZXIgY3B1LXtvbmxpbmUsb2ZmbGluZX0uCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1 bGljaEBzdXNlLmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBSb2dl ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KClNsaWdodGx5IFJGQy4gIEknbSBu b3QgdmVyeSBoYXBweSB3aXRoIHRoZSBjb250aW5hdGlvbiBzaXR1YXRpb24sIGJ1dCAtRUJVU1kK aXMgdGhlIHByZWV4aXN0aW5nIHN0eWxlIGFuZCBpdCBzZWVtcyBsaWtlIGl0IGlzIHRoZSBvbmx5 IG9wdGlvbiBmcm9tIHRhc2tsZXQKY29udGV4dC4KCklzIGl0IGludGVudGlvbmFsIHRoYXQgd2Ug Y2FuIGFjdHVhbGx5IG9ubGluZSBhbmQgb2ZmbGluZSBwcm9jZXNzb3JzIGJleW9uZAptYXhjcHU/ ICBUaGlzIGlzIGEgY29uc2VxdWVuY2Ugb2YgdGhlIGNwdSBwYXJraW5nIGxvZ2ljLgotLS0KIHRv b2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oICAgfCAgMiArCiB0b29scy9saWJ4Yy94Y19jcHVf aG90cGx1Zy5jICAgIHwgMjYgKysrKysrKysrKysKIHRvb2xzL21pc2MveGVuLWhwdG9vbC5jICAg ICAgICAgfCA1NiArKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4Ni9zZXR1cC5j ICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L3N5c2N0bC5jICAgICAgICAgICB8IDk2 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9h c20teDg2L3Byb2Nlc3Nvci5oIHwgIDEgKwogeGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oICAg ICB8ICA5ICsrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTkxIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xz L2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCmluZGV4IGEzNjI4ZTUuLjQ5YTZiMmEgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1 ZGUveGVuY3RybC5oCkBAIC0xODU0LDYgKzE4NTQsOCBAQCBpbnQgeGNfcG1fcmVzZXRfY3hzdGF0 KHhjX2ludGVyZmFjZSAqeGNoLCBpbnQgY3B1aWQpOwogCiBpbnQgeGNfY3B1X29ubGluZSh4Y19p bnRlcmZhY2UgKnhjaCwgaW50IGNwdSk7CiBpbnQgeGNfY3B1X29mZmxpbmUoeGNfaW50ZXJmYWNl ICp4Y2gsIGludCBjcHUpOworaW50IHhjX3NtdF9lbmFibGUoeGNfaW50ZXJmYWNlICp4Y2gpOwor aW50IHhjX3NtdF9kaXNhYmxlKHhjX2ludGVyZmFjZSAqeGNoKTsKIAogLyogCiAgKiBjcHVmcmVx IHBhcmEgbmFtZSBvZiB0aGlzIHN0cnVjdHVyZSBuYW1lZCAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xp YnhjL3hjX2NwdV9ob3RwbHVnLmMgYi90b29scy9saWJ4Yy94Y19jcHVfaG90cGx1Zy5jCmluZGV4 IDU4YzJhMGYuLjJlYTk4MjUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX2NwdV9ob3RwbHVn LmMKKysrIGIvdG9vbHMvbGlieGMveGNfY3B1X2hvdHBsdWcuYwpAQCAtNDYsMyArNDYsMjkgQEAg aW50IHhjX2NwdV9vZmZsaW5lKHhjX2ludGVyZmFjZSAqeGNoLCBpbnQgY3B1KQogICAgIHJldHVy biByZXQ7CiB9CiAKK2ludCB4Y19zbXRfZW5hYmxlKHhjX2ludGVyZmFjZSAqeGNoKQoreworICAg IERFQ0xBUkVfU1lTQ1RMOworICAgIGludCByZXQ7CisKKyAgICBzeXNjdGwuY21kID0gWEVOX1NZ U0NUTF9jcHVfaG90cGx1ZzsKKyAgICBzeXNjdGwudS5jcHVfaG90cGx1Zy5jcHUgPSAwOworICAg IHN5c2N0bC51LmNwdV9ob3RwbHVnLm9wID0gWEVOX1NZU0NUTF9DUFVfSE9UUExVR19TTVRfRU5B QkxFOworICAgIHJldCA9IHhjX3N5c2N0bCh4Y2gsICZzeXNjdGwpOworCisgICAgcmV0dXJuIHJl dDsKK30KKworaW50IHhjX3NtdF9kaXNhYmxlKHhjX2ludGVyZmFjZSAqeGNoKQoreworICAgIERF Q0xBUkVfU1lTQ1RMOworICAgIGludCByZXQ7CisKKyAgICBzeXNjdGwuY21kID0gWEVOX1NZU0NU TF9jcHVfaG90cGx1ZzsKKyAgICBzeXNjdGwudS5jcHVfaG90cGx1Zy5jcHUgPSAwOworICAgIHN5 c2N0bC51LmNwdV9ob3RwbHVnLm9wID0gWEVOX1NZU0NUTF9DUFVfSE9UUExVR19TTVRfRElTQUJM RTsKKyAgICByZXQgPSB4Y19zeXNjdGwoeGNoLCAmc3lzY3RsKTsKKworICAgIHJldHVybiByZXQ7 Cit9CisKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2MveGVuLWhwdG9vbC5jIGIvdG9vbHMvbWlzYy94 ZW4taHB0b29sLmMKaW5kZXggNDBjZDk2Ni4uNmUyN2Q5YyAxMDA2NDQKLS0tIGEvdG9vbHMvbWlz Yy94ZW4taHB0b29sLmMKKysrIGIvdG9vbHMvbWlzYy94ZW4taHB0b29sLmMKQEAgLTE5LDYgKzE5 LDggQEAgdm9pZCBzaG93X2hlbHAodm9pZCkKICAgICAgICAgICAgICIgIG1lbS1vbmxpbmUgICAg PG1mbj4gICAgICBvbmxpbmUgTUVNT1JZIDxtZm4+XG4iCiAgICAgICAgICAgICAiICBtZW0tb2Zm bGluZSAgIDxtZm4+ICAgICAgb2ZmbGluZSBNRU1PUlkgPG1mbj5cbiIKICAgICAgICAgICAgICIg IG1lbS1zdGF0dXMgICAgPG1mbj4gICAgICBxdWVyeSBNZW1vcnkgc3RhdHVzPG1mbj5cbiIKKyAg ICAgICAgICAgICIgIHNtdC1lbmFibGUgICAgICAgICAgICAgICBvbmxpbmVzIGFsbCBTTVQgdGhy ZWFkc1xuIgorICAgICAgICAgICAgIiAgc210LWRpc2FibGUgICAgICAgICAgICAgIG9mZmxpbmVz IGFsbCBTTVQgdGhyZWFkc1xuIgogICAgICAgICAgICApOwogfQogCkBAIC0zMDQsNiArMzA2LDU4 IEBAIHN0YXRpYyBpbnQgaHBfY3B1X29mZmxpbmVfZnVuYyhpbnQgYXJnYywgY2hhciAqYXJndltd KQogICAgIHJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgbWFpbl9zbXRfZW5hYmxlKGludCBh cmdjLCBjaGFyICphcmd2W10pCit7CisgICAgaW50IHJldDsKKworICAgIGlmICggYXJnYyApCisg ICAgeworICAgICAgICBzaG93X2hlbHAoKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKwor ICAgIGZvciAoIDs7ICkKKyAgICB7CisgICAgICAgIHJldCA9IHhjX3NtdF9lbmFibGUoeGNoKTsK KyAgICAgICAgaWYgKCAocmV0ID49IDApIHx8IChlcnJubyAhPSBFQlVTWSkgKQorICAgICAgICAg ICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKCByZXQgPCAwICkKKyAgICAgICAgZnByaW50Zihz dGRlcnIsICJVbmFibGUgdG8gZW5hYmxlIFNNVDogZXJybm8gJWQsICVzXG4iLAorICAgICAgICAg ICAgICAgIGVycm5vLCBzdHJlcnJvcihlcnJubykpOworICAgIGVsc2UKKyAgICAgICAgcHJpbnRm KCJFbmFibGVkIFNNVFxuIik7CisKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IG1h aW5fc210X2Rpc2FibGUoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgICBpbnQgcmV0Owor CisgICAgaWYgKCBhcmdjICkKKyAgICB7CisgICAgICAgIHNob3dfaGVscCgpOworICAgICAgICBy ZXR1cm4gLTE7CisgICAgfQorCisgICAgZm9yICggOzsgKQorICAgIHsKKyAgICAgICAgcmV0ID0g eGNfc210X2Rpc2FibGUoeGNoKTsKKyAgICAgICAgaWYgKCAocmV0ID49IDApIHx8IChlcnJubyAh PSBFQlVTWSkgKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKCByZXQgPCAw ICkKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gZGlzYWJsZSBTTVQ6IGVycm5v ICVkLCAlc1xuIiwKKyAgICAgICAgICAgICAgICBlcnJubywgc3RyZXJyb3IoZXJybm8pKTsKKyAg ICBlbHNlCisgICAgICAgIHByaW50ZigiRGlzYWJsZWQgU01UXG4iKTsKKworICAgIHJldHVybiBy ZXQ7Cit9CisKIHN0cnVjdCB7CiAgICAgY29uc3QgY2hhciAqbmFtZTsKICAgICBpbnQgKCpmdW5j dGlvbikoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSk7CkBAIC0zMTQsNiArMzY4LDggQEAgc3RydWN0 IHsKICAgICB7ICJtZW0tc3RhdHVzIiwgaHBfbWVtX3F1ZXJ5X2Z1bmN9LAogICAgIHsgIm1lbS1v bmxpbmUiLCBocF9tZW1fb25saW5lX2Z1bmN9LAogICAgIHsgIm1lbS1vZmZsaW5lIiwgaHBfbWVt X29mZmxpbmVfZnVuY30sCisgICAgeyAic210LWVuYWJsZSIsIG1haW5fc210X2VuYWJsZSB9LAor ICAgIHsgInNtdC1kaXNhYmxlIiwgbWFpbl9zbXRfZGlzYWJsZSB9LAogfTsKIAogCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvc2V0dXAuYyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCmluZGV4IDM0 NDA3OTQuLmFmMjQ1ZWIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCisrKyBiL3hl bi9hcmNoL3g4Ni9zZXR1cC5jCkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBib29sIF9faW5pdGRh dGEgb3B0X25vc21wOwogYm9vbGVhbl9wYXJhbSgibm9zbXAiLCBvcHRfbm9zbXApOwogCiAvKiBt YXhjcHVzOiBtYXhpbXVtIG51bWJlciBvZiBDUFVzIHRvIGFjdGl2YXRlLiAqLwotc3RhdGljIHVu c2lnbmVkIGludCBfX2luaXRkYXRhIG1heF9jcHVzOwordW5zaWduZWQgaW50IG1heF9jcHVzOwog aW50ZWdlcl9wYXJhbSgibWF4Y3B1cyIsIG1heF9jcHVzKTsKIAogaW50OF90IF9fcmVhZF9tb3N0 bHkgb3B0X3NtdCA9IC0xOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3N5c2N0bC5jIGIveGVu L2FyY2gveDg2L3N5c2N0bC5jCmluZGV4IGIzY2M0YjUuLjBlMmU0MDkgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9zeXNjdGwuYworKysgYi94ZW4vYXJjaC94ODYvc3lzY3RsLmMKQEAgLTExNCw2 ICsxMTQsOTIgQEAgbG9uZyBjcHVfZG93bl9oZWxwZXIodm9pZCAqZGF0YSkKICAgICByZXR1cm4g cmV0OwogfQogCitzdGF0aWMgbG9uZyBzbXRfdXBfaGVscGVyKHZvaWQgKmRhdGEpCit7CisgICAg dW5zaWduZWQgaW50IGNwdSwgc2libGluZ19tYXNrID0KKyAgICAgICAgKDF1IDw8IChib290X2Nw dV9kYXRhLng4Nl9udW1fc2libGluZ3MgLSAxKSkgLSAxOworICAgIGludCByZXQgPSAwOworCisg ICAgaWYgKCAhY3B1X2hhc19odHQgfHwgIXNpYmxpbmdfbWFzayApCisgICAgICAgIHJldHVybiAt RU9QTk9UU1VQUDsKKworICAgIG9wdF9zbXQgPSB0cnVlOworCisgICAgZm9yX2VhY2hfcHJlc2Vu dF9jcHUgKCBjcHUgKQorICAgIHsKKyAgICAgICAgaWYgKCBjcHUgPT0gMCApCisgICAgICAgICAg ICBjb250aW51ZTsKKyAgICAgICAgaWYgKCBjcHUgPj0gbWF4X2NwdXMgKQorICAgICAgICAgICAg YnJlYWs7CisKKyAgICAgICAgaWYgKCB4ODZfY3B1X3RvX2FwaWNpZFtjcHVdICYgc2libGluZ19t YXNrICkKKyAgICAgICAgICAgIHJldCA9IGNwdV91cF9oZWxwZXIoX3AoY3B1KSk7CisKKyAgICAg ICAgLyogVG9sZXJhdGUgYWxyZWFkeS1vbmxpbmUgc2libGluZ3MuICovCisgICAgICAgIGlmICgg cmV0ID09IC1FRVhJU1QgKQorICAgICAgICAgICAgcmV0ID0gMDsKKworICAgICAgICBpZiAoIHJl dCApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAoIGdlbmVyYWxfcHJlZW1wdF9j aGVjaygpICkKKyAgICAgICAgeworICAgICAgICAgICAgLyogSW4gdGFza2xldCBjb250ZXh0IC0g Y2FuJ3QgY3JlYXRlIGEgY29udGluYXRpb24uICovCisgICAgICAgICAgICByZXQgPSAtRUJVU1k7 CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICggIXJldCAp CisgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyAiU01UIGVuYWJsZWQgLSBvbmxpbmUgQ1BVcyB7 JSpwYmx9XG4iLAorICAgICAgICAgICAgICAgbnJfY3B1X2lkcywgY3B1bWFza19iaXRzKCZjcHVf b25saW5lX21hcCkpOworCisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIGxvbmcgc210X2Rv d25faGVscGVyKHZvaWQgKmRhdGEpCit7CisgICAgdW5zaWduZWQgaW50IGNwdSwgc2libGluZ19t YXNrID0KKyAgICAgICAgKDF1IDw8IChib290X2NwdV9kYXRhLng4Nl9udW1fc2libGluZ3MgLSAx KSkgLSAxOworICAgIGludCByZXQgPSAwOworCisgICAgaWYgKCAhY3B1X2hhc19odHQgfHwgIXNp YmxpbmdfbWFzayApCisgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKworICAgIG9wdF9zbXQg PSBmYWxzZTsKKworICAgIGZvcl9lYWNoX3ByZXNlbnRfY3B1ICggY3B1ICkKKyAgICB7CisgICAg ICAgIGlmICggY3B1ID09IDAgKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICgg Y3B1ID49IG1heF9jcHVzICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGlmICggeDg2 X2NwdV90b19hcGljaWRbY3B1XSAmIHNpYmxpbmdfbWFzayApCisgICAgICAgICAgICByZXQgPSBj cHVfZG93bl9oZWxwZXIoX3AoY3B1KSk7CisKKyAgICAgICAgLyogVG9sZXJhdGUgYWxyZWFkeS1v ZmZsaW5lIHNpYmxpbmdzLiAqLworICAgICAgICBpZiAoIHJldCA9PSAtRUVYSVNUICkKKyAgICAg ICAgICAgIHJldCA9IDA7CisKKyAgICAgICAgaWYgKCByZXQgKQorICAgICAgICAgICAgYnJlYWs7 CisKKyAgICAgICAgaWYgKCBnZW5lcmFsX3ByZWVtcHRfY2hlY2soKSApCisgICAgICAgIHsKKyAg ICAgICAgICAgIC8qIEluIHRhc2tsZXQgY29udGV4dCAtIGNhbid0IGNyZWF0ZSBhIGNvbnRpbmF0 aW9uLiAqLworICAgICAgICAgICAgcmV0ID0gLUVCVVNZOworICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoICFyZXQgKQorICAgICAgICBwcmludGsoWEVOTE9H X0lORk8gIlNNVCBkaXNhYmxlZCAtIG9ubGluZSBDUFVzIHslKnBibH1cbiIsCisgICAgICAgICAg ICAgICBucl9jcHVfaWRzLCBjcHVtYXNrX2JpdHMoJmNwdV9vbmxpbmVfbWFwKSk7CisKKyAgICBy ZXR1cm4gcmV0OworfQorCiB2b2lkIGFyY2hfZG9fcGh5c2luZm8oc3RydWN0IHhlbl9zeXNjdGxf cGh5c2luZm8gKnBpKQogewogICAgIG1lbWNweShwaS0+aHdfY2FwLCBib290X2NwdV9kYXRhLng4 Nl9jYXBhYmlsaXR5LApAQCAtMTU1LDYgKzI0MSwxNiBAQCBsb25nIGFyY2hfZG9fc3lzY3RsKAog ICAgICAgICAgICAgaGNwdSA9ICh2b2lkICopKHVuc2lnbmVkIGxvbmcpY3B1OwogICAgICAgICAg ICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBYRU5fU1lTQ1RMX0NQVV9IT1RQTFVHX1NNVF9FTkFC TEU6CisgICAgICAgICAgICBwbHVnID0gdHJ1ZTsKKyAgICAgICAgICAgIGZuID0gc210X3VwX2hl bHBlcjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgWEVOX1NZU0NUTF9DUFVf SE9UUExVR19TTVRfRElTQUJMRToKKyAgICAgICAgICAgIHBsdWcgPSBmYWxzZTsKKyAgICAgICAg ICAgIGZuID0gc210X2Rvd25faGVscGVyOworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAg ZGVmYXVsdDoKICAgICAgICAgICAgIHJldCA9IC1FT1BOT1RTVVBQOwogICAgICAgICAgICAgYnJl YWs7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaAppbmRleCBjZWYzZmZiLi44ZmZjZmZlIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oCisrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvcHJvY2Vzc29yLmgKQEAgLTE1NCw2ICsxNTQsNyBAQCBleHRlcm4gdm9pZCAoKmN0eHRf c3dpdGNoX21hc2tpbmcpKGNvbnN0IHN0cnVjdCB2Y3B1ICpuZXh0KTsKIGV4dGVybiBib29sX3Qg b3B0X2NwdV9pbmZvOwogZXh0ZXJuIHUzMiBjcHVpZF9leHRfZmVhdHVyZXM7CiBleHRlcm4gdTY0 IHRyYW1wb2xpbmVfbWlzY19lbmFibGVfb2ZmOworZXh0ZXJuIHVuc2lnbmVkIGludCBtYXhfY3B1 czsKIAogLyogTWF4aW11bSB3aWR0aCBvZiBwaHlzaWNhbCBhZGRyZXNzZXMgc3VwcG9ydGVkIGJ5 IHRoZSBoYXJkd2FyZS4gKi8KIGV4dGVybiB1bnNpZ25lZCBpbnQgcGFkZHJfYml0czsKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9z eXNjdGwuaAppbmRleCBjNDliNGRjLi41YzQzYWVkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9w dWJsaWMvc3lzY3RsLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oCkBAIC0yNDYs OCArMjQ2LDE3IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX2dldF9wbXN0YXQgewogc3RydWN0IHhlbl9z eXNjdGxfY3B1X2hvdHBsdWcgewogICAgIC8qIElOIHZhcmlhYmxlcyAqLwogICAgIHVpbnQzMl90 IGNwdTsgICAvKiBQaHlzaWNhbCBjcHUuICovCisKKyAgICAvKiBTaW5nbGUgQ1BVIGVuYWJsZS9k aXNhYmxlLiAqLwogI2RlZmluZSBYRU5fU1lTQ1RMX0NQVV9IT1RQTFVHX09OTElORSAgMAogI2Rl ZmluZSBYRU5fU1lTQ1RMX0NQVV9IT1RQTFVHX09GRkxJTkUgMQorCisgICAgLyoKKyAgICAgKiBT TVQgZW5hYmxlL2Rpc2FibGUuIENhbGxlciBtdXN0IHplcm8gdGhlICdjcHUnIGZpZWxkIHRvIGJl Z2luLCBhbmQKKyAgICAgKiBpZ25vcmUgaXQgb24gY29tcGxldGlvbi4KKyAgICAgKi8KKyNkZWZp bmUgWEVOX1NZU0NUTF9DUFVfSE9UUExVR19TTVRfRU5BQkxFICAyCisjZGVmaW5lIFhFTl9TWVND VExfQ1BVX0hPVFBMVUdfU01UX0RJU0FCTEUgMwogICAgIHVpbnQzMl90IG9wOyAgICAvKiBob3Rw bHVnIG9wY29kZSAqLwogfTsKIAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v bGlzdGluZm8veGVuLWRldmVs