From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 11/12] x86/hvm/ioreq: defer mapping gfns until they are actually requsted Date: Thu, 31 Aug 2017 10:36:04 +0100 Message-ID: <20170831093605.2757-12-paul.durrant@citrix.com> References: <20170831093605.2757-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dnM3X-0000GY-Fj for xen-devel@lists.xenproject.org; Thu, 31 Aug 2017 09:46:35 +0000 In-Reply-To: <20170831093605.2757-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 biBlbXVsYXRvciB0bwptYXAgaW9yZXEgc2VydmVyIHBhZ2VzIGRpcmVjdGx5IGZyb20gWGVuIHJh dGhlciB0aGFuIHRoZSBndWVzdCBQMk0uCgpUaGlzIHBhdGNoIGxheXMgdGhlIGdyb3VuZHdvcmsg Zm9yIHRoYXQgY2hhbmdlIGJ5IGRlZmVycmluZyBtYXBwaW5nIG9mCmdmbnMgdW50aWwgdGhlaXIg dmFsdWVzIGFyZSByZXF1ZXN0ZWQgYnkgYW4gZW11bGF0b3IuIFRvIHRoYXQgZW5kLCB0aGUKcGFk IGZpZWxkIG9mIHRoZSB4ZW5fZG1fb3BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvIHN0cnVjdHVyZSBp cyByZS1wdXJwb3NlZAp0byBhIGZsYWdzIGZpZWxkIGFuZCBuZXcgZmxhZywgWEVOX0RNT1Bfbm9f Z2ZucywgZGVmaW5lZCB3aGljaCBtb2RpZmllcyB0aGUKYmVoYXZpb3VyIG9mIFhFTl9ETU9QX2dl dF9pb3JlcV9zZXJ2ZXJfaW5mbyB0byBhbGxvdyB0aGUgY2FsbGVyIHRvIGF2b2lkCnJlcXVlc3Rp bmcgdGhlIGdmbiB2YWx1ZXMuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVy cmFudEBjaXRyaXguY29tPgotLS0KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRy aXguY29tPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IEFuZHJldyBDb29w ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxHZW9yZ2Uu RHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkNjOiBT dGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBUaW0gRGVlZ2Fu IDx0aW1AeGVuLm9yZz4KCnYzOgogLSBVcGRhdGVkIGluIHJlc3BvbnNlIHRvIHJldmlldyBjb21t ZW50cyBmcm9tIFdlaSBhbmQgUm9nZXIuCiAtIEFkZGVkIGEgSEFORExFX0JVRklPUkVRIG1hY3Jv IHRvIG1ha2UgdGhlIGNvZGUgbmVhdGVyLgogLSBUaGlzIHBhdGNoIG5vIGxvbmdlciBpbnRyb2R1 Y2VzIGEgc2VjdXJpdHkgdnVsbmVyYWJpbGl0eSBzaW5jZSB0aGVyZQogICBpcyBub3cgYW4gZXhw bGljaXQgbGltaXQgb24gdGhlIG51bWJlciBvZiBpb3JlcSBzZXJ2ZXJzIHRoYXQgbWF5IGJlCiAg IGNyZWF0ZWQgZm9yIGFueSBvbmUgZG9tYWluLgotLS0KIHRvb2xzL2xpYnMvZGV2aWNlbW9kZWwv Y29yZS5jICAgICAgICAgICAgICAgICAgIHwgIDggKysrKysKIHRvb2xzL2xpYnMvZGV2aWNlbW9k ZWwvaW5jbHVkZS94ZW5kZXZpY2Vtb2RlbC5oIHwgIDYgKystLQogeGVuL2FyY2gveDg2L2h2bS9k bS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOSArKysrLS0KIHhlbi9hcmNoL3g4Ni9o dm0vaW9yZXEuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgNDEgKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmggICAgICAgICAgICAgICAg fCAgMiArLQogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oICAgICAgICAgICAgICAgICAg fCAzMiArKysrKysrKysrKy0tLS0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMo KyksIDM5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwv Y29yZS5jIGIvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9jb3JlLmMKaW5kZXggZmNiMjYwZDI5Yi4u Mjg5NTg5MzRiZiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9jb3JlLmMKKysr IGIvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9jb3JlLmMKQEAgLTE4OCw2ICsxODgsMTQgQEAgaW50 IHhlbmRldmljZW1vZGVsX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbygKIAogICAgIGRhdGEtPmlkID0g aWQ7CiAKKyAgICAvKgorICAgICAqIElmIHRoZSBjYWxsZXIgaXMgbm90IHJlcXVlc3RpbmcgZ2Zu IHZhbHVlcyB0aGVuIGluc3RydWN0IHRoZQorICAgICAqIGh5cGVyY2FsbCBub3QgdG8gcmV0cmll dmUgdGhlbSBhcyB0aGlzIG1heSBjYXVzZSB0aGVtIHRvIGJlCisgICAgICogbWFwcGVkLgorICAg ICAqLworICAgIGlmICghaW9yZXFfZ2ZuICYmICFidWZpb3JlcV9nZm4pCisgICAgICAgIGRhdGEt PmZsYWdzIHw9IFhFTl9ETU9QX25vX2dmbnM7CisKICAgICByYyA9IHhlbmRldmljZW1vZGVsX29w KGRtb2QsIGRvbWlkLCAxLCAmb3AsIHNpemVvZihvcCkpOwogICAgIGlmIChyYykKICAgICAgICAg cmV0dXJuIHJjOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9pbmNsdWRlL3hl bmRldmljZW1vZGVsLmggYi90b29scy9saWJzL2RldmljZW1vZGVsL2luY2x1ZGUveGVuZGV2aWNl bW9kZWwuaAppbmRleCAxMzIxNmRiMDRhLi5kNzNhNzZkYTM1IDEwMDY0NAotLS0gYS90b29scy9s aWJzL2RldmljZW1vZGVsL2luY2x1ZGUveGVuZGV2aWNlbW9kZWwuaAorKysgYi90b29scy9saWJz L2RldmljZW1vZGVsL2luY2x1ZGUveGVuZGV2aWNlbW9kZWwuaApAQCAtNjEsMTEgKzYxLDExIEBA IGludCB4ZW5kZXZpY2Vtb2RlbF9jcmVhdGVfaW9yZXFfc2VydmVyKAogICogQHBhcm0gZG9taWQg dGhlIGRvbWFpbiBpZCB0byBiZSBzZXJ2aWNlZAogICogQHBhcm0gaWQgdGhlIElPUkVRIFNlcnZl ciBpZC4KICAqIEBwYXJtIGlvcmVxX2dmbiBwb2ludGVyIHRvIGEgeGVuX3Bmbl90IHRvIHJlY2Vp dmUgdGhlIHN5bmNocm9ub3VzIGlvcmVxCi0gKiAgICAgICAgICAgICAgICAgIGdmbgorICogICAg ICAgICAgICAgICAgICBnZm4uIChNYXkgYmUgTlVMTCBpZiBub3QgcmVxdWlyZWQpCiAgKiBAcGFy bSBidWZpb3JlcV9nZm4gcG9pbnRlciB0byBhIHhlbl9wZm5fdCB0byByZWNlaXZlIHRoZSBidWZm ZXJlZCBpb3JlcQotICogICAgICAgICAgICAgICAgICAgIGdmbgorICogICAgICAgICAgICAgICAg ICAgIGdmbi4gKE1heSBiZSBOVUxMIGlmIG5vdCByZXF1aXJlZCkKICAqIEBwYXJtIGJ1ZmlvcmVx X3BvcnQgcG9pbnRlciB0byBhIGV2dGNobl9wb3J0X3QgdG8gcmVjZWl2ZSB0aGUgYnVmZmVyZWQK LSAqICAgICAgICAgICAgICAgICAgICAgaW9yZXEgZXZlbnQgY2hhbm5lbAorICogICAgICAgICAg ICAgICAgICAgICBpb3JlcSBldmVudCBjaGFubmVsLiAoTWF5IGJlIE5VTEwgaWYgbm90IHJlcXVp cmVkKQogICogQHJldHVybiAwIG9uIHN1Y2Nlc3MsIC0xIG9uIGZhaWx1cmUuCiAgKi8KIGludCB4 ZW5kZXZpY2Vtb2RlbF9nZXRfaW9yZXFfc2VydmVyX2luZm8oCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvaHZtL2RtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKaW5kZXggODdlZjRiNmNhOS4u YzAyMGYwYzk5ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9h cmNoL3g4Ni9odm0vZG0uYwpAQCAtNDE4LDE2ICs0MTgsMTkgQEAgc3RhdGljIGludCBkbV9vcChj b25zdCBzdHJ1Y3QgZG1vcF9hcmdzICpvcF9hcmdzKQogICAgIHsKICAgICAgICAgc3RydWN0IHhl bl9kbV9vcF9nZXRfaW9yZXFfc2VydmVyX2luZm8gKmRhdGEgPQogICAgICAgICAgICAgJm9wLnUu Z2V0X2lvcmVxX3NlcnZlcl9pbmZvOworICAgICAgICBjb25zdCB1aW50MTZfdCB2YWxpZF9mbGFn cyA9IFhFTl9ETU9QX25vX2dmbnM7CiAKICAgICAgICAgY29uc3Rfb3AgPSBmYWxzZTsKIAogICAg ICAgICByYyA9IC1FSU5WQUw7Ci0gICAgICAgIGlmICggZGF0YS0+cGFkICkKKyAgICAgICAgaWYg KCBkYXRhLT5mbGFncyAmIH52YWxpZF9mbGFncyApCiAgICAgICAgICAgICBicmVhazsKIAogICAg ICAgICByYyA9IGh2bV9nZXRfaW9yZXFfc2VydmVyX2luZm8oZCwgZGF0YS0+aWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YS0+aW9yZXFfZ2ZuLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEtPmJ1ZmlvcmVxX2dmbiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRhLT5mbGFncyAmIFhFTl9E TU9QX25vX2dmbnMpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwgOiAmZGF0YS0+aW9yZXFfZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGRhdGEtPmZsYWdzICYgWEVOX0RNT1Bfbm9fZ2ZucykgPworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCA6ICZkYXRhLT5idWZpb3JlcV9nZm4sCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YS0+YnVmaW9yZXFfcG9ydCk7 CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaW9y ZXEuYyBiL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYwppbmRleCA0OGM1MjM4MjVlLi4yZDk4YjQz ODQ5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS9pb3JlcS5jCkBAIC0zMzgsNiArMzM4LDkgQEAgc3RhdGljIHZvaWQgaHZtX3VwZGF0 ZV9pb3JlcV9ldnRjaG4oc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsCiAgICAgfQogfQogCisj ZGVmaW5lIEhBTkRMRV9CVUZJT1JFUShzKSBcCisgICAgKHMtPmJ1ZmlvcmVxX2hhbmRsaW5nICE9 IEhWTV9JT1JFUVNSVl9CVUZJT1JFUV9PRkYpCisKIHN0YXRpYyBpbnQgaHZtX2lvcmVxX3NlcnZl cl9hZGRfdmNwdShzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmNwdSAqdikKIHsKQEAgLTM1OSw3ICszNjIsNyBA QCBzdGF0aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJfYWRkX3ZjcHUoc3RydWN0IGh2bV9pb3JlcV9z ZXJ2ZXIgKnMsCiAKICAgICBzdi0+aW9yZXFfZXZ0Y2huID0gcmM7CiAKLSAgICBpZiAoIHYtPnZj cHVfaWQgPT0gMCAmJiBzLT5idWZpb3JlcS52YSAhPSBOVUxMICkKKyAgICBpZiAoIHYtPnZjcHVf aWQgPT0gMCAmJiBIQU5ETEVfQlVGSU9SRVEocykgKQogICAgIHsKICAgICAgICAgc3RydWN0IGRv bWFpbiAqZCA9IHMtPmRvbWFpbjsKIApAQCAtNDEwLDcgKzQxMyw3IEBAIHN0YXRpYyB2b2lkIGh2 bV9pb3JlcV9zZXJ2ZXJfcmVtb3ZlX3ZjcHUoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsCiAK ICAgICAgICAgbGlzdF9kZWwoJnN2LT5saXN0X2VudHJ5KTsKIAotICAgICAgICBpZiAoIHYtPnZj cHVfaWQgPT0gMCAmJiBzLT5idWZpb3JlcS52YSAhPSBOVUxMICkKKyAgICAgICAgaWYgKCB2LT52 Y3B1X2lkID09IDAgJiYgSEFORExFX0JVRklPUkVRKHMpICkKICAgICAgICAgICAgIGZyZWVfeGVu X2V2ZW50X2NoYW5uZWwodi0+ZG9tYWluLCBzLT5idWZpb3JlcV9ldnRjaG4pOwogCiAgICAgICAg IGZyZWVfeGVuX2V2ZW50X2NoYW5uZWwodi0+ZG9tYWluLCBzdi0+aW9yZXFfZXZ0Y2huKTsKQEAg LTQzNyw3ICs0NDAsNyBAQCBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVyX3JlbW92ZV9hbGxf dmNwdXMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCiAKICAgICAgICAgbGlzdF9kZWwoJnN2 LT5saXN0X2VudHJ5KTsKIAotICAgICAgICBpZiAoIHYtPnZjcHVfaWQgPT0gMCAmJiBzLT5idWZp b3JlcS52YSAhPSBOVUxMICkKKyAgICAgICAgaWYgKCB2LT52Y3B1X2lkID09IDAgJiYgSEFORExF X0JVRklPUkVRKHMpICkKICAgICAgICAgICAgIGZyZWVfeGVuX2V2ZW50X2NoYW5uZWwodi0+ZG9t YWluLCBzLT5idWZpb3JlcV9ldnRjaG4pOwogCiAgICAgICAgIGZyZWVfeGVuX2V2ZW50X2NoYW5u ZWwodi0+ZG9tYWluLCBzdi0+aW9yZXFfZXZ0Y2huKTsKQEAgLTQ0OCwxNCArNDUxLDEzIEBAIHN0 YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2ZXJfcmVtb3ZlX2FsbF92Y3B1cyhzdHJ1Y3QgaHZtX2lv cmVxX3NlcnZlciAqcykKICAgICBzcGluX3VubG9jaygmcy0+bG9jayk7CiB9CiAKLXN0YXRpYyBp bnQgaHZtX2lvcmVxX3NlcnZlcl9tYXBfcGFnZXMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaGFuZGxlX2J1Zmlv cmVxKQorc3RhdGljIGludCBodm1faW9yZXFfc2VydmVyX21hcF9wYWdlcyhzdHJ1Y3QgaHZtX2lv cmVxX3NlcnZlciAqcykKIHsKICAgICBpbnQgcmM7CiAKICAgICByYyA9IGh2bV9tYXBfaW9yZXFf Z2ZuKHMsIGZhbHNlKTsKIAotICAgIGlmICggIXJjICYmIGhhbmRsZV9idWZpb3JlcSApCisgICAg aWYgKCAhcmMgJiYgSEFORExFX0JVRklPUkVRKHMpICkKICAgICAgICAgcmMgPSBodm1fbWFwX2lv cmVxX2dmbihzLCB0cnVlKTsKIAogICAgIGlmICggcmMgKQpAQCAtNTgzLDEzICs1ODUsNyBAQCBz dGF0aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJfaW5pdChzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAq cywKICAgICBpZiAoIHJjICkKICAgICAgICAgcmV0dXJuIHJjOwogCi0gICAgaWYgKCBidWZpb3Jl cV9oYW5kbGluZyA9PSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfQVRPTUlDICkKLSAgICAgICAgcy0+ YnVmaW9yZXFfYXRvbWljID0gdHJ1ZTsKLQotICAgIHJjID0gaHZtX2lvcmVxX3NlcnZlcl9tYXBf cGFnZXMoCi0gICAgICAgICAgICAgcywgYnVmaW9yZXFfaGFuZGxpbmcgIT0gSFZNX0lPUkVRU1JW X0JVRklPUkVRX09GRik7Ci0gICAgaWYgKCByYyApCi0gICAgICAgIGdvdG8gZmFpbF9tYXA7Cisg ICAgcy0+YnVmaW9yZXFfaGFuZGxpbmcgPSBidWZpb3JlcV9oYW5kbGluZzsKIAogICAgIGZvcl9l YWNoX3ZjcHUgKCBkLCB2ICkKICAgICB7CkBAIC02MDQsOSArNjAwLDYgQEAgc3RhdGljIGludCBo dm1faW9yZXFfc2VydmVyX2luaXQoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsCiAgICAgaHZt X2lvcmVxX3NlcnZlcl9yZW1vdmVfYWxsX3ZjcHVzKHMpOwogICAgIGh2bV9pb3JlcV9zZXJ2ZXJf dW5tYXBfcGFnZXMocyk7CiAKLSBmYWlsX21hcDoKLSAgICBodm1faW9yZXFfc2VydmVyX2ZyZWVf cmFuZ2VzZXRzKHMpOwotCiAgICAgcmV0dXJuIHJjOwogfQogCkBAIC03MzgsMTEgKzczMSwyMCBA QCBpbnQgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZp ZF90IGlkLAogICAgIGlmICggaWQgPj0gTUFYX05SX0lPUkVRX1NFUlZFUlMgfHwgIXMgfHwgSVNf REVGQVVMVChzKSApCiAgICAgICAgIGdvdG8gb3V0OwogCisgICAgaWYgKCBpb3JlcV9nZm4gfHwg YnVmaW9yZXFfZ2ZuICkKKyAgICB7CisgICAgICAgIHJjID0gaHZtX2lvcmVxX3NlcnZlcl9tYXBf cGFnZXMocyk7CisgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgZ290byBvdXQ7CisgICAg fQorCiAgICAgKmlvcmVxX2dmbiA9IGdmbl94KHMtPmlvcmVxLmdmbik7CiAKLSAgICBpZiAoIHMt PmJ1ZmlvcmVxLnZhICE9IE5VTEwgKQorICAgIGlmICggSEFORExFX0JVRklPUkVRKHMpICkKICAg ICB7Ci0gICAgICAgICpidWZpb3JlcV9nZm4gPSBnZm5feChzLT5idWZpb3JlcS5nZm4pOworICAg ICAgICBpZiAoIGJ1ZmlvcmVxX2dmbiApCisgICAgICAgICAgICAqYnVmaW9yZXFfZ2ZuID0gZ2Zu X3gocy0+YnVmaW9yZXEuZ2ZuKTsKKwogICAgICAgICAqYnVmaW9yZXFfcG9ydCA9IHMtPmJ1Zmlv cmVxX2V2dGNobjsKICAgICB9CiAKQEAgLTEyNTcsNyArMTI1OSw4IEBAIHN0YXRpYyBpbnQgaHZt X3NlbmRfYnVmZmVyZWRfaW9yZXEoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsIGlvcmVxX3Qg KnApCiAgICAgcGctPnB0cnMud3JpdGVfcG9pbnRlciArPSBxdyA/IDIgOiAxOwogCiAgICAgLyog Q2Fub25pY2FsaXplIHJlYWQvd3JpdGUgcG9pbnRlcnMgdG8gcHJldmVudCB0aGVpciBvdmVyZmxv dy4gKi8KLSAgICB3aGlsZSAoIHMtPmJ1ZmlvcmVxX2F0b21pYyAmJiBxdysrIDwgSU9SRVFfQlVG RkVSX1NMT1RfTlVNICYmCisgICAgd2hpbGUgKCAocy0+YnVmaW9yZXFfaGFuZGxpbmcgPT0gSFZN X0lPUkVRU1JWX0JVRklPUkVRX0FUT01JQykgJiYKKyAgICAgICAgICAgIHF3KysgPCBJT1JFUV9C VUZGRVJfU0xPVF9OVU0gJiYKICAgICAgICAgICAgIHBnLT5wdHJzLnJlYWRfcG9pbnRlciA+PSBJ T1JFUV9CVUZGRVJfU0xPVF9OVU0gKQogICAgIHsKICAgICAgICAgdW5pb24gYnVmaW9yZXFfcG9p bnRlcnMgb2xkID0gcGctPnB0cnMsIG5ldzsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmgKaW5kZXgg MmJlOTM1M2UzNy4uNDQ5MWE5NjM1MCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vZG9tYWluLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmgKQEAgLTY4 LDggKzY4LDggQEAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgewogICAgIHNwaW5sb2NrX3QgICAg ICAgICAgICAgYnVmaW9yZXFfbG9jazsKICAgICBldnRjaG5fcG9ydF90ICAgICAgICAgIGJ1Zmlv cmVxX2V2dGNobjsKICAgICBzdHJ1Y3QgcmFuZ2VzZXQgICAgICAgICpyYW5nZVtOUl9JT19SQU5H RV9UWVBFU107CisgICAgaW50ICAgICAgICAgICAgICAgICAgICBidWZpb3JlcV9oYW5kbGluZzsK ICAgICBib29sICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ7Ci0gICAgYm9vbCAgICAgICAgICAg ICAgICAgICBidWZpb3JlcV9hdG9taWM7CiB9OwogCiAvKgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvcHVibGljL2h2bS9kbV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCmlu ZGV4IDZiYmFiNWZjYTMuLjk2NzdiZDc0ZTcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1Ymxp Yy9odm0vZG1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKQEAgLTc5 LDI4ICs3OSwzNCBAQCBzdHJ1Y3QgeGVuX2RtX29wX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIgewogICog WEVOX0RNT1BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvOiBHZXQgYWxsIHRoZSBpbmZvcm1hdGlvbiBu ZWNlc3NhcnkgdG8KICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzIElP UkVRIFNlcnZlciA8aWQ+LgogICoKLSAqIFRoZSBlbXVsYXRvciBuZWVkcyB0byBtYXAgdGhlIHN5 bmNocm9ub3VzIGlvcmVxIHN0cnVjdHVyZXMgYW5kIGJ1ZmZlcmVkCi0gKiBpb3JlcSByaW5nIChp ZiBpdCBleGlzdHMpIHRoYXQgWGVuIHVzZXMgdG8gcmVxdWVzdCBlbXVsYXRpb24uIFRoZXNlIGFy ZQotICogaG9zdGVkIGluIHRoZSB0YXJnZXQgZG9tYWluJ3MgZ21mbnMgPGlvcmVxX2dmbj4gYW5k IDxidWZpb3JlcV9nZm4+Ci0gKiByZXNwZWN0aXZlbHkuIEluIGFkZGl0aW9uLCBpZiB0aGUgSU9S RVEgU2VydmVyIGlzIGhhbmRsaW5nIGJ1ZmZlcmVkCi0gKiBlbXVsYXRpb24gcmVxdWVzdHMsIHRo ZSBlbXVsYXRvciBuZWVkcyB0byBiaW5kIHRvIGV2ZW50IGNoYW5uZWwKLSAqIDxidWZpb3JlcV9w b3J0PiB0byBsaXN0ZW4gZm9yIHRoZW0uIChUaGUgZXZlbnQgY2hhbm5lbHMgdXNlZCBmb3IKLSAq IHN5bmNocm9ub3VzIGVtdWxhdGlvbiByZXF1ZXN0cyBhcmUgc3BlY2lmaWVkIGluIHRoZSBwZXIt Q1BVIGlvcmVxCi0gKiBzdHJ1Y3R1cmVzIGluIDxpb3JlcV9nZm4+KS4KLSAqIElmIHRoZSBJT1JF USBTZXJ2ZXIgaXMgbm90IGhhbmRsaW5nIGJ1ZmZlcmVkIGVtdWxhdGlvbiByZXF1ZXN0cyB0aGVu IHRoZQotICogdmFsdWVzIGhhbmRlZCBiYWNrIGluIDxidWZpb3JlcV9nZm4+IGFuZCA8YnVmaW9y ZXFfcG9ydD4gd2lsbCBib3RoIGJlIDAuCisgKiBJZiB0aGUgSU9SRVEgU2VydmVyIGlzIGhhbmRs aW5nIGJ1ZmZlcmVkIGVtdWxhdGlvbiByZXF1ZXN0cywgdGhlCisgKiBlbXVsYXRvciBuZWVkcyB0 byBiaW5kIHRvIGV2ZW50IGNoYW5uZWwgPGJ1ZmlvcmVxX3BvcnQ+IHRvIGxpc3RlbiBmb3IKKyAq IHRoZW0uIChUaGUgZXZlbnQgY2hhbm5lbHMgdXNlZCBmb3Igc3luY2hyb25vdXMgZW11bGF0aW9u IHJlcXVlc3RzIGFyZQorICogc3BlY2lmaWVkIGluIHRoZSBwZXItQ1BVIGlvcmVxIHN0cnVjdHVy ZXMpLgorICogSW4gYWRkaXRpb24sIGlmIHRoZSBYRU5NRU1fYWNxdWlyZV9yZXNvdXJjZSBtZW1v cnkgb3AgY2Fubm90IGJlIHVzZWQsCisgKiB0aGUgZW11bGF0b3Igd2lsbCBuZWVkIHRvIG1hcCB0 aGUgc3luY2hyb25vdXMgaW9yZXEgc3RydWN0dXJlcyBhbmQKKyAqIGJ1ZmZlcmVkIGlvcmVxIHJp bmcgKGlmIGl0IGV4aXN0cykgZnJvbSBndWVzdCBtZW1vcnkuIElmIDxmbGFncz4gZG9lcworICog bm90IGNvbnRhaW4gWEVOX0RNT1Bfbm9fZ2ZucyB0aGVuIHRoZXNlIHBhZ2VzIHdpbGwgYmUgbWFk ZSBhdmFpbGFibGUgYW5kCisgKiB0aGUgZnJhbWUgbnVtYmVycyBwYXNzZWQgYmFjayBpbiBnZm5z IDxpb3JlcV9nZm4+IGFuZCA8YnVmaW9yZXFfZ2ZuPgorICogcmVzcGVjdGl2ZWx5LiAoSWYgdGhl IElPUkVRIFNlcnZlciBpcyBub3QgaGFuZGxpbmcgYnVmZmVyZWQgZW11bGF0aW9uCisgKiBvbmx5 IDxpb3JlcV9nZm4+IHdpbGwgYmUgdmFsaWQpLgogICovCiAjZGVmaW5lIFhFTl9ETU9QX2dldF9p b3JlcV9zZXJ2ZXJfaW5mbyAyCiAKIHN0cnVjdCB4ZW5fZG1fb3BfZ2V0X2lvcmVxX3NlcnZlcl9p bmZvIHsKICAgICAvKiBJTiAtIHNlcnZlciBpZCAqLwogICAgIGlvc2VydmlkX3QgaWQ7Ci0gICAg dWludDE2X3QgcGFkOworICAgIC8qIElOIC0gZmxhZ3MgKi8KKyAgICB1aW50MTZfdCBmbGFnczsK KworI2RlZmluZSBfWEVOX0RNT1Bfbm9fZ2ZucyAwCisjZGVmaW5lIFhFTl9ETU9QX25vX2dmbnMg KDF1IDw8IF9YRU5fRE1PUF9ub19nZm5zKQorCiAgICAgLyogT1VUIC0gYnVmZmVyZWQgaW9yZXEg cG9ydCAqLwogICAgIGV2dGNobl9wb3J0X3QgYnVmaW9yZXFfcG9ydDsKLSAgICAvKiBPVVQgLSBz eW5jIGlvcmVxIGdmbiAqLworICAgIC8qIE9VVCAtIHN5bmMgaW9yZXEgZ2ZuIChzZWUgYmxvY2sg Y29tbWVudCBhYm92ZSkgKi8KICAgICB1aW50NjRfYWxpZ25lZF90IGlvcmVxX2dmbjsKLSAgICAv KiBPVVQgLSBidWZmZXJlZCBpb3JlcSBnZm4gKi8KKyAgICAvKiBPVVQgLSBidWZmZXJlZCBpb3Jl cSBnZm4gKHNlZSBibG9jayBjb21tZW50IGFib3ZlKSovCiAgICAgdWludDY0X2FsaWduZWRfdCBi dWZpb3JlcV9nZm47CiB9OwogCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK