From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PULL 2/2] xen: handle inbound migration of VMs without ioreq server pages Date: Fri, 12 Aug 2016 16:36:10 -0700 Message-ID: <1471044970-9229-2-git-send-email-sstabellini@kernel.org> References: <1471044970-9229-1-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bYLzw-0004FX-2V for xen-devel@lists.xenproject.org; Fri, 12 Aug 2016 23:36:20 +0000 In-Reply-To: <1471044970-9229-1-git-send-email-sstabellini@kernel.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: peter.maydell@linaro.org Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, qemu-devel@nongnu.org, Paul Durrant List-Id: xen-devel@lists.xenproject.org RnJvbTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KClZNcyBjcmVhdGVk IG9uIG9sZGVyIHZlcnNpb25zIG9uIFhlbiB3aWxsIG5vdCBoYXZlIGJlZW4gcHJvdmlzaW9uZWQg d2l0aApwYWdlcyB0byBzdXBwb3J0IGNyZWF0aW9uIG9mIG5vbi1kZWZhdWx0IGlvcmVxIHNlcnZl cnMuIEluIHRoaXMgY2FzZQp0aGUgaW9yZXEgc2VydmVyIEFQSSBpcyBub3Qgc3VwcG9ydGVkIGFu ZCBRRU1VJ3Mgb25seSBvcHRpb24gaXMgdG8gZmFsbApiYWNrIHRvIHVzaW5nIHRoZSBkZWZhdWx0 IGlvcmVxIHNlcnZlciBwYWdlcyBhcyBpdCBkaWQgcHJpb3IgdG8KY29tbWl0IDM5OTZlODVjICgi WGVuOiBVc2UgdGhlIGlvcmVxLXNlcnZlciBBUEkgd2hlbiBhdmFpbGFibGUiKS4KClRoaXMgcGF0 Y2ggdGhlcmVmb3JlIGNoYW5nZXMgdGhlIGNvZGUgaW4geGVuX2NvbW1vbi5oIHRvIHN0b3AgY29u c2lkZXJpbmcKYSBmYWlsdXJlIG9mIHhjX2h2bV9jcmVhdGVfaW9yZXFfc2VydmVyKCkgYXMgYSBo YXJkIGZhaWx1cmUgYnV0IHNpbXBseQphcyBhbiBpbmRpY2F0aW9uIHRoYXQgdGhlIGd1ZXN0IGlz IHRvbyBvbGQgdG8gc3VwcG9ydCB0aGUgaW9yZXEgc2VydmVyCkFQSS4gSW5zdGVhZCBhIGJvb2xl YW4gaXMgc2V0IHRvIGNhdXNlIHJldmVyc2lvbiB0byBvbGQgYmVoYXZpb3VyIHN1Y2gKdGhhdCB0 aGUgZGVmYXVsdCBpb3JlcSBzZXJ2ZXIgaXMgdGhlbiB1c2VkLgoKU2lnbmVkLW9mZi1ieTogUGF1 bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogU3RlZmFu byBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpBY2tlZC1ieTogQW50aG9ueSBQ RVJBUkQgPGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+CkFja2VkLWJ5OiBTdGVmYW5vIFN0YWJl bGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+Ci0tLQogaW5jbHVkZS9ody94ZW4veGVuX2Nv bW1vbi5oIHwgMTI1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t CiB0cmFjZS1ldmVudHMgICAgICAgICAgICAgICAgfCAgIDEgKwogeGVuLWh2bS5jICAgICAgICAg ICAgICAgICAgIHwgICA2ICstLQogMyBmaWxlcyBjaGFuZ2VkLCA5MiBpbnNlcnRpb25zKCspLCA0 MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9uLmgg Yi9pbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9uLmgKaW5kZXggNjQwYzMxZS4uYmQzOTI4NyAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9ody94ZW4veGVuX2NvbW1vbi5oCisrKyBiL2luY2x1ZGUvaHcveGVu L3hlbl9jb21tb24uaApAQCAtMTA3LDYgKzEwNyw0NCBAQCBzdGF0aWMgaW5saW5lIGludCB4ZW5f Z2V0X3ZtcG9ydF9yZWdzX3Bmbih4Y19pbnRlcmZhY2UgKnhjLCBkb21pZF90IGRvbSwKIAogI2Vu ZGlmCiAKK3N0YXRpYyBpbmxpbmUgaW50IHhlbl9nZXRfZGVmYXVsdF9pb3JlcV9zZXJ2ZXJfaW5m byh4Y19pbnRlcmZhY2UgKnhjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9tLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCAqaW9yZXFfcGZuLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCAqYnVm aW9yZXFfcGZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGV2dGNobl9wb3J0X3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKmJ1ZmlvcmVxX2V2dGNobikKK3sKKyAgICB1bnNpZ25lZCBs b25nIHBhcmFtOworICAgIGludCByYzsKKworICAgIHJjID0geGNfZ2V0X2h2bV9wYXJhbSh4Yywg ZG9tLCBIVk1fUEFSQU1fSU9SRVFfUEZOLCAmcGFyYW0pOworICAgIGlmIChyYyA8IDApIHsKKyAg ICAgICAgZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gZ2V0IEhWTV9QQVJBTV9JT1JFUV9QRk5c biIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgKmlvcmVxX3BmbiA9IHBhcmFt OworCisgICAgcmMgPSB4Y19nZXRfaHZtX3BhcmFtKHhjLCBkb20sIEhWTV9QQVJBTV9CVUZJT1JF UV9QRk4sICZwYXJhbSk7CisgICAgaWYgKHJjIDwgMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVy ciwgImZhaWxlZCB0byBnZXQgSFZNX1BBUkFNX0JVRklPUkVRX1BGTlxuIik7CisgICAgICAgIHJl dHVybiAtMTsKKyAgICB9CisKKyAgICAqYnVmaW9yZXFfcGZuID0gcGFyYW07CisKKyAgICByYyA9 IHhjX2dldF9odm1fcGFyYW0oeGMsIGRvbSwgSFZNX1BBUkFNX0JVRklPUkVRX0VWVENITiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgJnBhcmFtKTsKKyAgICBpZiAocmMgPCAwKSB7CisgICAg ICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIGdldCBIVk1fUEFSQU1fQlVGSU9SRVFfRVZU Q0hOXG4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgICpidWZpb3JlcV9ldnRj aG4gPSBwYXJhbTsKKworICAgIHJldHVybiAwOworfQorCiAvKiBYZW4gYmVmb3JlIDQuNSAqLwog I2lmIENPTkZJR19YRU5fQ1RSTF9JTlRFUkZBQ0VfVkVSU0lPTiA8IDQ1MAogCkBAIC0xNTQsMTAg KzE5Miw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fdW5tYXBfcGNpZGV2KHhjX2ludGVyZmFj ZSAqeGMsIGRvbWlkX3QgZG9tLAogewogfQogCi1zdGF0aWMgaW5saW5lIGludCB4ZW5fY3JlYXRl X2lvcmVxX3NlcnZlcih4Y19pbnRlcmZhY2UgKnhjLCBkb21pZF90IGRvbSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvc2VydmlkX3QgKmlvc2VydmlkKQorc3Rh dGljIGlubGluZSB2b2lkIHhlbl9jcmVhdGVfaW9yZXFfc2VydmVyKHhjX2ludGVyZmFjZSAqeGMs IGRvbWlkX3QgZG9tLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlvc2VydmlkX3QgKmlvc2VydmlkKQogewotICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgaW5s aW5lIHZvaWQgeGVuX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKHhjX2ludGVyZmFjZSAqeGMsIGRvbWlk X3QgZG9tLApAQCAtMTcxLDM1ICsyMDgsOCBAQCBzdGF0aWMgaW5saW5lIGludCB4ZW5fZ2V0X2lv cmVxX3NlcnZlcl9pbmZvKHhjX2ludGVyZmFjZSAqeGMsIGRvbWlkX3QgZG9tLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgKmJ1ZmlvcmVxX3Bm biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZ0Y2huX3Bv cnRfdCAqYnVmaW9yZXFfZXZ0Y2huKQogewotICAgIHVuc2lnbmVkIGxvbmcgcGFyYW07Ci0gICAg aW50IHJjOwotCi0gICAgcmMgPSB4Y19nZXRfaHZtX3BhcmFtKHhjLCBkb20sIEhWTV9QQVJBTV9J T1JFUV9QRk4sICZwYXJhbSk7Ci0gICAgaWYgKHJjIDwgMCkgewotICAgICAgICBmcHJpbnRmKHN0 ZGVyciwgImZhaWxlZCB0byBnZXQgSFZNX1BBUkFNX0lPUkVRX1BGTlxuIik7Ci0gICAgICAgIHJl dHVybiAtMTsKLSAgICB9Ci0KLSAgICAqaW9yZXFfcGZuID0gcGFyYW07Ci0KLSAgICByYyA9IHhj X2dldF9odm1fcGFyYW0oeGMsIGRvbSwgSFZNX1BBUkFNX0JVRklPUkVRX1BGTiwgJnBhcmFtKTsK LSAgICBpZiAocmMgPCAwKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIGdl dCBIVk1fUEFSQU1fQlVGSU9SRVFfUEZOXG4iKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0K LQotICAgICpidWZpb3JlcV9wZm4gPSBwYXJhbTsKLQotICAgIHJjID0geGNfZ2V0X2h2bV9wYXJh bSh4YywgZG9tLCBIVk1fUEFSQU1fQlVGSU9SRVFfRVZUQ0hOLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAmcGFyYW0pOwotICAgIGlmIChyYyA8IDApIHsKLSAgICAgICAgZnByaW50ZihzdGRl cnIsICJmYWlsZWQgdG8gZ2V0IEhWTV9QQVJBTV9CVUZJT1JFUV9FVlRDSE5cbiIpOwotICAgICAg ICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgKmJ1ZmlvcmVxX2V2dGNobiA9IHBhcmFtOwotCi0g ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHhlbl9nZXRfZGVmYXVsdF9pb3JlcV9zZXJ2ZXJfaW5m byh4YywgZG9tLCBpb3JlcV9wZm4sIGJ1ZmlvcmVxX3BmbiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmlvcmVxX2V2dGNobik7CiB9CiAKIHN0YXRpYyBp bmxpbmUgaW50IHhlbl9zZXRfaW9yZXFfc2VydmVyX3N0YXRlKHhjX2ludGVyZmFjZSAqeGMsIGRv bWlkX3QgZG9tLApAQCAtMjEyLDYgKzIyMiw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IHhlbl9zZXRf aW9yZXFfc2VydmVyX3N0YXRlKHhjX2ludGVyZmFjZSAqeGMsIGRvbWlkX3QgZG9tLAogLyogWGVu IDQuNSAqLwogI2Vsc2UKIAorc3RhdGljIGJvb2wgdXNlX2RlZmF1bHRfaW9yZXFfc2VydmVyOwor CiBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX21hcF9tZW1vcnlfc2VjdGlvbih4Y19pbnRlcmZhY2Ug KnhjLCBkb21pZF90IGRvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlvc2VydmlkX3QgaW9zZXJ2aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBNZW1vcnlSZWdpb25TZWN0aW9uICpzZWN0aW9uKQpAQCAtMjIwLDYgKzIzMiwx MCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX21hcF9tZW1vcnlfc2VjdGlvbih4Y19pbnRlcmZh Y2UgKnhjLCBkb21pZF90IGRvbSwKICAgICByYW1fYWRkcl90IHNpemUgPSBpbnQxMjhfZ2V0NjQo c2VjdGlvbi0+c2l6ZSk7CiAgICAgaHdhZGRyIGVuZF9hZGRyID0gc3RhcnRfYWRkciArIHNpemUg LSAxOwogCisgICAgaWYgKHVzZV9kZWZhdWx0X2lvcmVxX3NlcnZlcikgeworICAgICAgICByZXR1 cm47CisgICAgfQorCiAgICAgdHJhY2VfeGVuX21hcF9tbWlvX3JhbmdlKGlvc2VydmlkLCBzdGFy dF9hZGRyLCBlbmRfYWRkcik7CiAgICAgeGNfaHZtX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2 ZXIoeGMsIGRvbSwgaW9zZXJ2aWQsIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RhcnRfYWRkciwgZW5kX2FkZHIpOwpAQCAtMjMzLDYgKzI0OSwxMSBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgeGVuX3VubWFwX21lbW9yeV9zZWN0aW9uKHhjX2ludGVyZmFjZSAqeGMs IGRvbWlkX3QgZG9tLAogICAgIHJhbV9hZGRyX3Qgc2l6ZSA9IGludDEyOF9nZXQ2NChzZWN0aW9u LT5zaXplKTsKICAgICBod2FkZHIgZW5kX2FkZHIgPSBzdGFydF9hZGRyICsgc2l6ZSAtIDE7CiAK KyAgICBpZiAodXNlX2RlZmF1bHRfaW9yZXFfc2VydmVyKSB7CisgICAgICAgIHJldHVybjsKKyAg ICB9CisKKwogICAgIHRyYWNlX3hlbl91bm1hcF9tbWlvX3JhbmdlKGlvc2VydmlkLCBzdGFydF9h ZGRyLCBlbmRfYWRkcik7CiAgICAgeGNfaHZtX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2Vy dmVyKHhjLCBkb20sIGlvc2VydmlkLCAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdGFydF9hZGRyLCBlbmRfYWRkcik7CkBAIC0yNDYsNiArMjY3LDExIEBA IHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fbWFwX2lvX3NlY3Rpb24oeGNfaW50ZXJmYWNlICp4Yywg ZG9taWRfdCBkb20sCiAgICAgcmFtX2FkZHJfdCBzaXplID0gaW50MTI4X2dldDY0KHNlY3Rpb24t PnNpemUpOwogICAgIGh3YWRkciBlbmRfYWRkciA9IHN0YXJ0X2FkZHIgKyBzaXplIC0gMTsKIAor ICAgIGlmICh1c2VfZGVmYXVsdF9pb3JlcV9zZXJ2ZXIpIHsKKyAgICAgICAgcmV0dXJuOworICAg IH0KKworCiAgICAgdHJhY2VfeGVuX21hcF9wb3J0aW9fcmFuZ2UoaW9zZXJ2aWQsIHN0YXJ0X2Fk ZHIsIGVuZF9hZGRyKTsKICAgICB4Y19odm1fbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcih4 YywgZG9tLCBpb3NlcnZpZCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdGFydF9hZGRyLCBlbmRfYWRkcik7CkBAIC0yNTksNiArMjg1LDEwIEBAIHN0YXRpYyBp bmxpbmUgdm9pZCB4ZW5fdW5tYXBfaW9fc2VjdGlvbih4Y19pbnRlcmZhY2UgKnhjLCBkb21pZF90 IGRvbSwKICAgICByYW1fYWRkcl90IHNpemUgPSBpbnQxMjhfZ2V0NjQoc2VjdGlvbi0+c2l6ZSk7 CiAgICAgaHdhZGRyIGVuZF9hZGRyID0gc3RhcnRfYWRkciArIHNpemUgLSAxOwogCisgICAgaWYg KHVzZV9kZWZhdWx0X2lvcmVxX3NlcnZlcikgeworICAgICAgICByZXR1cm47CisgICAgfQorCiAg ICAgdHJhY2VfeGVuX3VubWFwX3BvcnRpb19yYW5nZShpb3NlcnZpZCwgc3RhcnRfYWRkciwgZW5k X2FkZHIpOwogICAgIHhjX2h2bV91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcih4Yywg ZG9tLCBpb3NlcnZpZCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RhcnRfYWRkciwgZW5kX2FkZHIpOwpAQCAtMjY4LDYgKzI5OCwxMCBAQCBzdGF0aWMg aW5saW5lIHZvaWQgeGVuX21hcF9wY2lkZXYoeGNfaW50ZXJmYWNlICp4YywgZG9taWRfdCBkb20s CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9zZXJ2aWRfdCBpb3NlcnZpZCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lEZXZpY2UgKnBjaV9kZXYpCiB7 CisgICAgaWYgKHVzZV9kZWZhdWx0X2lvcmVxX3NlcnZlcikgeworICAgICAgICByZXR1cm47Cisg ICAgfQorCiAgICAgdHJhY2VfeGVuX21hcF9wY2lkZXYoaW9zZXJ2aWQsIHBjaV9idXNfbnVtKHBj aV9kZXYtPmJ1cyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QocGNpX2Rldi0+ ZGV2Zm4pLCBQQ0lfRlVOQyhwY2lfZGV2LT5kZXZmbikpOwogICAgIHhjX2h2bV9tYXBfcGNpZGV2 X3RvX2lvcmVxX3NlcnZlcih4YywgZG9tLCBpb3NlcnZpZCwKQEAgLTI4MCw2ICszMTQsMTAgQEAg c3RhdGljIGlubGluZSB2b2lkIHhlbl91bm1hcF9wY2lkZXYoeGNfaW50ZXJmYWNlICp4YywgZG9t aWRfdCBkb20sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb3NlcnZpZF90 IGlvc2VydmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJRGV2aWNl ICpwY2lfZGV2KQogeworICAgIGlmICh1c2VfZGVmYXVsdF9pb3JlcV9zZXJ2ZXIpIHsKKyAgICAg ICAgcmV0dXJuOworICAgIH0KKwogICAgIHRyYWNlX3hlbl91bm1hcF9wY2lkZXYoaW9zZXJ2aWQs IHBjaV9idXNfbnVtKHBjaV9kZXYtPmJ1cyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ Q0lfU0xPVChwY2lfZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBjaV9kZXYtPmRldmZuKSk7CiAgICAg eGNfaHZtX3VubWFwX3BjaWRldl9mcm9tX2lvcmVxX3NlcnZlcih4YywgZG9tLCBpb3NlcnZpZCwK QEAgLTI4OCwyMiArMzI2LDI5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fdW5tYXBfcGNpZGV2 KHhjX2ludGVyZmFjZSAqeGMsIGRvbWlkX3QgZG9tLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUENJX0ZVTkMocGNpX2Rldi0+ZGV2Zm4pKTsKIH0KIAotc3RhdGlj IGlubGluZSBpbnQgeGVuX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIoeGNfaW50ZXJmYWNlICp4YywgZG9t aWRfdCBkb20sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb3Nl cnZpZF90ICppb3NlcnZpZCkKK3N0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fY3JlYXRlX2lvcmVxX3Nl cnZlcih4Y19pbnRlcmZhY2UgKnhjLCBkb21pZF90IGRvbSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpb3NlcnZpZF90ICppb3NlcnZpZCkKIHsKICAgICBpbnQg cmMgPSB4Y19odm1fY3JlYXRlX2lvcmVxX3NlcnZlcih4YywgZG9tLCBIVk1fSU9SRVFTUlZfQlVG SU9SRVFfQVRPTUlDLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlv c2VydmlkKTsKIAogICAgIGlmIChyYyA9PSAwKSB7CiAgICAgICAgIHRyYWNlX3hlbl9pb3JlcV9z ZXJ2ZXJfY3JlYXRlKCppb3NlcnZpZCk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBy ZXR1cm4gcmM7CisgICAgKmlvc2VydmlkID0gMDsKKyAgICB1c2VfZGVmYXVsdF9pb3JlcV9zZXJ2 ZXIgPSB0cnVlOworICAgIHRyYWNlX3hlbl9kZWZhdWx0X2lvcmVxX3NlcnZlcigpOwogfQogCiBz dGF0aWMgaW5saW5lIHZvaWQgeGVuX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKHhjX2ludGVyZmFjZSAq eGMsIGRvbWlkX3QgZG9tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpb3NlcnZpZF90IGlvc2VydmlkKQogeworICAgIGlmICh1c2VfZGVmYXVsdF9pb3JlcV9z ZXJ2ZXIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHRyYWNlX3hlbl9pb3JlcV9z ZXJ2ZXJfZGVzdHJveShpb3NlcnZpZCk7CiAgICAgeGNfaHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVy KHhjLCBkb20sIGlvc2VydmlkKTsKIH0KQEAgLTMxNCw2ICszNTksMTIgQEAgc3RhdGljIGlubGlu ZSBpbnQgeGVuX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyh4Y19pbnRlcmZhY2UgKnhjLCBkb21pZF90 IGRvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bm bl90ICpidWZpb3JlcV9wZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGV2dGNobl9wb3J0X3QgKmJ1ZmlvcmVxX2V2dGNobikKIHsKKyAgICBpZiAodXNlX2Rl ZmF1bHRfaW9yZXFfc2VydmVyKSB7CisgICAgICAgIHJldHVybiB4ZW5fZ2V0X2RlZmF1bHRfaW9y ZXFfc2VydmVyX2luZm8oeGMsIGRvbSwgaW9yZXFfcGZuLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmlvcmVxX3BmbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZpb3JlcV9ldnRjaG4pOworICAg IH0KKwogICAgIHJldHVybiB4Y19odm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKHhjLCBkb20sIGlv c2VydmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvcmVxX3Bm biwgYnVmaW9yZXFfcGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJ1ZmlvcmVxX2V2dGNobik7CkBAIC0zMjMsNiArMzc0LDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50 IHhlbl9zZXRfaW9yZXFfc2VydmVyX3N0YXRlKHhjX2ludGVyZmFjZSAqeGMsIGRvbWlkX3QgZG9t LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9zZXJ2aWRf dCBpb3NlcnZpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJvb2wgZW5hYmxlKQogeworICAgIGlmICh1c2VfZGVmYXVsdF9pb3JlcV9zZXJ2ZXIpIHsKKyAg ICAgICAgcmV0dXJuIDA7CisgICAgfQorCiAgICAgdHJhY2VfeGVuX2lvcmVxX3NlcnZlcl9zdGF0 ZShpb3NlcnZpZCwgZW5hYmxlKTsKICAgICByZXR1cm4geGNfaHZtX3NldF9pb3JlcV9zZXJ2ZXJf c3RhdGUoeGMsIGRvbSwgaW9zZXJ2aWQsIGVuYWJsZSk7CiB9CmRpZmYgLS1naXQgYS90cmFjZS1l dmVudHMgYi90cmFjZS1ldmVudHMKaW5kZXggNTJjNmE2Yy4uNjE2Y2M1MiAxMDA2NDQKLS0tIGEv dHJhY2UtZXZlbnRzCisrKyBiL3RyYWNlLWV2ZW50cwpAQCAtNjAsNiArNjAsNyBAQCBzcGljZV92 bWNfZXZlbnQoaW50IGV2ZW50KSAic3BpY2Ugdm1jIGV2ZW50ICVkIgogIyB4ZW4taHZtLmMKIHhl bl9yYW1fYWxsb2ModW5zaWduZWQgbG9uZyByYW1fYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKSAi cmVxdWVzdGVkOiAlI2x4LCBzaXplICUjbHgiCiB4ZW5fY2xpZW50X3NldF9tZW1vcnkodWludDY0 X3Qgc3RhcnRfYWRkciwgdW5zaWduZWQgbG9uZyBzaXplLCBib29sIGxvZ19kaXJ0eSkgIiUjIlBS SXg2NCIgc2l6ZSAlI2x4LCBsb2dfZGlydHkgJWkiCit4ZW5fZGVmYXVsdF9pb3JlcV9zZXJ2ZXIo dm9pZCkgIiIKIHhlbl9pb3JlcV9zZXJ2ZXJfY3JlYXRlKHVpbnQzMl90IGlkKSAiaWQ6ICV1Igog eGVuX2lvcmVxX3NlcnZlcl9kZXN0cm95KHVpbnQzMl90IGlkKSAiaWQ6ICV1IgogeGVuX2lvcmVx X3NlcnZlcl9zdGF0ZSh1aW50MzJfdCBpZCwgYm9vbCBlbmFibGUpICJpZDogJXU6IGVuYWJsZTog JWkiCmRpZmYgLS1naXQgYS94ZW4taHZtLmMgYi94ZW4taHZtLmMKaW5kZXggM2IwMzQzYS4uMmYz NDhlZCAxMDA2NDQKLS0tIGEveGVuLWh2bS5jCisrKyBiL3hlbi1odm0uYwpAQCAtMTIwMywxMSAr MTIwMyw3IEBAIHZvaWQgeGVuX2h2bV9pbml0KFBDTWFjaGluZVN0YXRlICpwY21zLCBNZW1vcnlS ZWdpb24gKipyYW1fbWVtb3J5KQogICAgICAgICBnb3RvIGVycjsKICAgICB9CiAKLSAgICByYyA9 IHhlbl9jcmVhdGVfaW9yZXFfc2VydmVyKHhlbl94YywgeGVuX2RvbWlkLCAmc3RhdGUtPmlvc2Vy dmlkKTsKLSAgICBpZiAocmMgPCAwKSB7Ci0gICAgICAgIHBlcnJvcigieGVuOiBpb3JlcSBzZXJ2 ZXIgY3JlYXRlIik7Ci0gICAgICAgIGdvdG8gZXJyOwotICAgIH0KKyAgICB4ZW5fY3JlYXRlX2lv cmVxX3NlcnZlcih4ZW5feGMsIHhlbl9kb21pZCwgJnN0YXRlLT5pb3NlcnZpZCk7CiAKICAgICBz dGF0ZS0+ZXhpdC5ub3RpZnkgPSB4ZW5fZXhpdF9ub3RpZmllcjsKICAgICBxZW11X2FkZF9leGl0 X25vdGlmaWVyKCZzdGF0ZS0+ZXhpdCk7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=