From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v11 04/11] x86/hvm/ioreq: defer mapping gfns until they are actually requsted Date: Thu, 12 Oct 2017 17:25:56 +0100 Message-ID: <20171012162603.3016-5-paul.durrant@citrix.com> References: <20171012162603.3016-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 1e2gJG-0006dy-4F for xen-devel@lists.xenproject.org; Thu, 12 Oct 2017 16:26:10 +0000 In-Reply-To: <20171012162603.3016-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 , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Paul Durrant List-Id: xen-devel@lists.xenproject.org QSBzdWJzZXF1ZW50IHBhdGNoIHdpbGwgaW50cm9kdWNlIGEgbmV3IHNjaGVtZSB0byBhbGxvdyBh biBlbXVsYXRvciB0bwptYXAgaW9yZXEgc2VydmVyIHBhZ2VzIGRpcmVjdGx5IGZyb20gWGVuIHJh dGhlciB0aGFuIHRoZSBndWVzdCBQMk0uCgpUaGlzIHBhdGNoIGxheXMgdGhlIGdyb3VuZHdvcmsg Zm9yIHRoYXQgY2hhbmdlIGJ5IGRlZmVycmluZyBtYXBwaW5nIG9mCmdmbnMgdW50aWwgdGhlaXIg dmFsdWVzIGFyZSByZXF1ZXN0ZWQgYnkgYW4gZW11bGF0b3IuIFRvIHRoYXQgZW5kLCB0aGUKcGFk IGZpZWxkIG9mIHRoZSB4ZW5fZG1fb3BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvIHN0cnVjdHVyZSBp cyByZS1wdXJwb3NlZAp0byBhIGZsYWdzIGZpZWxkIGFuZCBuZXcgZmxhZywgWEVOX0RNT1Bfbm9f Z2ZucywgZGVmaW5lZCB3aGljaCBtb2RpZmllcyB0aGUKYmVoYXZpb3VyIG9mIFhFTl9ETU9QX2dl dF9pb3JlcV9zZXJ2ZXJfaW5mbyB0byBhbGxvdyB0aGUgY2FsbGVyIHRvIGF2b2lkCnJlcXVlc3Rp bmcgdGhlIGdmbiB2YWx1ZXMuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVy cmFudEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1 QGNpdHJpeC5jb20+CkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpSZXZp ZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KQ2M6IElhbiBKYWNr c29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUu Y2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xl LmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6 IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgoKdjg6CiAtIEZvciBzYWZldHkgbWFrZSBhbGwgb2Yg dGhlIHBvaW50ZXJzIHBhc3NlZCB0bwogICBodm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKCkgb3B0 aW9uYWwuCiAtIFNocmluayBidWZpb3JlcV9oYW5kbGluZyBkb3duIHRvIGEgdWludDhfdC4KCnYz OgogLSBVcGRhdGVkIGluIHJlc3BvbnNlIHRvIHJldmlldyBjb21tZW50cyBmcm9tIFdlaSBhbmQg Um9nZXIuCiAtIEFkZGVkIGEgSEFORExFX0JVRklPUkVRIG1hY3JvIHRvIG1ha2UgdGhlIGNvZGUg bmVhdGVyLgogLSBUaGlzIHBhdGNoIG5vIGxvbmdlciBpbnRyb2R1Y2VzIGEgc2VjdXJpdHkgdnVs bmVyYWJpbGl0eSBzaW5jZSB0aGVyZQogICBpcyBub3cgYW4gZXhwbGljaXQgbGltaXQgb24gdGhl IG51bWJlciBvZiBpb3JlcSBzZXJ2ZXJzIHRoYXQgbWF5IGJlCiAgIGNyZWF0ZWQgZm9yIGFueSBv bmUgZG9tYWluLgotLS0KIHRvb2xzL2xpYnMvZGV2aWNlbW9kZWwvY29yZS5jICAgICAgICAgICAg ICAgICAgIHwgIDggKysrKysKIHRvb2xzL2xpYnMvZGV2aWNlbW9kZWwvaW5jbHVkZS94ZW5kZXZp Y2Vtb2RlbC5oIHwgIDYgKystLQogeGVuL2FyY2gveDg2L2h2bS9kbS5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgOSArKystLQogeGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jICAgICAgICAg ICAgICAgICAgICAgICAgfCA0NyArKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVk ZS9hc20teDg2L2h2bS9kb21haW4uaCAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vaW5jbHVk ZS9wdWJsaWMvaHZtL2RtX29wLmggICAgICAgICAgICAgICAgICB8IDMyICsrKysrKysrKystLS0t LS0tCiA2IGZpbGVzIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwvY29yZS5jIGIvdG9vbHMvbGlicy9k ZXZpY2Vtb2RlbC9jb3JlLmMKaW5kZXggMGYyYzFhNzkxZi4uOTFjNjlkMTAzYiAxMDA2NDQKLS0t IGEvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9jb3JlLmMKKysrIGIvdG9vbHMvbGlicy9kZXZpY2Vt b2RlbC9jb3JlLmMKQEAgLTE4OCw2ICsxODgsMTQgQEAgaW50IHhlbmRldmljZW1vZGVsX2dldF9p b3JlcV9zZXJ2ZXJfaW5mbygKIAogICAgIGRhdGEtPmlkID0gaWQ7CiAKKyAgICAvKgorICAgICAq IElmIHRoZSBjYWxsZXIgaXMgbm90IHJlcXVlc3RpbmcgZ2ZuIHZhbHVlcyB0aGVuIGluc3RydWN0 IHRoZQorICAgICAqIGh5cGVyY2FsbCBub3QgdG8gcmV0cmlldmUgdGhlbSBhcyB0aGlzIG1heSBj YXVzZSB0aGVtIHRvIGJlCisgICAgICogbWFwcGVkLgorICAgICAqLworICAgIGlmICghaW9yZXFf Z2ZuICYmICFidWZpb3JlcV9nZm4pCisgICAgICAgIGRhdGEtPmZsYWdzIHw9IFhFTl9ETU9QX25v X2dmbnM7CisKICAgICByYyA9IHhlbmRldmljZW1vZGVsX29wKGRtb2QsIGRvbWlkLCAxLCAmb3As IHNpemVvZihvcCkpOwogICAgIGlmIChyYykKICAgICAgICAgcmV0dXJuIHJjOwpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9pbmNsdWRlL3hlbmRldmljZW1vZGVsLmggYi90b29s cy9saWJzL2RldmljZW1vZGVsL2luY2x1ZGUveGVuZGV2aWNlbW9kZWwuaAppbmRleCAxMzIxNmRi MDRhLi5kNzNhNzZkYTM1IDEwMDY0NAotLS0gYS90b29scy9saWJzL2RldmljZW1vZGVsL2luY2x1 ZGUveGVuZGV2aWNlbW9kZWwuaAorKysgYi90b29scy9saWJzL2RldmljZW1vZGVsL2luY2x1ZGUv eGVuZGV2aWNlbW9kZWwuaApAQCAtNjEsMTEgKzYxLDExIEBAIGludCB4ZW5kZXZpY2Vtb2RlbF9j cmVhdGVfaW9yZXFfc2VydmVyKAogICogQHBhcm0gZG9taWQgdGhlIGRvbWFpbiBpZCB0byBiZSBz ZXJ2aWNlZAogICogQHBhcm0gaWQgdGhlIElPUkVRIFNlcnZlciBpZC4KICAqIEBwYXJtIGlvcmVx X2dmbiBwb2ludGVyIHRvIGEgeGVuX3Bmbl90IHRvIHJlY2VpdmUgdGhlIHN5bmNocm9ub3VzIGlv cmVxCi0gKiAgICAgICAgICAgICAgICAgIGdmbgorICogICAgICAgICAgICAgICAgICBnZm4uIChN YXkgYmUgTlVMTCBpZiBub3QgcmVxdWlyZWQpCiAgKiBAcGFybSBidWZpb3JlcV9nZm4gcG9pbnRl ciB0byBhIHhlbl9wZm5fdCB0byByZWNlaXZlIHRoZSBidWZmZXJlZCBpb3JlcQotICogICAgICAg ICAgICAgICAgICAgIGdmbgorICogICAgICAgICAgICAgICAgICAgIGdmbi4gKE1heSBiZSBOVUxM IGlmIG5vdCByZXF1aXJlZCkKICAqIEBwYXJtIGJ1ZmlvcmVxX3BvcnQgcG9pbnRlciB0byBhIGV2 dGNobl9wb3J0X3QgdG8gcmVjZWl2ZSB0aGUgYnVmZmVyZWQKLSAqICAgICAgICAgICAgICAgICAg ICAgaW9yZXEgZXZlbnQgY2hhbm5lbAorICogICAgICAgICAgICAgICAgICAgICBpb3JlcSBldmVu dCBjaGFubmVsLiAoTWF5IGJlIE5VTEwgaWYgbm90IHJlcXVpcmVkKQogICogQHJldHVybiAwIG9u IHN1Y2Nlc3MsIC0xIG9uIGZhaWx1cmUuCiAgKi8KIGludCB4ZW5kZXZpY2Vtb2RlbF9nZXRfaW9y ZXFfc2VydmVyX2luZm8oCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMgYi94ZW4v YXJjaC94ODYvaHZtL2RtLmMKaW5kZXggOWNmNTNiNTUxYy4uMjJmYTViNTFlMyAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwpAQCAt NDE2LDE2ICs0MTYsMTkgQEAgc3RhdGljIGludCBkbV9vcChjb25zdCBzdHJ1Y3QgZG1vcF9hcmdz ICpvcF9hcmdzKQogICAgIHsKICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9nZXRfaW9yZXFfc2Vy dmVyX2luZm8gKmRhdGEgPQogICAgICAgICAgICAgJm9wLnUuZ2V0X2lvcmVxX3NlcnZlcl9pbmZv OworICAgICAgICBjb25zdCB1aW50MTZfdCB2YWxpZF9mbGFncyA9IFhFTl9ETU9QX25vX2dmbnM7 CiAKICAgICAgICAgY29uc3Rfb3AgPSBmYWxzZTsKIAogICAgICAgICByYyA9IC1FSU5WQUw7Ci0g ICAgICAgIGlmICggZGF0YS0+cGFkICkKKyAgICAgICAgaWYgKCBkYXRhLT5mbGFncyAmIH52YWxp ZF9mbGFncyApCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICByYyA9IGh2bV9nZXRfaW9y ZXFfc2VydmVyX2luZm8oZCwgZGF0YS0+aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmZGF0YS0+aW9yZXFfZ2ZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmRhdGEtPmJ1ZmlvcmVxX2dmbiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChkYXRhLT5mbGFncyAmIFhFTl9ETU9QX25vX2dmbnMpID8KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgOiAmZGF0YS0+aW9yZXFfZ2Zu LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGEtPmZsYWdzICYg WEVOX0RNT1Bfbm9fZ2ZucykgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTlVMTCA6ICZkYXRhLT5idWZpb3JlcV9nZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmZGF0YS0+YnVmaW9yZXFfcG9ydCk7CiAgICAgICAgIGJyZWFrOwogICAg IH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyBiL3hlbi9hcmNoL3g4Ni9o dm0vaW9yZXEuYwppbmRleCA2NGJiMTNjZWM5Li5mNjU0ZTc3OTZjIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvaHZtL2lvcmVxLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCkBAIC0z NTAsNiArMzUwLDkgQEAgc3RhdGljIHZvaWQgaHZtX3VwZGF0ZV9pb3JlcV9ldnRjaG4oc3RydWN0 IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsCiAgICAgfQogfQogCisjZGVmaW5lIEhBTkRMRV9CVUZJT1JF UShzKSBcCisgICAgKChzKS0+YnVmaW9yZXFfaGFuZGxpbmcgIT0gSFZNX0lPUkVRU1JWX0JVRklP UkVRX09GRikKKwogc3RhdGljIGludCBodm1faW9yZXFfc2VydmVyX2FkZF92Y3B1KHN0cnVjdCBo dm1faW9yZXFfc2VydmVyICpzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB2Y3B1ICp2KQogewpAQCAtMzcxLDcgKzM3NCw3IEBAIHN0YXRpYyBpbnQgaHZtX2lv cmVxX3NlcnZlcl9hZGRfdmNwdShzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywKIAogICAgIHN2 LT5pb3JlcV9ldnRjaG4gPSByYzsKIAotICAgIGlmICggdi0+dmNwdV9pZCA9PSAwICYmIHMtPmJ1 ZmlvcmVxLnZhICE9IE5VTEwgKQorICAgIGlmICggdi0+dmNwdV9pZCA9PSAwICYmIEhBTkRMRV9C VUZJT1JFUShzKSApCiAgICAgewogICAgICAgICBzdHJ1Y3QgZG9tYWluICpkID0gcy0+ZG9tYWlu OwogCkBAIC00MjIsNyArNDI1LDcgQEAgc3RhdGljIHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9yZW1v dmVfdmNwdShzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywKIAogICAgICAgICBsaXN0X2RlbCgm c3YtPmxpc3RfZW50cnkpOwogCi0gICAgICAgIGlmICggdi0+dmNwdV9pZCA9PSAwICYmIHMtPmJ1 ZmlvcmVxLnZhICE9IE5VTEwgKQorICAgICAgICBpZiAoIHYtPnZjcHVfaWQgPT0gMCAmJiBIQU5E TEVfQlVGSU9SRVEocykgKQogICAgICAgICAgICAgZnJlZV94ZW5fZXZlbnRfY2hhbm5lbCh2LT5k b21haW4sIHMtPmJ1ZmlvcmVxX2V2dGNobik7CiAKICAgICAgICAgZnJlZV94ZW5fZXZlbnRfY2hh bm5lbCh2LT5kb21haW4sIHN2LT5pb3JlcV9ldnRjaG4pOwpAQCAtNDQ5LDcgKzQ1Miw3IEBAIHN0 YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2ZXJfcmVtb3ZlX2FsbF92Y3B1cyhzdHJ1Y3QgaHZtX2lv cmVxX3NlcnZlciAqcykKIAogICAgICAgICBsaXN0X2RlbCgmc3YtPmxpc3RfZW50cnkpOwogCi0g ICAgICAgIGlmICggdi0+dmNwdV9pZCA9PSAwICYmIHMtPmJ1ZmlvcmVxLnZhICE9IE5VTEwgKQor ICAgICAgICBpZiAoIHYtPnZjcHVfaWQgPT0gMCAmJiBIQU5ETEVfQlVGSU9SRVEocykgKQogICAg ICAgICAgICAgZnJlZV94ZW5fZXZlbnRfY2hhbm5lbCh2LT5kb21haW4sIHMtPmJ1ZmlvcmVxX2V2 dGNobik7CiAKICAgICAgICAgZnJlZV94ZW5fZXZlbnRfY2hhbm5lbCh2LT5kb21haW4sIHN2LT5p b3JlcV9ldnRjaG4pOwpAQCAtNDYwLDE0ICs0NjMsMTMgQEAgc3RhdGljIHZvaWQgaHZtX2lvcmVx X3NlcnZlcl9yZW1vdmVfYWxsX3ZjcHVzKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQogICAg IHNwaW5fdW5sb2NrKCZzLT5sb2NrKTsKIH0KIAotc3RhdGljIGludCBodm1faW9yZXFfc2VydmVy X21hcF9wYWdlcyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYm9vbCBoYW5kbGVfYnVmaW9yZXEpCitzdGF0aWMgaW50IGh2 bV9pb3JlcV9zZXJ2ZXJfbWFwX3BhZ2VzKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQogewog ICAgIGludCByYzsKIAogICAgIHJjID0gaHZtX21hcF9pb3JlcV9nZm4ocywgZmFsc2UpOwogCi0g ICAgaWYgKCAhcmMgJiYgaGFuZGxlX2J1ZmlvcmVxICkKKyAgICBpZiAoICFyYyAmJiBIQU5ETEVf QlVGSU9SRVEocykgKQogICAgICAgICByYyA9IGh2bV9tYXBfaW9yZXFfZ2ZuKHMsIHRydWUpOwog CiAgICAgaWYgKCByYyApCkBAIC01OTcsMTMgKzU5OSw3IEBAIHN0YXRpYyBpbnQgaHZtX2lvcmVx X3NlcnZlcl9pbml0KHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLAogICAgIGlmICggcmMgKQog ICAgICAgICByZXR1cm4gcmM7CiAKLSAgICBpZiAoIGJ1ZmlvcmVxX2hhbmRsaW5nID09IEhWTV9J T1JFUVNSVl9CVUZJT1JFUV9BVE9NSUMgKQotICAgICAgICBzLT5idWZpb3JlcV9hdG9taWMgPSB0 cnVlOwotCi0gICAgcmMgPSBodm1faW9yZXFfc2VydmVyX21hcF9wYWdlcygKLSAgICAgICAgICAg ICBzLCBidWZpb3JlcV9oYW5kbGluZyAhPSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfT0ZGKTsKLSAg ICBpZiAoIHJjICkKLSAgICAgICAgZ290byBmYWlsX21hcDsKKyAgICBzLT5idWZpb3JlcV9oYW5k bGluZyA9IGJ1ZmlvcmVxX2hhbmRsaW5nOwogCiAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQog ICAgIHsKQEAgLTYxOCw5ICs2MTQsNiBAQCBzdGF0aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJfaW5p dChzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywKICAgICBodm1faW9yZXFfc2VydmVyX3JlbW92 ZV9hbGxfdmNwdXMocyk7CiAgICAgaHZtX2lvcmVxX3NlcnZlcl91bm1hcF9wYWdlcyhzKTsKIAot IGZhaWxfbWFwOgotICAgIGh2bV9pb3JlcV9zZXJ2ZXJfZnJlZV9yYW5nZXNldHMocyk7Ci0KICAg ICByZXR1cm4gcmM7CiB9CiAKQEAgLTc1NywxMiArNzUwLDIzIEBAIGludCBodm1fZ2V0X2lvcmVx X3NlcnZlcl9pbmZvKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQsCiAKICAgICBBU1NF UlQoIUlTX0RFRkFVTFQocykpOwogCi0gICAgKmlvcmVxX2dmbiA9IGdmbl94KHMtPmlvcmVxLmdm bik7CisgICAgaWYgKCBpb3JlcV9nZm4gfHwgYnVmaW9yZXFfZ2ZuICkKKyAgICB7CisgICAgICAg IHJjID0gaHZtX2lvcmVxX3NlcnZlcl9tYXBfcGFnZXMocyk7CisgICAgICAgIGlmICggcmMgKQor ICAgICAgICAgICAgZ290byBvdXQ7CisgICAgfQogCi0gICAgaWYgKCBzLT5idWZpb3JlcS52YSAh PSBOVUxMICkKKyAgICBpZiAoIGlvcmVxX2dmbiApCisgICAgICAgICppb3JlcV9nZm4gPSBnZm5f eChzLT5pb3JlcS5nZm4pOworCisgICAgaWYgKCBIQU5ETEVfQlVGSU9SRVEocykgKQogICAgIHsK LSAgICAgICAgKmJ1ZmlvcmVxX2dmbiA9IGdmbl94KHMtPmJ1ZmlvcmVxLmdmbik7Ci0gICAgICAg ICpidWZpb3JlcV9wb3J0ID0gcy0+YnVmaW9yZXFfZXZ0Y2huOworICAgICAgICBpZiAoIGJ1Zmlv cmVxX2dmbiApCisgICAgICAgICAgICAqYnVmaW9yZXFfZ2ZuID0gZ2ZuX3gocy0+YnVmaW9yZXEu Z2ZuKTsKKworICAgICAgICBpZiAoIGJ1ZmlvcmVxX3BvcnQgKQorICAgICAgICAgICAgKmJ1Zmlv cmVxX3BvcnQgPSBzLT5idWZpb3JlcV9ldnRjaG47CiAgICAgfQogCiAgICAgcmMgPSAwOwpAQCAt MTI2NCw3ICsxMjY4LDggQEAgc3RhdGljIGludCBodm1fc2VuZF9idWZmZXJlZF9pb3JlcShzdHJ1 Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgaW9yZXFfdCAqcCkKICAgICBwZy0+cHRycy53cml0ZV9w b2ludGVyICs9IHF3ID8gMiA6IDE7CiAKICAgICAvKiBDYW5vbmljYWxpemUgcmVhZC93cml0ZSBw b2ludGVycyB0byBwcmV2ZW50IHRoZWlyIG92ZXJmbG93LiAqLwotICAgIHdoaWxlICggcy0+YnVm aW9yZXFfYXRvbWljICYmIHF3KysgPCBJT1JFUV9CVUZGRVJfU0xPVF9OVU0gJiYKKyAgICB3aGls ZSAoIChzLT5idWZpb3JlcV9oYW5kbGluZyA9PSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfQVRPTUlD KSAmJgorICAgICAgICAgICAgcXcrKyA8IElPUkVRX0JVRkZFUl9TTE9UX05VTSAmJgogICAgICAg ICAgICAgcGctPnB0cnMucmVhZF9wb2ludGVyID49IElPUkVRX0JVRkZFUl9TTE9UX05VTSApCiAg ICAgewogICAgICAgICB1bmlvbiBidWZpb3JlcV9wb2ludGVycyBvbGQgPSBwZy0+cHRycywgbmV3 OwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmggYi94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9kb21haW4uaAppbmRleCAzYmQ5YzVkN2MwLi44Yjc5OGVlNGU5IDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9kb21haW4uaAorKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9kb21haW4uaApAQCAtNjksNyArNjksNyBAQCBzdHJ1Y3QgaHZtX2lv cmVxX3NlcnZlciB7CiAgICAgZXZ0Y2huX3BvcnRfdCAgICAgICAgICBidWZpb3JlcV9ldnRjaG47 CiAgICAgc3RydWN0IHJhbmdlc2V0ICAgICAgICAqcmFuZ2VbTlJfSU9fUkFOR0VfVFlQRVNdOwog ICAgIGJvb2wgICAgICAgICAgICAgICAgICAgZW5hYmxlZDsKLSAgICBib29sICAgICAgICAgICAg ICAgICAgIGJ1ZmlvcmVxX2F0b21pYzsKKyAgICB1aW50OF90ICAgICAgICAgICAgICAgIGJ1Zmlv cmVxX2hhbmRsaW5nOwogfTsKIAogLyoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9o dm0vZG1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAppbmRleCA2YmJhYjVm Y2EzLi45Njc3YmQ3NGU3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29w LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCkBAIC03OSwyOCArNzksMzQg QEAgc3RydWN0IHhlbl9kbV9vcF9jcmVhdGVfaW9yZXFfc2VydmVyIHsKICAqIFhFTl9ETU9QX2dl dF9pb3JlcV9zZXJ2ZXJfaW5mbzogR2V0IGFsbCB0aGUgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IHRv CiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VzcyBJT1JFUSBTZXJ2ZXIg PGlkPi4KICAqCi0gKiBUaGUgZW11bGF0b3IgbmVlZHMgdG8gbWFwIHRoZSBzeW5jaHJvbm91cyBp b3JlcSBzdHJ1Y3R1cmVzIGFuZCBidWZmZXJlZAotICogaW9yZXEgcmluZyAoaWYgaXQgZXhpc3Rz KSB0aGF0IFhlbiB1c2VzIHRvIHJlcXVlc3QgZW11bGF0aW9uLiBUaGVzZSBhcmUKLSAqIGhvc3Rl ZCBpbiB0aGUgdGFyZ2V0IGRvbWFpbidzIGdtZm5zIDxpb3JlcV9nZm4+IGFuZCA8YnVmaW9yZXFf Z2ZuPgotICogcmVzcGVjdGl2ZWx5LiBJbiBhZGRpdGlvbiwgaWYgdGhlIElPUkVRIFNlcnZlciBp cyBoYW5kbGluZyBidWZmZXJlZAotICogZW11bGF0aW9uIHJlcXVlc3RzLCB0aGUgZW11bGF0b3Ig bmVlZHMgdG8gYmluZCB0byBldmVudCBjaGFubmVsCi0gKiA8YnVmaW9yZXFfcG9ydD4gdG8gbGlz dGVuIGZvciB0aGVtLiAoVGhlIGV2ZW50IGNoYW5uZWxzIHVzZWQgZm9yCi0gKiBzeW5jaHJvbm91 cyBlbXVsYXRpb24gcmVxdWVzdHMgYXJlIHNwZWNpZmllZCBpbiB0aGUgcGVyLUNQVSBpb3JlcQot ICogc3RydWN0dXJlcyBpbiA8aW9yZXFfZ2ZuPikuCi0gKiBJZiB0aGUgSU9SRVEgU2VydmVyIGlz IG5vdCBoYW5kbGluZyBidWZmZXJlZCBlbXVsYXRpb24gcmVxdWVzdHMgdGhlbiB0aGUKLSAqIHZh bHVlcyBoYW5kZWQgYmFjayBpbiA8YnVmaW9yZXFfZ2ZuPiBhbmQgPGJ1ZmlvcmVxX3BvcnQ+IHdp bGwgYm90aCBiZSAwLgorICogSWYgdGhlIElPUkVRIFNlcnZlciBpcyBoYW5kbGluZyBidWZmZXJl ZCBlbXVsYXRpb24gcmVxdWVzdHMsIHRoZQorICogZW11bGF0b3IgbmVlZHMgdG8gYmluZCB0byBl dmVudCBjaGFubmVsIDxidWZpb3JlcV9wb3J0PiB0byBsaXN0ZW4gZm9yCisgKiB0aGVtLiAoVGhl IGV2ZW50IGNoYW5uZWxzIHVzZWQgZm9yIHN5bmNocm9ub3VzIGVtdWxhdGlvbiByZXF1ZXN0cyBh cmUKKyAqIHNwZWNpZmllZCBpbiB0aGUgcGVyLUNQVSBpb3JlcSBzdHJ1Y3R1cmVzKS4KKyAqIElu IGFkZGl0aW9uLCBpZiB0aGUgWEVOTUVNX2FjcXVpcmVfcmVzb3VyY2UgbWVtb3J5IG9wIGNhbm5v dCBiZSB1c2VkLAorICogdGhlIGVtdWxhdG9yIHdpbGwgbmVlZCB0byBtYXAgdGhlIHN5bmNocm9u b3VzIGlvcmVxIHN0cnVjdHVyZXMgYW5kCisgKiBidWZmZXJlZCBpb3JlcSByaW5nIChpZiBpdCBl eGlzdHMpIGZyb20gZ3Vlc3QgbWVtb3J5LiBJZiA8ZmxhZ3M+IGRvZXMKKyAqIG5vdCBjb250YWlu IFhFTl9ETU9QX25vX2dmbnMgdGhlbiB0aGVzZSBwYWdlcyB3aWxsIGJlIG1hZGUgYXZhaWxhYmxl IGFuZAorICogdGhlIGZyYW1lIG51bWJlcnMgcGFzc2VkIGJhY2sgaW4gZ2ZucyA8aW9yZXFfZ2Zu PiBhbmQgPGJ1ZmlvcmVxX2dmbj4KKyAqIHJlc3BlY3RpdmVseS4gKElmIHRoZSBJT1JFUSBTZXJ2 ZXIgaXMgbm90IGhhbmRsaW5nIGJ1ZmZlcmVkIGVtdWxhdGlvbgorICogb25seSA8aW9yZXFfZ2Zu PiB3aWxsIGJlIHZhbGlkKS4KICAqLwogI2RlZmluZSBYRU5fRE1PUF9nZXRfaW9yZXFfc2VydmVy X2luZm8gMgogCiBzdHJ1Y3QgeGVuX2RtX29wX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyB7CiAgICAg LyogSU4gLSBzZXJ2ZXIgaWQgKi8KICAgICBpb3NlcnZpZF90IGlkOwotICAgIHVpbnQxNl90IHBh ZDsKKyAgICAvKiBJTiAtIGZsYWdzICovCisgICAgdWludDE2X3QgZmxhZ3M7CisKKyNkZWZpbmUg X1hFTl9ETU9QX25vX2dmbnMgMAorI2RlZmluZSBYRU5fRE1PUF9ub19nZm5zICgxdSA8PCBfWEVO X0RNT1Bfbm9fZ2ZucykKKwogICAgIC8qIE9VVCAtIGJ1ZmZlcmVkIGlvcmVxIHBvcnQgKi8KICAg ICBldnRjaG5fcG9ydF90IGJ1ZmlvcmVxX3BvcnQ7Ci0gICAgLyogT1VUIC0gc3luYyBpb3JlcSBn Zm4gKi8KKyAgICAvKiBPVVQgLSBzeW5jIGlvcmVxIGdmbiAoc2VlIGJsb2NrIGNvbW1lbnQgYWJv dmUpICovCiAgICAgdWludDY0X2FsaWduZWRfdCBpb3JlcV9nZm47Ci0gICAgLyogT1VUIC0gYnVm ZmVyZWQgaW9yZXEgZ2ZuICovCisgICAgLyogT1VUIC0gYnVmZmVyZWQgaW9yZXEgZ2ZuIChzZWUg YmxvY2sgY29tbWVudCBhYm92ZSkqLwogICAgIHVpbnQ2NF9hbGlnbmVkX3QgYnVmaW9yZXFfZ2Zu OwogfTsKIAotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==