From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrii Anisov Subject: [PATCH RFC 16/18] xen: Add dom0_mem_high option & over 4GB memory allocation for Dom0 Date: Wed, 18 May 2016 19:32:39 +0300 Message-ID: <1463589161-4153-17-git-send-email-andrii.anisov@globallogic.com> References: <1463589161-4153-1-git-send-email-andrii.anisov@globallogic.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1463589161-4153-1-git-send-email-andrii.anisov@globallogic.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: embedded-pv-devel@lists.xenproject.org Cc: Iurii Mykhalskyi , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org RnJvbTogSXVyaWkgTXlraGFsc2t5aSA8aXVyaWkubXlraGFsc2t5aUBnbG9iYWxsb2dpYy5jb20+ CgpBZGQgc3VwcG9ydCBvZiBjdXN0b20gYWxsb2NhdGlvbiBvZiBvdmVyIDRHQiBtZW1vcnkgZm9y IERvbTAuIFJlcXVlc3RlZAptZW1vcnkgc2l6ZSBtaWdodCBiZSBzcGVjaWZpZWQgYnkgcGFzc2lu ZyBkb20wX21lbV9oaWdoIG9wdGlvbiBpbiBYZW4KY21kbGluZQoKU2lnbmVkLW9mZi1ieTogSXVy aWkgTXlraGFsc2t5aSA8aXVyaWkubXlraGFsc2t5aUBnbG9iYWxsb2dpYy5jb20+Ci0tLQogeGVu L1J1bGVzLm1rICAgICAgICAgICAgICAgIHwgICAxICsKIHhlbi9hcmNoL2FybS9kb21haW5fYnVp bGQuYyB8IDE4OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQog eGVuL2FyY2gvYXJtL2tlcm5lbC5oICAgICAgIHwgICA5ICsrKwogMyBmaWxlcyBjaGFuZ2VkLCAx OTggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3hlbi9SdWxlcy5t ayBiL3hlbi9SdWxlcy5tawppbmRleCBmYmQzNGE1Li41MWY3MTI0IDEwMDY0NAotLS0gYS94ZW4v UnVsZXMubWsKKysrIGIveGVuL1J1bGVzLm1rCkBAIC02NSw2ICs2NSw3IEBAIENGTEFHUy0kKEhB U19JT1BPUlRTKSAgICs9IC1ESEFTX0lPUE9SVFMKIENGTEFHUy0kKEhBU19QRFgpICAgICAgICs9 IC1ESEFTX1BEWAogQ0ZMQUdTLSQoZnJhbWVfcG9pbnRlcikgKz0gLWZuby1vbWl0LWZyYW1lLXBv aW50ZXIgLURDT05GSUdfRlJBTUVfUE9JTlRFUgogQ0ZMQUdTLSQoQVJNMzJfUkVMT0NBVEVfT1ZF Ul80R0IpICs9IC1EQVJNMzJfUkVMT0NBVEVfT1ZFUl80R0IKK0NGTEFHUy0kKEFSTTMyX1NFUEFS X01FTV9TUExJVCkgKz0gLURBUk0zMl9TRVBBUl9NRU1fU1BMSVQKIAogaWZuZXEgKCQobWF4X3Bo eXNfY3B1cyksKQogQ0ZMQUdTLXkgICAgICAgICAgICAgICAgKz0gLURNQVhfUEhZU19DUFVTPSQo bWF4X3BoeXNfY3B1cykKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyBi L3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYwppbmRleCBmMDY3OTJlLi5hNjM5NThiIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKKysrIGIveGVuL2FyY2gvYXJtL2Rv bWFpbl9idWlsZC5jCkBAIC0zNSw2ICszNSwxMSBAQCBpbnQgZG9tMF8xMV9tYXBwaW5nID0gMTsK ICNkZWZpbmUgRE9NMF9NRU1fREVGQVVMVCAweDgwMDAwMDAgLyogMTI4IE1pQiAqLwogc3RhdGlj IHU2NCBfX2luaXRkYXRhIGRvbTBfbWVtID0gRE9NMF9NRU1fREVGQVVMVDsKIAorI2lmZGVmIEFS TTMyX1NFUEFSX01FTV9TUExJVAorI2RlZmluZSBET00wX01FTV9ISUdIX0RFRkFVTFQgMHgwIC8q IDAgTWlCICovCitzdGF0aWMgdTY0IF9faW5pdGRhdGEgZG9tMF9tZW1faGlnaCA9IERPTTBfTUVN X0hJR0hfREVGQVVMVDsKKyNlbmRpZgorCiBzdGF0aWMgdm9pZCBfX2luaXQgcGFyc2VfZG9tMF9t ZW0oY29uc3QgY2hhciAqcykKIHsKICAgICBkb20wX21lbSA9IHBhcnNlX3NpemVfYW5kX3VuaXQo cywgJnMpOwpAQCAtNDMsNiArNDgsMTQgQEAgc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX2RvbTBf bWVtKGNvbnN0IGNoYXIgKnMpCiB9CiBjdXN0b21fcGFyYW0oImRvbTBfbWVtIiwgcGFyc2VfZG9t MF9tZW0pOwogCisjaWZkZWYgQVJNMzJfU0VQQVJfTUVNX1NQTElUCitzdGF0aWMgdm9pZCBfX2lu aXQgcGFyc2VfZG9tMF9tZW1faGlnaChjb25zdCBjaGFyICpzKQoreworICAgIGRvbTBfbWVtX2hp Z2ggPSBwYXJzZV9zaXplX2FuZF91bml0KHMsICZzKTsKK30KK2N1c3RvbV9wYXJhbSgiZG9tMF9t ZW1faGlnaCIsIHBhcnNlX2RvbTBfbWVtX2hpZ2gpOworI2VuZGlmCisKIC8vI2RlZmluZSBERUJV R19EVAogCiAjaWZkZWYgREVCVUdfRFQKQEAgLTEzMCw3ICsxNDMsMTEgQEAgc3RhdGljIGJvb2xf dCBpbnNlcnRfMTFfYmFuayhzdHJ1Y3QgZG9tYWluICpkLAogICAgIGlmICggcmVzICkKICAgICAg ICAgcGFuaWMoIkZhaWxlZCBtYXAgcGFnZXMgdG8gRE9NMDogJWQiLCByZXMpOwogCisjaWZuZGVm IEFSTTMyX1NFUEFSX01FTV9TUExJVAogICAgIGtpbmZvLT51bmFzc2lnbmVkX21lbSAtPSBzaXpl OworI2Vsc2UKKyAgICBraW5mby0+dW5hc3NpZ25lZF9tZW0ubG93IC09IHNpemU7CisjZW5kaWYK IAogICAgIGlmICgga2luZm8tPm1lbS5ucl9iYW5rcyA9PSAwICkKICAgICB7CkBAIC0xOTIsNiAr MjA5LDgyIEBAIGZhaWw6CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWZkZWYgQVJNMzJfU0VQ QVJfTUVNX1NQTElUCitzdGF0aWMgdm9pZCBhbGxvY2F0ZV9kb20wX2hpZ2hfbWVtb3J5KHN0cnVj dCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8pCit7CisgICAgaW50IGksIHJl cywgc3RfYmFua3MgPSBraW5mby0+bWVtLm5yX2JhbmtzOworICAgIHN0cnVjdCBwYWdlX2luZm8g KnBnID0gTlVMTDsKKyAgICBpbnQgYml0czsKKyAgICB1bnNpZ25lZCBpbnQgb3JkZXIgPSBnZXRf MTFfYWxsb2NhdGlvbl9zaXplKGRvbTBfbWVtX2hpZ2gpOworICAgIGNvbnN0IHVuc2lnbmVkIGlu dCBtaW5fb3JkZXIgPSBnZXRfb3JkZXJfZnJvbV9ieXRlcyhNQig0KSk7CisgICAgcGFkZHJfdCBz cGZuOworICAgIHBhZGRyX3Qgc3RhcnQsIHNpemU7CisgICAgc3RydWN0IG1lbWJhbmsgKmJhbmsg PSBOVUxMOworCisgICAgaWYgKGRvbTBfbWVtX2hpZ2ggPT0gMCkKKyAgICAgICAgcmV0dXJuOwor CisgICAgcHJpbnRrKCJBbGxvY2F0aW5nICVsZE1CIG9mIGhpZ2ggbWVtb3J5IHJlZ2lvbiBmb3Ig ZG9tMFxuIiwKKyAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKShkb20wX21lbV9oaWdoID4+IDIw KSk7CisKKyAgICB3aGlsZSAoIGtpbmZvLT51bmFzc2lnbmVkX21lbS5oaWdoICYmIGtpbmZvLT5t ZW0ubnJfYmFua3MgPCBOUl9NRU1fQkFOS1MgKQorICAgIHsKKyAgICAgICAgZm9yIChiaXRzID0g UEFERFJfQklUUyA7IGJpdHMgPj0gbWluX29yZGVyOyBiaXRzLS0gKQorICAgICAgICB7CisgICAg ICAgICAgICBwZyA9IGFsbG9jX2RvbWhlYXBfcGFnZXMoZCwgb3JkZXIsIE1FTUZfYml0cyhiaXRz KSk7CisgICAgICAgICAgICBpZiAoIHBnICE9IE5VTEwgKQorICAgICAgICAgICAgICAgIGJyZWFr OworICAgICAgICB9CisKKyAgICAgICAgaWYgKCAhcGcgKQorICAgICAgICB7CisgICAgICAgICAg ICBvcmRlciAtLTsKKyAgICAgICAgICAgIGlmICggb3JkZXIgPj0gbWluX29yZGVyICkKKyAgICAg ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgLyogTm8gbW9yZSB3ZSBjYW4gZG8g Ki8KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgc3BmbiA9IHBhZ2Vf dG9fbWZuKHBnKTsKKyAgICAgICAgc3RhcnQgPSBwZm5fdG9fcGFkZHIoc3Bmbik7CisgICAgICAg IHNpemUgPSBwZm5fdG9fcGFkZHIoKDEgPDwgb3JkZXIpKTsKKworICAgICAgICByZXMgPSBndWVz dF9waHlzbWFwX2FkZF9wYWdlKGQsIHNwZm4sIHNwZm4sIG9yZGVyKTsKKyAgICAgICAgaWYgKCBy ZXMgKQorICAgICAgICAgICAgcGFuaWMoIkZhaWxlZCBtYXAgcGFnZXMgdG8gRE9NMDogJWQiLCBy ZXMpOworCisgICAgICAgIGtpbmZvLT51bmFzc2lnbmVkX21lbS5oaWdoIC09IHNpemU7CisKKyAg ICAgICAgYmFuayA9ICZraW5mby0+bWVtLmJhbmtba2luZm8tPm1lbS5ucl9iYW5rc107CisKKyAg ICAgICAgYmFuay0+c3RhcnQgPSBzdGFydDsKKyAgICAgICAgYmFuay0+c2l6ZSA9IHNpemU7Cisg ICAgICAgIGtpbmZvLT5tZW0ubnJfYmFua3MrKzsKKworICAgICAgICAvKgorICAgICAgICAgKiBT dWNjZXNzLCBuZXh0IHRpbWUgYXJvdW5kIHRyeSBhZ2FpbiB0byBnZXQgdGhlIGxhcmdlc3Qgb3Jk ZXIKKyAgICAgICAgICogYWxsb2NhdGlvbiBwb3NzaWJsZS4KKyAgICAgICAgICovCisKKyAgICAg ICAgb3JkZXIgPSBnZXRfMTFfYWxsb2NhdGlvbl9zaXplKGtpbmZvLT51bmFzc2lnbmVkX21lbS5o aWdoKTsKKyAgICAgfQorCisgICAgaWYoa2luZm8tPnVuYXNzaWduZWRfbWVtLmhpZ2gpCisgICAg ICAgIHBhbmljKCJVbmFibGUgdG8gYWxsb2NhdGUgaGlnaCBtZW1vcnkgYmFuayIpOworCisgICAg Zm9yKCBpID0gc3RfYmFua3M7IGkgPCBraW5mby0+bWVtLm5yX2JhbmtzOyBpKysgKQorICAgIHsK KyAgICAgICAgcHJpbnRrKCJCQU5LWyVkXSAlIyJQUklwYWRkciItJSMiUFJJcGFkZHIiICglbGRN QilcbiIsCisgICAgICAgICAgICAgICBpLAorICAgICAgICAgICAgICAga2luZm8tPm1lbS5iYW5r W2ldLnN0YXJ0LAorICAgICAgICAgICAgICAga2luZm8tPm1lbS5iYW5rW2ldLnN0YXJ0ICsga2lu Zm8tPm1lbS5iYW5rW2ldLnNpemUsCisgICAgICAgICAgICAgICAvKiBEb24ndCB3YW50IGZvcm1h dCB0aGlzIGFzIFBSSXBhZGRyICgxNiBkaWdpdCBoZXgpICovCisgICAgICAgICAgICAgICAodW5z aWduZWQgbG9uZykoa2luZm8tPm1lbS5iYW5rW2ldLnNpemUgPj4gMjApKTsKKyAgICB9Cit9Cisj ZW5kaWYKKwogLyoKICAqIFRoaXMgaXMgYWxsIHByZXR0eSBob3JyaWJsZS4KICAqCkBAIC0yNTAs OSArMzQzLDEzIEBAIHN0YXRpYyB2b2lkIGFsbG9jYXRlX21lbW9yeV8xMShzdHJ1Y3QgZG9tYWlu ICpkLCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKQogICAgICAgICBnZXRfMTFfYWxsb2NhdGlv bl9zaXplKG1pbl90KHBhZGRyX3QsIGRvbTBfbWVtLCBNQigxMjgpKSk7CiAgICAgY29uc3QgdW5z aWduZWQgaW50IG1pbl9vcmRlciA9IGdldF9vcmRlcl9mcm9tX2J5dGVzKE1CKDQpKTsKICAgICBz dHJ1Y3QgcGFnZV9pbmZvICpwZzsKLSAgICB1bnNpZ25lZCBpbnQgb3JkZXIgPSBnZXRfMTFfYWxs b2NhdGlvbl9zaXplKGtpbmZvLT51bmFzc2lnbmVkX21lbSk7CiAgICAgdTY0IHJhbWJhc2VfcGZu ID0gb3B0X2RvbTBfcmFtYmFzZV9wZm47CisjaWZuZGVmIEFSTTMyX1NFUEFSX01FTV9TUExJVAor ICAgIHVuc2lnbmVkIGludCBvcmRlciA9IGdldF8xMV9hbGxvY2F0aW9uX3NpemUoa2luZm8tPnVu YXNzaWduZWRfbWVtKTsKICAgICBwYWRkcl90IG1lbV9zaXplID0ga2luZm8tPnVuYXNzaWduZWRf bWVtOworI2Vsc2UKKyAgICB1bnNpZ25lZCBpbnQgb3JkZXIgPSBnZXRfMTFfYWxsb2NhdGlvbl9z aXplKGtpbmZvLT51bmFzc2lnbmVkX21lbS5sb3cpOworI2VuZGlmCiAgICAgaW50IGk7CiAKICAg ICBib29sX3QgbG93bWVtID0gaXNfMzJiaXRfZG9tYWluKGQpOwpAQCAtMjYwLDcgKzM1NywxMSBA QCBzdGF0aWMgdm9pZCBhbGxvY2F0ZV9tZW1vcnlfMTEoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0 IGtlcm5lbF9pbmZvICpraW5mbykKIAogICAgIHByaW50aygiQWxsb2NhdGluZyAxOjEgbWFwcGlu Z3MgdG90YWxsaW5nICVsZE1CIGZvciBkb20wOlxuIiwKICAgICAgICAgICAgLyogRG9uJ3Qgd2Fu dCBmb3JtYXQgdGhpcyBhcyBQUklwYWRkciAoMTYgZGlnaXQgaGV4KSAqLworI2lmbmRlZiBBUk0z Ml9TRVBBUl9NRU1fU1BMSVQKICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpKGtpbmZvLT51bmFz c2lnbmVkX21lbSA+PiAyMCkpOworI2Vsc2UKKyAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpKGtp bmZvLT51bmFzc2lnbmVkX21lbS5sb3cgPj4gMjApKTsKKyNlbmRpZgogCiAgICAga2luZm8tPm1l bS5ucl9iYW5rcyA9IDA7CiAKQEAgLTI4OCw2ICszODksNyBAQCBzdGF0aWMgdm9pZCBhbGxvY2F0 ZV9tZW1vcnlfMTEoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbykK IAogICAgIC8qIE5vdyBhbGxvY2F0ZSBtb3JlIG1lbW9yeSBhbmQgZmlsbCBpbiBhZGRpdGlvbmFs IGJhbmtzICovCiAKKyNpZm5kZWYgQVJNMzJfU0VQQVJfTUVNX1NQTElUCiAgICAgb3JkZXIgPSBn ZXRfMTFfYWxsb2NhdGlvbl9zaXplKGtpbmZvLT51bmFzc2lnbmVkX21lbSk7CiAgICAgaWYgKCBv cHRfZG9tMF9yYW1iYXNlX3BmbiApCiAgICAgICAgIHJhbWJhc2VfcGZuICs9IChtZW1fc2l6ZSAt IGtpbmZvLT51bmFzc2lnbmVkX21lbSkgPj4gUEFHRV9TSElGVDsKQEAgLTM1Myw3ICs0NTUsNjIg QEAgc3RhdGljIHZvaWQgYWxsb2NhdGVfbWVtb3J5XzExKHN0cnVjdCBkb21haW4gKmQsIHN0cnVj dCBrZXJuZWxfaW5mbyAqa2luZm8pCiAgICAgICAgICAgICAgICAvKiBEb24ndCB3YW50IGZvcm1h dCB0aGlzIGFzIFBSSXBhZGRyICgxNiBkaWdpdCBoZXgpICovCiAgICAgICAgICAgICAgICAiICVs ZE1CIHVuYWxsb2NhdGVkXG4iLAogICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpa2luZm8t PnVuYXNzaWduZWRfbWVtID4+IDIwKTsKKyNlbHNlCisgICAgb3JkZXIgPSBnZXRfMTFfYWxsb2Nh dGlvbl9zaXplKGtpbmZvLT51bmFzc2lnbmVkX21lbS5sb3cpOworICAgIHdoaWxlICgga2luZm8t PnVuYXNzaWduZWRfbWVtLmxvdyAmJiBraW5mby0+bWVtLm5yX2JhbmtzIDwgTlJfTUVNX0JBTktT ICkKKyAgICB7CisgICAgICAgIHBnID0gYWxsb2NfZG9taGVhcF9wYWdlcyhkLCBvcmRlciwgbG93 bWVtID8gTUVNRl9iaXRzKDMyKSA6IDApOworICAgICAgICBpZiAoICFwZyApCisgICAgICAgIHsK KyAgICAgICAgICAgIG9yZGVyIC0tOworCisgICAgICAgICAgICBpZiAoIGxvd21lbSAmJiBvcmRl ciA8IG1pbl9sb3dfb3JkZXIpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgRDExUFJJ TlQoIkZhaWxlZCBhdCBtaW5fbG93X29yZGVyLCBhbGxvdyBoaWdoIGFsbG9jYXRpb25zXG4iKTsK KyAgICAgICAgICAgICAgICBvcmRlciA9IGdldF8xMV9hbGxvY2F0aW9uX3NpemUoa2luZm8tPnVu YXNzaWduZWRfbWVtLmxvdyk7CisgICAgICAgICAgICAgICAgbG93bWVtID0gZmFsc2U7CisgICAg ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIG9y ZGVyID49IG1pbl9vcmRlciApCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg ICAgIC8qIE5vIG1vcmUgd2UgY2FuIGRvICovCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg fQorCisgICAgICAgIGlmICggIWluc2VydF8xMV9iYW5rKGQsIGtpbmZvLCBwZywgb3JkZXIpICkK KyAgICAgICAgeworICAgICAgICAgICAgaWYgKCBraW5mby0+bWVtLm5yX2JhbmtzID09IE5SX01F TV9CQU5LUyApCisgICAgICAgICAgICAgICAgLyogTm90aGluZyBtb3JlIHdlIGNhbiBkby4gKi8K KyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgaWYgKCBsb3dtZW0gKQorICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgIEQxMVBSSU5UKCJBbGxvY2F0aW9uIGJlbG93IGJh bmsgMCwgYWxsb3cgaGlnaCBhbGxvY2F0aW9uc1xuIik7CisgICAgICAgICAgICAgICAgb3JkZXIg PSBnZXRfMTFfYWxsb2NhdGlvbl9zaXplKGtpbmZvLT51bmFzc2lnbmVkX21lbS5sb3cpOworICAg ICAgICAgICAgICAgIGxvd21lbSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor ICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgIEQxMVBSSU5UKCJBbGxvY2F0aW9uIGJlbG93IGJhbmsgMFxuIik7CisgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKgorICAg ICAgICAgKiBTdWNjZXNzLCBuZXh0IHRpbWUgYXJvdW5kIHRyeSBhZ2FpbiB0byBnZXQgdGhlIGxh cmdlc3Qgb3JkZXIKKyAgICAgICAgICogYWxsb2NhdGlvbiBwb3NzaWJsZS4KKyAgICAgICAgICov CisgICAgICAgIG9yZGVyID0gZ2V0XzExX2FsbG9jYXRpb25fc2l6ZShraW5mby0+dW5hc3NpZ25l ZF9tZW0ubG93KTsKKyAgICB9CiAKKyAgICBpZiAoIGtpbmZvLT51bmFzc2lnbmVkX21lbS5sb3cg KQorICAgICAgICBwcmludGsoIldBUk5JTkc6IEZhaWxlZCB0byBhbGxvY2F0ZSByZXF1ZXN0ZWQg ZG9tMCBtZW1vcnkuIgorICAgICAgICAgICAgICAgLyogRG9uJ3Qgd2FudCBmb3JtYXQgdGhpcyBh cyBQUklwYWRkciAoMTYgZGlnaXQgaGV4KSAqLworICAgICAgICAgICAgICAgIiAlbGRNQiB1bmFs bG9jYXRlZFxuIiwKKyAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKWtpbmZvLT51bmFzc2ln bmVkX21lbS5sb3cgPj4gMjApOworI2VuZGlmCiAgICAgZm9yKCBpID0gMDsgaSA8IGtpbmZvLT5t ZW0ubnJfYmFua3M7IGkrKyApCiAgICAgewogICAgICAgICBwcmludGsoIkJBTktbJWRdICUjIlBS SXBhZGRyIi0lIyJQUklwYWRkciIgKCVsZE1CKVxuIiwKQEAgLTM3NCw3ICs1MzEsMTkgQEAgc3Rh dGljIHZvaWQgYWxsb2NhdGVfbWVtb3J5KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxf aW5mbyAqa2luZm8pCiAgICAgdW5zaWduZWQgaW50IGJhbmsgPSAwOwogCiAgICAgaWYgKCBkb20w XzExX21hcHBpbmcgKQorI2lmbmRlZiBBUk0zMl9TRVBBUl9NRU1fU1BMSVQKICAgICAgICAgcmV0 dXJuIGFsbG9jYXRlX21lbW9yeV8xMShkLCBraW5mbyk7CisjZWxzZQorICAgIHsKKyAgICAgICAg YWxsb2NhdGVfbWVtb3J5XzExKGQsIGtpbmZvKTsKKyAgICAgICAgcmV0dXJuIGFsbG9jYXRlX2Rv bTBfaGlnaF9tZW1vcnkoZCwga2luZm8pOworICAgIH0KKyNlbmRpZgorCisjaWZkZWYgQVJNMzJf U0VQQVJfTUVNX1NQTElUCisgICAgaWYgKGRvbTBfbWVtX2hpZ2ggIT0gMCkKKyAgICAgICAgcHJp bnRrKCIqKipXQVJOSU5HKioqIFdlIGRvbid0IGltcGxlbWVudCBkb20wX21lbV9oaWdoIG9wdGlv biBmb3Igbm9uIDE6MSBtYXBwZWQgZG9tYWlucyFcbiIpOworI2VuZGlmCiAKICAgICB3aGlsZSAo IChtZW1vcnkgPSBkdF9maW5kX25vZGVfYnlfdHlwZShtZW1vcnksICJtZW1vcnkiKSkgKQogICAg IHsKQEAgLTM4OSw3ICs1NTgsMTEgQEAgc3RhdGljIHZvaWQgYWxsb2NhdGVfbWVtb3J5KHN0cnVj dCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8pCiAgICAgICAgICAgICBwYW5p YygiTWVtb3J5IG5vZGUgaGFzIG5vIHJlZyBwcm9wZXJ0eSIpOwogCiAgICAgICAgIGZvciAoIGwg PSAwOworI2lmbmRlZiBBUk0zMl9TRVBBUl9NRU1fU1BMSVQKICAgICAgICAgICAgICAga2luZm8t PnVuYXNzaWduZWRfbWVtID4gMCAmJiBsICsgcmVnX3NpemUgPD0gcmVnX2xlbgorI2Vsc2UKKyAg ICAgICAgICAgICAga2luZm8tPnVuYXNzaWduZWRfbWVtLmxvdyA+IDAgJiYgbCArIHJlZ19zaXpl IDw9IHJlZ19sZW4KKyNlbmRpZgogICAgICAgICAgICAgICAgICAgJiYga2luZm8tPm1lbS5ucl9i YW5rcyA8IE5SX01FTV9CQU5LUzsKICAgICAgICAgICAgICAgbCArPSByZWdfc2l6ZSApCiAgICAg ICAgIHsKQEAgLTM5OSw4ICs1NzIsMTMgQEAgc3RhdGljIHZvaWQgYWxsb2NhdGVfbWVtb3J5KHN0 cnVjdCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8pCiAgICAgICAgICAgICAg ICAgcGFuaWMoIlVuYWJsZSB0byByZXRyaWV2ZSB0aGUgYmFuayAldSBmb3IgJXMiLAogICAgICAg ICAgICAgICAgICAgICAgIGJhbmssIGR0X25vZGVfZnVsbF9uYW1lKG1lbW9yeSkpOwogCisjaWZu ZGVmIEFSTTMyX1NFUEFSX01FTV9TUExJVAogICAgICAgICAgICAgaWYgKCBzaXplID4ga2luZm8t PnVuYXNzaWduZWRfbWVtICkKICAgICAgICAgICAgICAgICBzaXplID0ga2luZm8tPnVuYXNzaWdu ZWRfbWVtOworI2Vsc2UKKyAgICAgICAgICAgIGlmICggc2l6ZSA+IGtpbmZvLT51bmFzc2lnbmVk X21lbS5sb3cgKQorICAgICAgICAgICAgICAgIHNpemUgPSBraW5mby0+dW5hc3NpZ25lZF9tZW0u bG93OworI2VuZGlmCiAKICAgICAgICAgICAgIHByaW50aygiUG9wdWxhdGUgUDJNICUjIlBSSXg2 NCItPiUjIlBSSXg2NCJcbiIsCiAgICAgICAgICAgICAgICAgICAgc3RhcnQsIHN0YXJ0ICsgc2l6 ZSk7CkBAIC00MTAsNyArNTg4LDExIEBAIHN0YXRpYyB2b2lkIGFsbG9jYXRlX21lbW9yeShzdHJ1 Y3QgZG9tYWluICpkLCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKQogICAgICAgICAgICAga2lu Zm8tPm1lbS5iYW5rW2tpbmZvLT5tZW0ubnJfYmFua3NdLnNpemUgPSBzaXplOwogICAgICAgICAg ICAga2luZm8tPm1lbS5ucl9iYW5rcysrOwogCisjaWZuZGVmIEFSTTMyX1NFUEFSX01FTV9TUExJ VAogICAgICAgICAgICAga2luZm8tPnVuYXNzaWduZWRfbWVtIC09IHNpemU7CisjZWxzZQorICAg ICAgICAgICAga2luZm8tPnVuYXNzaWduZWRfbWVtLmxvdyAtPSBzaXplOworI2VuZGlmCiAgICAg ICAgIH0KICAgICB9CiB9CkBAIC0xNTIxLDcgKzE3MDMsMTIgQEAgaW50IGNvbnN0cnVjdF9kb20w KHN0cnVjdCBkb21haW4gKmQpCiAKICAgICBkLT5tYXhfcGFnZXMgPSB+MFU7CiAKKyNpZm5kZWYg QVJNMzJfU0VQQVJfTUVNX1NQTElUCiAgICAga2luZm8udW5hc3NpZ25lZF9tZW0gPSBkb20wX21l bTsKKyNlbHNlCisgICAga2luZm8udW5hc3NpZ25lZF9tZW0ubG93ID0gZG9tMF9tZW07CisgICAg a2luZm8udW5hc3NpZ25lZF9tZW0uaGlnaCA9IGRvbTBfbWVtX2hpZ2g7CisjZW5kaWYKIAogICAg IHJjID0ga2VybmVsX3Byb2JlKCZraW5mbyk7CiAgICAgaWYgKCByYyA8IDAgKQpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gvYXJtL2tlcm5lbC5oIGIveGVuL2FyY2gvYXJtL2tlcm5lbC5oCmluZGV4IGMx YjA3ZDQuLjgzZmEwZWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9rZXJuZWwuaAorKysgYi94 ZW4vYXJjaC9hcm0va2VybmVsLmgKQEAgLTE2LDcgKzE2LDE2IEBAIHN0cnVjdCBrZXJuZWxfaW5m byB7CiAjZW5kaWYKIAogICAgIHZvaWQgKmZkdDsgLyogZmxhdCBkZXZpY2UgdHJlZSAqLworCisj aWZuZGVmIEFSTTMyX1NFUEFSX01FTV9TUExJVAogICAgIHBhZGRyX3QgdW5hc3NpZ25lZF9tZW07 IC8qIFJBTSBub3QgKHlldCkgYXNzaWduZWQgdG8gYSBiYW5rICovCisjZWxzZQorICAgIHN0cnVj dCB7CisgICAgICAgIHBhZGRyX3QgbG93OyAvKiBMb3cgUkFNIG5vdCAoeWV0KSBhc3NpZ25lZCB0 byBhIGJhbmsgKi8KKyAgICAgICAgcGFkZHJfdCBoaWdoOyAvKiBIaWdoIFJBTSBub3QgKHlldCkg YXNzaWduZWQgdG8gYSBiYW5rICovCisgICAgfSB1bmFzc2lnbmVkX21lbTsKKyNlbmRpZgorCiAg ICAgc3RydWN0IG1lbWluZm8gbWVtOwogCiAgICAgLyoga2VybmVsIGVudHJ5IHBvaW50ICovCi0t IAoyLjguMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==