From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v8 05/25] arm/x86: Use struct virtual_region to do bug, symbol, and (x86) exception tables lookup. Date: Wed, 13 Apr 2016 17:09:36 -0400 Message-ID: <1460581796-30071-6-git-send-email-konrad.wilk@oracle.com> References: <1460581796-30071-1-git-send-email-konrad.wilk@oracle.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 1aqS3K-00069I-CT for xen-devel@lists.xenproject.org; Wed, 13 Apr 2016 21:10:22 +0000 In-Reply-To: <1460581796-30071-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: konrad@kernel.org, xen-devel@lists.xenproject.org, sasha.levin@oracle.com, andrew.cooper3@citrix.com, ross.lagerwall@citrix.com, mpohlack@amazon.de Cc: Julien Grall , Stefano Stabellini , Keir Fraser , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org RHVyaW5nIGV4ZWN1dGlvbiBvZiB0aGUgaHlwZXJ2aXNvciB3ZSBoYXZlIHR3byByZWdpb25zIG9m CmV4ZWN1dGFibGUgY29kZSAtIHN0ZXh0IC0+IF9ldGV4dCwgYW5kIF9zaW5pdHRleHQgLT4gX2Vp bml0ZXh0LgoKVGhlIGxhdGVyIGlzIG5vdCBuZWVkZWQgYWZ0ZXIgYm9vdHVwLgoKV2UgYWxzbyBo YXZlIHZhcmlvdXMgYnVpbHQtaW4gbWFjcm9zIGFuZCBmdW5jdGlvbnMgdG8gc2VhcmNoCmluIGJl dHdlZW4gdGhvc2UgdHdvIHN3YXRocyBkZXBlbmRpbmcgb24gdGhlIHN0YXRlIG9mIHRoZSBzeXN0 ZW0uCgpUaGF0IGlzIGVpdGhlciBmb3IgYnVnX2ZyYW1lcywgZXhjZXB0aW9ucyAoeDg2KSBvciBz eW1ib2wKbmFtZXMgZm9yIHRoZSBpbnN0cnVjdGlvbi4KCldpdGggeFNwbGljZSBpbiB0aGUgcGlj dHVyZSAtIHdlIG5lZWQgYSBtZWNoYW5pc20gZm9yIG5ldyBwYXlsb2Fkcwp0byBzZWFyY2hlZCBh cyB3ZWxsIGZvciBhbGwgb2YgdGhpcy4KCk9yaWdpbmFsbHkgd2UgaGFkIGV4dHJhICdpZiAoeHNw bGljZSkuLi4nIGJ1dCB0aGF0IGdldHMKYSBiaXQgdGlyaW5nIGFuZCBkb2VzIG5vdCBob29rIHVw IG5pY2VseS4KClRoaXMgJ3N0cnVjdCB2aXJ0dWFsX3JlZ2lvbicgYW5kIHZpcnR1YWxfcmVnaW9u X2xpc3QgcHJvdmlkZSBhCm1lY2hhbmlzbSB0byBzZWFyY2ggZm9yIHRoZSBidWdfZnJhbWVzLCBl eGNlcHRpb24gdGFibGUsCmFuZCBzeW1ib2wgbmFtZXMgZW50cmllcyB3aXRob3V0IGhhdmluZyB2 YXJpb3VzIGNhbGxzIGluCm90aGVyIHN1Yi1jb21wb25lbnRzIGluIHRoZSBzeXN0ZW0uCgpDb2Rl IHdoaWNoIHdpc2hlcyB0byBwYXJ0aWNpcGF0ZSBpbiBidWdfZnJhbWVzIGFuZCBleGNlcHRpb24g dGFibGUKZW50cmllcyBzZWFyY2ggaGFzIHRvIG9ubHkgdXNlIHR3byBwdWJsaWMgQVBJczoKIC0g cmVnaXN0ZXJfdmlydHVhbF9yZWdpb24KIC0gdW5yZWdpc3Rlcl92aXJ0dWFsX3JlZ2lvbgoKdG8g bGV0IHRoZSBjb3JlIGNvZGUga25vdy4KCklmIHRoZSAtPmxvb2t1cF9zeW1ib2wgaXMgbm90IHRo ZW4gdGhlIGRlZmF1bHQgaW50ZXJuYWwgc3ltYm9sIGxvb2t1cAptZWNoYW5pc20gaXMgdXNlZC4K ClN1Z2dlc3RlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K U2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUu Y29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4KQWNrZWQtYnk6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+IFtBUk1dCgot LS0KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IEp1 bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNjOiBLZWlyIEZyYXNlciA8a2VpckB4 ZW4ub3JnPgpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENv b3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCnY0OiBOZXcgcGF0Y2guCnY1OgogLSBS ZW5hbWUgdG8gdmlydHVhbF9yZWdpb24uCiAtIERpdGNoIHRoZSAnc2tpcCcgZnVuY3Rpb24uCiAt IFJlbW92ZSB0aGUgX3N0ZXh0LgogLSBVc2UgUkNVIGxpc3RzLgogLSBBZGQgYSBzZWFyY2ggZnVu Y3Rpb24uCiAtIFJlbW92ZSBleHRlcm4sIGFkZCByY3VfcmVhZF9sb2NrLiByZW1vdmUgX18gZnJv bSBuYW1lLgp2Njogcy9zZWFyY2hfZm9yX3RleHQvZmluZF90ZXh0X3JlZ2lvbi8uCiAtIERyb3Ag dGhlIHVhY2Nlc3MuaCBuZWVkLiBNYWtlIHNldHVwX3ZpcnR1YWxfcmVnaW9ucyBhY2NlcHQgdHdv IHBhcmFtZXRlcnMuCiAgIFJlbW92ZSAjaWZkZWYuCiAtIENvbnN0aWZ5IHN0cnVjdCBleGNlcHRp b25fdGFibGVfZW50cnkuCiAtIFJlbW92ZSBzb21lIG5ld2xpbmVzLgogLSBDaGFuZ2UgaGVhZGVy IGZpbGUgZ3VhcmQgI2RlZmluZSB0byBwcm9wZXIgbmFtZS4KLS0tCi0tLQogeGVuL2FyY2gvYXJt L3NldHVwLmMgICAgICAgICAgICAgfCAgIDQgKysKIHhlbi9hcmNoL2FybS90cmFwcy5jICAgICAg ICAgICAgIHwgIDM5ICsrKysrKystLS0tCiB4ZW4vYXJjaC94ODYvZXh0YWJsZS5jICAgICAgICAg ICB8ICAxMiArKystCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAgICAgICAgICB8ICAgNiArKwog eGVuL2FyY2gveDg2L3RyYXBzLmMgICAgICAgICAgICAgfCAgNDAgKysrKysrLS0tLS0KIHhlbi9j b21tb24vTWFrZWZpbGUgICAgICAgICAgICAgIHwgICAxICsKIHhlbi9jb21tb24vc3ltYm9scy5j ICAgICAgICAgICAgIHwgIDExICsrLQogeGVuL2NvbW1vbi92aXJ0dWFsX3JlZ2lvbi5jICAgICAg fCAxNDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVk ZS94ZW4vc3ltYm9scy5oICAgICAgICB8ICAgOSArKysKIHhlbi9pbmNsdWRlL3hlbi92aXJ0dWFs X3JlZ2lvbi5oIHwgIDQ3ICsrKysrKysrKysrKysKIDEwIGZpbGVzIGNoYW5nZWQsIDI4MCBpbnNl cnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vY29tbW9u L3ZpcnR1YWxfcmVnaW9uLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS94ZW4vdmly dHVhbF9yZWdpb24uaAoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9zZXR1cC5jIGIveGVuL2Fy Y2gvYXJtL3NldHVwLmMKaW5kZXggNmQyMDVhOS4uMDlmZjFlYSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gvYXJtL3NldHVwLmMKKysrIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKQEAgLTM0LDYgKzM0LDcg QEAKICNpbmNsdWRlIDx4ZW4va2V5aGFuZGxlci5oPgogI2luY2x1ZGUgPHhlbi9jcHUuaD4KICNp bmNsdWRlIDx4ZW4vcGZuLmg+CisjaW5jbHVkZSA8eGVuL3ZpcnR1YWxfcmVnaW9uLmg+CiAjaW5j bHVkZSA8eGVuL3ZtYXAuaD4KICNpbmNsdWRlIDx4ZW4vbGliZmR0L2xpYmZkdC5oPgogI2luY2x1 ZGUgPHhlbi9hY3BpLmg+CkBAIC04NjAsNiArODYxLDkgQEAgdm9pZCBfX2luaXQgc3RhcnRfeGVu KHVuc2lnbmVkIGxvbmcgYm9vdF9waHlzX29mZnNldCwKIAogICAgIHN5c3RlbV9zdGF0ZSA9IFNZ U19TVEFURV9hY3RpdmU7CiAKKyAgICAvKiBNdXN0IGJlIGRvbmUgcGFzdCBzZXR0aW5nIHN5c3Rl bV9zdGF0ZS4gKi8KKyAgICB1bnJlZ2lzdGVyX2luaXRfdmlydHVhbF9yZWdpb24oKTsKKwogICAg IGRvbWFpbl91bnBhdXNlX2J5X3N5c3RlbWNvbnRyb2xsZXIoZG9tMCk7CiAKICAgICAvKiBTd2l0 Y2ggb24gdG8gdGhlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBzdGFjayBmb3IgdGhlIGlkbGUgdmNw dQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RyYXBzLmMgYi94ZW4vYXJjaC9hcm0vdHJhcHMu YwppbmRleCAxNTE2YWJkLi40YzQyM2RlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vdHJhcHMu YworKysgYi94ZW4vYXJjaC9hcm0vdHJhcHMuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg PHhlbi9zb2Z0aXJxLmg+CiAjaW5jbHVkZSA8eGVuL2RvbWFpbl9wYWdlLmg+CiAjaW5jbHVkZSA8 eGVuL3BlcmZjLmg+CisjaW5jbHVkZSA8eGVuL3ZpcnR1YWxfcmVnaW9uLmg+CiAjaW5jbHVkZSA8 cHVibGljL3NjaGVkLmg+CiAjaW5jbHVkZSA8cHVibGljL3hlbi5oPgogI2luY2x1ZGUgPGFzbS9k ZWJ1Z2dlci5oPgpAQCAtMTAxLDYgKzEwMiw4IEBAIGludGVnZXJfcGFyYW0oImRlYnVnX3N0YWNr X2xpbmVzIiwgZGVidWdfc3RhY2tfbGluZXMpOwogCiB2b2lkIGluaXRfdHJhcHModm9pZCkKIHsK KyAgICBzZXR1cF92aXJ0dWFsX3JlZ2lvbnMoTlVMTCwgTlVMTCk7CisKICAgICAvKiBTZXR1cCBI eXAgdmVjdG9yIGJhc2UgKi8KICAgICBXUklURV9TWVNSRUcoKHZhZGRyX3QpaHlwX3RyYXBzX3Zl Y3RvciwgVkJBUl9FTDIpOwogCkBAIC0xMTE2LDI3ICsxMTE5LDMzIEBAIHZvaWQgZG9fdW5leHBl Y3RlZF90cmFwKGNvbnN0IGNoYXIgKm1zZywgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAK IGludCBkb19idWdfZnJhbWUoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHZhZGRyX3QgcGMp CiB7Ci0gICAgY29uc3Qgc3RydWN0IGJ1Z19mcmFtZSAqYnVnOworICAgIGNvbnN0IHN0cnVjdCBi dWdfZnJhbWUgKmJ1ZyA9IE5VTEw7CiAgICAgY29uc3QgY2hhciAqcHJlZml4ID0gIiIsICpmaWxl bmFtZSwgKnByZWRpY2F0ZTsKICAgICB1bnNpZ25lZCBsb25nIGZpeHVwOwotICAgIGludCBpZCwg bGluZW5vOwotICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYnVnX2ZyYW1lICpjb25zdCBzdG9wX2Zy YW1lc1tdID0gewotICAgICAgICBfX3N0b3BfYnVnX2ZyYW1lc18wLAotICAgICAgICBfX3N0b3Bf YnVnX2ZyYW1lc18xLAotICAgICAgICBfX3N0b3BfYnVnX2ZyYW1lc18yLAotICAgICAgICBOVUxM Ci0gICAgfTsKKyAgICBpbnQgaWQgPSAtMSwgbGluZW5vOworICAgIGNvbnN0IHN0cnVjdCB2aXJ0 dWFsX3JlZ2lvbiAqcmVnaW9uOwogCi0gICAgZm9yICggYnVnID0gX19zdGFydF9idWdfZnJhbWVz LCBpZCA9IDA7IHN0b3BfZnJhbWVzW2lkXTsgKytidWcgKQorICAgIHJlZ2lvbiA9IGZpbmRfdGV4 dF9yZWdpb24ocGMpOworICAgIGlmICggcmVnaW9uICkKICAgICB7Ci0gICAgICAgIHdoaWxlICgg dW5saWtlbHkoYnVnID09IHN0b3BfZnJhbWVzW2lkXSkgKQotICAgICAgICAgICAgKytpZDsKKyAg ICAgICAgZm9yICggaWQgPSAwOyBpZCA8IEJVR0ZSQU1FX05SOyBpZCsrICkKKyAgICAgICAgewor ICAgICAgICAgICAgY29uc3Qgc3RydWN0IGJ1Z19mcmFtZSAqYjsKKyAgICAgICAgICAgIHVuc2ln bmVkIGludCBpOwogCi0gICAgICAgIGlmICggKCh2YWRkcl90KWJ1Z19sb2MoYnVnKSkgPT0gcGMg KQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBmb3IgKCBpID0gMCwgYiA9IHJlZ2lv bi0+ZnJhbWVbaWRdLmJ1Z3M7CisgICAgICAgICAgICAgICAgICBpIDwgcmVnaW9uLT5mcmFtZVtp ZF0ubl9idWdzOyBiKyssIGkrKyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYg KCAoKHZhZGRyX3QpYnVnX2xvYyhiKSkgPT0gcGMgKQorICAgICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgICAgYnVnID0gYjsKKyAgICAgICAgICAgICAgICAgICAgZ290byBmb3VuZDsK KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9Ci0KLSAg ICBpZiAoICFzdG9wX2ZyYW1lc1tpZF0gKQorIGZvdW5kOgorICAgIGlmICggIWJ1ZyApCiAgICAg ICAgIHJldHVybiAtRU5PRU5UOwogCiAgICAgLyogV0FSTiwgQlVHIG9yIEFTU0VSVDogZGVjb2Rl IHRoZSBmaWxlbmFtZSBwb2ludGVyIGFuZCBsaW5lIG51bWJlci4gKi8KZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9leHRhYmxlLmMgYi94ZW4vYXJjaC94ODYvZXh0YWJsZS5jCmluZGV4IDg5YjVi Y2IuLjJhMDZjY2EgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9leHRhYmxlLmMKKysrIGIveGVu L2FyY2gveDg2L2V4dGFibGUuYwpAQCAtMSwxMCArMSwxMiBAQAogCi0jaW5jbHVkZSA8eGVuL2Nv bmZpZy5oPgogI2luY2x1ZGUgPHhlbi9pbml0Lmg+CisjaW5jbHVkZSA8eGVuL2xpc3QuaD4KICNp bmNsdWRlIDx4ZW4vcGVyZmMuaD4KKyNpbmNsdWRlIDx4ZW4vcmN1cGRhdGUuaD4KICNpbmNsdWRl IDx4ZW4vc29ydC5oPgogI2luY2x1ZGUgPHhlbi9zcGlubG9jay5oPgogI2luY2x1ZGUgPGFzbS91 YWNjZXNzLmg+CisjaW5jbHVkZSA8eGVuL3ZpcnR1YWxfcmVnaW9uLmg+CiAKICNkZWZpbmUgRVhf RklFTEQocHRyLCBmaWVsZCkgKCh1bnNpZ25lZCBsb25nKSYocHRyKS0+ZmllbGQgKyAocHRyKS0+ ZmllbGQpCiAKQEAgLTgwLDggKzgyLDEyIEBAIHNlYXJjaF9vbmVfdGFibGUoY29uc3Qgc3RydWN0 IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqZmlyc3QsCiB1bnNpZ25lZCBsb25nCiBzZWFyY2hfZXhj ZXB0aW9uX3RhYmxlKHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKLSAgICByZXR1cm4gc2VhcmNoX29u ZV90YWJsZSgKLSAgICAgICAgX19zdGFydF9fX2V4X3RhYmxlLCBfX3N0b3BfX19leF90YWJsZS0x LCBhZGRyKTsKKyAgICBjb25zdCBzdHJ1Y3QgdmlydHVhbF9yZWdpb24gKnJlZ2lvbiA9IGZpbmRf dGV4dF9yZWdpb24oYWRkcik7CisKKyAgICBpZiAoIHJlZ2lvbiAmJiByZWdpb24tPmV4ICkKKyAg ICAgICAgcmV0dXJuIHNlYXJjaF9vbmVfdGFibGUocmVnaW9uLT5leCwgcmVnaW9uLT5leF9lbmQg LSAxLCBhZGRyKTsKKworICAgIHJldHVybiAwOwogfQogCiB1bnNpZ25lZCBsb25nCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvc2V0dXAuYyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCmluZGV4IDM2 OTZjMzEuLjIyZGMxNDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCisrKyBiL3hl bi9hcmNoL3g4Ni9zZXR1cC5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8eGVuL3Bmbi5o PgogI2luY2x1ZGUgPHhlbi9ub2RlbWFzay5oPgogI2luY2x1ZGUgPHhlbi90bWVtX3hlbi5oPgor I2luY2x1ZGUgPHhlbi92aXJ0dWFsX3JlZ2lvbi5oPgogI2luY2x1ZGUgPHhlbi93YXRjaGRvZy5o PgogI2luY2x1ZGUgPHB1YmxpYy92ZXJzaW9uLmg+CiAjaW5jbHVkZSA8Y29tcGF0L3BsYXRmb3Jt Lmg+CkBAIC01MTUsNiArNTE2LDkgQEAgc3RhdGljIHZvaWQgbm9pbmxpbmUgaW5pdF9kb25lKHZv aWQpCiAKICAgICBzeXN0ZW1fc3RhdGUgPSBTWVNfU1RBVEVfYWN0aXZlOwogCisgICAgLyogTVVT VCBiZSBkb25lIHByaW9yIHRvIHJlbW92aW5nIC5pbml0IGRhdGEuICovCisgICAgdW5yZWdpc3Rl cl9pbml0X3ZpcnR1YWxfcmVnaW9uKCk7CisKICAgICBkb21haW5fdW5wYXVzZV9ieV9zeXN0ZW1j b250cm9sbGVyKGhhcmR3YXJlX2RvbWFpbik7CiAKICAgICAvKiBaZXJvIHRoZSAuaW5pdCBjb2Rl IGFuZCBkYXRhLiAqLwpAQCAtNjE3LDYgKzYyMSw4IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9f c3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgc21wX3ByZXBhcmVfYm9vdF9jcHUo KTsKICAgICBzb3J0X2V4Y2VwdGlvbl90YWJsZXMoKTsKIAorICAgIHNldHVwX3ZpcnR1YWxfcmVn aW9ucyhfX3N0YXJ0X19fZXhfdGFibGUsIF9fc3RvcF9fX2V4X3RhYmxlKTsKKwogICAgIC8qIEZ1 bGwgZXhjZXB0aW9uIHN1cHBvcnQgZnJvbSBoZXJlIG9uIGluLiAqLwogCiAgICAgbG9hZGVyID0g KG1iaS0+ZmxhZ3MgJiBNQklfTE9BREVSTkFNRSkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90 cmFwcy5jIGIveGVuL2FyY2gveDg2L3RyYXBzLmMKaW5kZXggYzZjOTIyNy4uZjczZjdmMyAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L3RyYXBzLmMKKysrIGIveGVuL2FyY2gveDg2L3RyYXBzLmMK QEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDx4ZW4va2V4ZWMuaD4KICNpbmNsdWRlIDx4ZW4v dHJhY2UuaD4KICNpbmNsdWRlIDx4ZW4vcGFnaW5nLmg+CisjaW5jbHVkZSA8eGVuL3ZpcnR1YWxf cmVnaW9uLmg+CiAjaW5jbHVkZSA8eGVuL3dhdGNoZG9nLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3Rl bS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgpAQCAtMTIyOSwxOCArMTIzMCwxMiBAQCBzdGF0aWMg aW50IGVtdWxhdGVfZm9yY2VkX2ludmFsaWRfb3Aoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Mp CiAKIHZvaWQgZG9faW52YWxpZF9vcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsKLSAg ICBjb25zdCBzdHJ1Y3QgYnVnX2ZyYW1lICpidWc7CisgICAgY29uc3Qgc3RydWN0IGJ1Z19mcmFt ZSAqYnVnID0gTlVMTDsKICAgICB1OCBidWdfaW5zblsyXTsKICAgICBjb25zdCBjaGFyICpwcmVm aXggPSAiIiwgKmZpbGVuYW1lLCAqcHJlZGljYXRlLCAqZWlwID0gKGNoYXIgKilyZWdzLT5laXA7 CiAgICAgdW5zaWduZWQgbG9uZyBmaXh1cDsKLSAgICBpbnQgaWQsIGxpbmVubzsKLSAgICBzdGF0 aWMgY29uc3Qgc3RydWN0IGJ1Z19mcmFtZSAqY29uc3Qgc3RvcF9mcmFtZXNbXSA9IHsKLSAgICAg ICAgX19zdG9wX2J1Z19mcmFtZXNfMCwKLSAgICAgICAgX19zdG9wX2J1Z19mcmFtZXNfMSwKLSAg ICAgICAgX19zdG9wX2J1Z19mcmFtZXNfMiwKLSAgICAgICAgX19zdG9wX2J1Z19mcmFtZXNfMywK LSAgICAgICAgTlVMTAotICAgIH07CisgICAgaW50IGlkID0gLTEsIGxpbmVubzsKKyAgICBjb25z dCBzdHJ1Y3QgdmlydHVhbF9yZWdpb24gKnJlZ2lvbjsKIAogICAgIERFQlVHR0VSX3RyYXBfZW50 cnkoVFJBUF9pbnZhbGlkX29wLCByZWdzKTsKIApAQCAtMTI1NywxNiArMTI1MiwyOSBAQCB2b2lk IGRvX2ludmFsaWRfb3Aoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgICBtZW1j bXAoYnVnX2luc24sICJceGZceGIiLCBzaXplb2YoYnVnX2luc24pKSApCiAgICAgICAgIGdvdG8g ZGllOwogCi0gICAgZm9yICggYnVnID0gX19zdGFydF9idWdfZnJhbWVzLCBpZCA9IDA7IHN0b3Bf ZnJhbWVzW2lkXTsgKytidWcgKQorICAgIHJlZ2lvbiA9IGZpbmRfdGV4dF9yZWdpb24ocmVncy0+ ZWlwKTsKKyAgICBpZiAoIHJlZ2lvbiApCiAgICAgewotICAgICAgICB3aGlsZSAoIHVubGlrZWx5 KGJ1ZyA9PSBzdG9wX2ZyYW1lc1tpZF0pICkKLSAgICAgICAgICAgICsraWQ7Ci0gICAgICAgIGlm ICggYnVnX2xvYyhidWcpID09IGVpcCApCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgZm9y ICggaWQgPSAwOyBpZCA8IEJVR0ZSQU1FX05SOyBpZCsrICkKKyAgICAgICAgeworICAgICAgICAg ICAgY29uc3Qgc3RydWN0IGJ1Z19mcmFtZSAqYjsKKyAgICAgICAgICAgIHVuc2lnbmVkIGludCBp OworCisgICAgICAgICAgICBmb3IgKCBpID0gMCwgYiA9IHJlZ2lvbi0+ZnJhbWVbaWRdLmJ1Z3M7 CisgICAgICAgICAgICAgICAgICBpIDwgcmVnaW9uLT5mcmFtZVtpZF0ubl9idWdzOyBiKyssIGkr KyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKCBidWdfbG9jKGIpID09IGVp cCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBidWcgPSBiOworICAg ICAgICAgICAgICAgICAgICBnb3RvIGZvdW5kOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIH0KKyAgICAgICAgfQogICAgIH0KLSAgICBpZiAoICFzdG9wX2ZyYW1lc1tpZF0gKQotICAg ICAgICBnb3RvIGRpZTsKIAorIGZvdW5kOgorICAgIGlmICggIWJ1ZyApCisgICAgICAgIGdvdG8g ZGllOwogICAgIGVpcCArPSBzaXplb2YoYnVnX2luc24pOwogICAgIGlmICggaWQgPT0gQlVHRlJB TUVfcnVuX2ZuICkKICAgICB7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL01ha2VmaWxlIGIveGVu L2NvbW1vbi9NYWtlZmlsZQppbmRleCA5MTBhYzY5Li4xZTRiYzcwIDEwMDY0NAotLS0gYS94ZW4v Y29tbW9uL01ha2VmaWxlCisrKyBiL3hlbi9jb21tb24vTWFrZWZpbGUKQEAgLTUxLDYgKzUxLDcg QEAgb2JqLXkgKz0gdGltZS5vCiBvYmoteSArPSB0aW1lci5vCiBvYmoteSArPSB0cmFjZS5vCiBv YmoteSArPSB2ZXJzaW9uLm8KK29iai15ICs9IHZpcnR1YWxfcmVnaW9uLm8KIG9iai15ICs9IHZt X2V2ZW50Lm8KIG9iai15ICs9IHZtYXAubwogb2JqLXkgKz0gdnNwcmludGYubwpkaWZmIC0tZ2l0 IGEveGVuL2NvbW1vbi9zeW1ib2xzLmMgYi94ZW4vY29tbW9uL3N5bWJvbHMuYwppbmRleCBhNTlj NTlkLi5iMThkZGNkMSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zeW1ib2xzLmMKKysrIGIveGVu L2NvbW1vbi9zeW1ib2xzLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDx4ZW4vbGliLmg+ CiAjaW5jbHVkZSA8eGVuL3N0cmluZy5oPgogI2luY2x1ZGUgPHhlbi9zcGlubG9jay5oPgorI2lu Y2x1ZGUgPHhlbi92aXJ0dWFsX3JlZ2lvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9wbGF0Zm9ybS5o PgogI2luY2x1ZGUgPHhlbi9ndWVzdF9hY2Nlc3MuaD4KIApAQCAtOTcsOCArOTgsNyBAQCBzdGF0 aWMgdW5zaWduZWQgaW50IGdldF9zeW1ib2xfb2Zmc2V0KHVuc2lnbmVkIGxvbmcgcG9zKQogCiBi b29sX3QgaXNfYWN0aXZlX2tlcm5lbF90ZXh0KHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKLSAgICBy ZXR1cm4gKGlzX2tlcm5lbF90ZXh0KGFkZHIpIHx8Ci0gICAgICAgICAgICAoc3lzdGVtX3N0YXRl IDwgU1lTX1NUQVRFX2FjdGl2ZSAmJiBpc19rZXJuZWxfaW5pdHRleHQoYWRkcikpKTsKKyAgICBy ZXR1cm4gISFmaW5kX3RleHRfcmVnaW9uKGFkZHIpOwogfQogCiBjb25zdCBjaGFyICpzeW1ib2xz X2xvb2t1cCh1bnNpZ25lZCBsb25nIGFkZHIsCkBAIC0xMDgsMTMgKzEwOCwxOCBAQCBjb25zdCBj aGFyICpzeW1ib2xzX2xvb2t1cCh1bnNpZ25lZCBsb25nIGFkZHIsCiB7CiAgICAgdW5zaWduZWQg bG9uZyBpLCBsb3csIGhpZ2gsIG1pZDsKICAgICB1bnNpZ25lZCBsb25nIHN5bWJvbF9lbmQgPSAw OworICAgIGNvbnN0IHN0cnVjdCB2aXJ0dWFsX3JlZ2lvbiAqcmVnaW9uOwogCiAgICAgbmFtZWJ1 ZltLU1lNX05BTUVfTEVOXSA9IDA7CiAgICAgbmFtZWJ1ZlswXSA9IDA7CiAKLSAgICBpZiAoIWlz X2FjdGl2ZV9rZXJuZWxfdGV4dChhZGRyKSkKKyAgICByZWdpb24gPSBmaW5kX3RleHRfcmVnaW9u KGFkZHIpOworICAgIGlmICghcmVnaW9uKQogICAgICAgICByZXR1cm4gTlVMTDsKIAorICAgIGlm IChyZWdpb24tPnN5bWJvbHNfbG9va3VwKQorICAgICAgICByZXR1cm4gcmVnaW9uLT5zeW1ib2xz X2xvb2t1cChhZGRyLCBzeW1ib2xzaXplLCBvZmZzZXQsIG5hbWVidWYpOworCiAgICAgICAgIC8q IGRvIGEgYmluYXJ5IHNlYXJjaCBvbiB0aGUgc29ydGVkIHN5bWJvbHNfYWRkcmVzc2VzIGFycmF5 ICovCiAgICAgbG93ID0gMDsKICAgICBoaWdoID0gc3ltYm9sc19udW1fc3ltczsKZGlmZiAtLWdp dCBhL3hlbi9jb21tb24vdmlydHVhbF9yZWdpb24uYyBiL3hlbi9jb21tb24vdmlydHVhbF9yZWdp b24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjQ4N2U2Ci0tLSAvZGV2 L251bGwKKysrIGIveGVuL2NvbW1vbi92aXJ0dWFsX3JlZ2lvbi5jCkBAIC0wLDAgKzEsMTQ4IEBA CisvKgorICogQ29weXJpZ2h0IChjKSAyMDE2IE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMu IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICovCisKKyNpbmNsdWRlIDx4ZW4vaW5pdC5oPgor I2luY2x1ZGUgPHhlbi9rZXJuZWwuaD4KKyNpbmNsdWRlIDx4ZW4vcmN1cGRhdGUuaD4KKyNpbmNs dWRlIDx4ZW4vc3BpbmxvY2suaD4KKyNpbmNsdWRlIDx4ZW4vdmlydHVhbF9yZWdpb24uaD4KKwor c3RhdGljIHN0cnVjdCB2aXJ0dWFsX3JlZ2lvbiBjb3JlID0geworICAgIC5saXN0ID0gTElTVF9I RUFEX0lOSVQoY29yZS5saXN0KSwKKyAgICAuc3RhcnQgPSAodW5zaWduZWQgbG9uZylfc3RleHQs CisgICAgLmVuZCA9ICh1bnNpZ25lZCBsb25nKV9ldGV4dCwKK307CisKKy8qIEJlY29tZXMgaXJy ZWxldmFudCB3aGVuIF9faW5pdCBzZWN0aW9ucyBhcmUgY2xlYXJlZC4gKi8KK3N0YXRpYyBzdHJ1 Y3QgdmlydHVhbF9yZWdpb24gY29yZV9pbml0IF9faW5pdGRhdGEgPSB7CisgICAgLmxpc3QgPSBM SVNUX0hFQURfSU5JVChjb3JlX2luaXQubGlzdCksCisgICAgLnN0YXJ0ID0gKHVuc2lnbmVkIGxv bmcpX3Npbml0dGV4dCwKKyAgICAuZW5kID0gKHVuc2lnbmVkIGxvbmcpX2Vpbml0dGV4dCwKK307 CisKKy8qCisgKiBSQ1UgbG9ja2luZy4gQWRkaXRpb25zIGFyZSBkb25lIGVpdGhlciBhdCBzdGFy dHVwICh3aGVuIHRoZXJlIGlzIG9ubHkKKyAqIG9uZSBDUFUpIG9yIHdoZW4gYWxsIENQVXMgYXJl IHJ1bm5pbmcgd2l0aG91dCBJUlFzLgorICoKKyAqIERlbGV0aW9ucyBhcmUgYmlnIHRyaWNreS4g V2UgZG8gaXQgd2hlbiB4U3BsaWNpbmcgKGFsbCBDUFVzIHJ1bm5pbmcKKyAqIHdpdGhvdXQgSVJR cykgb3IgZHVyaW5nIGJvb3R1cCAod2hlbiBjbGVhcmluZyB0aGUgaW5pdCkuCisgKgorICogSGVu Y2Ugd2UgdXNlIGxpc3RfZGVsX3JjdSAod2hpY2ggc3BvcnRzIGFuIG1lbW9yeSBmZW5jZSkgYW5k IGEgc3BpbmxvY2sKKyAqIG9uIGRlbGV0aW9uLgorICoKKyAqIEFsbCByZWFkZXJzIG9mIHZpcnR1 YWxfcmVnaW9uX2xpc3QgTVVTVCB1c2UgbGlzdCBsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdS4KKyAq CisgKi8KK3N0YXRpYyBMSVNUX0hFQUQodmlydHVhbF9yZWdpb25fbGlzdCk7CitzdGF0aWMgREVG SU5FX1NQSU5MT0NLKHZpcnR1YWxfcmVnaW9uX2xvY2spOworc3RhdGljIERFRklORV9SQ1VfUkVB RF9MT0NLKHJjdV92aXJ0dWFsX3JlZ2lvbl9sb2NrKTsKKworY29uc3Qgc3RydWN0IHZpcnR1YWxf cmVnaW9uICpmaW5kX3RleHRfcmVnaW9uKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKyAgICBjb25z dCBzdHJ1Y3QgdmlydHVhbF9yZWdpb24gKnJlZ2lvbjsKKworICAgIHJjdV9yZWFkX2xvY2soJnJj dV92aXJ0dWFsX3JlZ2lvbl9sb2NrKTsKKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdSggcmVn aW9uLCAmdmlydHVhbF9yZWdpb25fbGlzdCwgbGlzdCApCisgICAgeworICAgICAgICBpZiAoIGFk ZHIgPj0gcmVnaW9uLT5zdGFydCAmJiBhZGRyIDwgcmVnaW9uLT5lbmQgKQorICAgICAgICB7Cisg ICAgICAgICAgICByY3VfcmVhZF91bmxvY2soJnJjdV92aXJ0dWFsX3JlZ2lvbl9sb2NrKTsKKyAg ICAgICAgICAgIHJldHVybiByZWdpb247CisgICAgICAgIH0KKyAgICB9CisgICAgcmN1X3JlYWRf dW5sb2NrKCZyY3VfdmlydHVhbF9yZWdpb25fbG9jayk7CisKKyAgICByZXR1cm4gTlVMTDsKK30K Kwordm9pZCByZWdpc3Rlcl92aXJ0dWFsX3JlZ2lvbihzdHJ1Y3QgdmlydHVhbF9yZWdpb24gKnIp Cit7CisgICAgQVNTRVJUKCFsb2NhbF9pcnFfaXNfZW5hYmxlZCgpKTsKKworICAgIGxpc3RfYWRk X3RhaWxfcmN1KCZyLT5saXN0LCAmdmlydHVhbF9yZWdpb25fbGlzdCk7Cit9CisKK3N0YXRpYyB2 b2lkIHJlbW92ZV92aXJ0dWFsX3JlZ2lvbihzdHJ1Y3QgdmlydHVhbF9yZWdpb24gKnIpCit7Cisg ICAgdW5zaWduZWQgbG9uZyBmbGFnczsKKworICAgIHNwaW5fbG9ja19pcnFzYXZlKCZ2aXJ0dWFs X3JlZ2lvbl9sb2NrLCBmbGFncyk7CisgICAgbGlzdF9kZWxfcmN1KCZyLT5saXN0KTsKKyAgICBz cGluX3VubG9ja19pcnFyZXN0b3JlKCZ2aXJ0dWFsX3JlZ2lvbl9sb2NrLCBmbGFncyk7CisgICAg LyoKKyAgICAgKiBXZSBkbyBub3QgbmVlZCB0byBpbnZva2UgY2FsbF9yY3UuCisgICAgICoKKyAg ICAgKiBUaGlzIGlzIGR1ZSB0byB0aGUgZmFjdCB0aGF0IG9uIHRoZSBkZWxldGlvbiB3ZSBoYXZl IG1hZGUgc3VyZQorICAgICAqIHRvIHVzZSBzcGlubG9ja3MgKHRvIGd1YXJkIGFnYWluc3Qgc29t ZWJvZHkgZWxzZSBjYWxsaW5nCisgICAgICogdW5yZWdpc3Rlcl92aXJ0dWFsX3JlZ2lvbikgYW5k IGxpc3RfZGVsZXRpb24gc3BpY2VkIHdpdGgKKyAgICAgKiBtZW1vcnkgYmFycmllci4KKyAgICAg KgorICAgICAqIFRoYXQgcHJvdGVjdHMgdXMgZnJvbSBjb3JydXB0aW5nIHRoZSBsaXN0IGFzIHRo ZSByZWFkZXJzIGFsbAorICAgICAqIHVzZSBsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdSB3aGljaCBp cyBzYWZlIGFnYWluc3QgY29uY3VycmVudAorICAgICAqIGRlbGV0aW9ucy4KKyAgICAgKi8KK30K Kwordm9pZCB1bnJlZ2lzdGVyX3ZpcnR1YWxfcmVnaW9uKHN0cnVjdCB2aXJ0dWFsX3JlZ2lvbiAq cikKK3sKKyAgICAvKiBFeHBlY3RlZCB0byBiZSBjYWxsZWQgZnJvbSB4U3BsaWNlIC0gd2hpY2gg aGFzIElSUXMgZGlzYWJsZWQuICovCisgICAgQVNTRVJUKCFsb2NhbF9pcnFfaXNfZW5hYmxlZCgp KTsKKworICAgIHJlbW92ZV92aXJ0dWFsX3JlZ2lvbihyKTsKK30KKwordm9pZCBfX2luaXQgdW5y ZWdpc3Rlcl9pbml0X3ZpcnR1YWxfcmVnaW9uKHZvaWQpCit7CisgICAgQlVHX09OKHN5c3RlbV9z dGF0ZSAhPSBTWVNfU1RBVEVfYWN0aXZlKTsKKworICAgIHJlbW92ZV92aXJ0dWFsX3JlZ2lvbigm Y29yZV9pbml0KTsKK30KKwordm9pZCBfX2luaXQgc2V0dXBfdmlydHVhbF9yZWdpb25zKGNvbnN0 IHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgKnN0YXJ0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgKmVuZCkK K3sKKyAgICBzaXplX3Qgc3o7CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgc3RhdGljIGNvbnN0 IHN0cnVjdCBidWdfZnJhbWUgKmNvbnN0IF9faW5pdGNvbnN0cmVsIGJ1Z19mcmFtZXNbXSA9IHsK KyAgICAgICAgX19zdGFydF9idWdfZnJhbWVzLAorICAgICAgICBfX3N0b3BfYnVnX2ZyYW1lc18w LAorICAgICAgICBfX3N0b3BfYnVnX2ZyYW1lc18xLAorICAgICAgICBfX3N0b3BfYnVnX2ZyYW1l c18yLAorI2lmZGVmIENPTkZJR19YODYKKyAgICAgICAgX19zdG9wX2J1Z19mcmFtZXNfMywKKyNl bmRpZgorICAgICAgICBOVUxMCisgICAgfTsKKworICAgIGZvciAoIGkgPSAxOyBidWdfZnJhbWVz W2ldOyBpKysgKQorICAgIHsKKyAgICAgICAgY29uc3Qgc3RydWN0IGJ1Z19mcmFtZSAqczsKKwor ICAgICAgICBzID0gYnVnX2ZyYW1lc1tpIC0gMV07CisgICAgICAgIHN6ID0gYnVnX2ZyYW1lc1tp XSAtIHM7CisKKyAgICAgICAgY29yZS5mcmFtZVtpIC0gMV0ubl9idWdzID0gc3o7CisgICAgICAg IGNvcmUuZnJhbWVbaSAtIDFdLmJ1Z3MgPSBzOworCisgICAgICAgIGNvcmVfaW5pdC5mcmFtZVtp IC0gMV0ubl9idWdzID0gc3o7CisgICAgICAgIGNvcmVfaW5pdC5mcmFtZVtpIC0gMV0uYnVncyA9 IHM7CisgICAgfQorCisgICAgY29yZV9pbml0LmV4ID0gY29yZS5leCA9IHN0YXJ0OworICAgIGNv cmVfaW5pdC5leF9lbmQgPSBjb3JlLmV4X2VuZCA9IGVuZDsKKworICAgIHJlZ2lzdGVyX3ZpcnR1 YWxfcmVnaW9uKCZjb3JlX2luaXQpOworICAgIHJlZ2lzdGVyX3ZpcnR1YWxfcmVnaW9uKCZjb3Jl KTsKK30KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1z dHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGlu ZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS94ZW4vc3ltYm9scy5oIGIveGVuL2luY2x1ZGUveGVuL3N5bWJvbHMuaAppbmRleCAxZmEwNTM3 Li5mNThlNjExIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5oCisrKyBiL3hl bi9pbmNsdWRlL3hlbi9zeW1ib2xzLmgKQEAgLTUsNiArNSwxNSBAQAogCiAjZGVmaW5lIEtTWU1f TkFNRV9MRU4gMTI3CiAKKy8qCisgKiBUeXBlZGVmIGZvciB0aGUgY2FsbGJhY2sgZnVuY3Rpb25z IHRoYXQgc3ltYm9sc19sb29rdXAKKyAqIGNhbiBjYWxsIGlmIHZpcnR1YWxfcmVnaW9uX2xpc3Qg aGFzIGFuIGNhbGxiYWNrIGZvciBpdC4KKyAqLwordHlwZWRlZiBjb25zdCBjaGFyICpzeW1ib2xz X2xvb2t1cF90KHVuc2lnbmVkIGxvbmcgYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nICpzeW1ib2xzaXplLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKm9mZnNldCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpuYW1lYnVmKTsKKwogLyogTG9va3VwIGFuIGFk ZHJlc3MuICovCiBjb25zdCBjaGFyICpzeW1ib2xzX2xvb2t1cCh1bnNpZ25lZCBsb25nIGFkZHIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICpzeW1ib2xzaXplLApk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3ZpcnR1YWxfcmVnaW9uLmggYi94ZW4vaW5jbHVk ZS94ZW4vdmlydHVhbF9yZWdpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4zMTgyNmQxCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2luY2x1ZGUveGVuL3ZpcnR1YWxfcmVn aW9uLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNiBPcmFjbGUg YW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqLworCisj aWZuZGVmIF9fWEVOX1ZJUlRVQUxfUkVHSU9OX18KKyNkZWZpbmUgX19YRU5fVklSVFVBTF9SRUdJ T05fXworCisjaW5jbHVkZSA8eGVuL2xpc3QuaD4KKyNpbmNsdWRlIDx4ZW4vc3ltYm9scy5oPgor CitzdHJ1Y3QgdmlydHVhbF9yZWdpb24KK3sKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cisg ICAgdW5zaWduZWQgbG9uZyBzdGFydDsgICAgICAgIC8qIFZpcnR1YWwgYWRkcmVzcyBzdGFydC4g Ki8KKyAgICB1bnNpZ25lZCBsb25nIGVuZDsgICAgICAgICAgLyogVmlydHVhbCBhZGRyZXNzIGVu ZC4gKi8KKworICAgIC8qIElmIHRoaXMgaXMgTlVMTCB0aGUgZGVmYXVsdCBsb29rdXAgbWVjaGFu aXNtIGlzIHVzZWQuICovCisgICAgc3ltYm9sc19sb29rdXBfdCAqc3ltYm9sc19sb29rdXA7CisK KyAgICBzdHJ1Y3QgeworICAgICAgICBjb25zdCBzdHJ1Y3QgYnVnX2ZyYW1lICpidWdzOyAvKiBU aGUgcG9pbnRlciB0byBhcnJheSBvZiBidWcgZnJhbWVzLiAqLworICAgICAgICBzaXplX3Qgbl9i dWdzOyAgICAgICAgICAvKiBUaGUgbnVtYmVyIG9mIHRoZW0uICovCisgICAgfSBmcmFtZVtCVUdG UkFNRV9OUl07CisKKyAgICBjb25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpleDsK KyAgICBjb25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpleF9lbmQ7Cit9OworCitj b25zdCBzdHJ1Y3QgdmlydHVhbF9yZWdpb24gKmZpbmRfdGV4dF9yZWdpb24odW5zaWduZWQgbG9u ZyBhZGRyKTsKK3ZvaWQgc2V0dXBfdmlydHVhbF9yZWdpb25zKGNvbnN0IHN0cnVjdCBleGNlcHRp b25fdGFibGVfZW50cnkgKnN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqZW5kKTsKK3ZvaWQgdW5yZWdpc3Rlcl9pbml0 X3ZpcnR1YWxfcmVnaW9uKHZvaWQpOwordm9pZCByZWdpc3Rlcl92aXJ0dWFsX3JlZ2lvbihzdHJ1 Y3QgdmlydHVhbF9yZWdpb24gKnIpOwordm9pZCB1bnJlZ2lzdGVyX3ZpcnR1YWxfcmVnaW9uKHN0 cnVjdCB2aXJ0dWFsX3JlZ2lvbiAqcik7CisKKyNlbmRpZiAvKiBfX1hFTl9WSVJUVUFMX1JFR0lP Tl9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUt c3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBp bmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwotLSAKMi41LjAKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=