From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 REPOST 11/12] x86/hvm/ioreq: defer mapping gfns until they are actually requsted Date: Tue, 22 Aug 2017 15:51:05 +0100 Message-ID: <20170822145107.6877-12-paul.durrant@citrix.com> References: <20170822145107.6877-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dkAuy-0004v2-C2 for xen-devel@lists.xenproject.org; Tue, 22 Aug 2017 15:16:36 +0000 In-Reply-To: <20170822145107.6877-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org QSBzdWJzZXF1ZW50IHBhdGNoIHdpbGwgaW50cm9kdWNlIGEgbmV3IHNjaGVtZSB0byBhbGxvdyBh biBlbXVsYXRvciB0bwptYXAgSU9SRVEgc2VydmVyIHBhZ2VzIGRpcmVjdGx5IGZyb20gWGVuIHJh dGhlciB0aGFuIHRoZSBndWVzdCBQMk0uCgpUaGlzIHBhdGNoIGxheXMgdGhlIGdyb3VuZHdvcmsg Zm9yIHRoYXQgY2hhbmdlIGJ5IGRlZmVycmluZyBtYXBwaW5nIG9mCmdmbnMgdW50aWwgdGhlaXIg dmFsdWVzIGFyZSByZXF1ZXN0ZWQgYnkgYW4gZW11bGF0b3IuIFRvIHRoYXQgZW5kLCB0aGUKcGFk IGZpZWxkIG9mIHRoZSB4ZW5fZG1fb3BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvIHN0cnVjdHVyZSBp cyByZS1wdXJwb3NlZAp0byBhIGZsYWdzIGZpZWxkIGFuZCBuZXcgZmxhZywgWEVOX0RNT1Bfbm9f Z2ZucywgZGVmaW5lZCB3aGljaCBtb2RpZmllcyB0aGUKYmVoYXZpb3VyIG9mIFhFTl9ETU9QX2dl dF9pb3JlcV9zZXJ2ZXJfaW5mbyB0byBhbGxvdyB0aGUgY2FsbGVyIHRvIGF2b2lkCnJlcXVlc3Rp bmcgdGhlIGdmbiB2YWx1ZXMuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVy cmFudEBjaXRyaXguY29tPgotLS0KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRy aXguY29tPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IEFuZHJldyBDb29w ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxHZW9yZ2Uu RHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkNjOiBT dGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBUaW0gRGVlZ2Fu IDx0aW1AeGVuLm9yZz4KLS0tCiB0b29scy9saWJzL2RldmljZW1vZGVsL2NvcmUuYyAgICAgICAg ICAgICAgICAgICB8ICA4ICsrKysrCiB0b29scy9saWJzL2RldmljZW1vZGVsL2luY2x1ZGUveGVu ZGV2aWNlbW9kZWwuaCB8ICA2ICsrLS0KIHhlbi9hcmNoL3g4Ni9odm0vZG0uYyAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDkgKysrLS0KIHhlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgNDQgKysrKysrKysrKysrKystLS0tLS0tLS0tLQogeGVuL2lu Y2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmggICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2lu Y2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oICAgICAgICAgICAgICAgICAgfCAzMiArKysrKysrKysr LS0tLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9jb3JlLmMgYi90b29scy9s aWJzL2RldmljZW1vZGVsL2NvcmUuYwppbmRleCBmY2IyNjBkMjliLi45MDdjODk0ZTc3IDEwMDY0 NAotLS0gYS90b29scy9saWJzL2RldmljZW1vZGVsL2NvcmUuYworKysgYi90b29scy9saWJzL2Rl dmljZW1vZGVsL2NvcmUuYwpAQCAtMTg4LDYgKzE4OCwxNCBAQCBpbnQgeGVuZGV2aWNlbW9kZWxf Z2V0X2lvcmVxX3NlcnZlcl9pbmZvKAogCiAgICAgZGF0YS0+aWQgPSBpZDsKIAorICAgIC8qCisg ICAgICogSWYgdGhlIGNhbGxlciBpcyBub3QgcmVxdWVzdGluZyBnZm4gdmFsdWVzIHRoZW4gaW5z dHJ1Y3QgdGhlCisgICAgICogaHlwZXJjYWxsIG5vdCB0byByZXRyaWV2ZSB0aGVtIGFzIHRoaXMg bWF5IGNhdXNlIHRoZW0gdG8gYmUKKyAgICAgKiBtYXBwZWQuCisgICAgICovCisgICAgaWYgKCFp b3JlcV9nZm4gJiYgIWJ1ZmlvcmVxX2dmbikKKyAgICAgICAgZGF0YS0+ZmxhZ3MgPSBYRU5fRE1P UF9ub19nZm5zOworCiAgICAgcmMgPSB4ZW5kZXZpY2Vtb2RlbF9vcChkbW9kLCBkb21pZCwgMSwg Jm9wLCBzaXplb2Yob3ApKTsKICAgICBpZiAocmMpCiAgICAgICAgIHJldHVybiByYzsKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwvaW5jbHVkZS94ZW5kZXZpY2Vtb2RlbC5oIGIv dG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9pbmNsdWRlL3hlbmRldmljZW1vZGVsLmgKaW5kZXggMTMy MTZkYjA0YS4uZGE2YjI1M2NmZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9p bmNsdWRlL3hlbmRldmljZW1vZGVsLmgKKysrIGIvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9pbmNs dWRlL3hlbmRldmljZW1vZGVsLmgKQEAgLTYxLDExICs2MSwxMSBAQCBpbnQgeGVuZGV2aWNlbW9k ZWxfY3JlYXRlX2lvcmVxX3NlcnZlcigKICAqIEBwYXJtIGRvbWlkIHRoZSBkb21haW4gaWQgdG8g YmUgc2VydmljZWQKICAqIEBwYXJtIGlkIHRoZSBJT1JFUSBTZXJ2ZXIgaWQuCiAgKiBAcGFybSBp b3JlcV9nZm4gcG9pbnRlciB0byBhIHhlbl9wZm5fdCB0byByZWNlaXZlIHRoZSBzeW5jaHJvbm91 cyBpb3JlcQotICogICAgICAgICAgICAgICAgICBnZm4KKyAqICAgICAgICAgICAgICAgICAgZ21m bi4gKE1heSBiZSBOVUxMIGlmIG5vdCByZXF1aXJlZCkKICAqIEBwYXJtIGJ1ZmlvcmVxX2dmbiBw b2ludGVyIHRvIGEgeGVuX3Bmbl90IHRvIHJlY2VpdmUgdGhlIGJ1ZmZlcmVkIGlvcmVxCi0gKiAg ICAgICAgICAgICAgICAgICAgZ2ZuCisgKiAgICAgICAgICAgICAgICAgICAgZ21mbi4gKE1heSBi ZSBOVUxMIGlmIG5vdCByZXF1aXJlZCkKICAqIEBwYXJtIGJ1ZmlvcmVxX3BvcnQgcG9pbnRlciB0 byBhIGV2dGNobl9wb3J0X3QgdG8gcmVjZWl2ZSB0aGUgYnVmZmVyZWQKLSAqICAgICAgICAgICAg ICAgICAgICAgaW9yZXEgZXZlbnQgY2hhbm5lbAorICogICAgICAgICAgICAgICAgICAgICBpb3Jl cSBldmVudCBjaGFubmVsLiAoTWF5IGJlIE5VTEwgaWYgbm90IHJlcXVpcmVkKQogICogQHJldHVy biAwIG9uIHN1Y2Nlc3MsIC0xIG9uIGZhaWx1cmUuCiAgKi8KIGludCB4ZW5kZXZpY2Vtb2RlbF9n ZXRfaW9yZXFfc2VydmVyX2luZm8oCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMg Yi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKaW5kZXggODdlZjRiNmNhOS4uYzAyMGYwYzk5ZiAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0u YwpAQCAtNDE4LDE2ICs0MTgsMTkgQEAgc3RhdGljIGludCBkbV9vcChjb25zdCBzdHJ1Y3QgZG1v cF9hcmdzICpvcF9hcmdzKQogICAgIHsKICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9nZXRfaW9y ZXFfc2VydmVyX2luZm8gKmRhdGEgPQogICAgICAgICAgICAgJm9wLnUuZ2V0X2lvcmVxX3NlcnZl cl9pbmZvOworICAgICAgICBjb25zdCB1aW50MTZfdCB2YWxpZF9mbGFncyA9IFhFTl9ETU9QX25v X2dmbnM7CiAKICAgICAgICAgY29uc3Rfb3AgPSBmYWxzZTsKIAogICAgICAgICByYyA9IC1FSU5W QUw7Ci0gICAgICAgIGlmICggZGF0YS0+cGFkICkKKyAgICAgICAgaWYgKCBkYXRhLT5mbGFncyAm IH52YWxpZF9mbGFncyApCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICByYyA9IGh2bV9n ZXRfaW9yZXFfc2VydmVyX2luZm8oZCwgZGF0YS0+aWQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmZGF0YS0+aW9yZXFfZ2ZuLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmRhdGEtPmJ1ZmlvcmVxX2dmbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChkYXRhLT5mbGFncyAmIFhFTl9ETU9QX25vX2dmbnMpID8K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgOiAmZGF0YS0+aW9y ZXFfZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGEtPmZs YWdzICYgWEVOX0RNT1Bfbm9fZ2ZucykgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCA6ICZkYXRhLT5idWZpb3JlcV9nZm4sCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmZGF0YS0+YnVmaW9yZXFfcG9ydCk7CiAgICAgICAgIGJyZWFr OwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyBiL3hlbi9hcmNo L3g4Ni9odm0vaW9yZXEuYwppbmRleCAzYTlhYWYxZjVkLi43OTVjMTk4Zjk1IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5j CkBAIC0zNDQsNyArMzQ0LDggQEAgc3RhdGljIGludCBodm1faW9yZXFfc2VydmVyX2FkZF92Y3B1 KHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLAogCiAgICAgc3YtPmlvcmVxX2V2dGNobiA9IHJj OwogCi0gICAgaWYgKCB2LT52Y3B1X2lkID09IDAgJiYgcy0+YnVmaW9yZXEudmEgIT0gTlVMTCAp CisgICAgaWYgKCB2LT52Y3B1X2lkID09IDAgJiYKKyAgICAgICAgIChzLT5idWZpb3JlcV9oYW5k bGluZyAhPSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfT0ZGKSApCiAgICAgewogICAgICAgICBzdHJ1 Y3QgZG9tYWluICpkID0gcy0+ZG9tYWluOwogCkBAIC0zOTUsNyArMzk2LDggQEAgc3RhdGljIHZv aWQgaHZtX2lvcmVxX3NlcnZlcl9yZW1vdmVfdmNwdShzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAq cywKIAogICAgICAgICBsaXN0X2RlbCgmc3YtPmxpc3RfZW50cnkpOwogCi0gICAgICAgIGlmICgg di0+dmNwdV9pZCA9PSAwICYmIHMtPmJ1ZmlvcmVxLnZhICE9IE5VTEwgKQorICAgICAgICBpZiAo IHYtPnZjcHVfaWQgPT0gMCAmJgorICAgICAgICAgICAgIChzLT5idWZpb3JlcV9oYW5kbGluZyAh PSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfT0ZGKSApCiAgICAgICAgICAgICBmcmVlX3hlbl9ldmVu dF9jaGFubmVsKHYtPmRvbWFpbiwgcy0+YnVmaW9yZXFfZXZ0Y2huKTsKIAogICAgICAgICBmcmVl X3hlbl9ldmVudF9jaGFubmVsKHYtPmRvbWFpbiwgc3YtPmlvcmVxX2V2dGNobik7CkBAIC00MjIs NyArNDI0LDggQEAgc3RhdGljIHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9yZW1vdmVfYWxsX3ZjcHVz KHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQogCiAgICAgICAgIGxpc3RfZGVsKCZzdi0+bGlz dF9lbnRyeSk7CiAKLSAgICAgICAgaWYgKCB2LT52Y3B1X2lkID09IDAgJiYgcy0+YnVmaW9yZXEu dmEgIT0gTlVMTCApCisgICAgICAgIGlmICggdi0+dmNwdV9pZCA9PSAwICYmCisgICAgICAgICAg ICAgKHMtPmJ1ZmlvcmVxX2hhbmRsaW5nICE9IEhWTV9JT1JFUVNSVl9CVUZJT1JFUV9PRkYpICkK ICAgICAgICAgICAgIGZyZWVfeGVuX2V2ZW50X2NoYW5uZWwodi0+ZG9tYWluLCBzLT5idWZpb3Jl cV9ldnRjaG4pOwogCiAgICAgICAgIGZyZWVfeGVuX2V2ZW50X2NoYW5uZWwodi0+ZG9tYWluLCBz di0+aW9yZXFfZXZ0Y2huKTsKQEAgLTQzMywxNCArNDM2LDEzIEBAIHN0YXRpYyB2b2lkIGh2bV9p b3JlcV9zZXJ2ZXJfcmVtb3ZlX2FsbF92Y3B1cyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykK ICAgICBzcGluX3VubG9jaygmcy0+bG9jayk7CiB9CiAKLXN0YXRpYyBpbnQgaHZtX2lvcmVxX3Nl cnZlcl9tYXBfcGFnZXMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaGFuZGxlX2J1ZmlvcmVxKQorc3RhdGljIGlu dCBodm1faW9yZXFfc2VydmVyX21hcF9wYWdlcyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykK IHsKICAgICBpbnQgcmMgPSAtRU5PTUVNOwogCiAgICAgcmMgPSBodm1fbWFwX2lvcmVxX2dmbihz LCBmYWxzZSk7CiAKLSAgICBpZiAoICFyYyAmJiBoYW5kbGVfYnVmaW9yZXEgKQorICAgIGlmICgg IXJjICYmIChzLT5idWZpb3JlcV9oYW5kbGluZyAhPSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfT0ZG KSApCiAgICAgICAgIHJjID0gaHZtX21hcF9pb3JlcV9nZm4ocywgdHJ1ZSk7CiAKICAgICBpZiAo IHJjICkKQEAgLTU2OCwxMyArNTcwLDcgQEAgc3RhdGljIGludCBodm1faW9yZXFfc2VydmVyX2lu aXQoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsCiAgICAgaWYgKCByYyApCiAgICAgICAgIHJl dHVybiByYzsKIAotICAgIGlmICggYnVmaW9yZXFfaGFuZGxpbmcgPT0gSFZNX0lPUkVRU1JWX0JV RklPUkVRX0FUT01JQyApCi0gICAgICAgIHMtPmJ1ZmlvcmVxX2F0b21pYyA9IHRydWU7Ci0KLSAg ICByYyA9IGh2bV9pb3JlcV9zZXJ2ZXJfbWFwX3BhZ2VzKAotICAgICAgICAgICAgIHMsIGJ1Zmlv cmVxX2hhbmRsaW5nICE9IEhWTV9JT1JFUVNSVl9CVUZJT1JFUV9PRkYpOwotICAgIGlmICggcmMg KQotICAgICAgICBnb3RvIGZhaWxfbWFwOworICAgIHMtPmJ1ZmlvcmVxX2hhbmRsaW5nID0gYnVm aW9yZXFfaGFuZGxpbmc7CiAKICAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiApCiAgICAgewpAQCAt NTg5LDkgKzU4NSw2IEBAIHN0YXRpYyBpbnQgaHZtX2lvcmVxX3NlcnZlcl9pbml0KHN0cnVjdCBo dm1faW9yZXFfc2VydmVyICpzLAogICAgIGh2bV9pb3JlcV9zZXJ2ZXJfcmVtb3ZlX2FsbF92Y3B1 cyhzKTsKICAgICBodm1faW9yZXFfc2VydmVyX3VubWFwX3BhZ2VzKHMpOwogCi0gZmFpbF9tYXA6 Ci0gICAgaHZtX2lvcmVxX3NlcnZlcl9mcmVlX3Jhbmdlc2V0cyhzKTsKLQogICAgIHJldHVybiBy YzsKIH0KIApAQCAtNzQ3LDExICs3NDAsMjEgQEAgaW50IGh2bV9nZXRfaW9yZXFfc2VydmVyX2lu Zm8oc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKICAgICAgICAgaWYgKCBzLT5pZCAh PSBpZCApCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAqaW9yZXFfZ2ZuID0gZ2Zu X3gocy0+aW9yZXEuZ2ZuKTsKKyAgICAgICAgaWYgKCBpb3JlcV9nZm4gfHwgYnVmaW9yZXFfZ2Zu ICkKKyAgICAgICAgeworICAgICAgICAgICAgcmMgPSBodm1faW9yZXFfc2VydmVyX21hcF9wYWdl cyhzKTsKKyAgICAgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICB9CisKKyAgICAgICAgaWYgKCBpb3JlcV9nZm4gKQorICAgICAgICAgICAgKmlvcmVxX2dm biA9IGdmbl94KHMtPmlvcmVxLmdmbik7CiAKLSAgICAgICAgaWYgKCBzLT5idWZpb3JlcS52YSAh PSBOVUxMICkKKyAgICAgICAgaWYgKCBzLT5idWZpb3JlcV9oYW5kbGluZyAhPSBIVk1fSU9SRVFT UlZfQlVGSU9SRVFfT0ZGICkKICAgICAgICAgewotICAgICAgICAgICAgKmJ1ZmlvcmVxX2dmbiA9 IGdmbl94KHMtPmJ1ZmlvcmVxLmdmbik7CisgICAgICAgICAgICBpZiAoIGJ1ZmlvcmVxX2dmbiAp CisgICAgICAgICAgICAgICAgKmJ1ZmlvcmVxX2dmbiA9IGdmbl94KHMtPmJ1ZmlvcmVxLmdmbik7 CisKICAgICAgICAgICAgICpidWZpb3JlcV9wb3J0ID0gcy0+YnVmaW9yZXFfZXZ0Y2huOwogICAg ICAgICB9CiAKQEAgLTEyNzgsNyArMTI4MSw4IEBAIHN0YXRpYyBpbnQgaHZtX3NlbmRfYnVmZmVy ZWRfaW9yZXEoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGlvcmVxX3QgKnApCiAgICAgcGct PnB0cnMud3JpdGVfcG9pbnRlciArPSBxdyA/IDIgOiAxOwogCiAgICAgLyogQ2Fub25pY2FsaXpl IHJlYWQvd3JpdGUgcG9pbnRlcnMgdG8gcHJldmVudCB0aGVpciBvdmVyZmxvdy4gKi8KLSAgICB3 aGlsZSAoIHMtPmJ1ZmlvcmVxX2F0b21pYyAmJiBxdysrIDwgSU9SRVFfQlVGRkVSX1NMT1RfTlVN ICYmCisgICAgd2hpbGUgKCAocy0+YnVmaW9yZXFfaGFuZGxpbmcgPT0gSFZNX0lPUkVRU1JWX0JV RklPUkVRX0FUT01JQykgJiYKKyAgICAgICAgICAgIHF3KysgPCBJT1JFUV9CVUZGRVJfU0xPVF9O VU0gJiYKICAgICAgICAgICAgIHBnLT5wdHJzLnJlYWRfcG9pbnRlciA+PSBJT1JFUV9CVUZGRVJf U0xPVF9OVU0gKQogICAgIHsKICAgICAgICAgdW5pb24gYnVmaW9yZXFfcG9pbnRlcnMgb2xkID0g cGctPnB0cnMsIG5ldzsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2RvbWFp bi5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmgKaW5kZXggN2I5M2QxMDIwOS4u YjhiY2Q1NTlhNSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmgK KysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmgKQEAgLTcwLDcgKzcwLDcgQEAg c3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgewogICAgIGV2dGNobl9wb3J0X3QgICAgICAgICAgYnVm aW9yZXFfZXZ0Y2huOwogICAgIHN0cnVjdCByYW5nZXNldCAgICAgICAgKnJhbmdlW05SX0lPX1JB TkdFX1RZUEVTXTsKICAgICBib29sICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ7Ci0gICAgYm9v bCAgICAgICAgICAgICAgICAgICBidWZpb3JlcV9hdG9taWM7CisgICAgaW50ICAgICAgICAgICAg ICAgICAgICBidWZpb3JlcV9oYW5kbGluZzsKICAgICBib29sICAgICAgICAgICAgICAgICAgIGlz X2RlZmF1bHQ7CiB9OwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29w LmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKaW5kZXggNmJiYWI1ZmNhMy4uOTY3 N2JkNzRlNyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCisrKyBi L3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaApAQCAtNzksMjggKzc5LDM0IEBAIHN0cnVj dCB4ZW5fZG1fb3BfY3JlYXRlX2lvcmVxX3NlcnZlciB7CiAgKiBYRU5fRE1PUF9nZXRfaW9yZXFf c2VydmVyX2luZm86IEdldCBhbGwgdGhlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSB0bwogICogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3MgSU9SRVEgU2VydmVyIDxpZD4uCiAg KgotICogVGhlIGVtdWxhdG9yIG5lZWRzIHRvIG1hcCB0aGUgc3luY2hyb25vdXMgaW9yZXEgc3Ry dWN0dXJlcyBhbmQgYnVmZmVyZWQKLSAqIGlvcmVxIHJpbmcgKGlmIGl0IGV4aXN0cykgdGhhdCBY ZW4gdXNlcyB0byByZXF1ZXN0IGVtdWxhdGlvbi4gVGhlc2UgYXJlCi0gKiBob3N0ZWQgaW4gdGhl IHRhcmdldCBkb21haW4ncyBnbWZucyA8aW9yZXFfZ2ZuPiBhbmQgPGJ1ZmlvcmVxX2dmbj4KLSAq IHJlc3BlY3RpdmVseS4gSW4gYWRkaXRpb24sIGlmIHRoZSBJT1JFUSBTZXJ2ZXIgaXMgaGFuZGxp bmcgYnVmZmVyZWQKLSAqIGVtdWxhdGlvbiByZXF1ZXN0cywgdGhlIGVtdWxhdG9yIG5lZWRzIHRv IGJpbmQgdG8gZXZlbnQgY2hhbm5lbAotICogPGJ1ZmlvcmVxX3BvcnQ+IHRvIGxpc3RlbiBmb3Ig dGhlbS4gKFRoZSBldmVudCBjaGFubmVscyB1c2VkIGZvcgotICogc3luY2hyb25vdXMgZW11bGF0 aW9uIHJlcXVlc3RzIGFyZSBzcGVjaWZpZWQgaW4gdGhlIHBlci1DUFUgaW9yZXEKLSAqIHN0cnVj dHVyZXMgaW4gPGlvcmVxX2dmbj4pLgotICogSWYgdGhlIElPUkVRIFNlcnZlciBpcyBub3QgaGFu ZGxpbmcgYnVmZmVyZWQgZW11bGF0aW9uIHJlcXVlc3RzIHRoZW4gdGhlCi0gKiB2YWx1ZXMgaGFu ZGVkIGJhY2sgaW4gPGJ1ZmlvcmVxX2dmbj4gYW5kIDxidWZpb3JlcV9wb3J0PiB3aWxsIGJvdGgg YmUgMC4KKyAqIElmIHRoZSBJT1JFUSBTZXJ2ZXIgaXMgaGFuZGxpbmcgYnVmZmVyZWQgZW11bGF0 aW9uIHJlcXVlc3RzLCB0aGUKKyAqIGVtdWxhdG9yIG5lZWRzIHRvIGJpbmQgdG8gZXZlbnQgY2hh bm5lbCA8YnVmaW9yZXFfcG9ydD4gdG8gbGlzdGVuIGZvcgorICogdGhlbS4gKFRoZSBldmVudCBj aGFubmVscyB1c2VkIGZvciBzeW5jaHJvbm91cyBlbXVsYXRpb24gcmVxdWVzdHMgYXJlCisgKiBz cGVjaWZpZWQgaW4gdGhlIHBlci1DUFUgaW9yZXEgc3RydWN0dXJlcykuCisgKiBJbiBhZGRpdGlv biwgaWYgdGhlIFhFTk1FTV9hY3F1aXJlX3Jlc291cmNlIG1lbW9yeSBvcCBjYW5ub3QgYmUgdXNl ZCwKKyAqIHRoZSBlbXVsYXRvciB3aWxsIG5lZWQgdG8gbWFwIHRoZSBzeW5jaHJvbm91cyBpb3Jl cSBzdHJ1Y3R1cmVzIGFuZAorICogYnVmZmVyZWQgaW9yZXEgcmluZyAoaWYgaXQgZXhpc3RzKSBm cm9tIGd1ZXN0IG1lbW9yeS4gSWYgPGZsYWdzPiBkb2VzCisgKiBub3QgY29udGFpbiBYRU5fRE1P UF9ub19nZm5zIHRoZW4gdGhlc2UgcGFnZXMgd2lsbCBiZSBtYWRlIGF2YWlsYWJsZSBhbmQKKyAq IHRoZSBmcmFtZSBudW1iZXJzIHBhc3NlZCBiYWNrIGluIGdmbnMgPGlvcmVxX2dmbj4gYW5kIDxi dWZpb3JlcV9nZm4+CisgKiByZXNwZWN0aXZlbHkuIChJZiB0aGUgSU9SRVEgU2VydmVyIGlzIG5v dCBoYW5kbGluZyBidWZmZXJlZCBlbXVsYXRpb24KKyAqIG9ubHkgPGlvcmVxX2dmbj4gd2lsbCBi ZSB2YWxpZCkuCiAgKi8KICNkZWZpbmUgWEVOX0RNT1BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvIDIK IAogc3RydWN0IHhlbl9kbV9vcF9nZXRfaW9yZXFfc2VydmVyX2luZm8gewogICAgIC8qIElOIC0g c2VydmVyIGlkICovCiAgICAgaW9zZXJ2aWRfdCBpZDsKLSAgICB1aW50MTZfdCBwYWQ7CisgICAg LyogSU4gLSBmbGFncyAqLworICAgIHVpbnQxNl90IGZsYWdzOworCisjZGVmaW5lIF9YRU5fRE1P UF9ub19nZm5zIDAKKyNkZWZpbmUgWEVOX0RNT1Bfbm9fZ2ZucyAoMXUgPDwgX1hFTl9ETU9QX25v X2dmbnMpCisKICAgICAvKiBPVVQgLSBidWZmZXJlZCBpb3JlcSBwb3J0ICovCiAgICAgZXZ0Y2hu X3BvcnRfdCBidWZpb3JlcV9wb3J0OwotICAgIC8qIE9VVCAtIHN5bmMgaW9yZXEgZ2ZuICovCisg ICAgLyogT1VUIC0gc3luYyBpb3JlcSBnZm4gKHNlZSBibG9jayBjb21tZW50IGFib3ZlKSAqLwog ICAgIHVpbnQ2NF9hbGlnbmVkX3QgaW9yZXFfZ2ZuOwotICAgIC8qIE9VVCAtIGJ1ZmZlcmVkIGlv cmVxIGdmbiAqLworICAgIC8qIE9VVCAtIGJ1ZmZlcmVkIGlvcmVxIGdmbiAoc2VlIGJsb2NrIGNv bW1lbnQgYWJvdmUpKi8KICAgICB1aW50NjRfYWxpZ25lZF90IGJ1ZmlvcmVxX2dmbjsKIH07CiAK LS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=