From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Zhang Subject: [PATCH v10 2/6] x86/ioreq server: Add DMOP to map guest ram with p2m_ioreq_server to an ioreq server. Date: Sun, 2 Apr 2017 20:24:23 +0800 Message-ID: <1491135867-623-3-git-send-email-yu.c.zhang@linux.intel.com> References: <1491135867-623-1-git-send-email-yu.c.zhang@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1491135867-623-1-git-send-email-yu.c.zhang@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Kevin Tian , Jun Nakajima , George Dunlap , Andrew Cooper , Tim Deegan , Paul Durrant , zhiyuan.lv@intel.com, Jan Beulich List-Id: xen-devel@lists.xenproject.org UHJldmlvdXNseSwgcDJtX2lvcmVxX3NlcnZlciBpcyB1c2VkIHRvIHdyaXRlLXByb3RlY3QgZ3Vl c3QgcmFtCnBhZ2VzLCB3aGljaCBhcmUgdHJhY2tlZCB3aXRoIGlvcmVxIHNlcnZlcidzIHJhbmdl c2V0LiBIb3dldmVyLApudW1iZXIgb2YgcmFtIHBhZ2VzIHRvIGJlIHRyYWNrZWQgbWF5IGV4Y2Vl ZCB0aGUgdXBwZXIgbGltaXQgb2YKcmFuZ2VzZXQuCgpOb3csIGEgbmV3IERNT1AgLSBYRU5fRE1P UF9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyLCBpcyBhZGRlZAp0byBsZXQgb25lIGlvcmVx IHNlcnZlciBjbGFpbS9kaXNjbGFpbSBpdHMgcmVzcG9uc2liaWxpdHkgZm9yIHRoZQpoYW5kbGlu ZyBvZiBndWVzdCBwYWdlcyB3aXRoIHAybSB0eXBlIHAybV9pb3JlcV9zZXJ2ZXIuIFVzZXJzIG9m CnRoaXMgRE1PUCBjYW4gc3BlY2lmeSB3aGljaCBraW5kIG9mIG9wZXJhdGlvbiBpcyBzdXBwb3Nl ZCB0byBiZQplbXVsYXRlZCBpbiBhIHBhcmFtZXRlciBuYW1lZCBmbGFncy4gQ3VycmVudGx5LCB0 aGlzIERNT1Agb25seQpzdXBwb3J0IHRoZSBlbXVsYXRpb24gb2Ygd3JpdGUgb3BlcmF0aW9ucy4g QW5kIGl0IGNhbiBiZSBmdXJ0aGVyCmV4dGVuZGVkIHRvIHN1cHBvcnQgdGhlIGVtdWxhdGlvbiBv ZiByZWFkIG9uZXMgaWYgYW4gaW9yZXEgc2VydmVyCmhhcyBzdWNoIHJlcXVpcmVtZW50IGluIHRo ZSBmdXR1cmUuCgpGb3Igbm93LCB3ZSBvbmx5IHN1cHBvcnQgb25lIGlvcmVxIHNlcnZlciBmb3Ig dGhpcyBwMm0gdHlwZSwgc28Kb25jZSBhbiBpb3JlcSBzZXJ2ZXIgaGFzIGNsYWltZWQgaXRzIG93 bmVyc2hpcCwgc3Vic2VxdWVudCBjYWxscwpvZiB0aGUgWEVOX0RNT1BfbWFwX21lbV90eXBlX3Rv X2lvcmVxX3NlcnZlciB3aWxsIGZhaWwuIFVzZXJzIGNhbgphbHNvIGRpc2NsYWltIHRoZSBvd25l cnNoaXAgb2YgZ3Vlc3QgcmFtIHBhZ2VzIHdpdGggcDJtX2lvcmVxX3NlcnZlciwKYnkgdHJpZ2dl cmluZyB0aGlzIG5ldyBETU9QLCB3aXRoIGlvcmVxIHNlcnZlciBpZCBzZXQgdG8gdGhlIGN1cnJl bnQKb3duZXIncyBhbmQgZmxhZ3MgcGFyYW1ldGVyIHNldCB0byAwLgoKTm90ZToKYT4gYm90aCBY RU5fRE1PUF9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyIGFuZCBwMm1faW9yZXFfc2VydmVy CmFyZSBvbmx5IHN1cHBvcnRlZCBmb3IgSFZNcyB3aXRoIEhBUCBlbmFibGVkLgoKYj4gb25seSBh ZnRlciBvbmUgaW9yZXEgc2VydmVyIGNsYWltcyBpdHMgb3duZXJzaGlwIG9mIHAybV9pb3JlcV9z ZXJ2ZXIsCndpbGwgdGhlIHAybSB0eXBlIGNoYW5nZSB0byBwMm1faW9yZXFfc2VydmVyIGJlIGFs bG93ZWQuCgpjPiB0aGlzIHBhdGNoIHNoYWxsIGJlIGFjY2VwdGVkIHRvZ2V0aGVyIHdpdGggdGhl IGZvbGxvd2luZyBvbmVzIGluCnRoaXMgc2VyaWVzLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJy YW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogWXUgWmhhbmcgPHl1 LmMuemhhbmdAbGludXguaW50ZWwuY29tPgpBY2tlZC1ieTogVGltIERlZWdhbiA8dGltQHhlbi5v cmc+Ci0tLQpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENv b3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IFBhdWwgRHVycmFudCA8cGF1bC5k dXJyYW50QGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNp dHJpeC5jb20+CkNjOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkNjOiBL ZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4u b3JnPgoKY2hhbmdlcyBpbiB2MTA6CiAgLSBBY2NvcmRpbmcgdG8gY29tbWVudHMgZnJvbSBKYW46 IGFkZCBhIG5ldyBwYXRjaCBmb3IgdGhlIGxpYmRldmljZW1vZGVsIGFuZAogICAgbGlieGMgaW50 ZXJmYWNlLgogIC0gQWNjb3JkaW5nIHRvIGNvbW1lbnRzIGZyb20gSmFuOiByZW1vdmUgcDJtX2Rl c3Ryb3lfaW9yZXFfc2VydmVyKCksIHVzZQogICAgcDJtX3NldF9pb3JlcV9zZXJ2ZXIoZCwgMCwg cykgaW5zdGVhZC4KICAtIEFjY29yZGluZyB0byBjb21tZW50cyBmcm9tIEphbiAmIEtldmluOiBj b21tZW50cyBjaGFuZ2VzIGluIGh2bWVtdWxfZG9faW8oKS4KICAtIEFjY29yZGluZyB0byBjb21t ZW50cyBmcm9tIEphbiAmIEtldmluOiBjb21taXQgbWVzc2FnZSAgY2hhbmdlcy4KCmNoYW5nZXMg aW4gdjg6CiAgLSBBY2NvcmRpbmcgdG8gY29tbWVudHMgZnJvbSBKYW4gJiBQYXVsOiBjb21tZW50 cyBjaGFuZ2VzIGluIGh2bWVtdWxfZG9faW8oKS4KICAtIEFjY29yZGluZyB0byBjb21tZW50cyBm cm9tIEphbjogcmVtb3ZlIHRoZSByZWR1bmRhbnQgY29kZSB3aGljaCB3b3VsZCBvbmx5CiAgICBi ZSB1c2VmdWwgZm9yIHJlYWQgZW11bGF0aW9ucy4KICAtIEFjY29yZGluZyB0byBjb21tZW50cyBm cm9tIEphbjogY2hhbmdlIGludGVyZmFjZSB3aGljaCBtYXBzIG1lbSB0eXBlIHRvCiAgICBpb3Jl cSBzZXJ2ZXIsIHJlbW92ZWQgdWludDE2X3QgcGFkIGFuZCBhZGRlZCBhbiB1aW50NjRfdCBvcGFx dWUuCiAgLSBBZGRyZXNzIG90aGVyIGNvbW1lbnRzIGZyb20gSmFuLCBpLmUuIGNvcnJlY3QgcmV0 dXJuIHZhbHVlczsgcmVtb3ZlIHN0cmF5CiAgICBjYXN0LgoKY2hhbmdlcyBpbiB2NzoKICAtIFVz ZSBuZXcgaW9yZXEgc2VydmVyIGludGVyZmFjZSAtIFhFTl9ETU9QX21hcF9tZW1fdHlwZV90b19p b3JlcV9zZXJ2ZXIuCiAgLSBBY2NvcmRpbmcgdG8gY29tbWVudHMgZnJvbSBHZW9yZ2U6IHJlbW92 ZWQgZG9tYWluX3BhdXNlL3VucGF1c2UoKSBpbgogICAgaHZtX21hcF9tZW1fdHlwZV90b19pb3Jl cV9zZXJ2ZXIoKSwgYmVjYXVzZSBpdCdzIHRvbyBleHBlbnNpdmUsCiAgICBhbmQgd2UgY2FuIGF2 b2lkIHRoZToKICAgIGE+IGRlYWRsb2NrIGlzc3VlIGV4aXN0ZWQgaW4gdjYgcGF0Y2gsIGJldHdl ZW4gcDJtIGxvY2sgYW5kIGlvcmVxIHNlcnZlcgogICAgICAgbG9jayBieSB1c2luZyB0aGVzZSBs b2NrcyBpbiB0aGUgc2FtZSBvcmRlciAtIHNvbHZlZCBpbiBwYXRjaCA0OwogICAgYj4gZm9yIHJh Y2UgY29uZGl0aW9uIGJldHdlZW4gdm0gZXhpdCBhbmQgaW9yZXEgc2VydmVyIHVuYmluZGluZywg d2UgY2FuCiAgICAgICBqdXN0IHJldHJ5IHRoaXMgaW5zdHJ1Y3Rpb24uCiAgLSBBY2NvcmRpbmcg dG8gY29tbWVudHMgZnJvbSBKYW4gYW5kIEdlb3JnZTogY29udGludWUgdG8gY2xhcmlmeSBsb2dp YyBpbgogICAgaHZtZW11bF9kb19pbygpLgogIC0gQWNjb3JkaW5nIHRvIGNvbW1lbnRzIGZyb20g SmFuOiBjbGFyaWZ5IGNvbW1lbnQgaW4gcDJtX3NldF9pb3JlcV9zZXJ2ZXIoKS4KCmNoYW5nZXMg aW4gdjY6CiAgLSBDbGFyaWZ5IGxvZ2ljIGluIGh2bWVtdWxfZG9faW8oKS4KICAtIFVzZSByZWN1 cnNpdmUgbG9jayBmb3IgaW9yZXEgc2VydmVyIGxvY2suCiAgLSBSZW1vdmUgZGVidWcgcHJpbnQg d2hlbiBtYXBwaW5nIGlvcmVxIHNlcnZlci4KICAtIENsYXJpZnkgY29kZSBpbiBlcHRfcDJtX3R5 cGVfdG9fZmxhZ3MoKSBmb3IgY29uc2lzdGVuY3kuCiAgLSBSZW1vdmUgZGVmaW5pdGlvbiBvZiBQ Mk1fSU9SRVFfSEFORExFX1dSSVRFX0FDQ0VTUy4KICAtIEFkZCBjb21tZW50cyBmb3IgSFZNTUVN X2lvcmVxX3NlcnZlciB0byBub3RlIG9ubHkgY2hhbmdlcwogICAgdG8vZnJvbSBIVk1NRU1fcmFt X3J3IGFyZSBwZXJtaXR0ZWQuCiAgLSBBZGQgZG9tYWluX3BhdXNlL3VucGF1c2UoKSBpbiBodm1f bWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlcigpCiAgICB0byBhdm9pZCB0aGUgcmFjZSBjb25k aXRpb24gd2hlbiBhIHZtIGV4aXQgaGFwcGVucyBvbiBhIHdyaXRlLQogICAgcHJvdGVjdGVkIHBh Z2UsIGp1c3QgdG8gZmluZCB0aGUgaW9yZXEgc2VydmVyIGhhcyBiZWVuIHVubWFwcGVkCiAgICBh bHJlYWR5LgogIC0gSW50cm9kdWNlIGEgc2VwZXJhdGUgcGF0Y2ggdG8gZGVsYXkgdGhlIHJlbGVh c2Ugb2YgcDJtCiAgICBsb2NrIHRvIGF2b2lkIHRoZSByYWNlIGNvbmRpdGlvbi4KICAtIEludHJv ZHVjZSBhIHNlcGVyYXRlIHBhdGNoIHRvIGhhbmRsZSB0aGUgcmVhZC1tb2RpZnktd3JpdGUKICAg IG9wZXJhdGlvbnMgb24gYSB3cml0ZSBwcm90ZWN0ZWQgcGFnZS4KCmNoYW5nZXMgaW4gdjU6CiAg LSBTaW1wbGlmeSBsb2dpYyBpbiBodm1lbXVsX2RvX2lvKCkuCiAgLSBVc2UgbmF0dWFsIHdpZHRo IHR5cGVzIGluc3RlYWQgb2YgZml4ZWQgd2lkdGggdHlwZXMgd2hlbiBwb3NzaWJsZS4KICAtIERv IG5vdCBncmFudCBleGVjdXRhYmxlIHBlcm1pc3Npb24gZm9yIHAybV9pb3JlcV9zZXJ2ZXIgZW50 cmllcy4KICAtIENsYXJpZnkgY29tbWVudHMgYW5kIGNvbW1pdCBtZXNzYWdlLgogIC0gSW50cm9k dWNlIGEgc2VwZXJhdGUgcGF0Y2ggdG8gcmVjYWxjdWxhdGUgdGhlIHAybSB0eXBlcyBhZnRlcgog ICAgdGhlIGlvcmVxIHNlcnZlciB1bm1hcHMgdGhlIHAybV9pb3JlcV9zZXJ2ZXIuCmNoYW5nZXMg aW4gdjQ6CiAgLSBBY2NvcmRpbmcgdG8gUGF1bCdzIGFkdmljZSwgYWRkIGNvbW1lbnRzIGFyb3Vu ZCB0aGUgZGVmaW5pdGlvbgogICAgb2YgSFZNTUVNX2lvcmVfc2VydmVyIGluIGh2bV9vcC5oLgog IC0gQWNjb3JkaW5nIHRvIFdlaSBMaXUncyBjb21tZW50cywgY2hhbmdlIHRoZSBmb3JtYXQgb2Yg dGhlIGNvbW1pdAogICAgbWVzc2FnZS4KCmNoYW5nZXMgaW4gdjM6CiAgLSBPbmx5IHN1cHBvcnQg d3JpdGUgZW11bGF0aW9uIGluIHRoaXMgcGF0Y2g7CiAgLSBSZW1vdmUgdGhlIGNvZGUgdG8gaGFu ZGxlIHJhY2UgY29uZGl0aW9uIGluIGh2bWVtdWxfZG9faW8oKSwKICAtIE5vIG5lZWQgdG8gcmVz ZXQgdGhlIHAybSB0eXBlIGFmdGVyIGFuIGlvcmVxIHNlcnZlciBoYXMgZGlzY2xhaW1lZAogICAg aXRzIG93bmVyc2hpcCBvZiBwMm1faW9yZXFfc2VydmVyOwogIC0gT25seSBhbGxvdyBwMm0gdHlw ZSBjaGFuZ2UgdG8gcDJtX2lvcmVxX3NlcnZlciBhZnRlciBhbiBpb3JlcQogICAgc2VydmVyIGhh cyBjbGFpbWVkIGl0cyBvd25lcnNoaXAgb2YgcDJtX2lvcmVxX3NlcnZlcjsKICAtIE9ubHkgYWxs b3cgcDJtIHR5cGUgY2hhbmdlIHRvIHAybV9pb3JlcV9zZXJ2ZXIgZnJvbSBwYWdlcyB3aXRoIHR5 cGUKICAgIHAybV9yYW1fcncsIGFuZCB2aWNlIHZlcnNhOwogIC0gSFZNT1BfbWFwX21lbV90eXBl X3RvX2lvcmVxX3NlcnZlciBpbnRlcmZhY2UgY2hhbmdlIC0gdXNlIHVpbnQxNiwKICAgIGluc3Rl YWQgb2YgZW51bSB0byBzcGVjaWZ5IHRoZSBtZW1vcnkgdHlwZTsKICAtIEZ1bmN0aW9uIHByb3Rv dHlwZSBjaGFuZ2UgdG8gcDJtX2dldF9pb3JlcV9zZXJ2ZXIoKTsKICAtIENvZGluZyBzdHlsZSBj aGFuZ2VzOwogIC0gQ29tbWl0IG1lc3NhZ2UgY2hhbmdlczsKICAtIEFkZCBUaW0ncyBBY2tlZC1i eS4KCmNoYW5nZXMgaW4gdjI6CiAgLSBPbmx5IHN1cHBvcnQgSEFQIGVuYWJsZWQgSFZNczsKICAt IFJlcGxhY2UgcDJtX21lbV90eXBlX2NoYW5nZWQoKSB3aXRoIHAybV9jaGFuZ2VfZW50cnlfdHlw ZV9nbG9iYWwoKQogICAgdG8gcmVzZXQgdGhlIHAybSB0eXBlLCB3aGVuIGFuIGlvcmVxIHNlcnZl ciB0cmllcyB0byBjbGFpbS9kaXNjbGFpbQogICAgaXRzIG93bmVyc2hpcCBvZiBwMm1faW9yZXFf c2VydmVyOwogIC0gQ29tbWVudHMgY2hhbmdlcy4KLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2RtLmMg ICAgICAgICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysrLS0KIHhlbi9hcmNoL3g4Ni9odm0v ZW11bGF0ZS5jICAgICAgfCA2MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLQogeGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jICAgICAgICB8IDQ0ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jICAgICAgIHwgIDggKysr KystCiB4ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgICAgICAgIHwgMTkgKysrKysrKysrLS0tLQog eGVuL2FyY2gveDg2L21tL3AybS5jICAgICAgICAgICB8IDU4ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jICB8ICAz ICstCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pb3JlcS5oIHwgIDIgKysKIHhlbi9pbmNsdWRl L2FzbS14ODYvcDJtLmggICAgICAgfCAyNSArKysrKysrKysrKysrKystLQogeGVuL2luY2x1ZGUv cHVibGljL2h2bS9kbV9vcC5oICB8IDI4ICsrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRl L3B1YmxpYy9odm0vaHZtX29wLmggfCAgOCArKysrKy0KIDExIGZpbGVzIGNoYW5nZWQsIDI3MiBp bnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv aHZtL2RtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKaW5kZXggMzMzYzg4NC4uN2UwZGE4MSAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v ZG0uYwpAQCAtMTczLDkgKzE3MywxNCBAQCBzdGF0aWMgaW50IG1vZGlmaWVkX21lbW9yeShzdHJ1 Y3QgZG9tYWluICpkLAogCiBzdGF0aWMgYm9vbCBhbGxvd19wMm1fdHlwZV9jaGFuZ2UocDJtX3R5 cGVfdCBvbGQsIHAybV90eXBlX3QgbmV3KQogeworICAgIGlmICggbmV3ID09IHAybV9pb3JlcV9z ZXJ2ZXIgKQorICAgICAgICByZXR1cm4gb2xkID09IHAybV9yYW1fcnc7CisKKyAgICBpZiAoIG9s ZCA9PSBwMm1faW9yZXFfc2VydmVyICkKKyAgICAgICAgcmV0dXJuIG5ldyA9PSBwMm1fcmFtX3J3 OworCiAgICAgcmV0dXJuIHAybV9pc19yYW0ob2xkKSB8fAotICAgICAgICAgICAocDJtX2lzX2hv bGUob2xkKSAmJiBuZXcgPT0gcDJtX21taW9fZG0pIHx8Ci0gICAgICAgICAgIChvbGQgPT0gcDJt X2lvcmVxX3NlcnZlciAmJiBuZXcgPT0gcDJtX3JhbV9ydyk7CisgICAgICAgICAgIChwMm1faXNf aG9sZShvbGQpICYmIG5ldyA9PSBwMm1fbW1pb19kbSk7CiB9CiAKIHN0YXRpYyBpbnQgc2V0X21l bV90eXBlKHN0cnVjdCBkb21haW4gKmQsCkBAIC0yMDIsNiArMjA3LDE4IEBAIHN0YXRpYyBpbnQg c2V0X21lbV90eXBlKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICB1bmxpa2VseShkYXRhLT5t ZW1fdHlwZSA9PSBIVk1NRU1fdW51c2VkKSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCisg ICAgaWYgKCBkYXRhLT5tZW1fdHlwZSAgPT0gSFZNTUVNX2lvcmVxX3NlcnZlciApCisgICAgewor ICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CisKKyAgICAgICAgaWYgKCAhaGFwX2VuYWJsZWQo ZCkgKQorICAgICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOworCisgICAgICAgIC8qIERvIG5v dCBjaGFuZ2UgdG8gSFZNTUVNX2lvcmVxX3NlcnZlciBpZiBubyBpb3JlcSBzZXJ2ZXIgbWFwcGVk LiAqLworICAgICAgICBpZiAoICFwMm1fZ2V0X2lvcmVxX3NlcnZlcihkLCAmZmxhZ3MpICkKKyAg ICAgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKwogICAgIHdoaWxlICggaXRlciA8IGRh dGEtPm5yICkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgcGZuID0gZGF0YS0+Zmlyc3Rf cGZuICsgaXRlcjsKQEAgLTM2NSw2ICszODIsMjAgQEAgc3RhdGljIGludCBkbV9vcChkb21pZF90 IGRvbWlkLAogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFhFTl9ETU9QX21hcF9t ZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXI6CisgICAgeworICAgICAgICBjb25zdCBzdHJ1Y3QgeGVu X2RtX29wX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIgKmRhdGEgPQorICAgICAgICAgICAg Jm9wLnUubWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlcjsKKworICAgICAgICByYyA9IC1FT1BO T1RTVVBQOworICAgICAgICBpZiAoICFoYXBfZW5hYmxlZChkKSApCisgICAgICAgICAgICBicmVh azsKKworICAgICAgICByYyA9IGh2bV9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyKGQsIGRh dGEtPmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGEtPnR5cGUsIGRhdGEtPmZsYWdzKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2Fz ZSBYRU5fRE1PUF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlOgogICAgIHsKICAgICAgICAgY29uc3Qg c3RydWN0IHhlbl9kbV9vcF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlICpkYXRhID0KZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jIGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRl LmMKaW5kZXggMmQ5Mjk1Ny4uZGM2ZjFmMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9l bXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKQEAgLTEwMCw2ICsxMDAs NyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfZG9faW8oCiAgICAgdWludDhfdCBkaXIsIGJvb2xfdCBk ZiwgYm9vbF90IGRhdGFfaXNfYWRkciwgdWludHB0cl90IGRhdGEpCiB7CiAgICAgc3RydWN0IHZj cHUgKmN1cnIgPSBjdXJyZW50OworICAgIHN0cnVjdCBkb21haW4gKmN1cnJkID0gY3Vyci0+ZG9t YWluOwogICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1cnItPmFyY2guaHZtX3ZjcHUu aHZtX2lvOwogICAgIGlvcmVxX3QgcCA9IHsKICAgICAgICAgLnR5cGUgPSBpc19tbWlvID8gSU9S RVFfVFlQRV9DT1BZIDogSU9SRVFfVFlQRV9QSU8sCkBAIC0xNDEsNyArMTQyLDcgQEAgc3RhdGlj IGludCBodm1lbXVsX2RvX2lvKAogICAgICAgICAgICAgIChwLmRpciAhPSBkaXIpIHx8CiAgICAg ICAgICAgICAgKHAuZGYgIT0gZGYpIHx8CiAgICAgICAgICAgICAgKHAuZGF0YV9pc19wdHIgIT0g ZGF0YV9pc19hZGRyKSApCi0gICAgICAgICAgICBkb21haW5fY3Jhc2goY3Vyci0+ZG9tYWluKTsK KyAgICAgICAgICAgIGRvbWFpbl9jcmFzaChjdXJyZCk7CiAKICAgICAgICAgaWYgKCBkYXRhX2lz X2FkZHIgKQogICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwpAQCAtMTc4 LDggKzE3OSw2MCBAQCBzdGF0aWMgaW50IGh2bWVtdWxfZG9faW8oCiAgICAgICAgIGJyZWFrOwog ICAgIGNhc2UgWDg2RU1VTF9VTkhBTkRMRUFCTEU6CiAgICAgewotICAgICAgICBzdHJ1Y3QgaHZt X2lvcmVxX3NlcnZlciAqcyA9Ci0gICAgICAgICAgICBodm1fc2VsZWN0X2lvcmVxX3NlcnZlcihj dXJyLT5kb21haW4sICZwKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogWGVuIGlzbid0IGVtdWxh dGluZyB0aGUgaW5zdHJ1Y3Rpb24gaW50ZXJuYWxseSwgc28gc2VlIGlmIHRoZXJlJ3MKKyAgICAg ICAgICogYW4gaW9yZXEgc2VydmVyIHRoYXQgY2FuIGhhbmRsZSBpdC4KKyAgICAgICAgICoKKyAg ICAgICAgICogUnVsZXM6CisgICAgICAgICAqIEE+IFBJTyBvciBNTUlPIGFjY2Vzc2VzIHJ1biB0 aHJvdWdoIGh2bV9zZWxlY3RfaW9yZXFfc2VydmVyKCkgdG8KKyAgICAgICAgICogY2hvb3NlIHRo ZSBpb3JlcSBzZXJ2ZXIgYnkgcmFuZ2UuIElmIG5vIHNlcnZlciBpcyBmb3VuZCwgdGhlIGFjY2Vz cworICAgICAgICAgKiBpcyBpZ25vcmVkLgorICAgICAgICAgKgorICAgICAgICAgKiBCPiBwMm1f aW9yZXFfc2VydmVyIGFjY2Vzc2VzIGFyZSBoYW5kbGVkIGJ5IHRoZSBkZXNpZ25hdGVkCisgICAg ICAgICAqIGlvcmVxIHNlcnZlciBmb3IgdGhlIGRvbWFpbiwgYnV0IHRoZXJlIGFyZSBzb21lIGNv cm5lciBjYXNlczoKKyAgICAgICAgICoKKyAgICAgICAgICogICAtIElmIHRoZSBkb21haW4gaW9y ZXEgc2VydmVyIGlzIE5VTEwsIGl0J3MgbGlrZWx5IHdlIHN1ZmZlciBmcm9tCisgICAgICAgICAq ICAgYSByYWNlIHdpdGggYW4gdW5tYXAgb3BlcmF0aW9uIG9uIHRoZSBpb3JlcSBzZXJ2ZXIsIHNv IHJlLXRyeSB0aGUKKyAgICAgICAgICogICBpbnN0cnVjdGlvbi4KKyAgICAgICAgICoKKyAgICAg ICAgICogTm90ZTogRXZlbiB3aGVuIGFuIGlvcmVxIHNlcnZlciBpcyBmb3VuZCwgaXRzIHZhbHVl IGNvdWxkIGJlY29tZQorICAgICAgICAgKiBzdGFsZSBsYXRlciwgYmVjYXVzZSBpdCBpcyBwb3Nz aWJsZSB0aGF0CisgICAgICAgICAqCisgICAgICAgICAqICAgLSB0aGUgUElPIG9yIE1NSU8gYWRk cmVzcyBpcyByZW1vdmVkIGZyb20gdGhlIHJhbmdlc2V0IG9mIHRoZQorICAgICAgICAgKiAgIGlv cmVxIHNlcnZlciwgYmVmb3JlIHRoZSBldmVudCBpcyBkZWxpdmVyZWQgdG8gdGhlIGRldmljZSBt b2RlbC4KKyAgICAgICAgICoKKyAgICAgICAgICogICAtIHRoZSBwMm1faW9yZXFfc2VydmVyIHR5 cGUgaXMgdW5tYXBwZWQgZnJvbSB0aGUgaW9yZXEgc2VydmVyLAorICAgICAgICAgKiAgIGJlZm9y ZSB0aGUgZXZlbnQgaXMgZGVsaXZlcmVkIHRvIHRoZSBkZXZpY2UgbW9kZWwuCisgICAgICAgICAq CisgICAgICAgICAqIEhvd2V2ZXIsIHRoZXJlJ3Mgbm8gY2hlYXAgYXBwcm9hY2ggdG8gYXZvaWQg YWJvdmUgc2l0dWF0aW9ucyBpbiB4ZW4sCisgICAgICAgICAqIHNvIHRoZSBkZXZpY2UgbW9kZWwg c2lkZSBuZWVkcyB0byBjaGVjayB0aGUgaW5jb21pbmcgaW9yZXEgZXZlbnQuCisgICAgICAgICAq LworICAgICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcyA9IE5VTEw7CisgICAgICAgIHAy bV90eXBlX3QgcDJtdCA9IHAybV9pbnZhbGlkOworCisgICAgICAgIGlmICggaXNfbW1pbyApCisg ICAgICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZ21mbiA9IHBhZGRyX3RvX3Bmbihh ZGRyKTsKKworICAgICAgICAgICAgZ2V0X2dmbl9xdWVyeV91bmxvY2tlZChjdXJyZCwgZ21mbiwg JnAybXQpOworCisgICAgICAgICAgICBpZiAoIHAybXQgPT0gcDJtX2lvcmVxX3NlcnZlciApCisg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOworCisgICAg ICAgICAgICAgICAgcyA9IHAybV9nZXRfaW9yZXFfc2VydmVyKGN1cnJkLCAmZmxhZ3MpOworCisg ICAgICAgICAgICAgICAgaWYgKCBzID09IE5VTEwgKQorICAgICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgICAgcmMgPSBYODZFTVVMX1JFVFJZOworICAgICAgICAgICAgICAgICAgICB2 aW8tPmlvX3JlcS5zdGF0ZSA9IFNUQVRFX0lPUkVRX05PTkU7CisgICAgICAgICAgICAgICAgICAg IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg ICAgICAgIGlmICggIXMgKQorICAgICAgICAgICAgcyA9IGh2bV9zZWxlY3RfaW9yZXFfc2VydmVy KGN1cnJkLCAmcCk7CiAKICAgICAgICAgLyogSWYgdGhlcmUgaXMgbm8gc3VpdGFibGUgYmFja2lu ZyBETSwganVzdCBpZ25vcmUgYWNjZXNzZXMgKi8KICAgICAgICAgaWYgKCAhcyApCkBAIC0xOTAs NyArMjQzLDcgQEAgc3RhdGljIGludCBodm1lbXVsX2RvX2lvKAogICAgICAgICBlbHNlCiAgICAg ICAgIHsKICAgICAgICAgICAgIHJjID0gaHZtX3NlbmRfaW9yZXEocywgJnAsIDApOwotICAgICAg ICAgICAgaWYgKCByYyAhPSBYODZFTVVMX1JFVFJZIHx8IGN1cnItPmRvbWFpbi0+aXNfc2h1dHRp bmdfZG93biApCisgICAgICAgICAgICBpZiAoIHJjICE9IFg4NkVNVUxfUkVUUlkgfHwgY3VycmQt PmlzX3NodXR0aW5nX2Rvd24gKQogICAgICAgICAgICAgICAgIHZpby0+aW9fcmVxLnN0YXRlID0g U1RBVEVfSU9SRVFfTk9ORTsKICAgICAgICAgICAgIGVsc2UgaWYgKCBkYXRhX2lzX2FkZHIgKQog ICAgICAgICAgICAgICAgIHJjID0gWDg2RU1VTF9PS0FZOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS9pb3JlcS5jIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCmluZGV4IGFkMmVkYWQu LjViZjNiNmQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYworKysgYi94ZW4v YXJjaC94ODYvaHZtL2lvcmVxLmMKQEAgLTc1Myw2ICs3NTMsOCBAQCBpbnQgaHZtX2Rlc3Ryb3lf aW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQpCiAKICAgICAgICAg ZG9tYWluX3BhdXNlKGQpOwogCisgICAgICAgIHAybV9zZXRfaW9yZXFfc2VydmVyKGQsIDAsIHMp OworCiAgICAgICAgIGh2bV9pb3JlcV9zZXJ2ZXJfZGlzYWJsZShzLCAwKTsKIAogICAgICAgICBs aXN0X2RlbCgmcy0+bGlzdF9lbnRyeSk7CkBAIC05MTQsNiArOTE2LDQ4IEBAIGludCBodm1fdW5t YXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRf dCBpZCwKICAgICByZXR1cm4gcmM7CiB9CiAKKy8qCisgKiBNYXAgb3IgdW5tYXAgYW4gaW9yZXEg c2VydmVyIHRvIHNwZWNpZmljIG1lbW9yeSB0eXBlLiBGb3Igbm93LCBvbmx5CisgKiBIVk1NRU1f aW9yZXFfc2VydmVyIGlzIHN1cHBvcnRlZCwgYW5kIGluIHRoZSBmdXR1cmUgbmV3IHR5cGVzIGNh biBiZQorICogaW50cm9kdWNlZCwgZS5nLiBIVk1NRU1faW9yZXFfc2VydmVyWCBtYXBwZWQgdG8g aW9yZXEgc2VydmVyIFguIEFuZAorICogY3VycmVudGx5LCBvbmx5IHdyaXRlIG9wZXJhdGlvbnMg YXJlIHRvIGJlIGZvcndhcmRlZCB0byBhbiBpb3JlcSBzZXJ2ZXIuCisgKiBTdXBwb3J0IGZvciB0 aGUgZW11bGF0aW9uIG9mIHJlYWQgb3BlcmF0aW9ucyBjYW4gYmUgYWRkZWQgd2hlbiBhbiBpb3Jl cQorICogc2VydmVyIGhhcyBzdWNoIHJlcXVpcmVtZW50IGluIHRoZSBmdXR1cmUuCisgKi8KK2lu dCBodm1fbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3Nl cnZpZF90IGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90 IHR5cGUsIHVpbnQzMl90IGZsYWdzKQoreworICAgIHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpz OworICAgIGludCByYzsKKworICAgIGlmICggdHlwZSAhPSBIVk1NRU1faW9yZXFfc2VydmVyICkK KyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBpZiAoIGZsYWdzICYgflhFTl9ETU9QX0lP UkVRX01FTV9BQ0NFU1NfV1JJVEUgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHNw aW5fbG9ja19yZWN1cnNpdmUoJmQtPmFyY2guaHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubG9jayk7 CisKKyAgICByYyA9IC1FTk9FTlQ7CisgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIHMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICZkLT5hcmNoLmh2bV9kb21haW4uaW9yZXFfc2VydmVyLmxp c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RfZW50cnkgKQorICAgIHsKKyAgICAg ICAgaWYgKCBzID09IGQtPmFyY2guaHZtX2RvbWFpbi5kZWZhdWx0X2lvcmVxX3NlcnZlciApCisg ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoIHMtPmlkID09IGlkICkKKyAgICAg ICAgeworICAgICAgICAgICAgcmMgPSBwMm1fc2V0X2lvcmVxX3NlcnZlcihkLCBmbGFncywgcyk7 CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHNwaW5fdW5sb2Nr X3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKworICAg IHJldHVybiByYzsKK30KKwogaW50IGh2bV9zZXRfaW9yZXFfc2VydmVyX3N0YXRlKHN0cnVjdCBk b21haW4gKmQsIGlvc2VydmlkX3QgaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbF90IGVuYWJsZWQpCiB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5j IGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwppbmRleCA1Njg5NDRmLi5jYzFlYjIxIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9w Mm0tZXB0LmMKQEAgLTEzMSw2ICsxMzEsMTMgQEAgc3RhdGljIHZvaWQgZXB0X3AybV90eXBlX3Rv X2ZsYWdzKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIGVwdF9lbnRyeV90ICplbnRyeSwKICAgICAg ICAgICAgIGVudHJ5LT5yID0gZW50cnktPncgPSBlbnRyeS0+eCA9IDE7CiAgICAgICAgICAgICBl bnRyeS0+YSA9IGVudHJ5LT5kID0gISFjcHVfaGFzX3ZteF9lcHRfYWQ7CiAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgY2FzZSBwMm1faW9yZXFfc2VydmVyOgorICAgICAgICAgICAgZW50cnkt PnIgPSAxOworICAgICAgICAgICAgZW50cnktPncgPSAhKHAybS0+aW9yZXEuZmxhZ3MgJiBYRU5f RE1PUF9JT1JFUV9NRU1fQUNDRVNTX1dSSVRFKTsKKyAgICAgICAgICAgIGVudHJ5LT54ID0gMDsK KyAgICAgICAgICAgIGVudHJ5LT5hID0gISFjcHVfaGFzX3ZteF9lcHRfYWQ7CisgICAgICAgICAg ICBlbnRyeS0+ZCA9IGVudHJ5LT53ICYmIGVudHJ5LT5hOworICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgIGNhc2UgcDJtX21taW9fZGlyZWN0OgogICAgICAgICAgICAgZW50cnktPnIgPSBlbnRy eS0+eCA9IDE7CiAgICAgICAgICAgICBlbnRyeS0+dyA9ICFyYW5nZXNldF9jb250YWluc19zaW5n bGV0b24obW1pb19yb19yYW5nZXMsCkBAIC0xNzAsNyArMTc3LDYgQEAgc3RhdGljIHZvaWQgZXB0 X3AybV90eXBlX3RvX2ZsYWdzKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIGVwdF9lbnRyeV90ICpl bnRyeSwKICAgICAgICAgICAgIGVudHJ5LT5hID0gZW50cnktPmQgPSAhIWNwdV9oYXNfdm14X2Vw dF9hZDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIHAybV9ncmFudF9tYXBfcm86 Ci0gICAgICAgIGNhc2UgcDJtX2lvcmVxX3NlcnZlcjoKICAgICAgICAgICAgIGVudHJ5LT5yID0g MTsKICAgICAgICAgICAgIGVudHJ5LT53ID0gZW50cnktPnggPSAwOwogICAgICAgICAgICAgZW50 cnktPmEgPSAhIWNwdV9oYXNfdm14X2VwdF9hZDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9t bS9wMm0tcHQuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwppbmRleCAyNjhiMjMyLi5jMDA1 NWYzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gv eDg2L21tL3AybS1wdC5jCkBAIC03MCw3ICs3MCw5IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBs b25nIHBndFtdID0gewogICAgIFBHVF9sM19wYWdlX3RhYmxlCiB9OwogCi1zdGF0aWMgdW5zaWdu ZWQgbG9uZyBwMm1fdHlwZV90b19mbGFncyhwMm1fdHlwZV90IHQsIG1mbl90IG1mbiwKK3N0YXRp YyB1bnNpZ25lZCBsb25nIHAybV90eXBlX3RvX2ZsYWdzKGNvbnN0IHN0cnVjdCBwMm1fZG9tYWlu ICpwMm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fdHlwZV90 IHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwp CiB7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTkyLDggKzk0LDEyIEBAIHN0YXRpYyB1 bnNpZ25lZCBsb25nIHAybV90eXBlX3RvX2ZsYWdzKHAybV90eXBlX3QgdCwgbWZuX3QgbWZuLAog ICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmbGFncyB8IF9QQUdFX05YX0JJVDsKICAgICBj YXNlIHAybV9ncmFudF9tYXBfcm86Ci0gICAgY2FzZSBwMm1faW9yZXFfc2VydmVyOgogICAgICAg ICByZXR1cm4gZmxhZ3MgfCBQMk1fQkFTRV9GTEFHUyB8IF9QQUdFX05YX0JJVDsKKyAgICBjYXNl IHAybV9pb3JlcV9zZXJ2ZXI6CisgICAgICAgIGZsYWdzIHw9IFAyTV9CQVNFX0ZMQUdTIHwgX1BB R0VfUlcgfCBfUEFHRV9OWF9CSVQ7CisgICAgICAgIGlmICggcDJtLT5pb3JlcS5mbGFncyAmIFhF Tl9ETU9QX0lPUkVRX01FTV9BQ0NFU1NfV1JJVEUgKQorICAgICAgICAgICAgcmV0dXJuIGZsYWdz ICYgfl9QQUdFX1JXOworICAgICAgICByZXR1cm4gZmxhZ3M7CiAgICAgY2FzZSBwMm1fcmFtX3Jv OgogICAgIGNhc2UgcDJtX3JhbV9sb2dkaXJ0eToKICAgICBjYXNlIHAybV9yYW1fc2hhcmVkOgpA QCAtNDQwLDcgKzQ0Niw4IEBAIHN0YXRpYyBpbnQgZG9fcmVjYWxjKHN0cnVjdCBwMm1fZG9tYWlu ICpwMm0sIHVuc2lnbmVkIGxvbmcgZ2ZuKQogICAgICAgICAgICAgcDJtX3R5cGVfdCBwMm10ID0g cDJtX2lzX2xvZ2RpcnR5X3JhbmdlKHAybSwgZ2ZuICYgbWFzaywgZ2ZuIHwgfm1hc2spCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA/IHAybV9yYW1fbG9nZGlydHkgOiBwMm1fcmFtX3J3 OwogICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBsMWVfZ2V0X3BmbihlKTsKLSAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBwMm1fdHlwZV90b19mbGFncyhwMm10LCBfbWZu KG1mbiksIGxldmVsKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBwMm1fdHlw ZV90b19mbGFncyhwMm0sIHAybXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgX21mbihtZm4pLCBsZXZlbCk7CiAKICAgICAgICAgICAgIGlmICgg bGV2ZWwgKQogICAgICAgICAgICAgewpAQCAtNTc4LDcgKzU4NSw3IEBAIHAybV9wdF9zZXRfZW50 cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm4sIG1mbl90IG1mbiwK ICAgICAgICAgQVNTRVJUKCFtZm5fdmFsaWQobWZuKSB8fCBwMm10ICE9IHAybV9tbWlvX2RpcmVj dCk7CiAgICAgICAgIGwzZV9jb250ZW50ID0gbWZuX3ZhbGlkKG1mbikgfHwgcDJtX2FsbG93c19p bnZhbGlkX21mbihwMm10KQogICAgICAgICAgICAgPyBsM2VfZnJvbV9wZm4obWZuX3gobWZuKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybV90eXBlX3RvX2ZsYWdzKHAybXQsIG1mbiwg MikgfCBfUEFHRV9QU0UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fdHlwZV90b19m bGFncyhwMm0sIHAybXQsIG1mbiwgMikgfCBfUEFHRV9QU0UpCiAgICAgICAgICAgICA6IGwzZV9l bXB0eSgpOwogICAgICAgICBlbnRyeV9jb250ZW50LmwxID0gbDNlX2NvbnRlbnQubDM7CiAKQEAg LTYxNSw3ICs2MjIsNyBAQCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0s IHVuc2lnbmVkIGxvbmcgZ2ZuLCBtZm5fdCBtZm4sCiAKICAgICAgICAgaWYgKCBtZm5fdmFsaWQo bWZuKSB8fCBwMm1fYWxsb3dzX2ludmFsaWRfbWZuKHAybXQpICkKICAgICAgICAgICAgIGVudHJ5 X2NvbnRlbnQgPSBwMm1fbDFlX2Zyb21fcGZuKG1mbl94KG1mbiksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fdHlwZV90b19mbGFncyhwMm10LCBtZm4s IDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX3R5cGVf dG9fZmxhZ3MocDJtLCBwMm10LCBtZm4sIDApKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg ZW50cnlfY29udGVudCA9IGwxZV9lbXB0eSgpOwogCkBAIC02NTIsNyArNjU5LDcgQEAgcDJtX3B0 X3NldF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbiwgbWZu X3QgbWZuLAogICAgICAgICBBU1NFUlQoIW1mbl92YWxpZChtZm4pIHx8IHAybXQgIT0gcDJtX21t aW9fZGlyZWN0KTsKICAgICAgICAgaWYgKCBtZm5fdmFsaWQobWZuKSB8fCBwMm1fYWxsb3dzX2lu dmFsaWRfbWZuKHAybXQpICkKICAgICAgICAgICAgIGwyZV9jb250ZW50ID0gbDJlX2Zyb21fcGZu KG1mbl94KG1mbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1f dHlwZV90b19mbGFncyhwMm10LCBtZm4sIDEpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHAybV90eXBlX3RvX2ZsYWdzKHAybSwgcDJtdCwgbWZuLCAxKSB8CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfUEFHRV9QU0UpOwogICAgICAgICBl bHNlCiAgICAgICAgICAgICBsMmVfY29udGVudCA9IGwyZV9lbXB0eSgpOwpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3AybS5jCmluZGV4IGQzODAw NGMuLmI4NGFkZDAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYworKysgYi94ZW4v YXJjaC94ODYvbW0vcDJtLmMKQEAgLTgyLDYgKzgyLDggQEAgc3RhdGljIGludCBwMm1faW5pdGlh bGlzZShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtKQogICAgIGVsc2UK ICAgICAgICAgcDJtX3B0X2luaXQocDJtKTsKIAorICAgIHNwaW5fbG9ja19pbml0KCZwMm0tPmlv cmVxLmxvY2spOworCiAgICAgcmV0dXJuIHJldDsKIH0KIApAQCAtMjg2LDYgKzI4OCw2MiBAQCB2 b2lkIHAybV9tZW1vcnlfdHlwZV9jaGFuZ2VkKHN0cnVjdCBkb21haW4gKmQpCiAgICAgfQogfQog CitpbnQgcDJtX3NldF9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCit7CisgICAgc3RydWN0IHAybV9kb21haW4g KnAybSA9IHAybV9nZXRfaG9zdHAybShkKTsKKyAgICBpbnQgcmM7CisKKyAgICAvKgorICAgICAq IFVzZSBsb2NrIHRvIHByZXZlbnQgY29uY3VycmVudCBzZXR0aW5nIGF0dGVtcHRzCisgICAgICog ZnJvbSBtdWx0aXBsZSBpb3JlcSBzZXJ2ZXJzLgorICAgICAqLworICAgIHNwaW5fbG9jaygmcDJt LT5pb3JlcS5sb2NrKTsKKworICAgIC8qIFVubWFwIGlvcmVxIHNlcnZlciBmcm9tIHAybSB0eXBl IGJ5IHBhc3NpbmcgZmxhZ3Mgd2l0aCAwLiAqLworICAgIGlmICggZmxhZ3MgPT0gMCApCisgICAg eworICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgIGlmICggcDJtLT5pb3JlcS5zZXJ2ZXIg IT0gcyApCisgICAgICAgICAgICBnb3RvIG91dDsKKworICAgICAgICBwMm0tPmlvcmVxLnNlcnZl ciA9IE5VTEw7CisgICAgICAgIHAybS0+aW9yZXEuZmxhZ3MgPSAwOworICAgIH0KKyAgICBlbHNl CisgICAgeworICAgICAgICByYyA9IC1FQlVTWTsKKyAgICAgICAgaWYgKCBwMm0tPmlvcmVxLnNl cnZlciAhPSBOVUxMICkKKyAgICAgICAgICAgIGdvdG8gb3V0OworCisgICAgICAgIHAybS0+aW9y ZXEuc2VydmVyID0gczsKKyAgICAgICAgcDJtLT5pb3JlcS5mbGFncyA9IGZsYWdzOworICAgIH0K KworICAgIHJjID0gMDsKKworIG91dDoKKyAgICBzcGluX3VubG9jaygmcDJtLT5pb3JlcS5sb2Nr KTsKKworICAgIHJldHVybiByYzsKK30KKworc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnAybV9n ZXRfaW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpmbGFncykKK3sKKyAgICBzdHJ1 Y3QgcDJtX2RvbWFpbiAqcDJtID0gcDJtX2dldF9ob3N0cDJtKGQpOworICAgIHN0cnVjdCBodm1f aW9yZXFfc2VydmVyICpzOworCisgICAgc3Bpbl9sb2NrKCZwMm0tPmlvcmVxLmxvY2spOworCisg ICAgcyA9IHAybS0+aW9yZXEuc2VydmVyOworICAgICpmbGFncyA9IHAybS0+aW9yZXEuZmxhZ3M7 CisKKyAgICBzcGluX3VubG9jaygmcDJtLT5pb3JlcS5sb2NrKTsKKyAgICByZXR1cm4gczsKK30K Kwogdm9pZCBwMm1fZW5hYmxlX2hhcmR3YXJlX2xvZ19kaXJ0eShzdHJ1Y3QgZG9tYWluICpkKQog ewogICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSBwMm1fZ2V0X2hvc3RwMm0oZCk7CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMgYi94ZW4vYXJjaC94ODYvbW0v c2hhZG93L211bHRpLmMKaW5kZXggNDc5OGM5My4uNTE5NWQ2MSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVs dGkuYwpAQCAtMzMwNiw4ICszMzA2LDcgQEAgc3RhdGljIGludCBzaF9wYWdlX2ZhdWx0KHN0cnVj dCB2Y3B1ICp2LAogICAgIH0KIAogICAgIC8qIE5lZWQgdG8gaGFuZCBvZmYgZGV2aWNlLW1vZGVs IE1NSU8gdG8gdGhlIGRldmljZSBtb2RlbCAqLwotICAgIGlmICggcDJtdCA9PSBwMm1fbW1pb19k bQotICAgICAgICAgfHwgKHAybXQgPT0gcDJtX2lvcmVxX3NlcnZlciAmJiBmdCA9PSBmdF9kZW1h bmRfd3JpdGUpICkKKyAgICBpZiAoIHAybXQgPT0gcDJtX21taW9fZG0gKQogICAgIHsKICAgICAg ICAgZ3BhID0gZ3Vlc3Rfd2Fsa190b19ncGEoJmd3KTsKICAgICAgICAgZ290byBtbWlvOwpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEuaCBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL2lvcmVxLmgKaW5kZXggZmJmMmM3NC4uYjQzNjY3YSAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS9pb3JlcS5oCkBAIC0zNyw2ICszNyw4IEBAIGludCBodm1fbWFwX2lvX3JhbmdlX3RvX2lvcmVx X3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogaW50IGh2bV91bm1hcF9p b19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlk LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0eXBl LCB1aW50NjRfdCBzdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDY0X3QgZW5kKTsKK2ludCBodm1fbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlcihz dHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90IHR5cGUsIHVpbnQzMl90IGZsYWdzKTsKIGludCBodm1fc2V0 X2lvcmVxX3NlcnZlcl9zdGF0ZShzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xfdCBlbmFibGVkKTsKIApkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgK aW5kZXggYmMxODlkMS4uNDUyMTYyMCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9w Mm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCkBAIC04OSw3ICs4OSw4IEBAIHR5 cGVkZWYgdW5zaWduZWQgaW50IHAybV9xdWVyeV90OwogICAgICAgICAgICAgICAgICAgICAgICB8 IHAybV90b19tYXNrKHAybV9yYW1fcGFnaW5nX291dCkgICAgICBcCiAgICAgICAgICAgICAgICAg ICAgICAgIHwgcDJtX3RvX21hc2socDJtX3JhbV9wYWdlZCkgICAgICAgICAgIFwKICAgICAgICAg ICAgICAgICAgICAgICAgfCBwMm1fdG9fbWFzayhwMm1fcmFtX3BhZ2luZ19pbikgICAgICAgXAot ICAgICAgICAgICAgICAgICAgICAgICB8IHAybV90b19tYXNrKHAybV9yYW1fc2hhcmVkKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgfCBwMm1fdG9fbWFzayhwMm1fcmFtX3NoYXJlZCkgICAgICAg ICAgXAorICAgICAgICAgICAgICAgICAgICAgICB8IHAybV90b19tYXNrKHAybV9pb3JlcV9zZXJ2 ZXIpKQogCiAvKiBUeXBlcyB0aGF0IHJlcHJlc2VudCBhIHBoeXNtYXAgaG9sZSB0aGF0IGlzIG9r IHRvIHJlcGxhY2Ugd2l0aCBhIHNoYXJlZAogICogZW50cnkgKi8KQEAgLTExMSw4ICsxMTIsNyBA QCB0eXBlZGVmIHVuc2lnbmVkIGludCBwMm1fcXVlcnlfdDsKICNkZWZpbmUgUDJNX1JPX1RZUEVT IChwMm1fdG9fbWFzayhwMm1fcmFtX2xvZ2RpcnR5KSAgICAgXAogICAgICAgICAgICAgICAgICAg ICAgIHwgcDJtX3RvX21hc2socDJtX3JhbV9ybykgICAgICAgICBcCiAgICAgICAgICAgICAgICAg ICAgICAgfCBwMm1fdG9fbWFzayhwMm1fZ3JhbnRfbWFwX3JvKSAgIFwKLSAgICAgICAgICAgICAg ICAgICAgICB8IHAybV90b19tYXNrKHAybV9yYW1fc2hhcmVkKSAgICAgXAotICAgICAgICAgICAg ICAgICAgICAgIHwgcDJtX3RvX21hc2socDJtX2lvcmVxX3NlcnZlcikpCisgICAgICAgICAgICAg ICAgICAgICAgfCBwMm1fdG9fbWFzayhwMm1fcmFtX3NoYXJlZCkpCiAKIC8qIFdyaXRlLWRpc2Nh cmQgdHlwZXMsIHdoaWNoIHNob3VsZCBkaXNjYXJkIHRoZSB3cml0ZSBvcGVyYXRpb25zICovCiAj ZGVmaW5lIFAyTV9ESVNDQVJEX1dSSVRFX1RZUEVTIChwMm1fdG9fbWFzayhwMm1fcmFtX3JvKSAg ICAgXApAQCAtMzM2LDYgKzMzNiwyMCBAQCBzdHJ1Y3QgcDJtX2RvbWFpbiB7CiAgICAgICAgIHN0 cnVjdCBlcHRfZGF0YSBlcHQ7CiAgICAgICAgIC8qIE5QVC1lcXVpdmFsZW50IHN0cnVjdHVyZSBj b3VsZCBiZSBhZGRlZCBoZXJlLiAqLwogICAgIH07CisKKyAgICAgc3RydWN0IHsKKyAgICAgICAg IHNwaW5sb2NrX3QgbG9jazsKKyAgICAgICAgIC8qCisgICAgICAgICAgKiBpb3JlcSBzZXJ2ZXIg d2hvJ3MgcmVzcG9uc2libGUgZm9yIHRoZSBlbXVsYXRpb24gb2YKKyAgICAgICAgICAqIGdmbnMg d2l0aCBzcGVjaWZpYyBwMm0gdHlwZShmb3Igbm93LCBwMm1faW9yZXFfc2VydmVyKS4KKyAgICAg ICAgICAqLworICAgICAgICAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnNlcnZlcjsKKyAgICAg ICAgIC8qCisgICAgICAgICAgKiBmbGFncyBzcGVjaWZpZXMgd2hldGhlciByZWFkLCB3cml0ZSBv ciBib3RoIG9wZXJhdGlvbnMKKyAgICAgICAgICAqIGFyZSB0byBiZSBlbXVsYXRlZCBieSBhbiBp b3JlcSBzZXJ2ZXIuCisgICAgICAgICAgKi8KKyAgICAgICAgIHVuc2lnbmVkIGludCBmbGFnczsK KyAgICAgfSBpb3JlcTsKIH07CiAKIC8qIGdldCBob3N0IHAybSB0YWJsZSAqLwpAQCAtODI3LDYg Kzg0MSwxMSBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBwMm1fZ2V0X2lvbW11X2ZsYWdz KHAybV90eXBlX3QgcDJtdCwgbWZuX3QgbWZuKQogICAgIHJldHVybiBmbGFnczsKIH0KIAoraW50 IHAybV9zZXRfaW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBmbGFn cywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcyk7 CitzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcDJtX2dldF9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRv bWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgKmZsYWdzKTsKKwogI2VuZGlmIC8qIF9YRU5fQVNNX1g4Nl9QMk1fSCAqLwog CiAvKgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oIGIveGVuL2lu Y2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCmluZGV4IGY1NGNlY2UuLjVlYTc5ZWYgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJs aWMvaHZtL2RtX29wLmgKQEAgLTMxOCw2ICszMTgsMzIgQEAgc3RydWN0IHhlbl9kbV9vcF9pbmpl Y3RfbXNpIHsKICAgICB1aW50NjRfYWxpZ25lZF90IGFkZHI7CiB9OwogCisvKgorICogWEVOX0RN T1BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciA6IG1hcCBvciB1bm1hcCB0aGUgSU9SRVEg U2VydmVyIDxpZD4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBz cGVjaWZpYyBtZW1vcnkgdHlwZSA8dHlwZT4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmb3Igc3BlY2lmaWMgYWNjZXNzZXMgPGZsYWdzPgorICoKKyAqIEZvciBub3cs IGZsYWdzIG9ubHkgYWNjZXB0IHRoZSB2YWx1ZSBvZiBYRU5fRE1PUF9JT1JFUV9NRU1fQUNDRVNT X1dSSVRFLAorICogd2hpY2ggbWVhbnMgb25seSB3cml0ZSBvcGVyYXRpb25zIGFyZSB0byBiZSBm b3J3YXJkZWQgdG8gYW4gaW9yZXEgc2VydmVyLgorICogU3VwcG9ydCBmb3IgdGhlIGVtdWxhdGlv biBvZiByZWFkIG9wZXJhdGlvbnMgY2FuIGJlIGFkZGVkIHdoZW4gYW4gaW9yZXEKKyAqIHNlcnZl ciBoYXMgc3VjaCByZXF1aXJlbWVudCBpbiBmdXR1cmUuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1Bf bWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciAxNQorCitzdHJ1Y3QgeGVuX2RtX29wX21hcF9t ZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIgeworICAgIGlvc2VydmlkX3QgaWQ7ICAgICAgLyogSU4g LSBpb3JlcSBzZXJ2ZXIgaWQgKi8KKyAgICB1aW50MTZfdCB0eXBlOyAgICAgIC8qIElOIC0gbWVt b3J5IHR5cGUgKi8KKyAgICB1aW50MzJfdCBmbGFnczsgICAgIC8qIElOIC0gdHlwZXMgb2YgYWNj ZXNzZXMgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg aW9yZXEgc2VydmVyLiBmbGFncyB3aXRoIDAgbWVhbnMgdG8gdW5tYXAgdGhlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBpb3JlcSBzZXJ2ZXIgKi8KKworI2RlZmluZSBYRU5fRE1PUF9JT1JF UV9NRU1fQUNDRVNTX1JFQUQgKDF1IDw8IDApCisjZGVmaW5lIFhFTl9ETU9QX0lPUkVRX01FTV9B Q0NFU1NfV1JJVEUgKDF1IDw8IDEpCisKKyAgICB1aW50NjRfdCBvcGFxdWU7ICAgIC8qIElOL09V VCAtIG9ubHkgdXNlZCBmb3IgaHlwZXJjYWxsIGNvbnRpbnVhdGlvbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIGhhcyB0byBiZSBzZXQgdG8gemVybyBieSB0aGUgY2FsbGVyICovCit9Owor CiBzdHJ1Y3QgeGVuX2RtX29wIHsKICAgICB1aW50MzJfdCBvcDsKICAgICB1aW50MzJfdCBwYWQ7 CkBAIC0zMzYsNiArMzYyLDggQEAgc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgICAgIHN0cnVjdCB4 ZW5fZG1fb3Bfc2V0X21lbV90eXBlIHNldF9tZW1fdHlwZTsKICAgICAgICAgc3RydWN0IHhlbl9k bV9vcF9pbmplY3RfZXZlbnQgaW5qZWN0X2V2ZW50OwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29w X2luamVjdF9tc2kgaW5qZWN0X21zaTsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9tYXBfbWVt X3R5cGVfdG9faW9yZXFfc2VydmVyCisgICAgICAgICAgICAgICAgbWFwX21lbV90eXBlX3RvX2lv cmVxX3NlcnZlcjsKICAgICB9IHU7CiB9OwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJs aWMvaHZtL2h2bV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAppbmRleCBi YzAwZWYwLi4wYmRhZmRmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9v cC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKQEAgLTkzLDcgKzkzLDEz IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgSFZNTUVNX3VudXNlZCwgICAgICAgICAgICAgLyogUGxh Y2Vob2xkZXI7IHNldHRpbmcgbWVtb3J5IHRvIHRoaXMgdHlwZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHdpbGwgZmFpbCBmb3IgY29kZSBhZnRlciA0LjcuMCAqLwogI2VuZGlm Ci0gICAgSFZNTUVNX2lvcmVxX3NlcnZlcgorICAgIEhWTU1FTV9pb3JlcV9zZXJ2ZXIgICAgICAg IC8qIE1lbW9yeSB0eXBlIGNsYWltZWQgYnkgYW4gaW9yZXEgc2VydmVyOyB0eXBlCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlcyB0byB0aGlzIHZhbHVlIGFyZSBvbmx5 IGFsbG93ZWQgYWZ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBpb3Jl cSBzZXJ2ZXIgaGFzIGNsYWltZWQgaXRzIG93bmVyc2hpcC4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPbmx5IHBhZ2VzIHdpdGggSFZNTUVNX3JhbV9ydyBhcmUgYWxsb3dlZCB0 bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZSB0byB0aGlzIHR5cGU7 IGNvbnZlcnNlbHksIHBhZ2VzIHdpdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGlzIHR5cGUgYXJlIG9ubHkgYWxsb3dlZCB0byBiZSBjaGFuZ2VkIGJhY2sKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0byBIVk1NRU1fcmFtX3J3LiAqLwogfSBodm1tZW1f dHlwZV90OwogCiAvKiBIaW50IGZyb20gUFYgZHJpdmVycyBmb3IgcGFnZXRhYmxlIGRlc3RydWN0 aW9uLiAqLwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK