From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrii Anisov Subject: [PATCH v2 2/2] xen: implement VCPUOP_register_runstate_phys_memory_area Date: Tue, 23 Apr 2019 11:10:26 +0300 Message-ID: <1556007026-31057-3-git-send-email-andrii.anisov@gmail.com> References: <1556007026-31057-1-git-send-email-andrii.anisov@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hIqVg-0001pn-8k for xen-devel@lists.xenproject.org; Tue, 23 Apr 2019 08:10:36 +0000 Received: by mail-lj1-x244.google.com with SMTP id k8so102958lja.8 for ; Tue, 23 Apr 2019 01:10:33 -0700 (PDT) In-Reply-To: <1556007026-31057-1-git-send-email-andrii.anisov@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Stefano Stabellini , Andrii Anisov , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , xen-devel@lists.xenproject.org, Wei Liu , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org RnJvbTogQW5kcmlpIEFuaXNvdiA8YW5kcmlpX2FuaXNvdkBlcGFtLmNvbT4KClZDUFVPUF9yZWdp c3Rlcl9ydW5zdGF0ZV9waHlzX21lbW9yeV9hcmVhIGlzIGltcGxlbWVudGVkIHZpYSBydW5zdGF0 ZQphcmVhIG1hcHBpbmcuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyaWkgQW5pc292IDxhbmRyaWlfYW5p c292QGVwYW0uY29tPgotLS0KIHhlbi9hcmNoL2FybS9kb21haW4uYyAgICAgICAgfCAgNjIgKysr KysrKysrKysrKysrKystLS0tLS0tLQogeGVuL2FyY2gveDg2L2RvbWFpbi5jICAgICAgICB8IDEw NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiB4ZW4vY29tbW9u L2RvbWFpbi5jICAgICAgICAgIHwgIDgwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQogeGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCB8ICAgMiArCiB4ZW4vaW5jbHVkZS94ZW4v ZG9tYWluLmggICAgIHwgICAyICsKIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC5oICAgICAgfCAgIDgg KysrKwogNiBmaWxlcyBjaGFuZ2VkLCAyMTAgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbi5jIGIveGVuL2FyY2gvYXJtL2RvbWFp bi5jCmluZGV4IDZkYzYzM2UuLjhlMjRlNjMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9kb21h aW4uYworKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMKQEAgLTI3NSwzMiArMjc1LDU1IEBAIHN0 YXRpYyB2b2lkIGN0eHRfc3dpdGNoX3RvKHN0cnVjdCB2Y3B1ICpuKQogfQogCiAvKiBVcGRhdGUg cGVyLVZDUFUgZ3Vlc3QgcnVuc3RhdGUgc2hhcmVkIG1lbW9yeSBhcmVhIChpZiByZWdpc3RlcmVk KS4gKi8KLXN0YXRpYyB2b2lkIHVwZGF0ZV9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICp2KQor dm9pZCB1cGRhdGVfcnVuc3RhdGVfYXJlYShzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICB2b2lkIF9f dXNlciAqZ3Vlc3RfaGFuZGxlID0gTlVMTDsKKyAgICBpZiAoICFndWVzdF9oYW5kbGVfaXNfbnVs bChydW5zdGF0ZV9ndWVzdCh2KSkgKQorICAgIHsKKyAgICAgICAgdm9pZCBfX3VzZXIgKmd1ZXN0 X2hhbmRsZSA9IE5VTEw7CisgICAgICAgIGlmICggVk1fQVNTSVNUKHYtPmRvbWFpbiwgcnVuc3Rh dGVfdXBkYXRlX2ZsYWcpICkKKyAgICAgICAgeworICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlID0g JnYtPnJ1bnN0YXRlX2d1ZXN0LnAtPnN0YXRlX2VudHJ5X3RpbWUgKyAxOworICAgICAgICAgICAg Z3Vlc3RfaGFuZGxlLS07CisgICAgICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1l IHw9IFhFTl9SVU5TVEFURV9VUERBVEU7CisgICAgICAgICAgICBfX3Jhd19jb3B5X3RvX2d1ZXN0 KGd1ZXN0X2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKiko JnYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgKyAxKSAtIDEsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDEpOworICAgICAgICAgICAgc21wX3dtYigpOworICAgICAgICB9CiAK LSAgICBpZiAoIGd1ZXN0X2hhbmRsZV9pc19udWxsKHJ1bnN0YXRlX2d1ZXN0KHYpKSApCi0gICAg ICAgIHJldHVybjsKKyAgICAgICAgX19jb3B5X3RvX2d1ZXN0KHJ1bnN0YXRlX2d1ZXN0KHYpLCAm di0+cnVuc3RhdGUsIDEpOwogCi0gICAgaWYgKCBWTV9BU1NJU1Qodi0+ZG9tYWluLCBydW5zdGF0 ZV91cGRhdGVfZmxhZykgKQotICAgIHsKLSAgICAgICAgZ3Vlc3RfaGFuZGxlID0gJnYtPnJ1bnN0 YXRlX2d1ZXN0LnAtPnN0YXRlX2VudHJ5X3RpbWUgKyAxOwotICAgICAgICBndWVzdF9oYW5kbGUt LTsKLSAgICAgICAgdi0+cnVuc3RhdGUuc3RhdGVfZW50cnlfdGltZSB8PSBYRU5fUlVOU1RBVEVf VVBEQVRFOwotICAgICAgICBfX3Jhd19jb3B5X3RvX2d1ZXN0KGd1ZXN0X2hhbmRsZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSgmdi0+cnVuc3RhdGUuc3RhdGVfZW50cnlf dGltZSArIDEpIC0gMSwgMSk7Ci0gICAgICAgIHNtcF93bWIoKTsKKyAgICAgICAgaWYgKCBndWVz dF9oYW5kbGUgKQorICAgICAgICB7CisgICAgICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRy eV90aW1lICY9IH5YRU5fUlVOU1RBVEVfVVBEQVRFOworICAgICAgICAgICAgc21wX3dtYigpOwor ICAgICAgICAgICAgX19yYXdfY29weV90b19ndWVzdChndWVzdF9oYW5kbGUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopKCZ2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90 aW1lICsgMSkgLSAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsKKyAgICAg ICAgfQogICAgIH0KIAotICAgIF9fY29weV90b19ndWVzdChydW5zdGF0ZV9ndWVzdCh2KSwgJnYt PnJ1bnN0YXRlLCAxKTsKLQotICAgIGlmICggZ3Vlc3RfaGFuZGxlICkKKyAgICBzcGluX2xvY2so JnYtPm1hcHBlZF9ydW5zdGF0ZV9sb2NrKTsKKyAgICBpZiAoIHYtPm1hcHBlZF9ydW5zdGF0ZSAp CiAgICAgewotICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lICY9IH5YRU5fUlVO U1RBVEVfVVBEQVRFOwotICAgICAgICBzbXBfd21iKCk7Ci0gICAgICAgIF9fcmF3X2NvcHlfdG9f Z3Vlc3QoZ3Vlc3RfaGFuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICop KCZ2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lICsgMSkgLSAxLCAxKTsKKyAgICAgICAgaWYg KCBWTV9BU1NJU1Qodi0+ZG9tYWluLCBydW5zdGF0ZV91cGRhdGVfZmxhZykgKQorICAgICAgICB7 CisgICAgICAgICAgICB2LT5tYXBwZWRfcnVuc3RhdGUtPnN0YXRlX2VudHJ5X3RpbWUgfD0gWEVO X1JVTlNUQVRFX1VQREFURTsKKyAgICAgICAgICAgIHNtcF93bWIoKTsKKyAgICAgICAgICAgIHYt PnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgfD0gWEVOX1JVTlNUQVRFX1VQREFURTsKKyAgICAg ICAgfQorCisgICAgICAgIG1lbWNweSh2LT5tYXBwZWRfcnVuc3RhdGUsICZ2LT5ydW5zdGF0ZSwg c2l6ZW9mKHYtPnJ1bnN0YXRlKSk7CisKKyAgICAgICAgaWYgKCBWTV9BU1NJU1Qodi0+ZG9tYWlu LCBydW5zdGF0ZV91cGRhdGVfZmxhZykgKQorICAgICAgICB7CisgICAgICAgICAgICB2LT5tYXBw ZWRfcnVuc3RhdGUtPnN0YXRlX2VudHJ5X3RpbWUgJj0gflhFTl9SVU5TVEFURV9VUERBVEU7Cisg ICAgICAgICAgICBzbXBfd21iKCk7CisgICAgICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRy eV90aW1lICY9IH5YRU5fUlVOU1RBVEVfVVBEQVRFOworICAgICAgICB9CiAgICAgfQorICAgIHNw aW5fdW5sb2NrKCZ2LT5tYXBwZWRfcnVuc3RhdGVfbG9jayk7CisKIH0KIAogc3RhdGljIHZvaWQg c2NoZWR1bGVfdGFpbChzdHJ1Y3QgdmNwdSAqcHJldikKQEAgLTk5OCw2ICsxMDIxLDcgQEAgbG9u ZyBkb19hcm1fdmNwdV9vcChpbnQgY21kLCB1bnNpZ25lZCBpbnQgdmNwdWlkLCBYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHZvaWQpIGEKICAgICB7CiAgICAgICAgIGNhc2UgVkNQVU9QX3JlZ2lzdGVy X3ZjcHVfaW5mbzoKICAgICAgICAgY2FzZSBWQ1BVT1BfcmVnaXN0ZXJfcnVuc3RhdGVfbWVtb3J5 X2FyZWE6CisgICAgICAgIGNhc2UgVkNQVU9QX3JlZ2lzdGVyX3J1bnN0YXRlX3BoeXNfbWVtb3J5 X2FyZWE6CiAgICAgICAgICAgICByZXR1cm4gZG9fdmNwdV9vcChjbWQsIHZjcHVpZCwgYXJnKTsK ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCmluZGV4IDll YWE5NzguLjQ2YzIyMTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYworKysgYi94 ZW4vYXJjaC94ODYvZG9tYWluLmMKQEAgLTE1NTgsNTEgKzE1NTgsOTggQEAgdm9pZCBwYXJhdmly dF9jdHh0X3N3aXRjaF90byhzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgd3Jtc3JfdHNjX2F1eCh2 LT5hcmNoLm1zcnMtPnRzY19hdXgpOwogfQogCi0vKiBVcGRhdGUgcGVyLVZDUFUgZ3Vlc3QgcnVu c3RhdGUgc2hhcmVkIG1lbW9yeSBhcmVhIChpZiByZWdpc3RlcmVkKS4gKi8KLWJvb2wgdXBkYXRl X3J1bnN0YXRlX2FyZWEoc3RydWN0IHZjcHUgKnYpCitzdGF0aWMgdm9pZCB1cGRhdGVfbWFwcGVk X3J1bnN0YXRlX2FyZWFfbmF0aXZlKHN0cnVjdCB2Y3B1ICp2KQogewotICAgIGJvb2wgcmM7Ci0g ICAgc3RydWN0IGd1ZXN0X21lbW9yeV9wb2xpY3kgcG9saWN5ID0geyAubmVzdGVkX2d1ZXN0X21v ZGUgPSBmYWxzZSB9OwotICAgIHZvaWQgX191c2VyICpndWVzdF9oYW5kbGUgPSBOVUxMOwotCi0g ICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbChydW5zdGF0ZV9ndWVzdCh2KSkgKQotICAgICAg ICByZXR1cm4gdHJ1ZTsKLQotICAgIHVwZGF0ZV9ndWVzdF9tZW1vcnlfcG9saWN5KHYsICZwb2xp Y3kpOwotCiAgICAgaWYgKCBWTV9BU1NJU1Qodi0+ZG9tYWluLCBydW5zdGF0ZV91cGRhdGVfZmxh ZykgKQogICAgIHsKLSAgICAgICAgZ3Vlc3RfaGFuZGxlID0gaGFzXzMyYml0X3NoaW5mbyh2LT5k b21haW4pCi0gICAgICAgICAgICA/ICZ2LT5ydW5zdGF0ZV9ndWVzdC5jb21wYXQucC0+c3RhdGVf ZW50cnlfdGltZSArIDEKLSAgICAgICAgICAgIDogJnYtPnJ1bnN0YXRlX2d1ZXN0Lm5hdGl2ZS5w LT5zdGF0ZV9lbnRyeV90aW1lICsgMTsKLSAgICAgICAgZ3Vlc3RfaGFuZGxlLS07CiAgICAgICAg IHYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgfD0gWEVOX1JVTlNUQVRFX1VQREFURTsKLSAg ICAgICAgX19yYXdfY29weV90b19ndWVzdChndWVzdF9oYW5kbGUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHZvaWQgKikoJnYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgKyAxKSAt IDEsIDEpOworICAgICAgICB2LT5tYXBwZWRfcnVuc3RhdGUubmF0aXZlLT5zdGF0ZV9lbnRyeV90 aW1lIHw9IFhFTl9SVU5TVEFURV9VUERBVEU7CiAgICAgICAgIHNtcF93bWIoKTsKICAgICB9CiAK LSAgICBpZiAoIGhhc18zMmJpdF9zaGluZm8odi0+ZG9tYWluKSApCisgICAgbWVtY3B5KHYtPm1h cHBlZF9ydW5zdGF0ZS5uYXRpdmUsICZ2LT5ydW5zdGF0ZSwgc2l6ZW9mKHYtPnJ1bnN0YXRlKSk7 CisKKyAgICBpZiAoIFZNX0FTU0lTVCh2LT5kb21haW4sIHJ1bnN0YXRlX3VwZGF0ZV9mbGFnKSAp CiAgICAgewotICAgICAgICBzdHJ1Y3QgY29tcGF0X3ZjcHVfcnVuc3RhdGVfaW5mbyBpbmZvOwor ICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lICY9IH5YRU5fUlVOU1RBVEVfVVBE QVRFOworICAgICAgICB2LT5tYXBwZWRfcnVuc3RhdGUubmF0aXZlLT5zdGF0ZV9lbnRyeV90aW1l ICY9IH5YRU5fUlVOU1RBVEVfVVBEQVRFOworICAgICAgICBzbXBfd21iKCk7CisgICAgfQorfQog Ci0gICAgICAgIFhMQVRfdmNwdV9ydW5zdGF0ZV9pbmZvKCZpbmZvLCAmdi0+cnVuc3RhdGUpOwot ICAgICAgICBfX2NvcHlfdG9fZ3Vlc3Qodi0+cnVuc3RhdGVfZ3Vlc3QuY29tcGF0LCAmaW5mbywg MSk7Ci0gICAgICAgIHJjID0gdHJ1ZTsKK3N0YXRpYyB2b2lkIHVwZGF0ZV9tYXBwZWRfcnVuc3Rh dGVfYXJlYV9jb21wYXQoc3RydWN0IHZjcHUgKnYpCit7CisgICAgaWYgKCBWTV9BU1NJU1Qodi0+ ZG9tYWluLCBydW5zdGF0ZV91cGRhdGVfZmxhZykgKQorICAgIHsKKyAgICAgICAgdi0+cnVuc3Rh dGUuc3RhdGVfZW50cnlfdGltZSB8PSBYRU5fUlVOU1RBVEVfVVBEQVRFOworICAgICAgICB2LT5t YXBwZWRfcnVuc3RhdGUuY29tcGF0LT5zdGF0ZV9lbnRyeV90aW1lIHw9IFhFTl9SVU5TVEFURV9V UERBVEU7CisgICAgICAgIHNtcF93bWIoKTsKICAgICB9Ci0gICAgZWxzZQotICAgICAgICByYyA9 IF9fY29weV90b19ndWVzdChydW5zdGF0ZV9ndWVzdCh2KSwgJnYtPnJ1bnN0YXRlLCAxKSAhPQot ICAgICAgICAgICAgIHNpemVvZih2LT5ydW5zdGF0ZSk7CiAKLSAgICBpZiAoIGd1ZXN0X2hhbmRs ZSApCisgICAgbWVtY3B5KHYtPm1hcHBlZF9ydW5zdGF0ZS5jb21wYXQsICZ2LT5ydW5zdGF0ZSwg c2l6ZW9mKHYtPnJ1bnN0YXRlKSk7CisKKyAgICBpZiAoIFZNX0FTU0lTVCh2LT5kb21haW4sIHJ1 bnN0YXRlX3VwZGF0ZV9mbGFnKSApCiAgICAgewogICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9l bnRyeV90aW1lICY9IH5YRU5fUlVOU1RBVEVfVVBEQVRFOworICAgICAgICB2LT5tYXBwZWRfcnVu c3RhdGUuY29tcGF0LT5zdGF0ZV9lbnRyeV90aW1lICY9IH5YRU5fUlVOU1RBVEVfVVBEQVRFOwog ICAgICAgICBzbXBfd21iKCk7Ci0gICAgICAgIF9fcmF3X2NvcHlfdG9fZ3Vlc3QoZ3Vlc3RfaGFu ZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopKCZ2LT5ydW5zdGF0ZS5z dGF0ZV9lbnRyeV90aW1lICsgMSkgLSAxLCAxKTsKICAgICB9Cit9CiAKLSAgICB1cGRhdGVfZ3Vl c3RfbWVtb3J5X3BvbGljeSh2LCAmcG9saWN5KTsKKy8qIFVwZGF0ZSBwZXItVkNQVSBndWVzdCBy dW5zdGF0ZSBzaGFyZWQgbWVtb3J5IGFyZWEgKGlmIHJlZ2lzdGVyZWQpLiAqLworYm9vbCB1cGRh dGVfcnVuc3RhdGVfYXJlYShzdHJ1Y3QgdmNwdSAqdikKK3sKKyAgICBib29sIHJjID0gdHJ1ZTsK KworICAgIGlmICggIWd1ZXN0X2hhbmRsZV9pc19udWxsKHJ1bnN0YXRlX2d1ZXN0KHYpKSApCisg ICAgeworICAgICAgICBzdHJ1Y3QgZ3Vlc3RfbWVtb3J5X3BvbGljeSBwb2xpY3kgPSB7IC5uZXN0 ZWRfZ3Vlc3RfbW9kZSA9IGZhbHNlIH07CisgICAgICAgIHZvaWQgX191c2VyICpndWVzdF9oYW5k bGUgPSBOVUxMOworCisgICAgICAgIHVwZGF0ZV9ndWVzdF9tZW1vcnlfcG9saWN5KHYsICZwb2xp Y3kpOworICAgICAgICBpZiAoIFZNX0FTU0lTVCh2LT5kb21haW4sIHJ1bnN0YXRlX3VwZGF0ZV9m bGFnKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGd1ZXN0X2hhbmRsZSA9IGhhc18zMmJpdF9z aGluZm8odi0+ZG9tYWluKQorICAgICAgICAgICAgICAgID8gJnYtPnJ1bnN0YXRlX2d1ZXN0LmNv bXBhdC5wLT5zdGF0ZV9lbnRyeV90aW1lICsgMQorICAgICAgICAgICAgICAgIDogJnYtPnJ1bnN0 YXRlX2d1ZXN0Lm5hdGl2ZS5wLT5zdGF0ZV9lbnRyeV90aW1lICsgMTsKKyAgICAgICAgICAgIGd1 ZXN0X2hhbmRsZS0tOworICAgICAgICAgICAgdi0+cnVuc3RhdGUuc3RhdGVfZW50cnlfdGltZSB8 PSBYRU5fUlVOU1RBVEVfVVBEQVRFOworICAgICAgICAgICAgX19yYXdfY29weV90b19ndWVzdChn dWVzdF9oYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopKCZ2 LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lICsgMSkgLSAxLCAxKTsKKyAgICAgICAgICAgIHNt cF93bWIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggaGFzXzMyYml0X3NoaW5mbyh2LT5k b21haW4pICkKKyAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IGNvbXBhdF92Y3B1X3J1bnN0 YXRlX2luZm8gaW5mbzsKKworICAgICAgICAgICAgWExBVF92Y3B1X3J1bnN0YXRlX2luZm8oJmlu Zm8sICZ2LT5ydW5zdGF0ZSk7CisgICAgICAgICAgICBfX2NvcHlfdG9fZ3Vlc3Qodi0+cnVuc3Rh dGVfZ3Vlc3QuY29tcGF0LCAmaW5mbywgMSk7CisgICAgICAgICAgICByYyA9IHRydWU7CisgICAg ICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmMgPSBfX2NvcHlfdG9fZ3Vlc3QocnVu c3RhdGVfZ3Vlc3QodiksICZ2LT5ydW5zdGF0ZSwgMSkgIT0KKyAgICAgICAgICAgICAgICAgc2l6 ZW9mKHYtPnJ1bnN0YXRlKTsKKworICAgICAgICBpZiAoIGd1ZXN0X2hhbmRsZSApCisgICAgICAg IHsKKyAgICAgICAgICAgIHYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgJj0gflhFTl9SVU5T VEFURV9VUERBVEU7CisgICAgICAgICAgICBzbXBfd21iKCk7CisgICAgICAgICAgICBfX3Jhd19j b3B5X3RvX2d1ZXN0KGd1ZXN0X2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHZvaWQgKikoJnYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgKyAxKSAtIDEsIDEpOwor ICAgICAgICB9CisgICAgICAgIHVwZGF0ZV9ndWVzdF9tZW1vcnlfcG9saWN5KHYsICZwb2xpY3kp OworICAgIH0KKworICAgIHNwaW5fbG9jayh2LT5tYXBwZWRfcnVuc3RhdGVfbG9jayk7CisgICAg aWYgKCB2LT5tYXBwZWRfcnVuc3RhdGUgKQorICAgIHsKKyAgICAgICAgaWYgKCBoYXNfMzJiaXRf c2hpbmZvKCh2KS0+ZG9tYWluKSApCisgICAgICAgICAgICB1cGRhdGVfbWFwcGVkX3J1bnN0YXRl X2FyZWFfY29tcGF0KHYpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB1cGRhdGVfbWFwcGVk X3J1bnN0YXRlX2FyZWFfbmF0aXZlKHYpOworICAgIH0KKyAgICBzcGluX3VubG9jayh2LT5tYXBw ZWRfcnVuc3RhdGVfbG9jayk7CiAKICAgICByZXR1cm4gcmM7CiB9CmRpZmYgLS1naXQgYS94ZW4v Y29tbW9uL2RvbWFpbi5jIGIveGVuL2NvbW1vbi9kb21haW4uYwppbmRleCBhZTIyMDQ5Li42ZGY3 NmM2IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCisrKyBiL3hlbi9jb21tb24vZG9t YWluLmMKQEAgLTE0OSw2ICsxNDksNyBAQCBzdHJ1Y3QgdmNwdSAqdmNwdV9jcmVhdGUoCiAgICAg di0+ZGlydHlfY3B1ID0gVkNQVV9DUFVfQ0xFQU47CiAKICAgICBzcGluX2xvY2tfaW5pdCgmdi0+ dmlycV9sb2NrKTsKKyAgICBzcGluX2xvY2tfaW5pdCgmdi0+bWFwcGVkX3J1bnN0YXRlX2xvY2sp OwogCiAgICAgdGFza2xldF9pbml0KCZ2LT5jb250aW51ZV9oeXBlcmNhbGxfdGFza2xldCwgTlVM TCwgMCk7CiAKQEAgLTY5OSw2ICs3MDAsNjkgQEAgaW50IHJjdV9sb2NrX2xpdmVfcmVtb3RlX2Rv bWFpbl9ieV9pZChkb21pZF90IGRvbSwgc3RydWN0IGRvbWFpbiAqKmQpCiAgICAgcmV0dXJuIDA7 CiB9CiAKK3N0YXRpYyB2b2lkIF91bm1hcF9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICp2KQor eworICAgIG1mbl90IG1mbjsKKworICAgIGlmICggIXYtPm1hcHBlZF9ydW5zdGF0ZSApCisgICAg ICAgIHJldHVybjsKKworICAgIG1mbiA9IF9tZm4odmlydF90b19tZm4ocnVuc3RhdGVfZ3Vlc3Qo dikucCkpOworCisgICAgdW5tYXBfZG9tYWluX3BhZ2VfZ2xvYmFsKCh2b2lkICopCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgodW5zaWduZWQgbG9uZyl2LT5tYXBwZWRfcnVuc3RhdGUg JgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFHRV9NQVNLKSk7CisKKyAgICB2LT5t YXBwZWRfcnVuc3RhdGUgPSBOVUxMOworICAgIHB1dF9wYWdlX2FuZF90eXBlKG1mbl90b19wYWdl KG1mbikpOworfQorCitzdGF0aWMgaW50IG1hcF9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICp2 LAorICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2Y3B1X3JlZ2lzdGVyX3J1bnN0YXRlX21l bW9yeV9hcmVhICphcmVhKQoreworICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gYXJlYS0+YWRk ci5wICYgflBBR0VfTUFTSzsKKyAgICBnZm5fdCBnZm4gPSBnYWRkcl90b19nZm4oYXJlYS0+YWRk ci5wKTsKKyAgICBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOworICAgIHZvaWQgKm1hcHBp bmc7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKKyAgICBzaXplX3Qgc2l6ZSA9IHNpemVv ZiAoc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbyApOworCisgICAgaWYgKCBvZmZzZXQgPiAoUEFH RV9TSVpFIC0gc2l6ZSkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHBhZ2UgPSBn ZXRfcGFnZV9mcm9tX2dmbihkLCBnZm5feChnZm4pLCBOVUxMLCBQMk1fQUxMT0MpOworICAgIGlm ICggIXBhZ2UgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIGlmICggIWdldF9wYWdl X3R5cGUocGFnZSwgUEdUX3dyaXRhYmxlX3BhZ2UpICkKKyAgICB7CisgICAgICAgIHB1dF9wYWdl KHBhZ2UpOworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICBtYXBwaW5nID0g X19tYXBfZG9tYWluX3BhZ2VfZ2xvYmFsKHBhZ2UpOworCisgICAgaWYgKCBtYXBwaW5nID09IE5V TEwgKQorICAgIHsKKyAgICAgICAgcHV0X3BhZ2VfYW5kX3R5cGUocGFnZSk7CisgICAgICAgIHJl dHVybiAtRU5PTUVNOworICAgIH0KKworICAgIHNwaW5fbG9jaygmdi0+bWFwcGVkX3J1bnN0YXRl X2xvY2spOworICAgIF91bm1hcF9ydW5zdGF0ZV9hcmVhKHYpOworICAgIHYtPm1hcHBlZF9ydW5z dGF0ZSA9IG1hcHBpbmcgKyBvZmZzZXQ7CisgICAgc3Bpbl91bmxvY2soJnYtPm1hcHBlZF9ydW5z dGF0ZV9sb2NrKTsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB1bm1hcF9ydW5z dGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICp2KQoreworICAgIHNwaW5fbG9jaygmdi0+bWFwcGVkX3J1 bnN0YXRlX2xvY2spOworICAgIF91bm1hcF9ydW5zdGF0ZV9hcmVhKHYpOworICAgIHNwaW5fdW5s b2NrKCZ2LT5tYXBwZWRfcnVuc3RhdGVfbG9jayk7Cit9CisKIGludCBkb21haW5fa2lsbChzdHJ1 Y3QgZG9tYWluICpkKQogewogICAgIGludCByYyA9IDA7CkBAIC03MzcsNyArODAxLDExIEBAIGlu dCBkb21haW5fa2lsbChzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICBpZiAoIGNwdXBvb2xfbW92 ZV9kb21haW4oZCwgY3B1cG9vbDApICkKICAgICAgICAgICAgIHJldHVybiAtRVJFU1RBUlQ7CiAg ICAgICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0 X3hlbl9ndWVzdF9oYW5kbGUocnVuc3RhdGVfZ3Vlc3QodiksIE5VTEwpOworICAgICAgICAgICAg dW5tYXBfcnVuc3RhdGVfYXJlYSh2KTsKICAgICAgICAgICAgIHVubWFwX3ZjcHVfaW5mbyh2KTsK KyAgICAgICAgfQogICAgICAgICBkLT5pc19keWluZyA9IERPTURZSU5HX2RlYWQ7CiAgICAgICAg IC8qIE1lbSBldmVudCBjbGVhbnVwIGhhcyB0byBnbyBoZXJlIGJlY2F1c2UgdGhlIHJpbmdzIAog ICAgICAgICAgKiBoYXZlIHRvIGJlIHB1dCBiZWZvcmUgd2UgY2FsbCBwdXRfZG9tYWluLiAqLwpA QCAtMTE5Miw2ICsxMjYwLDcgQEAgaW50IGRvbWFpbl9zb2Z0X3Jlc2V0KHN0cnVjdCBkb21haW4g KmQpCiAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQogICAgIHsKICAgICAgICAgc2V0X3hlbl9n dWVzdF9oYW5kbGUocnVuc3RhdGVfZ3Vlc3QodiksIE5VTEwpOworICAgICAgICB1bm1hcF9ydW5z dGF0ZV9hcmVhKHYpOwogICAgICAgICB1bm1hcF92Y3B1X2luZm8odik7CiAgICAgfQogCkBAIC0x NTM2LDggKzE2MDUsMTcgQEAgbG9uZyBkb192Y3B1X29wKGludCBjbWQsIHVuc2lnbmVkIGludCB2 Y3B1aWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgIH0KIAogICAgIGNh c2UgVkNQVU9QX3JlZ2lzdGVyX3J1bnN0YXRlX3BoeXNfbWVtb3J5X2FyZWE6Ci0gICAgICAgIHJj ID0gLUVPUE5PVFNVUFA7CisgICAgeworICAgICAgICBzdHJ1Y3QgdmNwdV9yZWdpc3Rlcl9ydW5z dGF0ZV9tZW1vcnlfYXJlYSBhcmVhOworCisgICAgICAgIHJjID0gLUVGQVVMVDsKKyAgICAgICAg aWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmFyZWEsIGFyZywgMSkgKQorICAgICAgICAgICAgYnJlYWs7 CisKKyAgICAgICAgcmMgPSBtYXBfcnVuc3RhdGVfYXJlYSh2LCAmYXJlYSk7CisKICAgICAgICAg YnJlYWs7CisgICAgfQogCiAjaWZkZWYgVkNQVV9UUkFQX05NSQogICAgIGNhc2UgVkNQVU9QX3Nl bmRfbm1pOgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCBiL3hlbi9p bmNsdWRlL2FzbS1hcm0vZG9tYWluLmgKaW5kZXggMzEyZmVjOC4uM2ZiNmVhMiAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJt L2RvbWFpbi5oCkBAIC0yMTcsNiArMjE3LDggQEAgdm9pZCB2Y3B1X3Nob3dfZXhlY3V0aW9uX3N0 YXRlKHN0cnVjdCB2Y3B1ICopOwogdm9pZCB2Y3B1X3Nob3dfcmVnaXN0ZXJzKGNvbnN0IHN0cnVj dCB2Y3B1ICopOwogdm9pZCB2Y3B1X3N3aXRjaF90b19hYXJjaDY0X21vZGUoc3RydWN0IHZjcHUg Kik7CiAKK3ZvaWQgdXBkYXRlX3J1bnN0YXRlX2FyZWEoc3RydWN0IHZjcHUgKik7CisKIC8qCiAg KiBEdWUgdG8gdGhlIHJlc3RyaWN0aW9uIG9mIEdJQ3YzLCB0aGUgbnVtYmVyIG9mIHZDUFVzIGlu IEFGRjAgaXMKICAqIGxpbWl0ZWQgdG8gMTYsIHRodXMgb25seSB0aGUgZmlyc3QgNCBiaXRzIG9m IEFGRjAgYXJlIGxlZ2FsLiBXZSB3aWxsCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vZG9t YWluLmggYi94ZW4vaW5jbHVkZS94ZW4vZG9tYWluLmgKaW5kZXggZDFiZmM4Mi4uZWNkZGNmZSAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRlL3hl bi9kb21haW4uaApAQCAtMTE4LDQgKzExOCw2IEBAIHN0cnVjdCB2bnVtYV9pbmZvIHsKIAogdm9p ZCB2bnVtYV9kZXN0cm95KHN0cnVjdCB2bnVtYV9pbmZvICp2bnVtYSk7CiAKK3N0cnVjdCB2Y3B1 X3JlZ2lzdGVyX3J1bnN0YXRlX21lbW9yeV9hcmVhOworCiAjZW5kaWYgLyogX19YRU5fRE9NQUlO X0hfXyAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4vaW5jbHVk ZS94ZW4vc2NoZWQuaAppbmRleCA3NDhiYjBmLi4yYWZlMzFjIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS94ZW4vc2NoZWQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaApAQCAtMTYzLDE1 ICsxNjMsMjMgQEAgc3RydWN0IHZjcHUKICAgICB2b2lkICAgICAgICAgICAgKnNjaGVkX3ByaXY7 ICAgIC8qIHNjaGVkdWxlci1zcGVjaWZpYyBkYXRhICovCiAKICAgICBzdHJ1Y3QgdmNwdV9ydW5z dGF0ZV9pbmZvIHJ1bnN0YXRlOworCisgICAgc3BpbmxvY2tfdCAgICAgIG1hcHBlZF9ydW5zdGF0 ZV9sb2NrOworCiAjaWZuZGVmIENPTkZJR19DT01QQVQKICMgZGVmaW5lIHJ1bnN0YXRlX2d1ZXN0 KHYpICgodiktPnJ1bnN0YXRlX2d1ZXN0KQogICAgIFhFTl9HVUVTVF9IQU5ETEUodmNwdV9ydW5z dGF0ZV9pbmZvX3QpIHJ1bnN0YXRlX2d1ZXN0OyAvKiBndWVzdCBhZGRyZXNzICovCisgICAgdmNw dV9ydW5zdGF0ZV9pbmZvX3QgKm1hcHBlZF9ydW5zdGF0ZTsKICNlbHNlCiAjIGRlZmluZSBydW5z dGF0ZV9ndWVzdCh2KSAoKHYpLT5ydW5zdGF0ZV9ndWVzdC5uYXRpdmUpCiAgICAgdW5pb24gewog ICAgICAgICBYRU5fR1VFU1RfSEFORExFKHZjcHVfcnVuc3RhdGVfaW5mb190KSBuYXRpdmU7CiAg ICAgICAgIFhFTl9HVUVTVF9IQU5ETEUodmNwdV9ydW5zdGF0ZV9pbmZvX2NvbXBhdF90KSBjb21w YXQ7CiAgICAgfSBydW5zdGF0ZV9ndWVzdDsgLyogZ3Vlc3QgYWRkcmVzcyAqLworICAgIHVuaW9u IHsKKyAgICAgICAgdmNwdV9ydW5zdGF0ZV9pbmZvX3QqIG5hdGl2ZTsKKyAgICAgICAgdmNwdV9y dW5zdGF0ZV9pbmZvX2NvbXBhdF90KiBjb21wYXQ7CisgICAgfSBtYXBwZWRfcnVuc3RhdGU7IC8q IGd1ZXN0IGFkZHJlc3MgKi8KICNlbmRpZgogCiAgICAgLyogbGFzdCB0aW1lIHdoZW4gdkNQVSBp cyBzY2hlZHVsZWQgb3V0ICovCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby94ZW4tZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.0 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F178C10F14 for ; Tue, 23 Apr 2019 08:10:49 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 542232077C for ; Tue, 23 Apr 2019 08:10:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PbR4zOFw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 542232077C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hIqVi-0001qe-4K; Tue, 23 Apr 2019 08:10:38 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hIqVg-0001pn-8k for xen-devel@lists.xenproject.org; Tue, 23 Apr 2019 08:10:36 +0000 X-Inumbo-ID: 444b1a62-659f-11e9-92d7-bc764e045a96 Received: from mail-lj1-x244.google.com (unknown [2a00:1450:4864:20::244]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 444b1a62-659f-11e9-92d7-bc764e045a96; Tue, 23 Apr 2019 08:10:34 +0000 (UTC) Received: by mail-lj1-x244.google.com with SMTP id k8so102958lja.8 for ; Tue, 23 Apr 2019 01:10:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=RsLst2KsiIu8i6aZIlsw+0iDtWi/h+uC+WJEFHKEXB8=; b=PbR4zOFwsA0DbtdM66x479x6pQ3Pvkp4c8V/v8+B4Q9dNAqLgVDXl4FthavQqpBix0 W1s6VTmeRF0gBY0pRWfC6HWCuwJ2PDl4D1d7lljQpxW59JzWD9luHeUQa4/Sk8WAxwo1 8cikdO20HMK5HO35nhdt7GmXPI4TuMeml9Qa1CfemhO+0VPIhVgUSH7mivwIUwqGj6Yv 8fD5v4pQn6AkeBTuRicasIOEX5QfOvbFFKZAgPl92yxbmXolkGEXTPzSAlWY+NQULx5a kI75KSUsuL+OAdhTOEb2kUWyUBZ5D0fJT1se6kThT204pFLf9bQorDGeswYmtOsZdv1h J90w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=RsLst2KsiIu8i6aZIlsw+0iDtWi/h+uC+WJEFHKEXB8=; b=t/Hccq8a9UTuNwLEhXnMHKzXVRZyIBRGNj5Q4jGjTkcmSjQmfUQ9+kZW+OoBlvVPGo KnwNvqF9qZe8qFCvOlmGNphXclEsvVKeYcPhBh3obTJNlUN8Tp+0f3aSiEDNUTbHVDME JYXhWHob6zPASu3ADoeKjX4oW40kAvrrY75Ffeip6ys2M3sane1dys2VPD3phx9d1JNj Key/WbNp871YmPU+IT3+PKK0We23fs0j3VesZDoGBZrm7l4JqI7nIF7f+c+Ts5AJgDks JQIebXCi+Y2obUtkX/ST4gnUsZgRnII4JAGGIeKqn2OiYnr4M29XRRmC2HQTIwTP1lJh XRwA== X-Gm-Message-State: APjAAAWq1WS5tcQQLkvz4US80Bp5k3Dvg/+UaZ8C/0SdGBVltGMdlkNF 1sP6WfuYxDXJWRYj9M6x07o= X-Google-Smtp-Source: APXvYqy7MFT2Bb/Vi7HSynbjxMv6JuQk0/g6v8gvvxAvnbp83KOgW3Q/P4eumrZLDa+S68TzwqiZ1Q== X-Received: by 2002:a2e:9a46:: with SMTP id k6mr12730474ljj.119.1556007032513; Tue, 23 Apr 2019 01:10:32 -0700 (PDT) Received: from aanisov-work.kyiv.epam.com (ll-22.209.223.85.sovam.net.ua. [85.223.209.22]) by smtp.gmail.com with ESMTPSA id m28sm3533538lfc.71.2019.04.23.01.10.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 23 Apr 2019 01:10:31 -0700 (PDT) From: Andrii Anisov To: xen-devel@lists.xen.org Date: Tue, 23 Apr 2019 11:10:26 +0300 Message-Id: <1556007026-31057-3-git-send-email-andrii.anisov@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1556007026-31057-1-git-send-email-andrii.anisov@gmail.com> References: <1556007026-31057-1-git-send-email-andrii.anisov@gmail.com> Subject: [Xen-devel] [PATCH v2 2/2] xen: implement VCPUOP_register_runstate_phys_memory_area X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , Andrii Anisov , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , xen-devel@lists.xenproject.org, Wei Liu , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190423081026.ioTxYbVRP9p2eLLHr7sv7Qhi_HbRaPTLNffsZ6-C4gU@z> RnJvbTogQW5kcmlpIEFuaXNvdiA8YW5kcmlpX2FuaXNvdkBlcGFtLmNvbT4KClZDUFVPUF9yZWdp c3Rlcl9ydW5zdGF0ZV9waHlzX21lbW9yeV9hcmVhIGlzIGltcGxlbWVudGVkIHZpYSBydW5zdGF0 ZQphcmVhIG1hcHBpbmcuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyaWkgQW5pc292IDxhbmRyaWlfYW5p c292QGVwYW0uY29tPgotLS0KIHhlbi9hcmNoL2FybS9kb21haW4uYyAgICAgICAgfCAgNjIgKysr KysrKysrKysrKysrKystLS0tLS0tLQogeGVuL2FyY2gveDg2L2RvbWFpbi5jICAgICAgICB8IDEw NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiB4ZW4vY29tbW9u L2RvbWFpbi5jICAgICAgICAgIHwgIDgwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQogeGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCB8ICAgMiArCiB4ZW4vaW5jbHVkZS94ZW4v ZG9tYWluLmggICAgIHwgICAyICsKIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC5oICAgICAgfCAgIDgg KysrKwogNiBmaWxlcyBjaGFuZ2VkLCAyMTAgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbi5jIGIveGVuL2FyY2gvYXJtL2RvbWFp bi5jCmluZGV4IDZkYzYzM2UuLjhlMjRlNjMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9kb21h aW4uYworKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMKQEAgLTI3NSwzMiArMjc1LDU1IEBAIHN0 YXRpYyB2b2lkIGN0eHRfc3dpdGNoX3RvKHN0cnVjdCB2Y3B1ICpuKQogfQogCiAvKiBVcGRhdGUg cGVyLVZDUFUgZ3Vlc3QgcnVuc3RhdGUgc2hhcmVkIG1lbW9yeSBhcmVhIChpZiByZWdpc3RlcmVk KS4gKi8KLXN0YXRpYyB2b2lkIHVwZGF0ZV9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICp2KQor dm9pZCB1cGRhdGVfcnVuc3RhdGVfYXJlYShzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICB2b2lkIF9f dXNlciAqZ3Vlc3RfaGFuZGxlID0gTlVMTDsKKyAgICBpZiAoICFndWVzdF9oYW5kbGVfaXNfbnVs bChydW5zdGF0ZV9ndWVzdCh2KSkgKQorICAgIHsKKyAgICAgICAgdm9pZCBfX3VzZXIgKmd1ZXN0 X2hhbmRsZSA9IE5VTEw7CisgICAgICAgIGlmICggVk1fQVNTSVNUKHYtPmRvbWFpbiwgcnVuc3Rh dGVfdXBkYXRlX2ZsYWcpICkKKyAgICAgICAgeworICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlID0g JnYtPnJ1bnN0YXRlX2d1ZXN0LnAtPnN0YXRlX2VudHJ5X3RpbWUgKyAxOworICAgICAgICAgICAg Z3Vlc3RfaGFuZGxlLS07CisgICAgICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1l IHw9IFhFTl9SVU5TVEFURV9VUERBVEU7CisgICAgICAgICAgICBfX3Jhd19jb3B5X3RvX2d1ZXN0 KGd1ZXN0X2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKiko JnYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgKyAxKSAtIDEsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDEpOworICAgICAgICAgICAgc21wX3dtYigpOworICAgICAgICB9CiAK LSAgICBpZiAoIGd1ZXN0X2hhbmRsZV9pc19udWxsKHJ1bnN0YXRlX2d1ZXN0KHYpKSApCi0gICAg ICAgIHJldHVybjsKKyAgICAgICAgX19jb3B5X3RvX2d1ZXN0KHJ1bnN0YXRlX2d1ZXN0KHYpLCAm di0+cnVuc3RhdGUsIDEpOwogCi0gICAgaWYgKCBWTV9BU1NJU1Qodi0+ZG9tYWluLCBydW5zdGF0 ZV91cGRhdGVfZmxhZykgKQotICAgIHsKLSAgICAgICAgZ3Vlc3RfaGFuZGxlID0gJnYtPnJ1bnN0 YXRlX2d1ZXN0LnAtPnN0YXRlX2VudHJ5X3RpbWUgKyAxOwotICAgICAgICBndWVzdF9oYW5kbGUt LTsKLSAgICAgICAgdi0+cnVuc3RhdGUuc3RhdGVfZW50cnlfdGltZSB8PSBYRU5fUlVOU1RBVEVf VVBEQVRFOwotICAgICAgICBfX3Jhd19jb3B5X3RvX2d1ZXN0KGd1ZXN0X2hhbmRsZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSgmdi0+cnVuc3RhdGUuc3RhdGVfZW50cnlf dGltZSArIDEpIC0gMSwgMSk7Ci0gICAgICAgIHNtcF93bWIoKTsKKyAgICAgICAgaWYgKCBndWVz dF9oYW5kbGUgKQorICAgICAgICB7CisgICAgICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRy eV90aW1lICY9IH5YRU5fUlVOU1RBVEVfVVBEQVRFOworICAgICAgICAgICAgc21wX3dtYigpOwor ICAgICAgICAgICAgX19yYXdfY29weV90b19ndWVzdChndWVzdF9oYW5kbGUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopKCZ2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90 aW1lICsgMSkgLSAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsKKyAgICAg ICAgfQogICAgIH0KIAotICAgIF9fY29weV90b19ndWVzdChydW5zdGF0ZV9ndWVzdCh2KSwgJnYt PnJ1bnN0YXRlLCAxKTsKLQotICAgIGlmICggZ3Vlc3RfaGFuZGxlICkKKyAgICBzcGluX2xvY2so JnYtPm1hcHBlZF9ydW5zdGF0ZV9sb2NrKTsKKyAgICBpZiAoIHYtPm1hcHBlZF9ydW5zdGF0ZSAp CiAgICAgewotICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lICY9IH5YRU5fUlVO U1RBVEVfVVBEQVRFOwotICAgICAgICBzbXBfd21iKCk7Ci0gICAgICAgIF9fcmF3X2NvcHlfdG9f Z3Vlc3QoZ3Vlc3RfaGFuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICop KCZ2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lICsgMSkgLSAxLCAxKTsKKyAgICAgICAgaWYg KCBWTV9BU1NJU1Qodi0+ZG9tYWluLCBydW5zdGF0ZV91cGRhdGVfZmxhZykgKQorICAgICAgICB7 CisgICAgICAgICAgICB2LT5tYXBwZWRfcnVuc3RhdGUtPnN0YXRlX2VudHJ5X3RpbWUgfD0gWEVO X1JVTlNUQVRFX1VQREFURTsKKyAgICAgICAgICAgIHNtcF93bWIoKTsKKyAgICAgICAgICAgIHYt PnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgfD0gWEVOX1JVTlNUQVRFX1VQREFURTsKKyAgICAg ICAgfQorCisgICAgICAgIG1lbWNweSh2LT5tYXBwZWRfcnVuc3RhdGUsICZ2LT5ydW5zdGF0ZSwg c2l6ZW9mKHYtPnJ1bnN0YXRlKSk7CisKKyAgICAgICAgaWYgKCBWTV9BU1NJU1Qodi0+ZG9tYWlu LCBydW5zdGF0ZV91cGRhdGVfZmxhZykgKQorICAgICAgICB7CisgICAgICAgICAgICB2LT5tYXBw ZWRfcnVuc3RhdGUtPnN0YXRlX2VudHJ5X3RpbWUgJj0gflhFTl9SVU5TVEFURV9VUERBVEU7Cisg ICAgICAgICAgICBzbXBfd21iKCk7CisgICAgICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRy eV90aW1lICY9IH5YRU5fUlVOU1RBVEVfVVBEQVRFOworICAgICAgICB9CiAgICAgfQorICAgIHNw aW5fdW5sb2NrKCZ2LT5tYXBwZWRfcnVuc3RhdGVfbG9jayk7CisKIH0KIAogc3RhdGljIHZvaWQg c2NoZWR1bGVfdGFpbChzdHJ1Y3QgdmNwdSAqcHJldikKQEAgLTk5OCw2ICsxMDIxLDcgQEAgbG9u ZyBkb19hcm1fdmNwdV9vcChpbnQgY21kLCB1bnNpZ25lZCBpbnQgdmNwdWlkLCBYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHZvaWQpIGEKICAgICB7CiAgICAgICAgIGNhc2UgVkNQVU9QX3JlZ2lzdGVy X3ZjcHVfaW5mbzoKICAgICAgICAgY2FzZSBWQ1BVT1BfcmVnaXN0ZXJfcnVuc3RhdGVfbWVtb3J5 X2FyZWE6CisgICAgICAgIGNhc2UgVkNQVU9QX3JlZ2lzdGVyX3J1bnN0YXRlX3BoeXNfbWVtb3J5 X2FyZWE6CiAgICAgICAgICAgICByZXR1cm4gZG9fdmNwdV9vcChjbWQsIHZjcHVpZCwgYXJnKTsK ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCmluZGV4IDll YWE5NzguLjQ2YzIyMTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYworKysgYi94 ZW4vYXJjaC94ODYvZG9tYWluLmMKQEAgLTE1NTgsNTEgKzE1NTgsOTggQEAgdm9pZCBwYXJhdmly dF9jdHh0X3N3aXRjaF90byhzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgd3Jtc3JfdHNjX2F1eCh2 LT5hcmNoLm1zcnMtPnRzY19hdXgpOwogfQogCi0vKiBVcGRhdGUgcGVyLVZDUFUgZ3Vlc3QgcnVu c3RhdGUgc2hhcmVkIG1lbW9yeSBhcmVhIChpZiByZWdpc3RlcmVkKS4gKi8KLWJvb2wgdXBkYXRl X3J1bnN0YXRlX2FyZWEoc3RydWN0IHZjcHUgKnYpCitzdGF0aWMgdm9pZCB1cGRhdGVfbWFwcGVk X3J1bnN0YXRlX2FyZWFfbmF0aXZlKHN0cnVjdCB2Y3B1ICp2KQogewotICAgIGJvb2wgcmM7Ci0g ICAgc3RydWN0IGd1ZXN0X21lbW9yeV9wb2xpY3kgcG9saWN5ID0geyAubmVzdGVkX2d1ZXN0X21v ZGUgPSBmYWxzZSB9OwotICAgIHZvaWQgX191c2VyICpndWVzdF9oYW5kbGUgPSBOVUxMOwotCi0g ICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbChydW5zdGF0ZV9ndWVzdCh2KSkgKQotICAgICAg ICByZXR1cm4gdHJ1ZTsKLQotICAgIHVwZGF0ZV9ndWVzdF9tZW1vcnlfcG9saWN5KHYsICZwb2xp Y3kpOwotCiAgICAgaWYgKCBWTV9BU1NJU1Qodi0+ZG9tYWluLCBydW5zdGF0ZV91cGRhdGVfZmxh ZykgKQogICAgIHsKLSAgICAgICAgZ3Vlc3RfaGFuZGxlID0gaGFzXzMyYml0X3NoaW5mbyh2LT5k b21haW4pCi0gICAgICAgICAgICA/ICZ2LT5ydW5zdGF0ZV9ndWVzdC5jb21wYXQucC0+c3RhdGVf ZW50cnlfdGltZSArIDEKLSAgICAgICAgICAgIDogJnYtPnJ1bnN0YXRlX2d1ZXN0Lm5hdGl2ZS5w LT5zdGF0ZV9lbnRyeV90aW1lICsgMTsKLSAgICAgICAgZ3Vlc3RfaGFuZGxlLS07CiAgICAgICAg IHYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgfD0gWEVOX1JVTlNUQVRFX1VQREFURTsKLSAg ICAgICAgX19yYXdfY29weV90b19ndWVzdChndWVzdF9oYW5kbGUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHZvaWQgKikoJnYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgKyAxKSAt IDEsIDEpOworICAgICAgICB2LT5tYXBwZWRfcnVuc3RhdGUubmF0aXZlLT5zdGF0ZV9lbnRyeV90 aW1lIHw9IFhFTl9SVU5TVEFURV9VUERBVEU7CiAgICAgICAgIHNtcF93bWIoKTsKICAgICB9CiAK LSAgICBpZiAoIGhhc18zMmJpdF9zaGluZm8odi0+ZG9tYWluKSApCisgICAgbWVtY3B5KHYtPm1h cHBlZF9ydW5zdGF0ZS5uYXRpdmUsICZ2LT5ydW5zdGF0ZSwgc2l6ZW9mKHYtPnJ1bnN0YXRlKSk7 CisKKyAgICBpZiAoIFZNX0FTU0lTVCh2LT5kb21haW4sIHJ1bnN0YXRlX3VwZGF0ZV9mbGFnKSAp CiAgICAgewotICAgICAgICBzdHJ1Y3QgY29tcGF0X3ZjcHVfcnVuc3RhdGVfaW5mbyBpbmZvOwor ICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lICY9IH5YRU5fUlVOU1RBVEVfVVBE QVRFOworICAgICAgICB2LT5tYXBwZWRfcnVuc3RhdGUubmF0aXZlLT5zdGF0ZV9lbnRyeV90aW1l ICY9IH5YRU5fUlVOU1RBVEVfVVBEQVRFOworICAgICAgICBzbXBfd21iKCk7CisgICAgfQorfQog Ci0gICAgICAgIFhMQVRfdmNwdV9ydW5zdGF0ZV9pbmZvKCZpbmZvLCAmdi0+cnVuc3RhdGUpOwot ICAgICAgICBfX2NvcHlfdG9fZ3Vlc3Qodi0+cnVuc3RhdGVfZ3Vlc3QuY29tcGF0LCAmaW5mbywg MSk7Ci0gICAgICAgIHJjID0gdHJ1ZTsKK3N0YXRpYyB2b2lkIHVwZGF0ZV9tYXBwZWRfcnVuc3Rh dGVfYXJlYV9jb21wYXQoc3RydWN0IHZjcHUgKnYpCit7CisgICAgaWYgKCBWTV9BU1NJU1Qodi0+ ZG9tYWluLCBydW5zdGF0ZV91cGRhdGVfZmxhZykgKQorICAgIHsKKyAgICAgICAgdi0+cnVuc3Rh dGUuc3RhdGVfZW50cnlfdGltZSB8PSBYRU5fUlVOU1RBVEVfVVBEQVRFOworICAgICAgICB2LT5t YXBwZWRfcnVuc3RhdGUuY29tcGF0LT5zdGF0ZV9lbnRyeV90aW1lIHw9IFhFTl9SVU5TVEFURV9V UERBVEU7CisgICAgICAgIHNtcF93bWIoKTsKICAgICB9Ci0gICAgZWxzZQotICAgICAgICByYyA9 IF9fY29weV90b19ndWVzdChydW5zdGF0ZV9ndWVzdCh2KSwgJnYtPnJ1bnN0YXRlLCAxKSAhPQot ICAgICAgICAgICAgIHNpemVvZih2LT5ydW5zdGF0ZSk7CiAKLSAgICBpZiAoIGd1ZXN0X2hhbmRs ZSApCisgICAgbWVtY3B5KHYtPm1hcHBlZF9ydW5zdGF0ZS5jb21wYXQsICZ2LT5ydW5zdGF0ZSwg c2l6ZW9mKHYtPnJ1bnN0YXRlKSk7CisKKyAgICBpZiAoIFZNX0FTU0lTVCh2LT5kb21haW4sIHJ1 bnN0YXRlX3VwZGF0ZV9mbGFnKSApCiAgICAgewogICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9l bnRyeV90aW1lICY9IH5YRU5fUlVOU1RBVEVfVVBEQVRFOworICAgICAgICB2LT5tYXBwZWRfcnVu c3RhdGUuY29tcGF0LT5zdGF0ZV9lbnRyeV90aW1lICY9IH5YRU5fUlVOU1RBVEVfVVBEQVRFOwog ICAgICAgICBzbXBfd21iKCk7Ci0gICAgICAgIF9fcmF3X2NvcHlfdG9fZ3Vlc3QoZ3Vlc3RfaGFu ZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopKCZ2LT5ydW5zdGF0ZS5z dGF0ZV9lbnRyeV90aW1lICsgMSkgLSAxLCAxKTsKICAgICB9Cit9CiAKLSAgICB1cGRhdGVfZ3Vl c3RfbWVtb3J5X3BvbGljeSh2LCAmcG9saWN5KTsKKy8qIFVwZGF0ZSBwZXItVkNQVSBndWVzdCBy dW5zdGF0ZSBzaGFyZWQgbWVtb3J5IGFyZWEgKGlmIHJlZ2lzdGVyZWQpLiAqLworYm9vbCB1cGRh dGVfcnVuc3RhdGVfYXJlYShzdHJ1Y3QgdmNwdSAqdikKK3sKKyAgICBib29sIHJjID0gdHJ1ZTsK KworICAgIGlmICggIWd1ZXN0X2hhbmRsZV9pc19udWxsKHJ1bnN0YXRlX2d1ZXN0KHYpKSApCisg ICAgeworICAgICAgICBzdHJ1Y3QgZ3Vlc3RfbWVtb3J5X3BvbGljeSBwb2xpY3kgPSB7IC5uZXN0 ZWRfZ3Vlc3RfbW9kZSA9IGZhbHNlIH07CisgICAgICAgIHZvaWQgX191c2VyICpndWVzdF9oYW5k bGUgPSBOVUxMOworCisgICAgICAgIHVwZGF0ZV9ndWVzdF9tZW1vcnlfcG9saWN5KHYsICZwb2xp Y3kpOworICAgICAgICBpZiAoIFZNX0FTU0lTVCh2LT5kb21haW4sIHJ1bnN0YXRlX3VwZGF0ZV9m bGFnKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGd1ZXN0X2hhbmRsZSA9IGhhc18zMmJpdF9z aGluZm8odi0+ZG9tYWluKQorICAgICAgICAgICAgICAgID8gJnYtPnJ1bnN0YXRlX2d1ZXN0LmNv bXBhdC5wLT5zdGF0ZV9lbnRyeV90aW1lICsgMQorICAgICAgICAgICAgICAgIDogJnYtPnJ1bnN0 YXRlX2d1ZXN0Lm5hdGl2ZS5wLT5zdGF0ZV9lbnRyeV90aW1lICsgMTsKKyAgICAgICAgICAgIGd1 ZXN0X2hhbmRsZS0tOworICAgICAgICAgICAgdi0+cnVuc3RhdGUuc3RhdGVfZW50cnlfdGltZSB8 PSBYRU5fUlVOU1RBVEVfVVBEQVRFOworICAgICAgICAgICAgX19yYXdfY29weV90b19ndWVzdChn dWVzdF9oYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopKCZ2 LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lICsgMSkgLSAxLCAxKTsKKyAgICAgICAgICAgIHNt cF93bWIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggaGFzXzMyYml0X3NoaW5mbyh2LT5k b21haW4pICkKKyAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IGNvbXBhdF92Y3B1X3J1bnN0 YXRlX2luZm8gaW5mbzsKKworICAgICAgICAgICAgWExBVF92Y3B1X3J1bnN0YXRlX2luZm8oJmlu Zm8sICZ2LT5ydW5zdGF0ZSk7CisgICAgICAgICAgICBfX2NvcHlfdG9fZ3Vlc3Qodi0+cnVuc3Rh dGVfZ3Vlc3QuY29tcGF0LCAmaW5mbywgMSk7CisgICAgICAgICAgICByYyA9IHRydWU7CisgICAg ICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmMgPSBfX2NvcHlfdG9fZ3Vlc3QocnVu c3RhdGVfZ3Vlc3QodiksICZ2LT5ydW5zdGF0ZSwgMSkgIT0KKyAgICAgICAgICAgICAgICAgc2l6 ZW9mKHYtPnJ1bnN0YXRlKTsKKworICAgICAgICBpZiAoIGd1ZXN0X2hhbmRsZSApCisgICAgICAg IHsKKyAgICAgICAgICAgIHYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgJj0gflhFTl9SVU5T VEFURV9VUERBVEU7CisgICAgICAgICAgICBzbXBfd21iKCk7CisgICAgICAgICAgICBfX3Jhd19j b3B5X3RvX2d1ZXN0KGd1ZXN0X2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHZvaWQgKikoJnYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgKyAxKSAtIDEsIDEpOwor ICAgICAgICB9CisgICAgICAgIHVwZGF0ZV9ndWVzdF9tZW1vcnlfcG9saWN5KHYsICZwb2xpY3kp OworICAgIH0KKworICAgIHNwaW5fbG9jayh2LT5tYXBwZWRfcnVuc3RhdGVfbG9jayk7CisgICAg aWYgKCB2LT5tYXBwZWRfcnVuc3RhdGUgKQorICAgIHsKKyAgICAgICAgaWYgKCBoYXNfMzJiaXRf c2hpbmZvKCh2KS0+ZG9tYWluKSApCisgICAgICAgICAgICB1cGRhdGVfbWFwcGVkX3J1bnN0YXRl X2FyZWFfY29tcGF0KHYpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB1cGRhdGVfbWFwcGVk X3J1bnN0YXRlX2FyZWFfbmF0aXZlKHYpOworICAgIH0KKyAgICBzcGluX3VubG9jayh2LT5tYXBw ZWRfcnVuc3RhdGVfbG9jayk7CiAKICAgICByZXR1cm4gcmM7CiB9CmRpZmYgLS1naXQgYS94ZW4v Y29tbW9uL2RvbWFpbi5jIGIveGVuL2NvbW1vbi9kb21haW4uYwppbmRleCBhZTIyMDQ5Li42ZGY3 NmM2IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCisrKyBiL3hlbi9jb21tb24vZG9t YWluLmMKQEAgLTE0OSw2ICsxNDksNyBAQCBzdHJ1Y3QgdmNwdSAqdmNwdV9jcmVhdGUoCiAgICAg di0+ZGlydHlfY3B1ID0gVkNQVV9DUFVfQ0xFQU47CiAKICAgICBzcGluX2xvY2tfaW5pdCgmdi0+ dmlycV9sb2NrKTsKKyAgICBzcGluX2xvY2tfaW5pdCgmdi0+bWFwcGVkX3J1bnN0YXRlX2xvY2sp OwogCiAgICAgdGFza2xldF9pbml0KCZ2LT5jb250aW51ZV9oeXBlcmNhbGxfdGFza2xldCwgTlVM TCwgMCk7CiAKQEAgLTY5OSw2ICs3MDAsNjkgQEAgaW50IHJjdV9sb2NrX2xpdmVfcmVtb3RlX2Rv bWFpbl9ieV9pZChkb21pZF90IGRvbSwgc3RydWN0IGRvbWFpbiAqKmQpCiAgICAgcmV0dXJuIDA7 CiB9CiAKK3N0YXRpYyB2b2lkIF91bm1hcF9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICp2KQor eworICAgIG1mbl90IG1mbjsKKworICAgIGlmICggIXYtPm1hcHBlZF9ydW5zdGF0ZSApCisgICAg ICAgIHJldHVybjsKKworICAgIG1mbiA9IF9tZm4odmlydF90b19tZm4ocnVuc3RhdGVfZ3Vlc3Qo dikucCkpOworCisgICAgdW5tYXBfZG9tYWluX3BhZ2VfZ2xvYmFsKCh2b2lkICopCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgodW5zaWduZWQgbG9uZyl2LT5tYXBwZWRfcnVuc3RhdGUg JgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFHRV9NQVNLKSk7CisKKyAgICB2LT5t YXBwZWRfcnVuc3RhdGUgPSBOVUxMOworICAgIHB1dF9wYWdlX2FuZF90eXBlKG1mbl90b19wYWdl KG1mbikpOworfQorCitzdGF0aWMgaW50IG1hcF9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICp2 LAorICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2Y3B1X3JlZ2lzdGVyX3J1bnN0YXRlX21l bW9yeV9hcmVhICphcmVhKQoreworICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gYXJlYS0+YWRk ci5wICYgflBBR0VfTUFTSzsKKyAgICBnZm5fdCBnZm4gPSBnYWRkcl90b19nZm4oYXJlYS0+YWRk ci5wKTsKKyAgICBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOworICAgIHZvaWQgKm1hcHBp bmc7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKKyAgICBzaXplX3Qgc2l6ZSA9IHNpemVv ZiAoc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbyApOworCisgICAgaWYgKCBvZmZzZXQgPiAoUEFH RV9TSVpFIC0gc2l6ZSkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHBhZ2UgPSBn ZXRfcGFnZV9mcm9tX2dmbihkLCBnZm5feChnZm4pLCBOVUxMLCBQMk1fQUxMT0MpOworICAgIGlm ICggIXBhZ2UgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIGlmICggIWdldF9wYWdl X3R5cGUocGFnZSwgUEdUX3dyaXRhYmxlX3BhZ2UpICkKKyAgICB7CisgICAgICAgIHB1dF9wYWdl KHBhZ2UpOworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICBtYXBwaW5nID0g X19tYXBfZG9tYWluX3BhZ2VfZ2xvYmFsKHBhZ2UpOworCisgICAgaWYgKCBtYXBwaW5nID09IE5V TEwgKQorICAgIHsKKyAgICAgICAgcHV0X3BhZ2VfYW5kX3R5cGUocGFnZSk7CisgICAgICAgIHJl dHVybiAtRU5PTUVNOworICAgIH0KKworICAgIHNwaW5fbG9jaygmdi0+bWFwcGVkX3J1bnN0YXRl X2xvY2spOworICAgIF91bm1hcF9ydW5zdGF0ZV9hcmVhKHYpOworICAgIHYtPm1hcHBlZF9ydW5z dGF0ZSA9IG1hcHBpbmcgKyBvZmZzZXQ7CisgICAgc3Bpbl91bmxvY2soJnYtPm1hcHBlZF9ydW5z dGF0ZV9sb2NrKTsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB1bm1hcF9ydW5z dGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICp2KQoreworICAgIHNwaW5fbG9jaygmdi0+bWFwcGVkX3J1 bnN0YXRlX2xvY2spOworICAgIF91bm1hcF9ydW5zdGF0ZV9hcmVhKHYpOworICAgIHNwaW5fdW5s b2NrKCZ2LT5tYXBwZWRfcnVuc3RhdGVfbG9jayk7Cit9CisKIGludCBkb21haW5fa2lsbChzdHJ1 Y3QgZG9tYWluICpkKQogewogICAgIGludCByYyA9IDA7CkBAIC03MzcsNyArODAxLDExIEBAIGlu dCBkb21haW5fa2lsbChzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICBpZiAoIGNwdXBvb2xfbW92 ZV9kb21haW4oZCwgY3B1cG9vbDApICkKICAgICAgICAgICAgIHJldHVybiAtRVJFU1RBUlQ7CiAg ICAgICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0 X3hlbl9ndWVzdF9oYW5kbGUocnVuc3RhdGVfZ3Vlc3QodiksIE5VTEwpOworICAgICAgICAgICAg dW5tYXBfcnVuc3RhdGVfYXJlYSh2KTsKICAgICAgICAgICAgIHVubWFwX3ZjcHVfaW5mbyh2KTsK KyAgICAgICAgfQogICAgICAgICBkLT5pc19keWluZyA9IERPTURZSU5HX2RlYWQ7CiAgICAgICAg IC8qIE1lbSBldmVudCBjbGVhbnVwIGhhcyB0byBnbyBoZXJlIGJlY2F1c2UgdGhlIHJpbmdzIAog ICAgICAgICAgKiBoYXZlIHRvIGJlIHB1dCBiZWZvcmUgd2UgY2FsbCBwdXRfZG9tYWluLiAqLwpA QCAtMTE5Miw2ICsxMjYwLDcgQEAgaW50IGRvbWFpbl9zb2Z0X3Jlc2V0KHN0cnVjdCBkb21haW4g KmQpCiAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQogICAgIHsKICAgICAgICAgc2V0X3hlbl9n dWVzdF9oYW5kbGUocnVuc3RhdGVfZ3Vlc3QodiksIE5VTEwpOworICAgICAgICB1bm1hcF9ydW5z dGF0ZV9hcmVhKHYpOwogICAgICAgICB1bm1hcF92Y3B1X2luZm8odik7CiAgICAgfQogCkBAIC0x NTM2LDggKzE2MDUsMTcgQEAgbG9uZyBkb192Y3B1X29wKGludCBjbWQsIHVuc2lnbmVkIGludCB2 Y3B1aWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgIH0KIAogICAgIGNh c2UgVkNQVU9QX3JlZ2lzdGVyX3J1bnN0YXRlX3BoeXNfbWVtb3J5X2FyZWE6Ci0gICAgICAgIHJj ID0gLUVPUE5PVFNVUFA7CisgICAgeworICAgICAgICBzdHJ1Y3QgdmNwdV9yZWdpc3Rlcl9ydW5z dGF0ZV9tZW1vcnlfYXJlYSBhcmVhOworCisgICAgICAgIHJjID0gLUVGQVVMVDsKKyAgICAgICAg aWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmFyZWEsIGFyZywgMSkgKQorICAgICAgICAgICAgYnJlYWs7 CisKKyAgICAgICAgcmMgPSBtYXBfcnVuc3RhdGVfYXJlYSh2LCAmYXJlYSk7CisKICAgICAgICAg YnJlYWs7CisgICAgfQogCiAjaWZkZWYgVkNQVV9UUkFQX05NSQogICAgIGNhc2UgVkNQVU9QX3Nl bmRfbm1pOgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCBiL3hlbi9p bmNsdWRlL2FzbS1hcm0vZG9tYWluLmgKaW5kZXggMzEyZmVjOC4uM2ZiNmVhMiAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJt L2RvbWFpbi5oCkBAIC0yMTcsNiArMjE3LDggQEAgdm9pZCB2Y3B1X3Nob3dfZXhlY3V0aW9uX3N0 YXRlKHN0cnVjdCB2Y3B1ICopOwogdm9pZCB2Y3B1X3Nob3dfcmVnaXN0ZXJzKGNvbnN0IHN0cnVj dCB2Y3B1ICopOwogdm9pZCB2Y3B1X3N3aXRjaF90b19hYXJjaDY0X21vZGUoc3RydWN0IHZjcHUg Kik7CiAKK3ZvaWQgdXBkYXRlX3J1bnN0YXRlX2FyZWEoc3RydWN0IHZjcHUgKik7CisKIC8qCiAg KiBEdWUgdG8gdGhlIHJlc3RyaWN0aW9uIG9mIEdJQ3YzLCB0aGUgbnVtYmVyIG9mIHZDUFVzIGlu IEFGRjAgaXMKICAqIGxpbWl0ZWQgdG8gMTYsIHRodXMgb25seSB0aGUgZmlyc3QgNCBiaXRzIG9m IEFGRjAgYXJlIGxlZ2FsLiBXZSB3aWxsCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vZG9t YWluLmggYi94ZW4vaW5jbHVkZS94ZW4vZG9tYWluLmgKaW5kZXggZDFiZmM4Mi4uZWNkZGNmZSAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRlL3hl bi9kb21haW4uaApAQCAtMTE4LDQgKzExOCw2IEBAIHN0cnVjdCB2bnVtYV9pbmZvIHsKIAogdm9p ZCB2bnVtYV9kZXN0cm95KHN0cnVjdCB2bnVtYV9pbmZvICp2bnVtYSk7CiAKK3N0cnVjdCB2Y3B1 X3JlZ2lzdGVyX3J1bnN0YXRlX21lbW9yeV9hcmVhOworCiAjZW5kaWYgLyogX19YRU5fRE9NQUlO X0hfXyAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4vaW5jbHVk ZS94ZW4vc2NoZWQuaAppbmRleCA3NDhiYjBmLi4yYWZlMzFjIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS94ZW4vc2NoZWQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaApAQCAtMTYzLDE1 ICsxNjMsMjMgQEAgc3RydWN0IHZjcHUKICAgICB2b2lkICAgICAgICAgICAgKnNjaGVkX3ByaXY7 ICAgIC8qIHNjaGVkdWxlci1zcGVjaWZpYyBkYXRhICovCiAKICAgICBzdHJ1Y3QgdmNwdV9ydW5z dGF0ZV9pbmZvIHJ1bnN0YXRlOworCisgICAgc3BpbmxvY2tfdCAgICAgIG1hcHBlZF9ydW5zdGF0 ZV9sb2NrOworCiAjaWZuZGVmIENPTkZJR19DT01QQVQKICMgZGVmaW5lIHJ1bnN0YXRlX2d1ZXN0 KHYpICgodiktPnJ1bnN0YXRlX2d1ZXN0KQogICAgIFhFTl9HVUVTVF9IQU5ETEUodmNwdV9ydW5z dGF0ZV9pbmZvX3QpIHJ1bnN0YXRlX2d1ZXN0OyAvKiBndWVzdCBhZGRyZXNzICovCisgICAgdmNw dV9ydW5zdGF0ZV9pbmZvX3QgKm1hcHBlZF9ydW5zdGF0ZTsKICNlbHNlCiAjIGRlZmluZSBydW5z dGF0ZV9ndWVzdCh2KSAoKHYpLT5ydW5zdGF0ZV9ndWVzdC5uYXRpdmUpCiAgICAgdW5pb24gewog ICAgICAgICBYRU5fR1VFU1RfSEFORExFKHZjcHVfcnVuc3RhdGVfaW5mb190KSBuYXRpdmU7CiAg ICAgICAgIFhFTl9HVUVTVF9IQU5ETEUodmNwdV9ydW5zdGF0ZV9pbmZvX2NvbXBhdF90KSBjb21w YXQ7CiAgICAgfSBydW5zdGF0ZV9ndWVzdDsgLyogZ3Vlc3QgYWRkcmVzcyAqLworICAgIHVuaW9u IHsKKyAgICAgICAgdmNwdV9ydW5zdGF0ZV9pbmZvX3QqIG5hdGl2ZTsKKyAgICAgICAgdmNwdV9y dW5zdGF0ZV9pbmZvX2NvbXBhdF90KiBjb21wYXQ7CisgICAgfSBtYXBwZWRfcnVuc3RhdGU7IC8q IGd1ZXN0IGFkZHJlc3MgKi8KICNlbmRpZgogCiAgICAgLyogbGFzdCB0aW1lIHdoZW4gdkNQVSBp cyBzY2hlZHVsZWQgb3V0ICovCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby94ZW4tZGV2ZWw=