From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH for 4.9 2/6] x86/hvm: Correct long mode predicate Date: Fri, 31 Mar 2017 20:50:49 +0100 Message-ID: <1490989853-21879-3-git-send-email-andrew.cooper3@citrix.com> References: <1490989853-21879-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: <1490989853-21879-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: Kevin Tian , Jan Beulich , George Dunlap , Andrew Cooper , Tim Deegan , Julien Grall , Paul Durrant , Jun Nakajima , Boris Ostrovsky , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org aHZtX2xvbmdfbW9kZV9lbmFibGVkKCkgdGVzdHMgZm9yIEVGRVIuTE1BLCB3aGljaCBpcyBzcGVj aWZpY2FsbHkgZGlmZmVyZW50IHRvCkVGRVIuTE1FLgoKUmVuYW1lIGl0IHRvIG1hdGNoIGl0cyBi ZWhhdmlvdXIsIGFuZCBoYXZlIGl0IHN0cmljdGx5IHJldHVybiBhIGJvb2xlYW4gdmFsdWUKKGFs dGhvdWdoIGFsbCBpdHMgY2FsbGVycyBhbHJlYWR5IHVzZSBpdCBpbiBpbXBsaWNpdGx5LWJvb2xl YW4gY29udGV4dHMsIHNvIG5vCmZ1bmN0aW9uYWwgY2hhbmdlKS4KClNpZ25lZC1vZmYtYnk6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxp Y2ggPEpCZXVsaWNoQHN1c2UuY29tPgpDQzogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0 cml4LmNvbT4KQ0M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDQzogR2VvcmdlIER1bmxhcCA8 Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgpDQzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWpp bWFAaW50ZWwuY29tPgpDQzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+CkNDOiBC b3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgpDQzogU3VyYXZlZSBT dXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1kLmNvbT4KQ0M6IEp1bGllbiBH cmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2NwdWlkLmMgICAg ICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jICAgICAgICB8ICAy ICstCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgfCAxMCArKysrKy0tLS0tCiB4 ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyAgICAgICAgfCAgNiArKystLS0KIHhlbi9hcmNoL3g4 Ni9odm0vdm14L3ZteC5jICAgICAgICB8ICA2ICsrKy0tLQogeGVuL2FyY2gveDg2L2h2bS92bXgv dnZteC5jICAgICAgIHwgIDggKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgICAg ICAgICB8ICA4ICsrKystLS0tCiB4ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jICAgfCAg NCArKy0tCiB4ZW4vYXJjaC94ODYvb3Byb2ZpbGUvYmFja3RyYWNlLmMgfCAgMiArLQogeGVuL2lu Y2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmggICAgIHwgIDMgKy0tCiAxMCBmaWxlcyBjaGFuZ2VkLCAy NSBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvY3B1aWQuYyBiL3hlbi9hcmNoL3g4Ni9jcHVpZC5jCmluZGV4IDFjNmE2YzYuLmQzNTllMDkg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHVpZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHVp ZC5jCkBAIC05MTEsNyArOTExLDcgQEAgdm9pZCBndWVzdF9jcHVpZChjb25zdCBzdHJ1Y3QgdmNw dSAqdiwgdWludDMyX3QgbGVhZiwKICAgICBjYXNlIDB4ODAwMDAwMDE6CiAgICAgICAgIC8qIFNZ U0NBTEwgaXMgaGlkZGVuIG91dHNpZGUgb2YgbG9uZyBtb2RlIG9uIEludGVsLiAqLwogICAgICAg ICBpZiAoIHAtPng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9JTlRFTCAmJgotICAgICAgICAgICAg IGlzX2h2bV9kb21haW4oZCkgJiYgIWh2bV9sb25nX21vZGVfZW5hYmxlZCh2KSApCisgICAgICAg ICAgICAgaXNfaHZtX2RvbWFpbihkKSAmJiAhaHZtX2xvbmdfbW9kZV9hY3RpdmUodikgKQogICAg ICAgICAgICAgcmVzLT5kICY9IH5jcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfU1lTQ0FMTCk7CiAK ICAgICBjb21tb25fbGVhZjFfYWRqdXN0bWVudHM6CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv aHZtL2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCmluZGV4IDQwNzM3MTUu LjNkMDg0Y2EgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCisrKyBiL3hl bi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCkBAIC0yMDUxLDcgKzIwNTEsNyBAQCB2b2lkIGh2bV9l bXVsYXRlX2luaXRfcGVyX2luc24oCiAgICAgdW5zaWduZWQgaW50IHBmZWMgPSBQRkVDX3BhZ2Vf cHJlc2VudDsKICAgICB1bnNpZ25lZCBsb25nIGFkZHI7CiAKLSAgICBpZiAoIGh2bV9sb25nX21v ZGVfZW5hYmxlZChjdXJyKSAmJgorICAgIGlmICggaHZtX2xvbmdfbW9kZV9hY3RpdmUoY3Vycikg JiYKICAgICAgICAgIGh2bWVtdWxfY3R4dC0+c2VnX3JlZ1t4ODZfc2VnX2NzXS5hdHRyLmZpZWxk cy5sICkKICAgICAgICAgaHZtZW11bF9jdHh0LT5jdHh0LmFkZHJfc2l6ZSA9IGh2bWVtdWxfY3R4 dC0+Y3R4dC5zcF9zaXplID0gNjQ7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5kZXggMDI4Mjk4Ni4uOWY4M2Nk OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYv aHZtL2h2bS5jCkBAIC0yMjI3LDcgKzIyMjcsNyBAQCBpbnQgaHZtX3NldF9jcjAodW5zaWduZWQg bG9uZyB2YWx1ZSwgYm9vbF90IG1heV9kZWZlcikKICAgICAgICAgfQogCiAgICAgICAgIC8qIFdo ZW4gQ1IwLlBHIGlzIGNsZWFyZWQsIExNQSBpcyBjbGVhcmVkIGltbWVkaWF0ZWx5LiAqLwotICAg ICAgICBpZiAoIGh2bV9sb25nX21vZGVfZW5hYmxlZCh2KSApCisgICAgICAgIGlmICggaHZtX2xv bmdfbW9kZV9hY3RpdmUodikgKQogICAgICAgICB7CiAgICAgICAgICAgICB2LT5hcmNoLmh2bV92 Y3B1Lmd1ZXN0X2VmZXIgJj0gfkVGRVJfTE1BOwogICAgICAgICAgICAgaHZtX3VwZGF0ZV9ndWVz dF9lZmVyKHYpOwpAQCAtMjMyMSw3ICsyMzIxLDcgQEAgaW50IGh2bV9zZXRfY3I0KHVuc2lnbmVk IGxvbmcgdmFsdWUsIGJvb2xfdCBtYXlfZGVmZXIpCiAKICAgICBpZiAoICEodmFsdWUgJiBYODZf Q1I0X1BBRSkgKQogICAgIHsKLSAgICAgICAgaWYgKCBodm1fbG9uZ19tb2RlX2VuYWJsZWQodikg KQorICAgICAgICBpZiAoIGh2bV9sb25nX21vZGVfYWN0aXZlKHYpICkKICAgICAgICAgewogICAg ICAgICAgICAgSFZNX0RCR19MT0coREJHX0xFVkVMXzEsICJHdWVzdCBjbGVhcmVkIENSNC5QQUUg d2hpbGUgIgogICAgICAgICAgICAgICAgICAgICAgICAgIkVGRVIuTE1BIGlzIHNldCIpOwpAQCAt MjMzMiw3ICsyMzMyLDcgQEAgaW50IGh2bV9zZXRfY3I0KHVuc2lnbmVkIGxvbmcgdmFsdWUsIGJv b2xfdCBtYXlfZGVmZXIpCiAgICAgb2xkX2NyID0gdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jcls0 XTsKIAogICAgIGlmICggKHZhbHVlICYgWDg2X0NSNF9QQ0lERSkgJiYgIShvbGRfY3IgJiBYODZf Q1I0X1BDSURFKSAmJgotICAgICAgICAgKCFodm1fbG9uZ19tb2RlX2VuYWJsZWQodikgfHwKKyAg ICAgICAgICghaHZtX2xvbmdfbW9kZV9hY3RpdmUodikgfHwKICAgICAgICAgICAodi0+YXJjaC5o dm1fdmNwdS5ndWVzdF9jclszXSAmIDB4ZmZmKSkgKQogICAgIHsKICAgICAgICAgSFZNX0RCR19M T0coREJHX0xFVkVMXzEsICJHdWVzdCBhdHRlbXB0cyB0byBjaGFuZ2UgQ1I0LlBDSURFIGZyb20g IgpAQCAtMzYwNSw3ICszNjA1LDcgQEAgdm9pZCBodm1fdWRfaW50ZXJjZXB0KHN0cnVjdCBjcHVf dXNlcl9yZWdzICpyZWdzKQogCiAgICAgICAgIGlmICggaHZtX3ZpcnR1YWxfdG9fbGluZWFyX2Fk ZHIoeDg2X3NlZ19jcywgY3MsIHJlZ3MtPnJpcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplb2Yoc2lnKSwgaHZtX2FjY2Vzc19pbnNuX2ZldGNoLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChodm1fbG9uZ19tb2RlX2VuYWJsZWQo Y3VyKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChodm1fbG9u Z19tb2RlX2FjdGl2ZShjdXIpICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNzLT5hdHRyLmZpZWxkcy5sKSA/IDY0IDoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjcy0+YXR0ci5maWVsZHMuZGIgPyAzMiA6IDE2LCAmYWRkcikgJiYK ICAgICAgICAgICAgICAoaHZtX2ZldGNoX2Zyb21fZ3Vlc3RfbGluZWFyKHNpZywgYWRkciwgc2l6 ZW9mKHNpZyksCkBAIC0zNjE2LDcgKzM2MTYsNyBAQCB2b2lkIGh2bV91ZF9pbnRlcmNlcHQoc3Ry dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgICAgICByZWdzLT5lZmxhZ3MgJj0gflg4 Nl9FRkxBR1NfUkY7CiAKICAgICAgICAgICAgIC8qIFplcm8gdGhlIHVwcGVyIDMyIGJpdHMgb2Yg JXJpcCBpZiBub3QgaW4gNjRiaXQgbW9kZS4gKi8KLSAgICAgICAgICAgIGlmICggIShodm1fbG9u Z19tb2RlX2VuYWJsZWQoY3VyKSAmJiBjcy0+YXR0ci5maWVsZHMubCkgKQorICAgICAgICAgICAg aWYgKCAhKGh2bV9sb25nX21vZGVfYWN0aXZlKGN1cikgJiYgY3MtPmF0dHIuZmllbGRzLmwpICkK ICAgICAgICAgICAgICAgICByZWdzLT5yaXAgPSByZWdzLT5laXA7CiAKICAgICAgICAgICAgIGFk ZF90YWludChUQUlOVF9IVk1fRkVQKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vc3Zt L3N2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKaW5kZXggYjY5Nzg5Yi4uNGQ3ZTQ5 ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS9zdm0vc3ZtLmMKQEAgLTUxNiw3ICs1MTYsNyBAQCBzdGF0aWMgaW50IHN2bV9ndWVz dF94ODZfbW9kZShzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKCB1 bmxpa2VseShndWVzdF9jcHVfdXNlcl9yZWdzKCktPmVmbGFncyAmIFg4Nl9FRkxBR1NfVk0pICkK ICAgICAgICAgcmV0dXJuIDE7Ci0gICAgaWYgKCBodm1fbG9uZ19tb2RlX2VuYWJsZWQodikgJiYg bGlrZWx5KHZtY2ItPmNzLmF0dHIuZmllbGRzLmwpICkKKyAgICBpZiAoIGh2bV9sb25nX21vZGVf YWN0aXZlKHYpICYmIGxpa2VseSh2bWNiLT5jcy5hdHRyLmZpZWxkcy5sKSApCiAgICAgICAgIHJl dHVybiA4OwogICAgIHJldHVybiAobGlrZWx5KHZtY2ItPmNzLmF0dHIuZmllbGRzLmRiKSA/IDQg OiAyKTsKIH0KQEAgLTIyNzksNyArMjI3OSw3IEBAIHZvaWQgc3ZtX3ZtZXhpdF9oYW5kbGVyKHN0 cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogCiAgICAgZXhpdF9yZWFzb24gPSB2bWNiLT5leGl0 Y29kZTsKIAotICAgIGlmICggaHZtX2xvbmdfbW9kZV9lbmFibGVkKHYpICkKKyAgICBpZiAoIGh2 bV9sb25nX21vZGVfYWN0aXZlKHYpICkKICAgICAgICAgSFZNVFJBQ0VfTkQoVk1FWElUNjQsIHZj cHVfZ3Vlc3Rtb2RlID8gVFJDX0hWTV9ORVNURURGTEFHIDogMCwKICAgICAgICAgICAgICAgICAg ICAgMS8qY3ljbGVzKi8sIDMsIGV4aXRfcmVhc29uLAogICAgICAgICAgICAgICAgICAgICByZWdz LT5laXAsIHJlZ3MtPnJpcCA+PiAzMiwgMCwgMCwgMCk7CkBAIC0yNDI5LDcgKzI0MjksNyBAQCB2 b2lkIHN2bV92bWV4aXRfaGFuZGxlcihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAg ICAgewogICAgICAgICAgICAgaWYgKCB0cmFjZV93aWxsX3RyYWNlX2V2ZW50KFRSQ19TSEFET1cp ICkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGlmICggaHZtX2xvbmdfbW9k ZV9lbmFibGVkKHYpICkKKyAgICAgICAgICAgIGlmICggaHZtX2xvbmdfbW9kZV9hY3RpdmUodikg KQogICAgICAgICAgICAgICAgIEhWTVRSQUNFX0xPTkdfMkQoUEZfWEVOLCByZWdzLT5lcnJvcl9j b2RlLCBUUkNfUEFSX0xPTkcodmEpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg ICBIVk1UUkFDRV8yRChQRl9YRU4sIHJlZ3MtPmVycm9yX2NvZGUsIHZhKTsKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMK aW5kZXggZDIwMTk1Ni4uYjY1MjZjOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgv dm14LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKQEAgLTYxMSw3ICs2MTEsNyBA QCBpbnQgdm14X2d1ZXN0X3g4Nl9tb2RlKHN0cnVjdCB2Y3B1ICp2KQogICAgIGlmICggdW5saWtl bHkoZ3Vlc3RfY3B1X3VzZXJfcmVncygpLT5lZmxhZ3MgJiBYODZfRUZMQUdTX1ZNKSApCiAgICAg ICAgIHJldHVybiAxOwogICAgIF9fdm1yZWFkKEdVRVNUX0NTX0FSX0JZVEVTLCAmY3NfYXJfYnl0 ZXMpOwotICAgIGlmICggaHZtX2xvbmdfbW9kZV9lbmFibGVkKHYpICYmCisgICAgaWYgKCBodm1f bG9uZ19tb2RlX2FjdGl2ZSh2KSAmJgogICAgICAgICAgbGlrZWx5KGNzX2FyX2J5dGVzICYgWDg2 X1NFR19BUl9DU19MTV9BQ1RJVkUpICkKICAgICAgICAgcmV0dXJuIDg7CiAgICAgcmV0dXJuIChs aWtlbHkoY3NfYXJfYnl0ZXMgJiBYODZfU0VHX0FSX0RFRl9PUF9TSVpFKSA/IDQgOiAyKTsKQEAg LTMzOTIsNyArMzM5Miw3IEBAIHZvaWQgdm14X3ZtZXhpdF9oYW5kbGVyKHN0cnVjdCBjcHVfdXNl cl9yZWdzICpyZWdzKQogCiAgICAgX192bXJlYWQoVk1fRVhJVF9SRUFTT04sICZleGl0X3JlYXNv bik7CiAKLSAgICBpZiAoIGh2bV9sb25nX21vZGVfZW5hYmxlZCh2KSApCisgICAgaWYgKCBodm1f bG9uZ19tb2RlX2FjdGl2ZSh2KSApCiAgICAgICAgIEhWTVRSQUNFX05EKFZNRVhJVDY0LCAwLCAx LypjeWNsZXMqLywgMywgZXhpdF9yZWFzb24sCiAgICAgICAgICAgICAgICAgICAgIHJlZ3MtPmVp cCwgcmVncy0+cmlwID4+IDMyLCAwLCAwLCAwKTsKICAgICBlbHNlCkBAIC0zNjMyLDcgKzM2MzIs NyBAQCB2b2lkIHZteF92bWV4aXRfaGFuZGxlcihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykK ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAoIHRyYWNlX3dpbGxfdHJhY2VfZXZl bnQoVFJDX1NIQURPVykgKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg ICAgICBpZiAoIGh2bV9sb25nX21vZGVfZW5hYmxlZCh2KSApCisgICAgICAgICAgICAgICAgaWYg KCBodm1fbG9uZ19tb2RlX2FjdGl2ZSh2KSApCiAgICAgICAgICAgICAgICAgICAgIEhWTVRSQUNF X0xPTkdfMkQoUEZfWEVOLCByZWdzLT5lcnJvcl9jb2RlLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRSQ19QQVJfTE9ORyhleGl0X3F1YWxpZmljYXRpb24pICk7CiAgICAg ICAgICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5j IGIveGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jCmluZGV4IDA5ZTQyNTAuLmU5ODYwZjcgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYworKysgYi94ZW4vYXJjaC94ODYv aHZtL3ZteC92dm14LmMKQEAgLTM5Miw3ICszOTIsNyBAQCBzdGF0aWMgaW50IHZteF9pbnN0X2No ZWNrX3ByaXZpbGVnZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgaW50IHZteG9wX2NoZWNr KQogICAgIGVsc2UgaWYgKCAhbnZteF92Y3B1X2luX3ZteCh2KSApCiAgICAgICAgIGdvdG8gaW52 YWxpZF9vcDsKIAotICAgIGlmICggdm14X2d1ZXN0X3g4Nl9tb2RlKHYpIDwgKGh2bV9sb25nX21v ZGVfZW5hYmxlZCh2KSA/IDggOiAyKSApCisgICAgaWYgKCB2bXhfZ3Vlc3RfeDg2X21vZGUodikg PCAoaHZtX2xvbmdfbW9kZV9hY3RpdmUodikgPyA4IDogMikgKQogICAgICAgICBnb3RvIGludmFs aWRfb3A7CiAgICAgZWxzZSBpZiAoIG5lc3RlZGh2bV92Y3B1X2luX2d1ZXN0bW9kZSh2KSApCiAg ICAgICAgIGdvdG8gdm1leGl0OwpAQCAtMTE1NCwxMyArMTE1NCwxMyBAQCBzdGF0aWMgdm9pZCB2 aXJ0dWFsX3ZtZW50cnkoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgLyoKICAgICAg KiBFRkVSIGhhbmRsaW5nOgogICAgICAqIGh2bV9zZXRfZWZlciB3b24ndCB3b3JrIGlmIENSMC5Q RyA9IDEsIHNvIHdlIGNoYW5nZSB0aGUgdmFsdWUKLSAgICAgKiBkaXJlY3RseSB0byBtYWtlIGh2 bV9sb25nX21vZGVfZW5hYmxlZCh2KSB3b3JrIGluIEwyLgorICAgICAqIGRpcmVjdGx5IHRvIG1h a2UgaHZtX2xvbmdfbW9kZV9hY3RpdmUodikgd29yayBpbiBMMi4KICAgICAgKiBBbiBhZGRpdGlv bmFsIHVwZGF0ZV9wYWdpbmdfbW9kZXMgaXMgYWxzbyBuZWVkZWQgaWYKICAgICAgKiB0aGVyZSBp cyAzMi82NCBzd2l0Y2guIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZlciBkb2Vzbid0CiAgICAg ICogbmVlZCB0byBiZSBzYXZlZCwgc2luY2UgaXRzIHZhbHVlIG9uIHZtZXhpdCBpcyBkZXRlcm1p bmVkIGJ5CiAgICAgICogTDEgZXhpdF9jb250cm9scwogICAgICAqLwotICAgIGxtX2wxID0gISFo dm1fbG9uZ19tb2RlX2VuYWJsZWQodik7CisgICAgbG1fbDEgPSAhIWh2bV9sb25nX21vZGVfYWN0 aXZlKHYpOwogICAgIGxtX2wyID0gISEoZ2V0X3Z2bWNzKHYsIFZNX0VOVFJZX0NPTlRST0xTKSAm IFZNX0VOVFJZX0lBMzJFX01PREUpOwogCiAgICAgaWYgKCBsbV9sMiApCkBAIC0xMzU5LDcgKzEz NTksNyBAQCBzdGF0aWMgdm9pZCB2aXJ0dWFsX3ZtZXhpdChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncykKICAgICBudmNwdS0+bnZfdm1leGl0X3BlbmRpbmcgPSAwOwogICAgIG52Y3B1LT5udl92 bXN3aXRjaF9pbl9wcm9ncmVzcyA9IDE7CiAKLSAgICBsbV9sMiA9ICEhaHZtX2xvbmdfbW9kZV9l bmFibGVkKHYpOworICAgIGxtX2wyID0gISFodm1fbG9uZ19tb2RlX2FjdGl2ZSh2KTsKICAgICBs bV9sMSA9ICEhKGdldF92dm1jcyh2LCBWTV9FWElUX0NPTlRST0xTKSAmIFZNX0VYSVRfSUEzMkVf TU9ERSk7CiAKICAgICBpZiAoIGxtX2wxICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9o YXAvaGFwLmMgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCmluZGV4IGE1N2IzODUuLjI4M2Q0 YjcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKKysrIGIveGVuL2FyY2gv eDg2L21tL2hhcC9oYXAuYwpAQCAtNjkwLDEwICs2OTAsMTAgQEAgc3RhdGljIHZvaWQgaGFwX3Vw ZGF0ZV9jcjMoc3RydWN0IHZjcHUgKnYsIGludCBkb19sb2NraW5nKQogY29uc3Qgc3RydWN0IHBh Z2luZ19tb2RlICoKIGhhcF9wYWdpbmdfZ2V0X21vZGUoc3RydWN0IHZjcHUgKnYpCiB7Ci0gICAg cmV0dXJuICFodm1fcGFnaW5nX2VuYWJsZWQodikgICA/ICZoYXBfcGFnaW5nX3JlYWxfbW9kZSA6 Ci0gICAgICAgIGh2bV9sb25nX21vZGVfZW5hYmxlZCh2KSA/ICZoYXBfcGFnaW5nX2xvbmdfbW9k ZSA6Ci0gICAgICAgIGh2bV9wYWVfZW5hYmxlZCh2KSAgICAgICA/ICZoYXBfcGFnaW5nX3BhZV9t b2RlICA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZoYXBfcGFnaW5nX3By b3RlY3RlZF9tb2RlOworICAgIHJldHVybiAhaHZtX3BhZ2luZ19lbmFibGVkKHYpID8gJmhhcF9w YWdpbmdfcmVhbF9tb2RlIDoKKyAgICAgICAgaHZtX2xvbmdfbW9kZV9hY3RpdmUodikgICA/ICZo YXBfcGFnaW5nX2xvbmdfbW9kZSA6CisgICAgICAgIGh2bV9wYWVfZW5hYmxlZCh2KSAgICAgICAg PyAmaGFwX3BhZ2luZ19wYWVfbW9kZSAgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmhhcF9wYWdpbmdfcHJvdGVjdGVkX21vZGU7CiB9CiAKIHN0YXRpYyB2b2lkIGhhcF91 cGRhdGVfcGFnaW5nX21vZGVzKHN0cnVjdCB2Y3B1ICp2KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L21tL3NoYWRvdy9jb21tb24uYyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMK aW5kZXggMDNjYjI0ZC4uMTRhMDdkZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3NoYWRv dy9jb21tb24uYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCkBAIC0zMzEs NyArMzMxLDcgQEAgY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyAqc2hhZG93X2luaXRfZW11 bGF0aW9uKAogICAgIGNyZWcgPSBodm1fZ2V0X3NlZ19yZWcoeDg2X3NlZ19jcywgc2hfY3R4dCk7 CiAKICAgICAvKiBXb3JrIG91dCB0aGUgZW11bGF0aW9uIG1vZGUuICovCi0gICAgaWYgKCBodm1f bG9uZ19tb2RlX2VuYWJsZWQodikgJiYgY3JlZy0+YXR0ci5maWVsZHMubCApCisgICAgaWYgKCBo dm1fbG9uZ19tb2RlX2FjdGl2ZSh2KSAmJiBjcmVnLT5hdHRyLmZpZWxkcy5sICkKICAgICB7CiAg ICAgICAgIHNoX2N0eHQtPmN0eHQuYWRkcl9zaXplID0gc2hfY3R4dC0+Y3R4dC5zcF9zaXplID0g NjQ7CiAgICAgfQpAQCAtMjkyMSw3ICsyOTIxLDcgQEAgc3RhdGljIHZvaWQgc2hfdXBkYXRlX3Bh Z2luZ19tb2RlcyhzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgICAgIHYtPmFyY2guZ3Vlc3RfdGFi bGUgPSBkLT5hcmNoLnBhZ2luZy5zaGFkb3cudW5wYWdlZF9wYWdldGFibGU7CiAgICAgICAgICAg ICB2LT5hcmNoLnBhZ2luZy5tb2RlID0gJlNIQURPV19JTlRFUk5BTF9OQU1FKHNoX3BhZ2luZ19t b2RlLCAyKTsKICAgICAgICAgfQotICAgICAgICBlbHNlIGlmICggaHZtX2xvbmdfbW9kZV9lbmFi bGVkKHYpICkKKyAgICAgICAgZWxzZSBpZiAoIGh2bV9sb25nX21vZGVfYWN0aXZlKHYpICkKICAg ICAgICAgewogICAgICAgICAgICAgLy8gbG9uZyBtb2RlIGd1ZXN0Li4uCiAgICAgICAgICAgICB2 LT5hcmNoLnBhZ2luZy5tb2RlID0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9vcHJvZmlsZS9i YWNrdHJhY2UuYyBiL3hlbi9hcmNoL3g4Ni9vcHJvZmlsZS9iYWNrdHJhY2UuYwppbmRleCBmMGZi YjQyLi4zMTY4MjFmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvYmFja3RyYWNl LmMKKysrIGIveGVuL2FyY2gveDg2L29wcm9maWxlL2JhY2t0cmFjZS5jCkBAIC00Nyw3ICs0Nyw3 IEBAIGR1bXBfaHlwZXJ2aXNvcl9iYWNrdHJhY2Uoc3RydWN0IHZjcHUgKnZjcHUsIGNvbnN0IHN0 cnVjdCBmcmFtZV9oZWFkICpoZWFkLAogc3RhdGljIGlubGluZSBpbnQgaXNfMzJiaXRfdmNwdShz dHJ1Y3QgdmNwdSAqdmNwdSkKIHsKICAgICBpZiAoaXNfaHZtX3ZjcHUodmNwdSkpCi0gICAgICAg IHJldHVybiAhaHZtX2xvbmdfbW9kZV9lbmFibGVkKHZjcHUpOworICAgICAgICByZXR1cm4gIWh2 bV9sb25nX21vZGVfYWN0aXZlKHZjcHUpOwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuIGlzX3B2 XzMyYml0X3ZjcHUodmNwdSk7CiB9CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS9odm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oCmluZGV4IGM4NTQxODMuLjQ5 YzgwMDEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oCisrKyBiL3hl bi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oCkBAIC0zMDIsOCArMzAyLDcgQEAgaW50IGh2bV9n aXJxX2Rlc3RfMl92Y3B1X2lkKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ4X3QgZGVzdCwgdWludDhf dCBkZXN0X21vZGUpOwogI2RlZmluZSBoYXBfaGFzXzFnYiAoISEoaHZtX2Z1bmNzLmhhcF9jYXBh YmlsaXRpZXMgJiBIVk1fSEFQX1NVUEVSUEFHRV8xR0IpKQogI2RlZmluZSBoYXBfaGFzXzJtYiAo ISEoaHZtX2Z1bmNzLmhhcF9jYXBhYmlsaXRpZXMgJiBIVk1fSEFQX1NVUEVSUEFHRV8yTUIpKQog Ci0jZGVmaW5lIGh2bV9sb25nX21vZGVfZW5hYmxlZCh2KSBcCi0gICAgKCh2KS0+YXJjaC5odm1f dmNwdS5ndWVzdF9lZmVyICYgRUZFUl9MTUEpCisjZGVmaW5lIGh2bV9sb25nX21vZGVfYWN0aXZl KHYpICghISgodiktPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZlciAmIEVGRVJfTE1BKSkKIAogZW51 bSBodm1faW50YmxrCiBodm1faW50ZXJydXB0X2Jsb2NrZWQoc3RydWN0IHZjcHUgKnYsIHN0cnVj dCBodm1faW50YWNrIGludGFjayk7Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=