From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 16/19] x86/hvm: Rename hvm_copy_*_guest_virt() to hvm_copy_*_guest_linear() Date: Mon, 28 Nov 2016 11:13:33 +0000 Message-ID: <1480331616-6165-17-git-send-email-andrew.cooper3@citrix.com> References: <1480331616-6165-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: <1480331616-6165-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 , Paul Durrant List-Id: xen-devel@lists.xenproject.org VGhlIGZ1bmN0aW9ucyB1c2UgbGluZWFyIGFkZHJlc3Nlcywgbm90IHZpcnR1YWwgYWRkcmVzc2Vz LCBhcyBubyBzZWdtZW50YXRpb24KaXMgdXNlZC4gIChMb3RzIG9mIG90aGVyIGNvZGUgaW4gWGVu IG1ha2VzIHRoaXMgbWlzdGFrZS4pCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KUmV2aWV3ZWQt Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCkNDOiBQYXVsIER1cnJhbnQg PHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5j ICAgICAgICB8IDEyICsrKystLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAg fCA2MCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4 Ni9odm0vdm14L3Z2bXguYyAgICAgICB8ICA2ICsrLS0KIHhlbi9hcmNoL3g4Ni9tbS9zaGFkb3cv Y29tbW9uLmMgICB8ICA4ICsrKy0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3VwcG9ydC5o IHwgMTQgKysrKy0tLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDUwIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jIGIveGVu L2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKaW5kZXggNTE2NWJiMi4uZWZkNmQzMiAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9lbXVs YXRlLmMKQEAgLTc5MSw4ICs3OTEsOCBAQCBzdGF0aWMgaW50IF9faHZtZW11bF9yZWFkKAogICAg ICAgICBwZmVjIHw9IFBGRUNfdXNlcl9tb2RlOwogCiAgICAgcmMgPSAoKGFjY2Vzc190eXBlID09 IGh2bV9hY2Nlc3NfaW5zbl9mZXRjaCkgPwotICAgICAgICAgIGh2bV9mZXRjaF9mcm9tX2d1ZXN0 X3ZpcnQocF9kYXRhLCBhZGRyLCBieXRlcywgcGZlYywgJnBmaW5mbykgOgotICAgICAgICAgIGh2 bV9jb3B5X2Zyb21fZ3Vlc3RfdmlydChwX2RhdGEsIGFkZHIsIGJ5dGVzLCBwZmVjLCAmcGZpbmZv KSk7CisgICAgICAgICAgaHZtX2ZldGNoX2Zyb21fZ3Vlc3RfbGluZWFyKHBfZGF0YSwgYWRkciwg Ynl0ZXMsIHBmZWMsICZwZmluZm8pIDoKKyAgICAgICAgICBodm1fY29weV9mcm9tX2d1ZXN0X2xp bmVhcihwX2RhdGEsIGFkZHIsIGJ5dGVzLCBwZmVjLCAmcGZpbmZvKSk7CiAKICAgICBzd2l0Y2gg KCByYyApCiAgICAgewpAQCAtODk4LDcgKzg5OCw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF93cml0 ZSgKICAgICAgICAgIChodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uYXR0ci5maWVs ZHMuZHBsID09IDMpICkKICAgICAgICAgcGZlYyB8PSBQRkVDX3VzZXJfbW9kZTsKIAotICAgIHJj ID0gaHZtX2NvcHlfdG9fZ3Vlc3RfdmlydChhZGRyLCBwX2RhdGEsIGJ5dGVzLCBwZmVjLCAmcGZp bmZvKTsKKyAgICByYyA9IGh2bV9jb3B5X3RvX2d1ZXN0X2xpbmVhcihhZGRyLCBwX2RhdGEsIGJ5 dGVzLCBwZmVjLCAmcGZpbmZvKTsKIAogICAgIHN3aXRjaCAoIHJjICkKICAgICB7CkBAIC0xOTQ3 LDkgKzE5NDcsOSBAQCB2b2lkIGh2bV9lbXVsYXRlX2luaXRfcGVyX2luc24oCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHZtX2FjY2Vzc19pbnNuX2ZldGNoLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh2bWVtdWxfY3R4dC0+Y3R4dC5h ZGRyX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFkZHIp ICYmCi0gICAgICAgICAgICAgaHZtX2ZldGNoX2Zyb21fZ3Vlc3RfdmlydChodm1lbXVsX2N0eHQt Pmluc25fYnVmLCBhZGRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mKGh2bWVtdWxfY3R4dC0+aW5zbl9idWYpLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGZlYywgTlVMTCkgPT0gSFZNQ09QWV9va2F5KSA/CisgICAgICAgICAg ICAgaHZtX2ZldGNoX2Zyb21fZ3Vlc3RfbGluZWFyKGh2bWVtdWxfY3R4dC0+aW5zbl9idWYsIGFk ZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihodm1l bXVsX2N0eHQtPmluc25fYnVmKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGZlYywgTlVMTCkgPT0gSFZNQ09QWV9va2F5KSA/CiAgICAgICAgICAgICBzaXplb2Yo aHZtZW11bF9jdHh0LT5pbnNuX2J1ZikgOiAwOwogICAgIH0KICAgICBlbHNlCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA1 ZWFlMDZhLi4zN2VhZWUyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTI5MjUsNyArMjkyNSw3IEBAIHZvaWQgaHZtX3Rh c2tfc3dpdGNoKAogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICByYyA9IGh2bV9jb3B5 X2Zyb21fZ3Vlc3RfdmlydCgKKyAgICByYyA9IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfbGluZWFyKAog ICAgICAgICAmdHNzLCBwcmV2X3RyLmJhc2UsIHNpemVvZih0c3MpLCBQRkVDX3BhZ2VfcHJlc2Vu dCwgJnBmaW5mbyk7CiAgICAgaWYgKCByYyAhPSBIVk1DT1BZX29rYXkgKQogICAgICAgICBnb3Rv IG91dDsKQEAgLTI5NjAsMTUgKzI5NjAsMTUgQEAgdm9pZCBodm1fdGFza19zd2l0Y2goCiAgICAg aHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfbGR0ciwgJnNlZ3IpOwogICAgIHRz cy5sZHQgPSBzZWdyLnNlbDsKIAotICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfdmlydChwcmV2 X3RyLmJhc2UgKyBvZmZzZXRvZih0eXBlb2YodHNzKSwgZWlwKSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnRzcy5laXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldG9mKHR5cGVvZih0c3MpLCB0cmFjZSkgLQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvZmZzZXRvZih0eXBlb2YodHNzKSwgZWlwKSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUEZFQ19wYWdlX3ByZXNlbnQsICZwZmluZm8pOworICAgIHJjID0gaHZtX2Nv cHlfdG9fZ3Vlc3RfbGluZWFyKHByZXZfdHIuYmFzZSArIG9mZnNldG9mKHR5cGVvZih0c3MpLCBl aXApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0c3MuZWlwLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVvZih0c3MpLCB0cmFjZSkg LQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVvZih0c3Mp LCBlaXApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGRUNfcGFnZV9wcmVz ZW50LCAmcGZpbmZvKTsKICAgICBpZiAoIHJjICE9IEhWTUNPUFlfb2theSApCiAgICAgICAgIGdv dG8gb3V0OwogCi0gICAgcmMgPSBodm1fY29weV9mcm9tX2d1ZXN0X3ZpcnQoCisgICAgcmMgPSBo dm1fY29weV9mcm9tX2d1ZXN0X2xpbmVhcigKICAgICAgICAgJnRzcywgdHIuYmFzZSwgc2l6ZW9m KHRzcyksIFBGRUNfcGFnZV9wcmVzZW50LCAmcGZpbmZvKTsKICAgICAvKgogICAgICAqIE5vdGU6 IFRoZSBIVk1DT1BZX2dmbl9zaGFyZWQgY2FzZSBjb3VsZCBiZSBvcHRpbWlzZWQsIGlmIHRoZSBj YWxsZWUKQEAgLTMwMDgsOSArMzAwOCw5IEBAIHZvaWQgaHZtX3Rhc2tfc3dpdGNoKAogICAgICAg ICByZWdzLT5lZmxhZ3MgfD0gWDg2X0VGTEFHU19OVDsKICAgICAgICAgdHNzLmJhY2tfbGluayA9 IHByZXZfdHIuc2VsOwogCi0gICAgICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfdmlydCh0ci5i YXNlICsgb2Zmc2V0b2YodHlwZW9mKHRzcyksIGJhY2tfbGluayksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmdHNzLmJhY2tfbGluaywgc2l6ZW9mKHRzcy5iYWNrX2xpbmsp LCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBmaW5mbyk7CisgICAg ICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfbGluZWFyKHRyLmJhc2UgKyBvZmZzZXRvZih0eXBl b2YodHNzKSwgYmFja19saW5rKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJnRzcy5iYWNrX2xpbmssIHNpemVvZih0c3MuYmFja19saW5rKSwgMCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBmaW5mbyk7CiAgICAgICAgIGlmICggcmMgPT0g SFZNQ09QWV9iYWRfZ3ZhX3RvX2dmbiApCiAgICAgICAgICAgICBleG5fcmFpc2VkID0gMTsKICAg ICAgICAgZWxzZSBpZiAoIHJjICE9IEhWTUNPUFlfb2theSApCkBAIC0zMDQ3LDggKzMwNDcsOCBA QCB2b2lkIGh2bV90YXNrX3N3aXRjaCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxNiA8PCBzZWdyLmF0dHIuZmllbGRzLmRiLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZsaW5lYXJfYWRkcikgKQogICAgICAgICB7Ci0gICAgICAgICAg ICByYyA9IGh2bV9jb3B5X3RvX2d1ZXN0X3ZpcnQobGluZWFyX2FkZHIsICZlcnJjb2RlLCBvcHN6 LCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwZmluZm8pOwor ICAgICAgICAgICAgcmMgPSBodm1fY29weV90b19ndWVzdF9saW5lYXIobGluZWFyX2FkZHIsICZl cnJjb2RlLCBvcHN6LCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJnBmaW5mbyk7CiAgICAgICAgICAgICBpZiAoIHJjID09IEhWTUNPUFlfYmFkX2d2YV90b19n Zm4gKQogICAgICAgICAgICAgICAgIGV4bl9yYWlzZWQgPSAxOwogICAgICAgICAgICAgZWxzZSBp ZiAoIHJjICE9IEhWTUNPUFlfb2theSApCkBAIC0zMDY3LDcgKzMwNjcsNyBAQCB2b2lkIGh2bV90 YXNrX3N3aXRjaCgKICNkZWZpbmUgSFZNQ09QWV9mcm9tX2d1ZXN0ICgwdTw8MCkKICNkZWZpbmUg SFZNQ09QWV90b19ndWVzdCAgICgxdTw8MCkKICNkZWZpbmUgSFZNQ09QWV9waHlzICAgICAgICgw dTw8MikKLSNkZWZpbmUgSFZNQ09QWV92aXJ0ICAgICAgICgxdTw8MikKKyNkZWZpbmUgSFZNQ09Q WV9saW5lYXIgICAgICgxdTw8MikKIHN0YXRpYyBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBfX2h2bV9j b3B5KAogICAgIHZvaWQgKmJ1ZiwgcGFkZHJfdCBhZGRyLCBpbnQgc2l6ZSwgdW5zaWduZWQgaW50 IGZsYWdzLCB1aW50MzJfdCBwZmVjLAogICAgIHBhZ2VmYXVsdF9pbmZvX3QgKnBmaW5mbykKQEAg LTMxMDEsNyArMzEwMSw3IEBAIHN0YXRpYyBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBfX2h2bV9jb3B5 KAogCiAgICAgICAgIGNvdW50ID0gbWluX3QoaW50LCBQQUdFX1NJWkUgLSBncGEsIHRvZG8pOwog Ci0gICAgICAgIGlmICggZmxhZ3MgJiBIVk1DT1BZX3ZpcnQgKQorICAgICAgICBpZiAoIGZsYWdz ICYgSFZNQ09QWV9saW5lYXIgKQogICAgICAgICB7CiAgICAgICAgICAgICBnZm4gPSBwYWdpbmdf Z3ZhX3RvX2dmbihjdXJyLCBhZGRyLCAmcGZlYyk7CiAgICAgICAgICAgICBpZiAoIGdmbiA9PSBn Zm5feChJTlZBTElEX0dGTikgKQpAQCAtMzI5NSwzMCArMzI5NSwzMCBAQCBlbnVtIGh2bV9jb3B5 X3Jlc3VsdCBodm1fY29weV9mcm9tX2d1ZXN0X3BoeXMoCiAgICAgICAgICAgICAgICAgICAgICAg SFZNQ09QWV9mcm9tX2d1ZXN0IHwgSFZNQ09QWV9waHlzLCAwLCBOVUxMKTsKIH0KIAotZW51bSBo dm1fY29weV9yZXN1bHQgaHZtX2NvcHlfdG9fZ3Vlc3RfdmlydCgKLSAgICB1bnNpZ25lZCBsb25n IHZhZGRyLCB2b2lkICpidWYsIGludCBzaXplLCB1aW50MzJfdCBwZmVjLAorZW51bSBodm1fY29w eV9yZXN1bHQgaHZtX2NvcHlfdG9fZ3Vlc3RfbGluZWFyKAorICAgIHVuc2lnbmVkIGxvbmcgYWRk ciwgdm9pZCAqYnVmLCBpbnQgc2l6ZSwgdWludDMyX3QgcGZlYywKICAgICBwYWdlZmF1bHRfaW5m b190ICpwZmluZm8pCiB7Ci0gICAgcmV0dXJuIF9faHZtX2NvcHkoYnVmLCB2YWRkciwgc2l6ZSwK LSAgICAgICAgICAgICAgICAgICAgICBIVk1DT1BZX3RvX2d1ZXN0IHwgSFZNQ09QWV92aXJ0LAor ICAgIHJldHVybiBfX2h2bV9jb3B5KGJ1ZiwgYWRkciwgc2l6ZSwKKyAgICAgICAgICAgICAgICAg ICAgICBIVk1DT1BZX3RvX2d1ZXN0IHwgSFZNQ09QWV9saW5lYXIsCiAgICAgICAgICAgICAgICAg ICAgICAgUEZFQ19wYWdlX3ByZXNlbnQgfCBQRkVDX3dyaXRlX2FjY2VzcyB8IHBmZWMsIHBmaW5m byk7CiB9CiAKLWVudW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfdmlydCgK LSAgICB2b2lkICpidWYsIHVuc2lnbmVkIGxvbmcgdmFkZHIsIGludCBzaXplLCB1aW50MzJfdCBw ZmVjLAorZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2NvcHlfZnJvbV9ndWVzdF9saW5lYXIoCisg ICAgdm9pZCAqYnVmLCB1bnNpZ25lZCBsb25nIGFkZHIsIGludCBzaXplLCB1aW50MzJfdCBwZmVj LAogICAgIHBhZ2VmYXVsdF9pbmZvX3QgKnBmaW5mbykKIHsKLSAgICByZXR1cm4gX19odm1fY29w eShidWYsIHZhZGRyLCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgIEhWTUNPUFlfZnJvbV9n dWVzdCB8IEhWTUNPUFlfdmlydCwKKyAgICByZXR1cm4gX19odm1fY29weShidWYsIGFkZHIsIHNp emUsCisgICAgICAgICAgICAgICAgICAgICAgSFZNQ09QWV9mcm9tX2d1ZXN0IHwgSFZNQ09QWV9s aW5lYXIsCiAgICAgICAgICAgICAgICAgICAgICAgUEZFQ19wYWdlX3ByZXNlbnQgfCBwZmVjLCBw ZmluZm8pOwogfQogCi1lbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fZmV0Y2hfZnJvbV9ndWVzdF92 aXJ0KAotICAgIHZvaWQgKmJ1ZiwgdW5zaWduZWQgbG9uZyB2YWRkciwgaW50IHNpemUsIHVpbnQz Ml90IHBmZWMsCitlbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fZmV0Y2hfZnJvbV9ndWVzdF9saW5l YXIoCisgICAgdm9pZCAqYnVmLCB1bnNpZ25lZCBsb25nIGFkZHIsIGludCBzaXplLCB1aW50MzJf dCBwZmVjLAogICAgIHBhZ2VmYXVsdF9pbmZvX3QgKnBmaW5mbykKIHsKLSAgICByZXR1cm4gX19o dm1fY29weShidWYsIHZhZGRyLCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgIEhWTUNPUFlf ZnJvbV9ndWVzdCB8IEhWTUNPUFlfdmlydCwKKyAgICByZXR1cm4gX19odm1fY29weShidWYsIGFk ZHIsIHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgSFZNQ09QWV9mcm9tX2d1ZXN0IHwgSFZN Q09QWV9saW5lYXIsCiAgICAgICAgICAgICAgICAgICAgICAgUEZFQ19wYWdlX3ByZXNlbnQgfCBQ RkVDX2luc25fZmV0Y2ggfCBwZmVjLCBwZmluZm8pOwogfQogCkBAIC0zMzMzLDcgKzMzMzMsNyBA QCB1bnNpZ25lZCBsb25nIGNvcHlfdG9fdXNlcl9odm0odm9pZCAqdG8sIGNvbnN0IHZvaWQgKmZy b20sIHVuc2lnbmVkIGludCBsZW4pCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHJj ID0gaHZtX2NvcHlfdG9fZ3Vlc3RfdmlydCgodW5zaWduZWQgbG9uZyl0bywgKHZvaWQgKilmcm9t LCBsZW4sIDAsIE5VTEwpOworICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfbGluZWFyKCh1bnNp Z25lZCBsb25nKXRvLCAodm9pZCAqKWZyb20sIGxlbiwgMCwgTlVMTCk7CiAgICAgcmV0dXJuIHJj ID8gbGVuIDogMDsgLyogZmFrZSBhIGNvcHlfdG9fdXNlcigpIHJldHVybiBjb2RlICovCiB9CiAK QEAgLTMzNjMsNyArMzM2Myw3IEBAIHVuc2lnbmVkIGxvbmcgY29weV9mcm9tX3VzZXJfaHZtKHZv aWQgKnRvLCBjb25zdCB2b2lkICpmcm9tLCB1bnNpZ25lZCBsZW4pCiAgICAgICAgIHJldHVybiAw OwogICAgIH0KIAotICAgIHJjID0gaHZtX2NvcHlfZnJvbV9ndWVzdF92aXJ0KHRvLCAodW5zaWdu ZWQgbG9uZylmcm9tLCBsZW4sIDAsIE5VTEwpOworICAgIHJjID0gaHZtX2NvcHlfZnJvbV9ndWVz dF9saW5lYXIodG8sICh1bnNpZ25lZCBsb25nKWZyb20sIGxlbiwgMCwgTlVMTCk7CiAgICAgcmV0 dXJuIHJjID8gbGVuIDogMDsgLyogZmFrZSBhIGNvcHlfZnJvbV91c2VyKCkgcmV0dXJuIGNvZGUg Ki8KIH0KIApAQCAtNDAzOCw4ICs0MDM4LDggQEAgdm9pZCBodm1fdWRfaW50ZXJjZXB0KHN0cnVj dCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChodm1fbG9uZ19tb2RlX2VuYWJsZWQoY3VyKSAmJgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjcy0+YXR0ci5maWVsZHMubCkgPyA2NCA6CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3MtPmF0dHIuZmllbGRzLmRiID8gMzIg OiAxNiwgJmFkZHIpICYmCi0gICAgICAgICAgICAgKGh2bV9mZXRjaF9mcm9tX2d1ZXN0X3ZpcnQo c2lnLCBhZGRyLCBzaXplb2Yoc2lnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3YWxrLCBOVUxMKSA9PSBIVk1DT1BZX29rYXkpICYmCisgICAgICAgICAgICAgKGh2 bV9mZXRjaF9mcm9tX2d1ZXN0X2xpbmVhcihzaWcsIGFkZHIsIHNpemVvZihzaWcpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FsaywgTlVMTCkgPT0gSFZNQ09Q WV9va2F5KSAmJgogICAgICAgICAgICAgIChtZW1jbXAoc2lnLCAiXHhmXHhieGVuIiwgc2l6ZW9m KHNpZykpID09IDApICkKICAgICAgICAgewogICAgICAgICAgICAgcmVncy0+ZWlwICs9IHNpemVv ZihzaWcpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jIGIveGVuL2Fy Y2gveDg2L2h2bS92bXgvdnZteC5jCmluZGV4IDczNDJkMTIuLmZkN2VhMGEgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92 dm14LmMKQEAgLTQ1Miw3ICs0NTIsNyBAQCBzdGF0aWMgaW50IGRlY29kZV92bXhfaW5zdChzdHJ1 Y3QgY3B1X3VzZXJfcmVncyAqcmVncywKICAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7CiAKICAg ICAgICAgaWYgKCBwb3BlcmFuZFMgIT0gTlVMTCAmJgotICAgICAgICAgICAgIGh2bV9jb3B5X2Zy b21fZ3Vlc3RfdmlydChwb3BlcmFuZFMsIGJhc2UsIHNpemUsIDAsICZwZmluZm8pCisgICAgICAg ICAgICAgaHZtX2NvcHlfZnJvbV9ndWVzdF9saW5lYXIocG9wZXJhbmRTLCBiYXNlLCBzaXplLCAw LCAmcGZpbmZvKQogICAgICAgICAgICAgICAgICAgIT0gSFZNQ09QWV9va2F5ICkKICAgICAgICAg ICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKICAgICAgICAgZGVjb2RlLT5tZW0gPSBiYXNl OwpAQCAtMTYyMiw3ICsxNjIyLDcgQEAgaW50IG52bXhfaGFuZGxlX3ZtcHRyc3Qoc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MpCiAKICAgICBncGEgPSBudmNwdS0+bnZfdnZtY3hhZGRyOwogCi0g ICAgcmMgPSBodm1fY29weV90b19ndWVzdF92aXJ0KGRlY29kZS5tZW0sICZncGEsIGRlY29kZS5s ZW4sIDAsICZwZmluZm8pOworICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfbGluZWFyKGRlY29k ZS5tZW0sICZncGEsIGRlY29kZS5sZW4sIDAsICZwZmluZm8pOwogICAgIGlmICggcmMgIT0gSFZN Q09QWV9va2F5ICkKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwogCkBAIC0xNjkz LDcgKzE2OTMsNyBAQCBpbnQgbnZteF9oYW5kbGVfdm1yZWFkKHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKQogCiAgICAgc3dpdGNoICggZGVjb2RlLnR5cGUgKSB7CiAgICAgY2FzZSBWTVhfSU5T VF9NRU1SRUdfVFlQRV9NRU1PUlk6Ci0gICAgICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3Rfdmly dChkZWNvZGUubWVtLCAmdmFsdWUsIGRlY29kZS5sZW4sIDAsICZwZmluZm8pOworICAgICAgICBy YyA9IGh2bV9jb3B5X3RvX2d1ZXN0X2xpbmVhcihkZWNvZGUubWVtLCAmdmFsdWUsIGRlY29kZS5s ZW4sIDAsICZwZmluZm8pOwogICAgICAgICBpZiAoIHJjICE9IEhWTUNPUFlfb2theSApCiAgICAg ICAgICAgICByZXR1cm4gWDg2RU1VTF9FWENFUFRJT047CiAgICAgICAgIGJyZWFrOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyBiL3hlbi9hcmNoL3g4Ni9tbS9z aGFkb3cvY29tbW9uLmMKaW5kZXggYjY1OTMyNC4uMDc2MGU3NiAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L21tL3NoYWRvdy9jb21tb24uYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2Nv bW1vbi5jCkBAIC0xODksOSArMTg5LDkgQEAgaHZtX3JlYWQoZW51bSB4ODZfc2VnbWVudCBzZWcs CiAgICAgICAgIHJldHVybiByYzsKIAogICAgIGlmICggYWNjZXNzX3R5cGUgPT0gaHZtX2FjY2Vz c19pbnNuX2ZldGNoICkKLSAgICAgICAgcmMgPSBodm1fZmV0Y2hfZnJvbV9ndWVzdF92aXJ0KHBf ZGF0YSwgYWRkciwgYnl0ZXMsIDAsICZwZmluZm8pOworICAgICAgICByYyA9IGh2bV9mZXRjaF9m cm9tX2d1ZXN0X2xpbmVhcihwX2RhdGEsIGFkZHIsIGJ5dGVzLCAwLCAmcGZpbmZvKTsKICAgICBl bHNlCi0gICAgICAgIHJjID0gaHZtX2NvcHlfZnJvbV9ndWVzdF92aXJ0KHBfZGF0YSwgYWRkciwg Ynl0ZXMsIDAsICZwZmluZm8pOworICAgICAgICByYyA9IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfbGlu ZWFyKHBfZGF0YSwgYWRkciwgYnl0ZXMsIDAsICZwZmluZm8pOwogCiAgICAgc3dpdGNoICggcmMg KQogICAgIHsKQEAgLTQxOSw3ICs0MTksNyBAQCBjb25zdCBzdHJ1Y3QgeDg2X2VtdWxhdGVfb3Bz ICpzaGFkb3dfaW5pdF9lbXVsYXRpb24oCiAgICAgICAgICghaHZtX3RyYW5zbGF0ZV9saW5lYXJf YWRkcigKICAgICAgICAgICAgIHg4Nl9zZWdfY3MsIHJlZ3MtPmVpcCwgc2l6ZW9mKHNoX2N0eHQt Pmluc25fYnVmKSwKICAgICAgICAgICAgIGh2bV9hY2Nlc3NfaW5zbl9mZXRjaCwgc2hfY3R4dCwg JmFkZHIpICYmCi0gICAgICAgICAhaHZtX2ZldGNoX2Zyb21fZ3Vlc3RfdmlydCgKKyAgICAgICAg ICFodm1fZmV0Y2hfZnJvbV9ndWVzdF9saW5lYXIoCiAgICAgICAgICAgICAgc2hfY3R4dC0+aW5z bl9idWYsIGFkZHIsIHNpemVvZihzaF9jdHh0LT5pbnNuX2J1ZiksIDAsIE5VTEwpKQogICAgICAg ICA/IHNpemVvZihzaF9jdHh0LT5pbnNuX2J1ZikgOiAwOwogCkBAIC00NDcsNyArNDQ3LDcgQEAg dm9pZCBzaGFkb3dfY29udGludWVfZW11bGF0aW9uKHN0cnVjdCBzaF9lbXVsYXRlX2N0eHQgKnNo X2N0eHQsCiAgICAgICAgICAgICAgICAgKCFodm1fdHJhbnNsYXRlX2xpbmVhcl9hZGRyKAogICAg ICAgICAgICAgICAgICAgICB4ODZfc2VnX2NzLCByZWdzLT5laXAsIHNpemVvZihzaF9jdHh0LT5p bnNuX2J1ZiksCiAgICAgICAgICAgICAgICAgICAgIGh2bV9hY2Nlc3NfaW5zbl9mZXRjaCwgc2hf Y3R4dCwgJmFkZHIpICYmCi0gICAgICAgICAgICAgICAgICFodm1fZmV0Y2hfZnJvbV9ndWVzdF92 aXJ0KAorICAgICAgICAgICAgICAgICAhaHZtX2ZldGNoX2Zyb21fZ3Vlc3RfbGluZWFyKAogICAg ICAgICAgICAgICAgICAgICAgc2hfY3R4dC0+aW5zbl9idWYsIGFkZHIsIHNpemVvZihzaF9jdHh0 LT5pbnNuX2J1ZiksIDAsIE5VTEwpKQogICAgICAgICAgICAgICAgID8gc2l6ZW9mKHNoX2N0eHQt Pmluc25fYnVmKSA6IDA7CiAgICAgICAgICAgICBzaF9jdHh0LT5pbnNuX2J1Zl9laXAgPSByZWdz LT5laXA7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdXBwb3J0LmggYi94 ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdXBwb3J0LmgKaW5kZXggMTE0YWEwNC4uNzgzNDlmOCAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3VwcG9ydC5oCisrKyBiL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL3N1cHBvcnQuaApAQCAtNzMsNyArNzMsNyBAQCBlbnVtIGh2bV9j b3B5X3Jlc3VsdCBodm1fY29weV9mcm9tX2d1ZXN0X3BoeXMoCiAgICAgdm9pZCAqYnVmLCBwYWRk cl90IHBhZGRyLCBpbnQgc2l6ZSk7CiAKIC8qCi0gKiBDb3B5IHRvL2Zyb20gYSBndWVzdCB2aXJ0 dWFsIGFkZHJlc3MuIEBwZmVjIHNob3VsZCBpbmNsdWRlIFBGRUNfdXNlcl9tb2RlCisgKiBDb3B5 IHRvL2Zyb20gYSBndWVzdCBsaW5lYXIgYWRkcmVzcy4gQHBmZWMgc2hvdWxkIGluY2x1ZGUgUEZF Q191c2VyX21vZGUKICAqIGlmIGVtdWxhdGluZyBhIHVzZXItbW9kZSBhY2Nlc3MgKENQTD0zKS4g QWxsIG90aGVyIGZsYWdzIGluIEBwZmVjIGFyZQogICogbWFuYWdlZCBieSB0aGUgY2FsbGVkIGZ1 bmN0aW9uOiBpdCBpcyB0aGVyZWZvcmUgb3B0aW9uYWwgZm9yIHRoZSBjYWxsZXIKICAqIHRvIHNl dCB0aGVtLgpAQCAtOTUsMTQgKzk1LDE0IEBAIHR5cGVkZWYgc3RydWN0IHBhZ2VmYXVsdF9pbmZv CiAgICAgaW50IGVjOwogfSBwYWdlZmF1bHRfaW5mb190OwogCi1lbnVtIGh2bV9jb3B5X3Jlc3Vs dCBodm1fY29weV90b19ndWVzdF92aXJ0KAotICAgIHVuc2lnbmVkIGxvbmcgdmFkZHIsIHZvaWQg KmJ1ZiwgaW50IHNpemUsIHVpbnQzMl90IHBmZWMsCitlbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1f Y29weV90b19ndWVzdF9saW5lYXIoCisgICAgdW5zaWduZWQgbG9uZyBhZGRyLCB2b2lkICpidWYs IGludCBzaXplLCB1aW50MzJfdCBwZmVjLAogICAgIHBhZ2VmYXVsdF9pbmZvX3QgKnBmaW5mbyk7 Ci1lbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fY29weV9mcm9tX2d1ZXN0X3ZpcnQoCi0gICAgdm9p ZCAqYnVmLCB1bnNpZ25lZCBsb25nIHZhZGRyLCBpbnQgc2l6ZSwgdWludDMyX3QgcGZlYywKK2Vu dW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfbGluZWFyKAorICAgIHZvaWQg KmJ1ZiwgdW5zaWduZWQgbG9uZyBhZGRyLCBpbnQgc2l6ZSwgdWludDMyX3QgcGZlYywKICAgICBw YWdlZmF1bHRfaW5mb190ICpwZmluZm8pOwotZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2ZldGNo X2Zyb21fZ3Vlc3RfdmlydCgKLSAgICB2b2lkICpidWYsIHVuc2lnbmVkIGxvbmcgdmFkZHIsIGlu dCBzaXplLCB1aW50MzJfdCBwZmVjLAorZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2ZldGNoX2Zy b21fZ3Vlc3RfbGluZWFyKAorICAgIHZvaWQgKmJ1ZiwgdW5zaWduZWQgbG9uZyBhZGRyLCBpbnQg c2l6ZSwgdWludDMyX3QgcGZlYywKICAgICBwYWdlZmF1bHRfaW5mb190ICpwZmluZm8pOwogCiAj ZGVmaW5lIEhWTV9IQ0FMTF9jb21wbGV0ZWQgIDAgLyogaHlwZXJjYWxsIGNvbXBsZXRlZCAtIG5v IGZ1cnRoZXIgYWN0aW9uICovCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=