From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH for 4.9 3/6] x86/hvm: Fix segmentation logic for system segments Date: Fri, 31 Mar 2017 20:50:50 +0100 Message-ID: <1490989853-21879-4-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: Andrew Cooper , Julien Grall , Paul Durrant , Tim Deegan , Jan Beulich List-Id: xen-devel@lists.xenproject.org Yy9zIGM3ODVmNzU5NzE4ICJ4ODYvZW11bDogUHJlcGFyZSB0byBhbGxvdyB1c2Ugb2Ygc3lzdGVt IHNlZ21lbnRzIGZvciBtZW1vcnkKcmVmZXJlbmNlcyIgbWFkZSBhbHRlcmF0aW9ucyB0byBodm1f dmlydHVhbF90b19saW5lYXJfYWRkcigpIHRvIGFsbG93IGZvciB0aGUKdXNlIG9mIHN5c3RlbSBz ZWdtZW50cy4KCkhvd2V2ZXIsIHRoZSBkZXRlcm1pbmF0aW9uIG9mIHdoaWNoIHNlZ21lbnRhdGlv biBtb2RlIHRvIHVzZSB3YXMgYmFzZWQgb24gdGhlCmN1cnJlbnQgYWRkcmVzcyBzaXplIGZyb20g ZW11bGF0aW9uLiAgSW4gcGFydGljdWxhciwgaXQgaXMgd3JvbmcgZm9yIHN5c3RlbQpzZWdtZW50 IGFjY2Vzc2VzIHdoaWxlIGV4ZWN1dGluZyBpbiBhIGNvbXBhdGliaWxpdHkgbW9kZSBjb2RlIHNl Z21lbnQuCgpSZXBsYWNlIHRoZSBhZGRyX3NpemUgcGFyYW1ldGVyIHdpdGggYSBuZXcgc2VnbWVu dGF0aW9uIG1vZGUgZW51bWVyYXRpb24gKHRvCnByZXZlbnQgdGhpcyBtaXN0YWtlIGZyb20gYmVp bmcgbWFkZSBhZ2FpbiksIGFuZCBpbnRyb2R1Y2UgYSBuZXcgaGVscGVyIHRvCmNhbGN1bGF0ZSB0 aGUgY29ycmVjdCBzZWdtZW5hdGlvbiBtb2RlIGZyb20gY3VycmVudCByZWdpc3RlciBzdGF0ZS4K ClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgpDQzogUGF1bCBEdXJyYW50 IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KQ0M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpD QzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KClRoaXMgaXMgdGhlIHNhbWUg bG9naWNhbCBidWcgdGhhdCBjYXVzZWQgWFNBLTE5NiwgYnV0IGx1Y2tpbHkgaGFzbid0IHlldCBi ZWVuCmluIGEgcmVsZWFzZWQgdmVyc2lvbiBvZiBYZW4uCi0tLQogeGVuL2FyY2gveDg2L2h2bS9l bXVsYXRlLmMgICAgICB8IDE3ICsrKysrKysrKystLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vaHZt LmMgICAgICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyB8ICA1ICsrKystCiB4ZW4vaW5jbHVk ZS9hc20teDg2L2h2bS9odm0uaCAgIHwgMTIgKysrKysrKysrKy0KIDQgZmlsZXMgY2hhbmdlZCwg NTggaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwppbmRleCAzZDA4 NGNhLi5mNTc4Nzk2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwpAQCAtNTA4LDYgKzUwOCw3IEBAIHN0YXRpYyBp bnQgaHZtZW11bF92aXJ0dWFsX3RvX2xpbmVhcigKICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4 dCAqaHZtZW11bF9jdHh0LAogICAgIHVuc2lnbmVkIGxvbmcgKmxpbmVhcikKIHsKKyAgICBlbnVt IGh2bV9zZWdtZW50YXRpb25fbW9kZSBzZWdfbW9kZTsKICAgICBzdHJ1Y3Qgc2VnbWVudF9yZWdp c3RlciAqcmVnOwogICAgIGludCBva2F5OwogICAgIHVuc2lnbmVkIGxvbmcgbWF4X3JlcHMgPSA0 MDk2OwpAQCAtNTE4LDYgKzUxOSw5IEBAIHN0YXRpYyBpbnQgaHZtZW11bF92aXJ0dWFsX3RvX2xp bmVhcigKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKICAgICB9CiAKKyAgICBzZWdfbW9k ZSA9IGh2bV9zZWdfbW9kZSgKKyAgICAgICAgY3VycmVudCwgc2VnLCBodm1lbXVsX2dldF9zZWdf cmVnKHg4Nl9zZWdfY3MsIGh2bWVtdWxfY3R4dCkpOworCiAgICAgLyoKICAgICAgKiBJZiBpbnRy b3NwZWN0aW9uIGhhcyBiZWVuIGVuYWJsZWQgZm9yIHRoaXMgZG9tYWluLCBhbmQgd2UncmUgZW11 bGF0aW5nCiAgICAgICogYmVjYXNlIGEgdm1fcmVwbHkgYXNrZWQgdXMgdG8gKGkuZS4gbm90IGRv aW5nIHJlZ3VsYXIgSU8pIHJlcHMgc2hvdWxkCkBAIC01NDgsOCArNTUyLDcgQEAgc3RhdGljIGlu dCBodm1lbXVsX3ZpcnR1YWxfdG9fbGluZWFyKAogICAgICAgICBBU1NFUlQob2Zmc2V0ID49ICgo KnJlcHMgLSAxKSAqIGJ5dGVzX3Blcl9yZXApKTsKICAgICAgICAgb2theSA9IGh2bV92aXJ0dWFs X3RvX2xpbmVhcl9hZGRyKAogICAgICAgICAgICAgc2VnLCByZWcsIG9mZnNldCAtICgqcmVwcyAt IDEpICogYnl0ZXNfcGVyX3JlcCwKLSAgICAgICAgICAgICpyZXBzICogYnl0ZXNfcGVyX3JlcCwg YWNjZXNzX3R5cGUsCi0gICAgICAgICAgICBodm1lbXVsX2N0eHQtPmN0eHQuYWRkcl9zaXplLCBs aW5lYXIpOworICAgICAgICAgICAgKnJlcHMgKiBieXRlc19wZXJfcmVwLCBhY2Nlc3NfdHlwZSwg c2VnX21vZGUsIGxpbmVhcik7CiAgICAgICAgICpsaW5lYXIgKz0gKCpyZXBzIC0gMSkgKiBieXRl c19wZXJfcmVwOwogICAgICAgICBpZiAoIGh2bWVtdWxfY3R4dC0+Y3R4dC5hZGRyX3NpemUgIT0g NjQgKQogICAgICAgICAgICAgKmxpbmVhciA9ICh1aW50MzJfdCkqbGluZWFyOwpAQCAtNTU3LDgg KzU2MCw4IEBAIHN0YXRpYyBpbnQgaHZtZW11bF92aXJ0dWFsX3RvX2xpbmVhcigKICAgICBlbHNl CiAgICAgewogICAgICAgICBva2F5ID0gaHZtX3ZpcnR1YWxfdG9fbGluZWFyX2FkZHIoCi0gICAg ICAgICAgICBzZWcsIHJlZywgb2Zmc2V0LCAqcmVwcyAqIGJ5dGVzX3Blcl9yZXAsIGFjY2Vzc190 eXBlLAotICAgICAgICAgICAgaHZtZW11bF9jdHh0LT5jdHh0LmFkZHJfc2l6ZSwgbGluZWFyKTsK KyAgICAgICAgICAgIHNlZywgcmVnLCBvZmZzZXQsICpyZXBzICogYnl0ZXNfcGVyX3JlcCwKKyAg ICAgICAgICAgIGFjY2Vzc190eXBlLCBzZWdfbW9kZSwgbGluZWFyKTsKICAgICB9CiAKICAgICBp ZiAoIG9rYXkgKQpAQCAtMjA2OCwxNCArMjA3MSwxNiBAQCB2b2lkIGh2bV9lbXVsYXRlX2luaXRf cGVyX2luc24oCiAgICAgaHZtZW11bF9jdHh0LT5pbnNuX2J1Zl9laXAgPSBodm1lbXVsX2N0eHQt PmN0eHQucmVncy0+cmlwOwogICAgIGlmICggIWluc25fYnl0ZXMgKQogICAgIHsKKyAgICAgICAg ZW51bSBodm1fc2VnbWVudGF0aW9uX21vZGUgc2VnX21vZGUgPQorICAgICAgICAgICAgaHZtX3Nl Z19tb2RlKGN1cnIsIHg4Nl9zZWdfY3MsICZodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19j c10pOworCiAgICAgICAgIGh2bWVtdWxfY3R4dC0+aW5zbl9idWZfYnl0ZXMgPQogICAgICAgICAg ICAgaHZtX2dldF9pbnNuX2J5dGVzKGN1cnIsIGh2bWVtdWxfY3R4dC0+aW5zbl9idWYpID86CiAg ICAgICAgICAgICAoaHZtX3ZpcnR1YWxfdG9fbGluZWFyX2FkZHIoeDg2X3NlZ19jcywKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaHZtZW11bF9jdHh0LT5zZWdfcmVn W3g4Nl9zZWdfY3NdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh2 bWVtdWxfY3R4dC0+aW5zbl9idWZfZWlwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVvZihodm1lbXVsX2N0eHQtPmluc25fYnVmKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBodm1fYWNjZXNzX2luc25fZmV0Y2gsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHZtZW11bF9jdHh0LT5jdHh0LmFkZHJf c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodm1fYWNjZXNz X2luc25fZmV0Y2gsIHNlZ19tb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZhZGRyKSAmJgogICAgICAgICAgICAgIGh2bV9mZXRjaF9mcm9tX2d1ZXN0X2xpbmVh cihodm1lbXVsX2N0eHQtPmluc25fYnVmLCBhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplb2YoaHZtZW11bF9jdHh0LT5pbnNuX2J1ZiksCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRl eCA5ZjgzY2Q4Li5mMjUwYWZiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisr KyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTIzNzQsMTMgKzIzNzQsMjcgQEAgaW50IGh2 bV9zZXRfY3I0KHVuc2lnbmVkIGxvbmcgdmFsdWUsIGJvb2xfdCBtYXlfZGVmZXIpCiAgICAgcmV0 dXJuIFg4NkVNVUxfT0tBWTsKIH0KIAorZW51bSBodm1fc2VnbWVudGF0aW9uX21vZGUgaHZtX3Nl Z19tb2RlKAorICAgIGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywK KyAgICBjb25zdCBzdHJ1Y3Qgc2VnbWVudF9yZWdpc3RlciAqY3MpCit7CisgICAgaWYgKCAhKHYt PmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbMF0gJiBYODZfQ1IwX1BFKSApCisgICAgICAgIHJldHVy biBodm1fc2VnX21vZGVfcmVhbDsKKworICAgIGlmICggaHZtX2xvbmdfbW9kZV9hY3RpdmUodikg JiYKKyAgICAgICAgIChpc194ODZfc3lzdGVtX3NlZ21lbnQoc2VnKSB8fCBjcy0+YXR0ci5maWVs ZHMubCkgKQorICAgICAgICByZXR1cm4gaHZtX3NlZ19tb2RlX2xvbmc7CisKKyAgICByZXR1cm4g aHZtX3NlZ19tb2RlX3Byb3Q7Cit9CisKIGJvb2xfdCBodm1fdmlydHVhbF90b19saW5lYXJfYWRk cigKICAgICBlbnVtIHg4Nl9zZWdtZW50IHNlZywKICAgICBjb25zdCBzdHJ1Y3Qgc2VnbWVudF9y ZWdpc3RlciAqcmVnLAogICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAogICAgIHVuc2lnbmVkIGlu dCBieXRlcywKICAgICBlbnVtIGh2bV9hY2Nlc3NfdHlwZSBhY2Nlc3NfdHlwZSwKLSAgICB1bnNp Z25lZCBpbnQgYWRkcl9zaXplLAorICAgIGVudW0gaHZtX3NlZ21lbnRhdGlvbl9tb2RlIHNlZ19t b2RlLAogICAgIHVuc2lnbmVkIGxvbmcgKmxpbmVhcl9hZGRyKQogewogICAgIHVuc2lnbmVkIGxv bmcgYWRkciA9IG9mZnNldCwgbGFzdF9ieXRlOwpAQCAtMjM5NCw4ICsyNDA4LDkgQEAgYm9vbF90 IGh2bV92aXJ0dWFsX3RvX2xpbmVhcl9hZGRyKAogICAgICAqLwogICAgIEFTU0VSVChzZWcgPCB4 ODZfc2VnX25vbmUpOwogCi0gICAgaWYgKCAhKGN1cnJlbnQtPmFyY2guaHZtX3ZjcHUuZ3Vlc3Rf Y3JbMF0gJiBYODZfQ1IwX1BFKSApCisgICAgc3dpdGNoICggc2VnX21vZGUgKQogICAgIHsKKyAg ICBjYXNlIGh2bV9zZWdfbW9kZV9yZWFsOgogICAgICAgICAvKgogICAgICAgICAgKiBSRUFMIE1P REU6IERvbid0IGJvdGhlciB3aXRoIHNlZ21lbnQgYWNjZXNzIGNoZWNrcy4KICAgICAgICAgICog Q2VydGFpbiBvZiB0aGVtIGFyZSBub3QgZG9uZSBpbiBuYXRpdmUgcmVhbCBtb2RlIGFueXdheS4K QEAgLTI0MDQsMTEgKzI0MTksMTEgQEAgYm9vbF90IGh2bV92aXJ0dWFsX3RvX2xpbmVhcl9hZGRy KAogICAgICAgICBsYXN0X2J5dGUgPSAodWludDMyX3QpYWRkciArIGJ5dGVzIC0gISFieXRlczsK ICAgICAgICAgaWYgKCBsYXN0X2J5dGUgPCBhZGRyICkKICAgICAgICAgICAgIGdvdG8gb3V0Owot ICAgIH0KLSAgICBlbHNlIGlmICggYWRkcl9zaXplICE9IDY0ICkKLSAgICB7CisgICAgICAgIGJy ZWFrOworCisgICAgY2FzZSBodm1fc2VnX21vZGVfcHJvdDoKICAgICAgICAgLyoKLSAgICAgICAg ICogQ09NUEFUSUJJTElUWSBNT0RFOiBBcHBseSBzZWdtZW50IGNoZWNrcyBhbmQgYWRkIGJhc2Uu CisgICAgICAgICAqIFBST1RFQ1RFRC9DT01QQVRJQklMSVRZIE1PREU6IEFwcGx5IHNlZ21lbnQg Y2hlY2tzIGFuZCBhZGQgYmFzZS4KICAgICAgICAgICovCiAKICAgICAgICAgLyoKQEAgLTI0NTQs OSArMjQ2OSw5IEBAIGJvb2xfdCBodm1fdmlydHVhbF90b19saW5lYXJfYWRkcigKICAgICAgICAg fQogICAgICAgICBlbHNlIGlmICggKGxhc3RfYnl0ZSA+IHJlZy0+bGltaXQpIHx8IChsYXN0X2J5 dGUgPCBvZmZzZXQpICkKICAgICAgICAgICAgIGdvdG8gb3V0OyAvKiBsYXN0IGJ5dGUgaXMgYmV5 b25kIGxpbWl0IG9yIHdyYXBzIDB4RkZGRkZGRkYgKi8KLSAgICB9Ci0gICAgZWxzZQotICAgIHsK KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIGh2bV9zZWdfbW9kZV9sb25nOgogICAgICAgICAv KgogICAgICAgICAgKiBVc2VyIHNlZ21lbnRzIGFyZSBhbHdheXMgdHJlYXRlZCBhcyBwcmVzZW50 LiAgU3lzdGVtIHNlZ21lbnQgbWF5CiAgICAgICAgICAqIG5vdCBiZSwgYW5kIGFsc28gaW5jdXIg bGltaXQgY2hlY2tzLgpAQCAtMjQ3Niw2ICsyNDkxLDExIEBAIGJvb2xfdCBodm1fdmlydHVhbF90 b19saW5lYXJfYWRkcigKICAgICAgICAgaWYgKCAhaXNfY2Fub25pY2FsX2FkZHJlc3MoYWRkcikg fHwgbGFzdF9ieXRlIDwgYWRkciB8fAogICAgICAgICAgICAgICFpc19jYW5vbmljYWxfYWRkcmVz cyhsYXN0X2J5dGUpICkKICAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICBicmVhazsKKwor ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgICAgICBnb3Rv IG91dDsKICAgICB9CiAKICAgICAvKiBBbGwgY2hlY2tzIG9rLiAqLwpAQCAtMzAyNCw3ICszMDQ0 LDcgQEAgdm9pZCBodm1fdGFza19zd2l0Y2goCiAgICAgICAgICAgICBzcCA9IHJlZ3MtPnNwIC09 IG9wc3o7CiAgICAgICAgIGlmICggaHZtX3ZpcnR1YWxfdG9fbGluZWFyX2FkZHIoeDg2X3NlZ19z cywgJnNlZ3IsIHNwLCBvcHN6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGh2bV9hY2Nlc3Nfd3JpdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMTYgPDwgc2Vnci5hdHRyLmZpZWxkcy5kYiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBodm1fc2VnX21vZGVfcHJvdCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmbGluZWFyX2FkZHIpICkKICAgICAgICAgewogICAgICAgICAg ICAgcmMgPSBodm1fY29weV90b19ndWVzdF9saW5lYXIobGluZWFyX2FkZHIsICZlcnJjb2RlLCBv cHN6LCAwLApAQCAtMzYwMCwxNCArMzYyMCwxMyBAQCB2b2lkIGh2bV91ZF9pbnRlcmNlcHQoc3Ry dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgIGNvbnN0IHN0cnVjdCBzZWdtZW50X3Jl Z2lzdGVyICpjcyA9ICZjdHh0LnNlZ19yZWdbeDg2X3NlZ19jc107CiAgICAgICAgIHVpbnQzMl90 IHdhbGsgPSAoY3R4dC5zZWdfcmVnW3g4Nl9zZWdfc3NdLmF0dHIuZmllbGRzLmRwbCA9PSAzKQog ICAgICAgICAgICAgPyBQRkVDX3VzZXJfbW9kZSA6IDA7CisgICAgICAgIGVudW0gaHZtX3NlZ21l bnRhdGlvbl9tb2RlIHNlZ19tb2RlID0gaHZtX3NlZ19tb2RlKGN1ciwgeDg2X3NlZ19jcywgY3Mp OwogICAgICAgICB1bnNpZ25lZCBsb25nIGFkZHI7CiAgICAgICAgIGNoYXIgc2lnWzVdOyAvKiB1 ZDI7IC5hc2NpaSAieGVuIiAqLwogCiAgICAgICAgIGlmICggaHZtX3ZpcnR1YWxfdG9fbGluZWFy X2FkZHIoeDg2X3NlZ19jcywgY3MsIHJlZ3MtPnJpcCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplb2Yoc2lnKSwgaHZtX2FjY2Vzc19pbnNuX2ZldGNoLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChodm1fbG9uZ19tb2RlX2FjdGl2 ZShjdXIpICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzLT5h dHRyLmZpZWxkcy5sKSA/IDY0IDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjcy0+YXR0ci5maWVsZHMuZGIgPyAzMiA6IDE2LCAmYWRkcikgJiYKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdfbW9kZSwgJmFkZHIpICYmCiAgICAgICAg ICAgICAgKGh2bV9mZXRjaF9mcm9tX2d1ZXN0X2xpbmVhcihzaWcsIGFkZHIsIHNpemVvZihzaWcp LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FsaywgTlVMTCkg PT0gSFZNQ09QWV9va2F5KSAmJgogICAgICAgICAgICAgIChtZW1jbXAoc2lnLCAiXHhmXHhieGVu Iiwgc2l6ZW9mKHNpZykpID09IDApICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFk b3cvY29tbW9uLmMgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCmluZGV4IDE0YTA3 ZGQuLjU1MWE3ZDMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMK KysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYwpAQCAtMTQ0LDYgKzE0NCw3IEBA IHN0YXRpYyBpbnQgaHZtX3RyYW5zbGF0ZV92aXJ0dWFsX2FkZHIoCiAgICAgc3RydWN0IHNoX2Vt dWxhdGVfY3R4dCAqc2hfY3R4dCwKICAgICB1bnNpZ25lZCBsb25nICpsaW5lYXIpCiB7CisgICAg ZW51bSBodm1fc2VnbWVudGF0aW9uX21vZGUgc2VnX21vZGU7CiAgICAgY29uc3Qgc3RydWN0IHNl Z21lbnRfcmVnaXN0ZXIgKnJlZzsKICAgICBpbnQgb2theTsKIApAQCAtMTUxLDggKzE1MiwxMCBA QCBzdGF0aWMgaW50IGh2bV90cmFuc2xhdGVfdmlydHVhbF9hZGRyKAogICAgIGlmICggSVNfRVJS KHJlZykgKQogICAgICAgICByZXR1cm4gLVBUUl9FUlIocmVnKTsKIAorICAgIHNlZ19tb2RlID0g aHZtX3NlZ19tb2RlKGN1cnJlbnQsIHNlZywgaHZtX2dldF9zZWdfcmVnKHg4Nl9zZWdfY3MsIHNo X2N0eHQpKTsKKwogICAgIG9rYXkgPSBodm1fdmlydHVhbF90b19saW5lYXJfYWRkcigKLSAgICAg ICAgc2VnLCByZWcsIG9mZnNldCwgYnl0ZXMsIGFjY2Vzc190eXBlLCBzaF9jdHh0LT5jdHh0LmFk ZHJfc2l6ZSwgbGluZWFyKTsKKyAgICAgICAgc2VnLCByZWcsIG9mZnNldCwgYnl0ZXMsIGFjY2Vz c190eXBlLCBzZWdfbW9kZSwgbGluZWFyKTsKIAogICAgIGlmICggIW9rYXkgKQogICAgIHsKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9odm0vaHZtLmgKaW5kZXggNDljODAwMS4uZWQ2OTk0YyAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZt LmgKQEAgLTQ2MCw2ICs0NjAsMTYgQEAgdm9pZCBodm1fdGFza19zd2l0Y2goCiAgICAgdWludDE2 X3QgdHNzX3NlbCwgZW51bSBodm1fdGFza19zd2l0Y2hfcmVhc29uIHRhc2tzd2l0Y2hfcmVhc29u LAogICAgIGludDMyX3QgZXJyY29kZSk7CiAKK2VudW0gaHZtX3NlZ21lbnRhdGlvbl9tb2RlIHsK KyAgICBodm1fc2VnX21vZGVfcmVhbCwKKyAgICBodm1fc2VnX21vZGVfcHJvdCwKKyAgICBodm1f c2VnX21vZGVfbG9uZywKK307CisKK2VudW0gaHZtX3NlZ21lbnRhdGlvbl9tb2RlIGh2bV9zZWdf bW9kZSgKKyAgICBjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgZW51bSB4ODZfc2VnbWVudCBzZWcsCisg ICAgY29uc3Qgc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIgKmNzKTsKKwogZW51bSBodm1fYWNjZXNz X3R5cGUgewogICAgIGh2bV9hY2Nlc3NfaW5zbl9mZXRjaCwKICAgICBodm1fYWNjZXNzX25vbmUs CkBAIC00NzIsNyArNDgyLDcgQEAgYm9vbF90IGh2bV92aXJ0dWFsX3RvX2xpbmVhcl9hZGRyKAog ICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAogICAgIHVuc2lnbmVkIGludCBieXRlcywKICAgICBl bnVtIGh2bV9hY2Nlc3NfdHlwZSBhY2Nlc3NfdHlwZSwKLSAgICB1bnNpZ25lZCBpbnQgYWRkcl9z aXplLAorICAgIGVudW0gaHZtX3NlZ21lbnRhdGlvbl9tb2RlIHNlZ19tb2RlLAogICAgIHVuc2ln bmVkIGxvbmcgKmxpbmVhcl9hZGRyKTsKIAogdm9pZCAqaHZtX21hcF9ndWVzdF9mcmFtZV9ydyh1 bnNpZ25lZCBsb25nIGdmbiwgYm9vbF90IHBlcm1hbmVudCwKLS0gCjIuMS40CgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==