From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 21/24] x86/hvm: Rename hvm_copy_*_guest_virt() to hvm_copy_*_guest_linear() Date: Wed, 30 Nov 2016 13:50:38 +0000 Message-ID: <1480513841-7565-22-git-send-email-andrew.cooper3@citrix.com> References: <1480513841-7565-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: <1480513841-7565-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 List-Id: xen-devel@lists.xenproject.org VGhlIGZ1bmN0aW9ucyB1c2UgbGluZWFyIGFkZHJlc3Nlcywgbm90IHZpcnR1YWwgYWRkcmVzc2Vz LCBhcyBubyBzZWdtZW50YXRpb24KaXMgdXNlZC4gIChMb3RzIG9mIG90aGVyIGNvZGUgaW4gWGVu IG1ha2VzIHRoaXMgbWlzdGFrZS4pCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KUmV2aWV3ZWQt Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFBhdWwgRHVy cmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2h2bS9lbXVs YXRlLmMgICAgICAgIHwgMTIgKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAg ICAgICB8IDYwICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2Fy Y2gveDg2L2h2bS92bXgvdnZteC5jICAgICAgIHwgIDYgKystLQogeGVuL2FyY2gveDg2L21tL3No YWRvdy9jb21tb24uYyAgIHwgIDggKysrLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdXBw b3J0LmggfCAxNCArKysrLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwg NTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMg Yi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwppbmRleCAzMjFjNWFhLi4wMzViNjU0IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYvaHZt L2VtdWxhdGUuYwpAQCAtNzkxLDggKzc5MSw4IEBAIHN0YXRpYyBpbnQgX19odm1lbXVsX3JlYWQo CiAgICAgICAgIHBmZWMgfD0gUEZFQ191c2VyX21vZGU7CiAKICAgICByYyA9ICgoYWNjZXNzX3R5 cGUgPT0gaHZtX2FjY2Vzc19pbnNuX2ZldGNoKSA/Ci0gICAgICAgICAgaHZtX2ZldGNoX2Zyb21f Z3Vlc3RfdmlydChwX2RhdGEsIGFkZHIsIGJ5dGVzLCBwZmVjLCAmcGZpbmZvKSA6Ci0gICAgICAg ICAgaHZtX2NvcHlfZnJvbV9ndWVzdF92aXJ0KHBfZGF0YSwgYWRkciwgYnl0ZXMsIHBmZWMsICZw ZmluZm8pKTsKKyAgICAgICAgICBodm1fZmV0Y2hfZnJvbV9ndWVzdF9saW5lYXIocF9kYXRhLCBh ZGRyLCBieXRlcywgcGZlYywgJnBmaW5mbykgOgorICAgICAgICAgIGh2bV9jb3B5X2Zyb21fZ3Vl c3RfbGluZWFyKHBfZGF0YSwgYWRkciwgYnl0ZXMsIHBmZWMsICZwZmluZm8pKTsKIAogICAgIHN3 aXRjaCAoIHJjICkKICAgICB7CkBAIC04OTgsNyArODk4LDcgQEAgc3RhdGljIGludCBodm1lbXVs X3dyaXRlKAogICAgICAgICAgKGh2bWVtdWxfY3R4dC0+c2VnX3JlZ1t4ODZfc2VnX3NzXS5hdHRy LmZpZWxkcy5kcGwgPT0gMykgKQogICAgICAgICBwZmVjIHw9IFBGRUNfdXNlcl9tb2RlOwogCi0g ICAgcmMgPSBodm1fY29weV90b19ndWVzdF92aXJ0KGFkZHIsIHBfZGF0YSwgYnl0ZXMsIHBmZWMs ICZwZmluZm8pOworICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfbGluZWFyKGFkZHIsIHBfZGF0 YSwgYnl0ZXMsIHBmZWMsICZwZmluZm8pOwogCiAgICAgc3dpdGNoICggcmMgKQogICAgIHsKQEAg LTE5MzcsOSArMTkzNyw5IEBAIHZvaWQgaHZtX2VtdWxhdGVfaW5pdF9wZXJfaW5zbigKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodm1fYWNjZXNzX2luc25fZmV0Y2gs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHZtZW11bF9jdHh0LT5j dHh0LmFkZHJfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm YWRkcikgJiYKLSAgICAgICAgICAgICBodm1fZmV0Y2hfZnJvbV9ndWVzdF92aXJ0KGh2bWVtdWxf Y3R4dC0+aW5zbl9idWYsIGFkZHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YoaHZtZW11bF9jdHh0LT5pbnNuX2J1ZiksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZmVjLCBOVUxMKSA9PSBIVk1DT1BZX29rYXkpID8KKyAgICAg ICAgICAgICBodm1fZmV0Y2hfZnJvbV9ndWVzdF9saW5lYXIoaHZtZW11bF9jdHh0LT5pbnNuX2J1 ZiwgYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9m KGh2bWVtdWxfY3R4dC0+aW5zbl9idWYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwZmVjLCBOVUxMKSA9PSBIVk1DT1BZX29rYXkpID8KICAgICAgICAgICAgIHNp emVvZihodm1lbXVsX2N0eHQtPmluc25fYnVmKSA6IDA7CiAgICAgfQogICAgIGVsc2UKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmlu ZGV4IDVlYWUwNmEuLjM3ZWFlZTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMK KysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpAQCAtMjkyNSw3ICsyOTI1LDcgQEAgdm9pZCBo dm1fdGFza19zd2l0Y2goCiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAotICAgIHJjID0gaHZt X2NvcHlfZnJvbV9ndWVzdF92aXJ0KAorICAgIHJjID0gaHZtX2NvcHlfZnJvbV9ndWVzdF9saW5l YXIoCiAgICAgICAgICZ0c3MsIHByZXZfdHIuYmFzZSwgc2l6ZW9mKHRzcyksIFBGRUNfcGFnZV9w cmVzZW50LCAmcGZpbmZvKTsKICAgICBpZiAoIHJjICE9IEhWTUNPUFlfb2theSApCiAgICAgICAg IGdvdG8gb3V0OwpAQCAtMjk2MCwxNSArMjk2MCwxNSBAQCB2b2lkIGh2bV90YXNrX3N3aXRjaCgK ICAgICBodm1fZ2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3NlZ19sZHRyLCAmc2Vncik7CiAg ICAgdHNzLmxkdCA9IHNlZ3Iuc2VsOwogCi0gICAgcmMgPSBodm1fY29weV90b19ndWVzdF92aXJ0 KHByZXZfdHIuYmFzZSArIG9mZnNldG9mKHR5cGVvZih0c3MpLCBlaXApLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmdHNzLmVpcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb2Zmc2V0b2YodHlwZW9mKHRzcyksIHRyYWNlKSAtCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVvZih0c3MpLCBlaXApLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQRkVDX3BhZ2VfcHJlc2VudCwgJnBmaW5mbyk7CisgICAgcmMgPSBo dm1fY29weV90b19ndWVzdF9saW5lYXIocHJldl90ci5iYXNlICsgb2Zmc2V0b2YodHlwZW9mKHRz cyksIGVpcCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRzcy5laXAsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW9mKHRzcyksIHRy YWNlKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW9m KHRzcyksIGVpcCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEZFQ19wYWdl X3ByZXNlbnQsICZwZmluZm8pOwogICAgIGlmICggcmMgIT0gSFZNQ09QWV9va2F5ICkKICAgICAg ICAgZ290byBvdXQ7CiAKLSAgICByYyA9IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfdmlydCgKKyAgICBy YyA9IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfbGluZWFyKAogICAgICAgICAmdHNzLCB0ci5iYXNlLCBz aXplb2YodHNzKSwgUEZFQ19wYWdlX3ByZXNlbnQsICZwZmluZm8pOwogICAgIC8qCiAgICAgICog Tm90ZTogVGhlIEhWTUNPUFlfZ2ZuX3NoYXJlZCBjYXNlIGNvdWxkIGJlIG9wdGltaXNlZCwgaWYg dGhlIGNhbGxlZQpAQCAtMzAwOCw5ICszMDA4LDkgQEAgdm9pZCBodm1fdGFza19zd2l0Y2goCiAg ICAgICAgIHJlZ3MtPmVmbGFncyB8PSBYODZfRUZMQUdTX05UOwogICAgICAgICB0c3MuYmFja19s aW5rID0gcHJldl90ci5zZWw7CiAKLSAgICAgICAgcmMgPSBodm1fY29weV90b19ndWVzdF92aXJ0 KHRyLmJhc2UgKyBvZmZzZXRvZih0eXBlb2YodHNzKSwgYmFja19saW5rKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZ0c3MuYmFja19saW5rLCBzaXplb2YodHNzLmJhY2tf bGluayksIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGZpbmZvKTsK KyAgICAgICAgcmMgPSBodm1fY29weV90b19ndWVzdF9saW5lYXIodHIuYmFzZSArIG9mZnNldG9m KHR5cGVvZih0c3MpLCBiYWNrX2xpbmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmdHNzLmJhY2tfbGluaywgc2l6ZW9mKHRzcy5iYWNrX2xpbmspLCAwLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGZpbmZvKTsKICAgICAgICAgaWYgKCBy YyA9PSBIVk1DT1BZX2JhZF9ndmFfdG9fZ2ZuICkKICAgICAgICAgICAgIGV4bl9yYWlzZWQgPSAx OwogICAgICAgICBlbHNlIGlmICggcmMgIT0gSFZNQ09QWV9va2F5ICkKQEAgLTMwNDcsOCArMzA0 Nyw4IEBAIHZvaWQgaHZtX3Rhc2tfc3dpdGNoKAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDE2IDw8IHNlZ3IuYXR0ci5maWVsZHMuZGIsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmxpbmVhcl9hZGRyKSApCiAgICAgICAgIHsKLSAgICAg ICAgICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfdmlydChsaW5lYXJfYWRkciwgJmVycmNvZGUs IG9wc3osIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBmaW5m byk7CisgICAgICAgICAgICByYyA9IGh2bV9jb3B5X3RvX2d1ZXN0X2xpbmVhcihsaW5lYXJfYWRk ciwgJmVycmNvZGUsIG9wc3osIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmcGZpbmZvKTsKICAgICAgICAgICAgIGlmICggcmMgPT0gSFZNQ09QWV9iYWRfZ3Zh X3RvX2dmbiApCiAgICAgICAgICAgICAgICAgZXhuX3JhaXNlZCA9IDE7CiAgICAgICAgICAgICBl bHNlIGlmICggcmMgIT0gSFZNQ09QWV9va2F5ICkKQEAgLTMwNjcsNyArMzA2Nyw3IEBAIHZvaWQg aHZtX3Rhc2tfc3dpdGNoKAogI2RlZmluZSBIVk1DT1BZX2Zyb21fZ3Vlc3QgKDB1PDwwKQogI2Rl ZmluZSBIVk1DT1BZX3RvX2d1ZXN0ICAgKDF1PDwwKQogI2RlZmluZSBIVk1DT1BZX3BoeXMgICAg ICAgKDB1PDwyKQotI2RlZmluZSBIVk1DT1BZX3ZpcnQgICAgICAgKDF1PDwyKQorI2RlZmluZSBI Vk1DT1BZX2xpbmVhciAgICAgKDF1PDwyKQogc3RhdGljIGVudW0gaHZtX2NvcHlfcmVzdWx0IF9f aHZtX2NvcHkoCiAgICAgdm9pZCAqYnVmLCBwYWRkcl90IGFkZHIsIGludCBzaXplLCB1bnNpZ25l ZCBpbnQgZmxhZ3MsIHVpbnQzMl90IHBmZWMsCiAgICAgcGFnZWZhdWx0X2luZm9fdCAqcGZpbmZv KQpAQCAtMzEwMSw3ICszMTAxLDcgQEAgc3RhdGljIGVudW0gaHZtX2NvcHlfcmVzdWx0IF9faHZt X2NvcHkoCiAKICAgICAgICAgY291bnQgPSBtaW5fdChpbnQsIFBBR0VfU0laRSAtIGdwYSwgdG9k byk7CiAKLSAgICAgICAgaWYgKCBmbGFncyAmIEhWTUNPUFlfdmlydCApCisgICAgICAgIGlmICgg ZmxhZ3MgJiBIVk1DT1BZX2xpbmVhciApCiAgICAgICAgIHsKICAgICAgICAgICAgIGdmbiA9IHBh Z2luZ19ndmFfdG9fZ2ZuKGN1cnIsIGFkZHIsICZwZmVjKTsKICAgICAgICAgICAgIGlmICggZ2Zu ID09IGdmbl94KElOVkFMSURfR0ZOKSApCkBAIC0zMjk1LDMwICszMjk1LDMwIEBAIGVudW0gaHZt X2NvcHlfcmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfcGh5cygKICAgICAgICAgICAgICAgICAg ICAgICBIVk1DT1BZX2Zyb21fZ3Vlc3QgfCBIVk1DT1BZX3BoeXMsIDAsIE5VTEwpOwogfQogCi1l bnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fY29weV90b19ndWVzdF92aXJ0KAotICAgIHVuc2lnbmVk IGxvbmcgdmFkZHIsIHZvaWQgKmJ1ZiwgaW50IHNpemUsIHVpbnQzMl90IHBmZWMsCitlbnVtIGh2 bV9jb3B5X3Jlc3VsdCBodm1fY29weV90b19ndWVzdF9saW5lYXIoCisgICAgdW5zaWduZWQgbG9u ZyBhZGRyLCB2b2lkICpidWYsIGludCBzaXplLCB1aW50MzJfdCBwZmVjLAogICAgIHBhZ2VmYXVs dF9pbmZvX3QgKnBmaW5mbykKIHsKLSAgICByZXR1cm4gX19odm1fY29weShidWYsIHZhZGRyLCBz aXplLAotICAgICAgICAgICAgICAgICAgICAgIEhWTUNPUFlfdG9fZ3Vlc3QgfCBIVk1DT1BZX3Zp cnQsCisgICAgcmV0dXJuIF9faHZtX2NvcHkoYnVmLCBhZGRyLCBzaXplLAorICAgICAgICAgICAg ICAgICAgICAgIEhWTUNPUFlfdG9fZ3Vlc3QgfCBIVk1DT1BZX2xpbmVhciwKICAgICAgICAgICAg ICAgICAgICAgICBQRkVDX3BhZ2VfcHJlc2VudCB8IFBGRUNfd3JpdGVfYWNjZXNzIHwgcGZlYywg cGZpbmZvKTsKIH0KIAotZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2NvcHlfZnJvbV9ndWVzdF92 aXJ0KAotICAgIHZvaWQgKmJ1ZiwgdW5zaWduZWQgbG9uZyB2YWRkciwgaW50IHNpemUsIHVpbnQz Ml90IHBmZWMsCitlbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fY29weV9mcm9tX2d1ZXN0X2xpbmVh cigKKyAgICB2b2lkICpidWYsIHVuc2lnbmVkIGxvbmcgYWRkciwgaW50IHNpemUsIHVpbnQzMl90 IHBmZWMsCiAgICAgcGFnZWZhdWx0X2luZm9fdCAqcGZpbmZvKQogewotICAgIHJldHVybiBfX2h2 bV9jb3B5KGJ1ZiwgdmFkZHIsIHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgSFZNQ09QWV9m cm9tX2d1ZXN0IHwgSFZNQ09QWV92aXJ0LAorICAgIHJldHVybiBfX2h2bV9jb3B5KGJ1ZiwgYWRk ciwgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICBIVk1DT1BZX2Zyb21fZ3Vlc3QgfCBIVk1D T1BZX2xpbmVhciwKICAgICAgICAgICAgICAgICAgICAgICBQRkVDX3BhZ2VfcHJlc2VudCB8IHBm ZWMsIHBmaW5mbyk7CiB9CiAKLWVudW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9mZXRjaF9mcm9tX2d1 ZXN0X3ZpcnQoCi0gICAgdm9pZCAqYnVmLCB1bnNpZ25lZCBsb25nIHZhZGRyLCBpbnQgc2l6ZSwg dWludDMyX3QgcGZlYywKK2VudW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9mZXRjaF9mcm9tX2d1ZXN0 X2xpbmVhcigKKyAgICB2b2lkICpidWYsIHVuc2lnbmVkIGxvbmcgYWRkciwgaW50IHNpemUsIHVp bnQzMl90IHBmZWMsCiAgICAgcGFnZWZhdWx0X2luZm9fdCAqcGZpbmZvKQogewotICAgIHJldHVy biBfX2h2bV9jb3B5KGJ1ZiwgdmFkZHIsIHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgSFZN Q09QWV9mcm9tX2d1ZXN0IHwgSFZNQ09QWV92aXJ0LAorICAgIHJldHVybiBfX2h2bV9jb3B5KGJ1 ZiwgYWRkciwgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICBIVk1DT1BZX2Zyb21fZ3Vlc3Qg fCBIVk1DT1BZX2xpbmVhciwKICAgICAgICAgICAgICAgICAgICAgICBQRkVDX3BhZ2VfcHJlc2Vu dCB8IFBGRUNfaW5zbl9mZXRjaCB8IHBmZWMsIHBmaW5mbyk7CiB9CiAKQEAgLTMzMzMsNyArMzMz Myw3IEBAIHVuc2lnbmVkIGxvbmcgY29weV90b191c2VyX2h2bSh2b2lkICp0bywgY29uc3Qgdm9p ZCAqZnJvbSwgdW5zaWduZWQgaW50IGxlbikKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0g ICAgcmMgPSBodm1fY29weV90b19ndWVzdF92aXJ0KCh1bnNpZ25lZCBsb25nKXRvLCAodm9pZCAq KWZyb20sIGxlbiwgMCwgTlVMTCk7CisgICAgcmMgPSBodm1fY29weV90b19ndWVzdF9saW5lYXIo KHVuc2lnbmVkIGxvbmcpdG8sICh2b2lkICopZnJvbSwgbGVuLCAwLCBOVUxMKTsKICAgICByZXR1 cm4gcmMgPyBsZW4gOiAwOyAvKiBmYWtlIGEgY29weV90b191c2VyKCkgcmV0dXJuIGNvZGUgKi8K IH0KIApAQCAtMzM2Myw3ICszMzYzLDcgQEAgdW5zaWduZWQgbG9uZyBjb3B5X2Zyb21fdXNlcl9o dm0odm9pZCAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHVuc2lnbmVkIGxlbikKICAgICAgICAgcmV0 dXJuIDA7CiAgICAgfQogCi0gICAgcmMgPSBodm1fY29weV9mcm9tX2d1ZXN0X3ZpcnQodG8sICh1 bnNpZ25lZCBsb25nKWZyb20sIGxlbiwgMCwgTlVMTCk7CisgICAgcmMgPSBodm1fY29weV9mcm9t X2d1ZXN0X2xpbmVhcih0bywgKHVuc2lnbmVkIGxvbmcpZnJvbSwgbGVuLCAwLCBOVUxMKTsKICAg ICByZXR1cm4gcmMgPyBsZW4gOiAwOyAvKiBmYWtlIGEgY29weV9mcm9tX3VzZXIoKSByZXR1cm4g Y29kZSAqLwogfQogCkBAIC00MDM4LDggKzQwMzgsOCBAQCB2b2lkIGh2bV91ZF9pbnRlcmNlcHQo c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGh2bV9sb25nX21vZGVfZW5hYmxlZChjdXIpICYmCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzLT5hdHRyLmZpZWxkcy5sKSA/IDY0IDoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcy0+YXR0ci5maWVsZHMuZGIg PyAzMiA6IDE2LCAmYWRkcikgJiYKLSAgICAgICAgICAgICAoaHZtX2ZldGNoX2Zyb21fZ3Vlc3Rf dmlydChzaWcsIGFkZHIsIHNpemVvZihzaWcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHdhbGssIE5VTEwpID09IEhWTUNPUFlfb2theSkgJiYKKyAgICAgICAgICAg ICAoaHZtX2ZldGNoX2Zyb21fZ3Vlc3RfbGluZWFyKHNpZywgYWRkciwgc2l6ZW9mKHNpZyksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWxrLCBOVUxMKSA9PSBI Vk1DT1BZX29rYXkpICYmCiAgICAgICAgICAgICAgKG1lbWNtcChzaWcsICJceGZceGJ4ZW4iLCBz aXplb2Yoc2lnKSkgPT0gMCkgKQogICAgICAgICB7CiAgICAgICAgICAgICByZWdzLT5laXAgKz0g c2l6ZW9mKHNpZyk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMgYi94 ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMKaW5kZXggNzM0MmQxMi4uZmQ3ZWEwYSAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v dm14L3Z2bXguYwpAQCAtNDUyLDcgKzQ1Miw3IEBAIHN0YXRpYyBpbnQgZGVjb2RlX3ZteF9pbnN0 KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLAogICAgICAgICAgICAgZ290byBncF9mYXVsdDsK IAogICAgICAgICBpZiAoIHBvcGVyYW5kUyAhPSBOVUxMICYmCi0gICAgICAgICAgICAgaHZtX2Nv cHlfZnJvbV9ndWVzdF92aXJ0KHBvcGVyYW5kUywgYmFzZSwgc2l6ZSwgMCwgJnBmaW5mbykKKyAg ICAgICAgICAgICBodm1fY29weV9mcm9tX2d1ZXN0X2xpbmVhcihwb3BlcmFuZFMsIGJhc2UsIHNp emUsIDAsICZwZmluZm8pCiAgICAgICAgICAgICAgICAgICAhPSBIVk1DT1BZX29rYXkgKQogICAg ICAgICAgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwogICAgICAgICBkZWNvZGUtPm1lbSA9 IGJhc2U7CkBAIC0xNjIyLDcgKzE2MjIsNyBAQCBpbnQgbnZteF9oYW5kbGVfdm1wdHJzdChzdHJ1 Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIAogICAgIGdwYSA9IG52Y3B1LT5udl92dm1jeGFkZHI7 CiAKLSAgICByYyA9IGh2bV9jb3B5X3RvX2d1ZXN0X3ZpcnQoZGVjb2RlLm1lbSwgJmdwYSwgZGVj b2RlLmxlbiwgMCwgJnBmaW5mbyk7CisgICAgcmMgPSBodm1fY29weV90b19ndWVzdF9saW5lYXIo ZGVjb2RlLm1lbSwgJmdwYSwgZGVjb2RlLmxlbiwgMCwgJnBmaW5mbyk7CiAgICAgaWYgKCByYyAh PSBIVk1DT1BZX29rYXkgKQogICAgICAgICByZXR1cm4gWDg2RU1VTF9FWENFUFRJT047CiAKQEAg LTE2OTMsNyArMTY5Myw3IEBAIGludCBudm14X2hhbmRsZV92bXJlYWQoc3RydWN0IGNwdV91c2Vy X3JlZ3MgKnJlZ3MpCiAKICAgICBzd2l0Y2ggKCBkZWNvZGUudHlwZSApIHsKICAgICBjYXNlIFZN WF9JTlNUX01FTVJFR19UWVBFX01FTU9SWToKLSAgICAgICAgcmMgPSBodm1fY29weV90b19ndWVz dF92aXJ0KGRlY29kZS5tZW0sICZ2YWx1ZSwgZGVjb2RlLmxlbiwgMCwgJnBmaW5mbyk7CisgICAg ICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfbGluZWFyKGRlY29kZS5tZW0sICZ2YWx1ZSwgZGVj b2RlLmxlbiwgMCwgJnBmaW5mbyk7CiAgICAgICAgIGlmICggcmMgIT0gSFZNQ09QWV9va2F5ICkK ICAgICAgICAgICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKICAgICAgICAgYnJlYWs7CmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jIGIveGVuL2FyY2gveDg2 L21tL3NoYWRvdy9jb21tb24uYwppbmRleCBiNjU5MzI0Li4wNzYwZTc2IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFk b3cvY29tbW9uLmMKQEAgLTE4OSw5ICsxODksOSBAQCBodm1fcmVhZChlbnVtIHg4Nl9zZWdtZW50 IHNlZywKICAgICAgICAgcmV0dXJuIHJjOwogCiAgICAgaWYgKCBhY2Nlc3NfdHlwZSA9PSBodm1f YWNjZXNzX2luc25fZmV0Y2ggKQotICAgICAgICByYyA9IGh2bV9mZXRjaF9mcm9tX2d1ZXN0X3Zp cnQocF9kYXRhLCBhZGRyLCBieXRlcywgMCwgJnBmaW5mbyk7CisgICAgICAgIHJjID0gaHZtX2Zl dGNoX2Zyb21fZ3Vlc3RfbGluZWFyKHBfZGF0YSwgYWRkciwgYnl0ZXMsIDAsICZwZmluZm8pOwog ICAgIGVsc2UKLSAgICAgICAgcmMgPSBodm1fY29weV9mcm9tX2d1ZXN0X3ZpcnQocF9kYXRhLCBh ZGRyLCBieXRlcywgMCwgJnBmaW5mbyk7CisgICAgICAgIHJjID0gaHZtX2NvcHlfZnJvbV9ndWVz dF9saW5lYXIocF9kYXRhLCBhZGRyLCBieXRlcywgMCwgJnBmaW5mbyk7CiAKICAgICBzd2l0Y2gg KCByYyApCiAgICAgewpAQCAtNDE5LDcgKzQxOSw3IEBAIGNvbnN0IHN0cnVjdCB4ODZfZW11bGF0 ZV9vcHMgKnNoYWRvd19pbml0X2VtdWxhdGlvbigKICAgICAgICAgKCFodm1fdHJhbnNsYXRlX2xp bmVhcl9hZGRyKAogICAgICAgICAgICAgeDg2X3NlZ19jcywgcmVncy0+ZWlwLCBzaXplb2Yoc2hf Y3R4dC0+aW5zbl9idWYpLAogICAgICAgICAgICAgaHZtX2FjY2Vzc19pbnNuX2ZldGNoLCBzaF9j dHh0LCAmYWRkcikgJiYKLSAgICAgICAgICFodm1fZmV0Y2hfZnJvbV9ndWVzdF92aXJ0KAorICAg ICAgICAgIWh2bV9mZXRjaF9mcm9tX2d1ZXN0X2xpbmVhcigKICAgICAgICAgICAgICBzaF9jdHh0 LT5pbnNuX2J1ZiwgYWRkciwgc2l6ZW9mKHNoX2N0eHQtPmluc25fYnVmKSwgMCwgTlVMTCkpCiAg ICAgICAgID8gc2l6ZW9mKHNoX2N0eHQtPmluc25fYnVmKSA6IDA7CiAKQEAgLTQ0Nyw3ICs0NDcs NyBAQCB2b2lkIHNoYWRvd19jb250aW51ZV9lbXVsYXRpb24oc3RydWN0IHNoX2VtdWxhdGVfY3R4 dCAqc2hfY3R4dCwKICAgICAgICAgICAgICAgICAoIWh2bV90cmFuc2xhdGVfbGluZWFyX2FkZHIo CiAgICAgICAgICAgICAgICAgICAgIHg4Nl9zZWdfY3MsIHJlZ3MtPmVpcCwgc2l6ZW9mKHNoX2N0 eHQtPmluc25fYnVmKSwKICAgICAgICAgICAgICAgICAgICAgaHZtX2FjY2Vzc19pbnNuX2ZldGNo LCBzaF9jdHh0LCAmYWRkcikgJiYKLSAgICAgICAgICAgICAgICAgIWh2bV9mZXRjaF9mcm9tX2d1 ZXN0X3ZpcnQoCisgICAgICAgICAgICAgICAgICFodm1fZmV0Y2hfZnJvbV9ndWVzdF9saW5lYXIo CiAgICAgICAgICAgICAgICAgICAgICBzaF9jdHh0LT5pbnNuX2J1ZiwgYWRkciwgc2l6ZW9mKHNo X2N0eHQtPmluc25fYnVmKSwgMCwgTlVMTCkpCiAgICAgICAgICAgICAgICAgPyBzaXplb2Yoc2hf Y3R4dC0+aW5zbl9idWYpIDogMDsKICAgICAgICAgICAgIHNoX2N0eHQtPmluc25fYnVmX2VpcCA9 IHJlZ3MtPmVpcDsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N1cHBvcnQu aCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N1cHBvcnQuaAppbmRleCAxMTRhYTA0Li43ODM0 OWY4IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdXBwb3J0LmgKKysrIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3VwcG9ydC5oCkBAIC03Myw3ICs3Myw3IEBAIGVudW0g aHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfcGh5cygKICAgICB2b2lkICpidWYs IHBhZGRyX3QgcGFkZHIsIGludCBzaXplKTsKIAogLyoKLSAqIENvcHkgdG8vZnJvbSBhIGd1ZXN0 IHZpcnR1YWwgYWRkcmVzcy4gQHBmZWMgc2hvdWxkIGluY2x1ZGUgUEZFQ191c2VyX21vZGUKKyAq IENvcHkgdG8vZnJvbSBhIGd1ZXN0IGxpbmVhciBhZGRyZXNzLiBAcGZlYyBzaG91bGQgaW5jbHVk ZSBQRkVDX3VzZXJfbW9kZQogICogaWYgZW11bGF0aW5nIGEgdXNlci1tb2RlIGFjY2VzcyAoQ1BM PTMpLiBBbGwgb3RoZXIgZmxhZ3MgaW4gQHBmZWMgYXJlCiAgKiBtYW5hZ2VkIGJ5IHRoZSBjYWxs ZWQgZnVuY3Rpb246IGl0IGlzIHRoZXJlZm9yZSBvcHRpb25hbCBmb3IgdGhlIGNhbGxlcgogICog dG8gc2V0IHRoZW0uCkBAIC05NSwxNCArOTUsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgcGFnZWZhdWx0 X2luZm8KICAgICBpbnQgZWM7CiB9IHBhZ2VmYXVsdF9pbmZvX3Q7CiAKLWVudW0gaHZtX2NvcHlf cmVzdWx0IGh2bV9jb3B5X3RvX2d1ZXN0X3ZpcnQoCi0gICAgdW5zaWduZWQgbG9uZyB2YWRkciwg dm9pZCAqYnVmLCBpbnQgc2l6ZSwgdWludDMyX3QgcGZlYywKK2VudW0gaHZtX2NvcHlfcmVzdWx0 IGh2bV9jb3B5X3RvX2d1ZXN0X2xpbmVhcigKKyAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHZvaWQg KmJ1ZiwgaW50IHNpemUsIHVpbnQzMl90IHBmZWMsCiAgICAgcGFnZWZhdWx0X2luZm9fdCAqcGZp bmZvKTsKLWVudW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfdmlydCgKLSAg ICB2b2lkICpidWYsIHVuc2lnbmVkIGxvbmcgdmFkZHIsIGludCBzaXplLCB1aW50MzJfdCBwZmVj LAorZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2NvcHlfZnJvbV9ndWVzdF9saW5lYXIoCisgICAg dm9pZCAqYnVmLCB1bnNpZ25lZCBsb25nIGFkZHIsIGludCBzaXplLCB1aW50MzJfdCBwZmVjLAog ICAgIHBhZ2VmYXVsdF9pbmZvX3QgKnBmaW5mbyk7Ci1lbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1f ZmV0Y2hfZnJvbV9ndWVzdF92aXJ0KAotICAgIHZvaWQgKmJ1ZiwgdW5zaWduZWQgbG9uZyB2YWRk ciwgaW50IHNpemUsIHVpbnQzMl90IHBmZWMsCitlbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fZmV0 Y2hfZnJvbV9ndWVzdF9saW5lYXIoCisgICAgdm9pZCAqYnVmLCB1bnNpZ25lZCBsb25nIGFkZHIs IGludCBzaXplLCB1aW50MzJfdCBwZmVjLAogICAgIHBhZ2VmYXVsdF9pbmZvX3QgKnBmaW5mbyk7 CiAKICNkZWZpbmUgSFZNX0hDQUxMX2NvbXBsZXRlZCAgMCAvKiBoeXBlcmNhbGwgY29tcGxldGVk IC0gbm8gZnVydGhlciBhY3Rpb24gKi8KLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==