From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Zhang Subject: [PATCH v12 2/6] x86/ioreq server: Add DMOP to map guest ram with p2m_ioreq_server to an ioreq server. Date: Thu, 6 Apr 2017 23:53:33 +0800 Message-ID: <1491494017-30743-3-git-send-email-yu.c.zhang@linux.intel.com> References: <1491494017-30743-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: <1491494017-30743-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 bG93ZWQuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXgu Y29tPgpTaWduZWQtb2ZmLWJ5OiBZdSBaaGFuZyA8eXUuYy56aGFuZ0BsaW51eC5pbnRlbC5jb20+ CkFja2VkLWJ5OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KUmV2aWV3ZWQtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEdlb3JnZSBEdW5sYXAgPGdlb3Jn ZS5kdW5sYXBAY2l0cml4LmNvbT4KLS0tCk5vdGU6IHRoaXMgcGF0Y2ggc2hhbGwgYmUgYWNjZXB0 ZWQgdG9nZXRoZXIgd2l0aCB0aGUgZm9sbG93aW5nIG9uZXMgaW4KdGhpcyBzZXJpZXMuCgpDYzog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJp eC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkNj OiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkNjOiBLZXZpbiBUaWFuIDxr ZXZpbi50aWFuQGludGVsLmNvbT4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgoKY2hhbmdl cyBpbiB2MTE6CiAgLSBBY2NvcmRpbmcgdG8gY29tbWVudHMgZnJvbSBKYW46IGNvbW1pdCBtZXNz YWdlIGNoYW5nZS4KICAtIEFkZGVkICJSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNo QHN1c2UuY29tPiIKICAtIEFkZGVkICJSZXZpZXdlZC1ieTogR2VvcmdlIER1bmxhcCA8Z2Vvcmdl LmR1bmxhcEBjaXRyaXguY29tPiIKCmNoYW5nZXMgaW4gdjEwOgogIC0gQWNjb3JkaW5nIHRvIGNv bW1lbnRzIGZyb20gSmFuOiBhZGQgYSBuZXcgcGF0Y2ggZm9yIHRoZSBsaWJkZXZpY2Vtb2RlbCBh bmQgCiAgICBsaWJ4YyBpbnRlcmZhY2UuCiAgLSBBY2NvcmRpbmcgdG8gY29tbWVudHMgZnJvbSBK YW46IHJlbW92ZSBwMm1fZGVzdHJveV9pb3JlcV9zZXJ2ZXIoKSwgdXNlIAogICAgcDJtX3NldF9p b3JlcV9zZXJ2ZXIoZCwgMCwgcykgaW5zdGVhZC4KICAtIEFjY29yZGluZyB0byBjb21tZW50cyBm cm9tIEphbiAmIEtldmluOiBjb21tZW50cyBjaGFuZ2VzIGluIGh2bWVtdWxfZG9faW8oKS4KICAt IEFjY29yZGluZyB0byBjb21tZW50cyBmcm9tIEphbiAmIEtldmluOiBjb21taXQgbWVzc2FnZSAg Y2hhbmdlcy4KCmNoYW5nZXMgaW4gdjg6CiAgLSBBY2NvcmRpbmcgdG8gY29tbWVudHMgZnJvbSBK YW4gJiBQYXVsOiBjb21tZW50cyBjaGFuZ2VzIGluIGh2bWVtdWxfZG9faW8oKS4KICAtIEFjY29y ZGluZyB0byBjb21tZW50cyBmcm9tIEphbjogcmVtb3ZlIHRoZSByZWR1bmRhbnQgY29kZSB3aGlj aCB3b3VsZCBvbmx5CiAgICBiZSB1c2VmdWwgZm9yIHJlYWQgZW11bGF0aW9ucy4KICAtIEFjY29y ZGluZyB0byBjb21tZW50cyBmcm9tIEphbjogY2hhbmdlIGludGVyZmFjZSB3aGljaCBtYXBzIG1l bSB0eXBlIHRvCiAgICBpb3JlcSBzZXJ2ZXIsIHJlbW92ZWQgdWludDE2X3QgcGFkIGFuZCBhZGRl ZCBhbiB1aW50NjRfdCBvcGFxdWUuCiAgLSBBZGRyZXNzIG90aGVyIGNvbW1lbnRzIGZyb20gSmFu LCBpLmUuIGNvcnJlY3QgcmV0dXJuIHZhbHVlczsgcmVtb3ZlIHN0cmF5CiAgICBjYXN0LgoKY2hh bmdlcyBpbiB2NzoKICAtIFVzZSBuZXcgaW9yZXEgc2VydmVyIGludGVyZmFjZSAtIFhFTl9ETU9Q X21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIuCiAgLSBBY2NvcmRpbmcgdG8gY29tbWVudHMg ZnJvbSBHZW9yZ2U6IHJlbW92ZWQgZG9tYWluX3BhdXNlL3VucGF1c2UoKSBpbgogICAgaHZtX21h cF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIoKSwgYmVjYXVzZSBpdCdzIHRvbyBleHBlbnNpdmUs CiAgICBhbmQgd2UgY2FuIGF2b2lkIHRoZToKICAgIGE+IGRlYWRsb2NrIGlzc3VlIGV4aXN0ZWQg aW4gdjYgcGF0Y2gsIGJldHdlZW4gcDJtIGxvY2sgYW5kIGlvcmVxIHNlcnZlcgogICAgICAgbG9j ayBieSB1c2luZyB0aGVzZSBsb2NrcyBpbiB0aGUgc2FtZSBvcmRlciAtIHNvbHZlZCBpbiBwYXRj aCA0OwogICAgYj4gZm9yIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdm0gZXhpdCBhbmQgaW9yZXEg c2VydmVyIHVuYmluZGluZywgd2UgY2FuCiAgICAgICBqdXN0IHJldHJ5IHRoaXMgaW5zdHJ1Y3Rp b24uCiAgLSBBY2NvcmRpbmcgdG8gY29tbWVudHMgZnJvbSBKYW4gYW5kIEdlb3JnZTogY29udGlu dWUgdG8gY2xhcmlmeSBsb2dpYyBpbgogICAgaHZtZW11bF9kb19pbygpLgogIC0gQWNjb3JkaW5n IHRvIGNvbW1lbnRzIGZyb20gSmFuOiBjbGFyaWZ5IGNvbW1lbnQgaW4gcDJtX3NldF9pb3JlcV9z ZXJ2ZXIoKS4KCmNoYW5nZXMgaW4gdjY6CiAgLSBDbGFyaWZ5IGxvZ2ljIGluIGh2bWVtdWxfZG9f aW8oKS4KICAtIFVzZSByZWN1cnNpdmUgbG9jayBmb3IgaW9yZXEgc2VydmVyIGxvY2suCiAgLSBS ZW1vdmUgZGVidWcgcHJpbnQgd2hlbiBtYXBwaW5nIGlvcmVxIHNlcnZlci4KICAtIENsYXJpZnkg Y29kZSBpbiBlcHRfcDJtX3R5cGVfdG9fZmxhZ3MoKSBmb3IgY29uc2lzdGVuY3kuCiAgLSBSZW1v dmUgZGVmaW5pdGlvbiBvZiBQMk1fSU9SRVFfSEFORExFX1dSSVRFX0FDQ0VTUy4KICAtIEFkZCBj b21tZW50cyBmb3IgSFZNTUVNX2lvcmVxX3NlcnZlciB0byBub3RlIG9ubHkgY2hhbmdlcwogICAg dG8vZnJvbSBIVk1NRU1fcmFtX3J3IGFyZSBwZXJtaXR0ZWQuCiAgLSBBZGQgZG9tYWluX3BhdXNl L3VucGF1c2UoKSBpbiBodm1fbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlcigpCiAgICB0byBh dm9pZCB0aGUgcmFjZSBjb25kaXRpb24gd2hlbiBhIHZtIGV4aXQgaGFwcGVucyBvbiBhIHdyaXRl LQogICAgcHJvdGVjdGVkIHBhZ2UsIGp1c3QgdG8gZmluZCB0aGUgaW9yZXEgc2VydmVyIGhhcyBi ZWVuIHVubWFwcGVkCiAgICBhbHJlYWR5LgogIC0gSW50cm9kdWNlIGEgc2VwZXJhdGUgcGF0Y2gg dG8gZGVsYXkgdGhlIHJlbGVhc2Ugb2YgcDJtCiAgICBsb2NrIHRvIGF2b2lkIHRoZSByYWNlIGNv bmRpdGlvbi4KICAtIEludHJvZHVjZSBhIHNlcGVyYXRlIHBhdGNoIHRvIGhhbmRsZSB0aGUgcmVh ZC1tb2RpZnktd3JpdGUKICAgIG9wZXJhdGlvbnMgb24gYSB3cml0ZSBwcm90ZWN0ZWQgcGFnZS4K CmNoYW5nZXMgaW4gdjU6CiAgLSBTaW1wbGlmeSBsb2dpYyBpbiBodm1lbXVsX2RvX2lvKCkuCiAg LSBVc2UgbmF0dWFsIHdpZHRoIHR5cGVzIGluc3RlYWQgb2YgZml4ZWQgd2lkdGggdHlwZXMgd2hl biBwb3NzaWJsZS4KICAtIERvIG5vdCBncmFudCBleGVjdXRhYmxlIHBlcm1pc3Npb24gZm9yIHAy bV9pb3JlcV9zZXJ2ZXIgZW50cmllcy4KICAtIENsYXJpZnkgY29tbWVudHMgYW5kIGNvbW1pdCBt ZXNzYWdlLgogIC0gSW50cm9kdWNlIGEgc2VwZXJhdGUgcGF0Y2ggdG8gcmVjYWxjdWxhdGUgdGhl IHAybSB0eXBlcyBhZnRlcgogICAgdGhlIGlvcmVxIHNlcnZlciB1bm1hcHMgdGhlIHAybV9pb3Jl cV9zZXJ2ZXIuCgpjaGFuZ2VzIGluIHY0OgogIC0gQWNjb3JkaW5nIHRvIFBhdWwncyBhZHZpY2Us IGFkZCBjb21tZW50cyBhcm91bmQgdGhlIGRlZmluaXRpb24KICAgIG9mIEhWTU1FTV9pb3JlX3Nl cnZlciBpbiBodm1fb3AuaC4KICAtIEFjY29yZGluZyB0byBXZWkgTGl1J3MgY29tbWVudHMsIGNo YW5nZSB0aGUgZm9ybWF0IG9mIHRoZSBjb21taXQKICAgIG1lc3NhZ2UuCgpjaGFuZ2VzIGluIHYz OgogIC0gT25seSBzdXBwb3J0IHdyaXRlIGVtdWxhdGlvbiBpbiB0aGlzIHBhdGNoOwogIC0gUmVt b3ZlIHRoZSBjb2RlIHRvIGhhbmRsZSByYWNlIGNvbmRpdGlvbiBpbiBodm1lbXVsX2RvX2lvKCks CiAgLSBObyBuZWVkIHRvIHJlc2V0IHRoZSBwMm0gdHlwZSBhZnRlciBhbiBpb3JlcSBzZXJ2ZXIg aGFzIGRpc2NsYWltZWQKICAgIGl0cyBvd25lcnNoaXAgb2YgcDJtX2lvcmVxX3NlcnZlcjsKICAt IE9ubHkgYWxsb3cgcDJtIHR5cGUgY2hhbmdlIHRvIHAybV9pb3JlcV9zZXJ2ZXIgYWZ0ZXIgYW4g aW9yZXEKICAgIHNlcnZlciBoYXMgY2xhaW1lZCBpdHMgb3duZXJzaGlwIG9mIHAybV9pb3JlcV9z ZXJ2ZXI7CiAgLSBPbmx5IGFsbG93IHAybSB0eXBlIGNoYW5nZSB0byBwMm1faW9yZXFfc2VydmVy IGZyb20gcGFnZXMgd2l0aCB0eXBlCiAgICBwMm1fcmFtX3J3LCBhbmQgdmljZSB2ZXJzYTsKICAt IEhWTU9QX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIgaW50ZXJmYWNlIGNoYW5nZSAtIHVz ZSB1aW50MTYsCiAgICBpbnN0ZWFkIG9mIGVudW0gdG8gc3BlY2lmeSB0aGUgbWVtb3J5IHR5cGU7 CiAgLSBGdW5jdGlvbiBwcm90b3R5cGUgY2hhbmdlIHRvIHAybV9nZXRfaW9yZXFfc2VydmVyKCk7 CiAgLSBDb2Rpbmcgc3R5bGUgY2hhbmdlczsKICAtIENvbW1pdCBtZXNzYWdlIGNoYW5nZXM7CiAg LSBBZGQgVGltJ3MgQWNrZWQtYnkuCgpjaGFuZ2VzIGluIHYyOgogIC0gT25seSBzdXBwb3J0IEhB UCBlbmFibGVkIEhWTXM7CiAgLSBSZXBsYWNlIHAybV9tZW1fdHlwZV9jaGFuZ2VkKCkgd2l0aCBw Mm1fY2hhbmdlX2VudHJ5X3R5cGVfZ2xvYmFsKCkKICAgIHRvIHJlc2V0IHRoZSBwMm0gdHlwZSwg d2hlbiBhbiBpb3JlcSBzZXJ2ZXIgdHJpZXMgdG8gY2xhaW0vZGlzY2xhaW0KICAgIGl0cyBvd25l cnNoaXAgb2YgcDJtX2lvcmVxX3NlcnZlcjsKICAtIENvbW1lbnRzIGNoYW5nZXMuCi0tLQogeGVu L2FyY2gveDg2L2h2bS9kbS5jICAgICAgICAgICB8IDM1ICsrKysrKysrKysrKysrKysrKysrKy0t CiB4ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYyAgICAgIHwgNjEgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyAgICAgICAg fCA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L21tL3AybS1l cHQuYyAgICAgICB8ICA4ICsrKysrLQogeGVuL2FyY2gveDg2L21tL3AybS1wdC5jICAgICAgICB8 IDE5ICsrKysrKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0uYyAgICAgICAgICAgfCA1OCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4Ni9tbS9z aGFkb3cvbXVsdGkuYyAgfCAgMyArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEuaCB8 ICAyICsrCiB4ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oICAgICAgIHwgMjUgKysrKysrKysrKysr KysrLS0KIHhlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaCAgfCAyOCArKysrKysrKysrKysr KysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oIHwgIDggKysrKystCiAxMSBm aWxlcyBjaGFuZ2VkLCAyNzIgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9kbS5jIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCmluZGV4 IDMzM2M4ODQuLjdlMGRhODEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKQEAgLTE3Myw5ICsxNzMsMTQgQEAgc3RhdGljIGludCBt b2RpZmllZF9tZW1vcnkoc3RydWN0IGRvbWFpbiAqZCwKIAogc3RhdGljIGJvb2wgYWxsb3dfcDJt X3R5cGVfY2hhbmdlKHAybV90eXBlX3Qgb2xkLCBwMm1fdHlwZV90IG5ldykKIHsKKyAgICBpZiAo IG5ldyA9PSBwMm1faW9yZXFfc2VydmVyICkKKyAgICAgICAgcmV0dXJuIG9sZCA9PSBwMm1fcmFt X3J3OworCisgICAgaWYgKCBvbGQgPT0gcDJtX2lvcmVxX3NlcnZlciApCisgICAgICAgIHJldHVy biBuZXcgPT0gcDJtX3JhbV9ydzsKKwogICAgIHJldHVybiBwMm1faXNfcmFtKG9sZCkgfHwKLSAg ICAgICAgICAgKHAybV9pc19ob2xlKG9sZCkgJiYgbmV3ID09IHAybV9tbWlvX2RtKSB8fAotICAg ICAgICAgICAob2xkID09IHAybV9pb3JlcV9zZXJ2ZXIgJiYgbmV3ID09IHAybV9yYW1fcncpOwor ICAgICAgICAgICAocDJtX2lzX2hvbGUob2xkKSAmJiBuZXcgPT0gcDJtX21taW9fZG0pOwogfQog CiBzdGF0aWMgaW50IHNldF9tZW1fdHlwZShzdHJ1Y3QgZG9tYWluICpkLApAQCAtMjAyLDYgKzIw NywxOCBAQCBzdGF0aWMgaW50IHNldF9tZW1fdHlwZShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAg ICAgdW5saWtlbHkoZGF0YS0+bWVtX3R5cGUgPT0gSFZNTUVNX3VudXNlZCkgKQogICAgICAgICBy ZXR1cm4gLUVJTlZBTDsKIAorICAgIGlmICggZGF0YS0+bWVtX3R5cGUgID09IEhWTU1FTV9pb3Jl cV9zZXJ2ZXIgKQorICAgIHsKKyAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOworCisgICAgICAg IGlmICggIWhhcF9lbmFibGVkKGQpICkKKyAgICAgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsK KworICAgICAgICAvKiBEbyBub3QgY2hhbmdlIHRvIEhWTU1FTV9pb3JlcV9zZXJ2ZXIgaWYgbm8g aW9yZXEgc2VydmVyIG1hcHBlZC4gKi8KKyAgICAgICAgaWYgKCAhcDJtX2dldF9pb3JlcV9zZXJ2 ZXIoZCwgJmZsYWdzKSApCisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKICAg ICB3aGlsZSAoIGl0ZXIgPCBkYXRhLT5uciApCiAgICAgewogICAgICAgICB1bnNpZ25lZCBsb25n IHBmbiA9IGRhdGEtPmZpcnN0X3BmbiArIGl0ZXI7CkBAIC0zNjUsNiArMzgyLDIwIEBAIHN0YXRp YyBpbnQgZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAg Y2FzZSBYRU5fRE1PUF9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyOgorICAgIHsKKyAgICAg ICAgY29uc3Qgc3RydWN0IHhlbl9kbV9vcF9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyICpk YXRhID0KKyAgICAgICAgICAgICZvcC51Lm1hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXI7CisK KyAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKKyAgICAgICAgaWYgKCAhaGFwX2VuYWJsZWQoZCkg KQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgcmMgPSBodm1fbWFwX21lbV90eXBlX3Rv X2lvcmVxX3NlcnZlcihkLCBkYXRhLT5pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhLT50eXBlLCBkYXRhLT5mbGFncyk7CisgICAgICAgIGJyZWFr OworICAgIH0KKwogICAgIGNhc2UgWEVOX0RNT1Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZToKICAg ICB7CiAgICAgICAgIGNvbnN0IHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0 ZSAqZGF0YSA9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYyBiL3hlbi9h cmNoL3g4Ni9odm0vZW11bGF0ZS5jCmluZGV4IDJkOTI5NTcuLmRjNmYxZjIgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0 ZS5jCkBAIC0xMDAsNiArMTAwLDcgQEAgc3RhdGljIGludCBodm1lbXVsX2RvX2lvKAogICAgIHVp bnQ4X3QgZGlyLCBib29sX3QgZGYsIGJvb2xfdCBkYXRhX2lzX2FkZHIsIHVpbnRwdHJfdCBkYXRh KQogewogICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVudDsKKyAgICBzdHJ1Y3QgZG9tYWlu ICpjdXJyZCA9IGN1cnItPmRvbWFpbjsKICAgICBzdHJ1Y3QgaHZtX3ZjcHVfaW8gKnZpbyA9ICZj dXJyLT5hcmNoLmh2bV92Y3B1Lmh2bV9pbzsKICAgICBpb3JlcV90IHAgPSB7CiAgICAgICAgIC50 eXBlID0gaXNfbW1pbyA/IElPUkVRX1RZUEVfQ09QWSA6IElPUkVRX1RZUEVfUElPLApAQCAtMTQx LDcgKzE0Miw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9kb19pbygKICAgICAgICAgICAgICAocC5k aXIgIT0gZGlyKSB8fAogICAgICAgICAgICAgIChwLmRmICE9IGRmKSB8fAogICAgICAgICAgICAg IChwLmRhdGFfaXNfcHRyICE9IGRhdGFfaXNfYWRkcikgKQotICAgICAgICAgICAgZG9tYWluX2Ny YXNoKGN1cnItPmRvbWFpbik7CisgICAgICAgICAgICBkb21haW5fY3Jhc2goY3VycmQpOwogCiAg ICAgICAgIGlmICggZGF0YV9pc19hZGRyICkKICAgICAgICAgICAgIHJldHVybiBYODZFTVVMX1VO SEFORExFQUJMRTsKQEAgLTE3OCw4ICsxNzksNjAgQEAgc3RhdGljIGludCBodm1lbXVsX2RvX2lv KAogICAgICAgICBicmVhazsKICAgICBjYXNlIFg4NkVNVUxfVU5IQU5ETEVBQkxFOgogICAgIHsK LSAgICAgICAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMgPQotICAgICAgICAgICAgaHZtX3Nl bGVjdF9pb3JlcV9zZXJ2ZXIoY3Vyci0+ZG9tYWluLCAmcCk7CisgICAgICAgIC8qCisgICAgICAg ICAqIFhlbiBpc24ndCBlbXVsYXRpbmcgdGhlIGluc3RydWN0aW9uIGludGVybmFsbHksIHNvIHNl ZSBpZiB0aGVyZSdzCisgICAgICAgICAqIGFuIGlvcmVxIHNlcnZlciB0aGF0IGNhbiBoYW5kbGUg aXQuCisgICAgICAgICAqCisgICAgICAgICAqIFJ1bGVzOgorICAgICAgICAgKiBBPiBQSU8gb3Ig TU1JTyBhY2Nlc3NlcyBydW4gdGhyb3VnaCBodm1fc2VsZWN0X2lvcmVxX3NlcnZlcigpIHRvCisg ICAgICAgICAqIGNob29zZSB0aGUgaW9yZXEgc2VydmVyIGJ5IHJhbmdlLiBJZiBubyBzZXJ2ZXIg aXMgZm91bmQsIHRoZSBhY2Nlc3MKKyAgICAgICAgICogaXMgaWdub3JlZC4KKyAgICAgICAgICoK KyAgICAgICAgICogQj4gcDJtX2lvcmVxX3NlcnZlciBhY2Nlc3NlcyBhcmUgaGFuZGxlZCBieSB0 aGUgZGVzaWduYXRlZAorICAgICAgICAgKiBpb3JlcSBzZXJ2ZXIgZm9yIHRoZSBkb21haW4sIGJ1 dCB0aGVyZSBhcmUgc29tZSBjb3JuZXIgY2FzZXM6CisgICAgICAgICAqCisgICAgICAgICAqICAg LSBJZiB0aGUgZG9tYWluIGlvcmVxIHNlcnZlciBpcyBOVUxMLCBpdCdzIGxpa2VseSB3ZSBzdWZm ZXIgZnJvbQorICAgICAgICAgKiAgIGEgcmFjZSB3aXRoIGFuIHVubWFwIG9wZXJhdGlvbiBvbiB0 aGUgaW9yZXEgc2VydmVyLCBzbyByZS10cnkgdGhlCisgICAgICAgICAqICAgaW5zdHJ1Y3Rpb24u CisgICAgICAgICAqCisgICAgICAgICAqIE5vdGU6IEV2ZW4gd2hlbiBhbiBpb3JlcSBzZXJ2ZXIg aXMgZm91bmQsIGl0cyB2YWx1ZSBjb3VsZCBiZWNvbWUKKyAgICAgICAgICogc3RhbGUgbGF0ZXIs IGJlY2F1c2UgaXQgaXMgcG9zc2libGUgdGhhdAorICAgICAgICAgKgorICAgICAgICAgKiAgIC0g dGhlIFBJTyBvciBNTUlPIGFkZHJlc3MgaXMgcmVtb3ZlZCBmcm9tIHRoZSByYW5nZXNldCBvZiB0 aGUKKyAgICAgICAgICogICBpb3JlcSBzZXJ2ZXIsIGJlZm9yZSB0aGUgZXZlbnQgaXMgZGVsaXZl cmVkIHRvIHRoZSBkZXZpY2UgbW9kZWwuCisgICAgICAgICAqCisgICAgICAgICAqICAgLSB0aGUg cDJtX2lvcmVxX3NlcnZlciB0eXBlIGlzIHVubWFwcGVkIGZyb20gdGhlIGlvcmVxIHNlcnZlciwK KyAgICAgICAgICogICBiZWZvcmUgdGhlIGV2ZW50IGlzIGRlbGl2ZXJlZCB0byB0aGUgZGV2aWNl IG1vZGVsLgorICAgICAgICAgKgorICAgICAgICAgKiBIb3dldmVyLCB0aGVyZSdzIG5vIGNoZWFw IGFwcHJvYWNoIHRvIGF2b2lkIGFib3ZlIHNpdHVhdGlvbnMgaW4geGVuLAorICAgICAgICAgKiBz byB0aGUgZGV2aWNlIG1vZGVsIHNpZGUgbmVlZHMgdG8gY2hlY2sgdGhlIGluY29taW5nIGlvcmVx IGV2ZW50LgorICAgICAgICAgKi8KKyAgICAgICAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMg PSBOVUxMOworICAgICAgICBwMm1fdHlwZV90IHAybXQgPSBwMm1faW52YWxpZDsKKworICAgICAg ICBpZiAoIGlzX21taW8gKQorICAgICAgICB7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGdt Zm4gPSBwYWRkcl90b19wZm4oYWRkcik7CisKKyAgICAgICAgICAgIGdldF9nZm5fcXVlcnlfdW5s b2NrZWQoY3VycmQsIGdtZm4sICZwMm10KTsKKworICAgICAgICAgICAgaWYgKCBwMm10ID09IHAy bV9pb3JlcV9zZXJ2ZXIgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBmbGFnczsKKworICAgICAgICAgICAgICAgIHMgPSBwMm1fZ2V0X2lvcmVxX3NlcnZlcihj dXJyZCwgJmZsYWdzKTsKKworICAgICAgICAgICAgICAgIGlmICggcyA9PSBOVUxMICkKKyAgICAg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJjID0gWDg2RU1VTF9SRVRSWTsKKyAg ICAgICAgICAgICAgICAgICAgdmlvLT5pb19yZXEuc3RhdGUgPSBTVEFURV9JT1JFUV9OT05FOwor ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoICFzICkKKyAgICAgICAgICAgIHMgPSBodm1f c2VsZWN0X2lvcmVxX3NlcnZlcihjdXJyZCwgJnApOwogCiAgICAgICAgIC8qIElmIHRoZXJlIGlz IG5vIHN1aXRhYmxlIGJhY2tpbmcgRE0sIGp1c3QgaWdub3JlIGFjY2Vzc2VzICovCiAgICAgICAg IGlmICggIXMgKQpAQCAtMTkwLDcgKzI0Myw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9kb19pbygK ICAgICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICAgICByYyA9IGh2bV9zZW5kX2lvcmVx KHMsICZwLCAwKTsKLSAgICAgICAgICAgIGlmICggcmMgIT0gWDg2RU1VTF9SRVRSWSB8fCBjdXJy LT5kb21haW4tPmlzX3NodXR0aW5nX2Rvd24gKQorICAgICAgICAgICAgaWYgKCByYyAhPSBYODZF TVVMX1JFVFJZIHx8IGN1cnJkLT5pc19zaHV0dGluZ19kb3duICkKICAgICAgICAgICAgICAgICB2 aW8tPmlvX3JlcS5zdGF0ZSA9IFNUQVRFX0lPUkVRX05PTkU7CiAgICAgICAgICAgICBlbHNlIGlm ICggZGF0YV9pc19hZGRyICkKICAgICAgICAgICAgICAgICByYyA9IFg4NkVNVUxfT0tBWTsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyBiL3hlbi9hcmNoL3g4Ni9odm0vaW9y ZXEuYwppbmRleCBhZDJlZGFkLi41YmYzYjZkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZt L2lvcmVxLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCkBAIC03NTMsNiArNzUzLDgg QEAgaW50IGh2bV9kZXN0cm95X2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZp ZF90IGlkKQogCiAgICAgICAgIGRvbWFpbl9wYXVzZShkKTsKIAorICAgICAgICBwMm1fc2V0X2lv cmVxX3NlcnZlcihkLCAwLCBzKTsKKwogICAgICAgICBodm1faW9yZXFfc2VydmVyX2Rpc2FibGUo cywgMCk7CiAKICAgICAgICAgbGlzdF9kZWwoJnMtPmxpc3RfZW50cnkpOwpAQCAtOTE0LDYgKzkx Niw0OCBAQCBpbnQgaHZtX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyKHN0cnVjdCBk b21haW4gKmQsIGlvc2VydmlkX3QgaWQsCiAgICAgcmV0dXJuIHJjOwogfQogCisvKgorICogTWFw IG9yIHVubWFwIGFuIGlvcmVxIHNlcnZlciB0byBzcGVjaWZpYyBtZW1vcnkgdHlwZS4gRm9yIG5v dywgb25seQorICogSFZNTUVNX2lvcmVxX3NlcnZlciBpcyBzdXBwb3J0ZWQsIGFuZCBpbiB0aGUg ZnV0dXJlIG5ldyB0eXBlcyBjYW4gYmUKKyAqIGludHJvZHVjZWQsIGUuZy4gSFZNTUVNX2lvcmVx X3NlcnZlclggbWFwcGVkIHRvIGlvcmVxIHNlcnZlciBYLiBBbmQKKyAqIGN1cnJlbnRseSwgb25s eSB3cml0ZSBvcGVyYXRpb25zIGFyZSB0byBiZSBmb3J3YXJkZWQgdG8gYW4gaW9yZXEgc2VydmVy LgorICogU3VwcG9ydCBmb3IgdGhlIGVtdWxhdGlvbiBvZiByZWFkIG9wZXJhdGlvbnMgY2FuIGJl IGFkZGVkIHdoZW4gYW4gaW9yZXEKKyAqIHNlcnZlciBoYXMgc3VjaCByZXF1aXJlbWVudCBpbiB0 aGUgZnV0dXJlLgorICovCitpbnQgaHZtX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIoc3Ry dWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCB0eXBlLCB1aW50MzJfdCBmbGFncykKK3sKKyAgICBzdHJ1Y3Qg aHZtX2lvcmVxX3NlcnZlciAqczsKKyAgICBpbnQgcmM7CisKKyAgICBpZiAoIHR5cGUgIT0gSFZN TUVNX2lvcmVxX3NlcnZlciApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaWYgKCBm bGFncyAmIH5YRU5fRE1PUF9JT1JFUV9NRU1fQUNDRVNTX1dSSVRFICkKKyAgICAgICAgcmV0dXJu IC1FSU5WQUw7CisKKyAgICBzcGluX2xvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2bV9kb21haW4u aW9yZXFfc2VydmVyLmxvY2spOworCisgICAgcmMgPSAtRU5PRU5UOworICAgIGxpc3RfZm9yX2Vh Y2hfZW50cnkgKCBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmZC0+YXJjaC5odm1fZG9t YWluLmlvcmVxX3NlcnZlci5saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0X2Vu dHJ5ICkKKyAgICB7CisgICAgICAgIGlmICggcyA9PSBkLT5hcmNoLmh2bV9kb21haW4uZGVmYXVs dF9pb3JlcV9zZXJ2ZXIgKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKCBz LT5pZCA9PSBpZCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJjID0gcDJtX3NldF9pb3JlcV9z ZXJ2ZXIoZCwgZmxhZ3MsIHMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9 CisKKyAgICBzcGluX3VubG9ja19yZWN1cnNpdmUoJmQtPmFyY2guaHZtX2RvbWFpbi5pb3JlcV9z ZXJ2ZXIubG9jayk7CisKKyAgICByZXR1cm4gcmM7Cit9CisKIGludCBodm1fc2V0X2lvcmVxX3Nl cnZlcl9zdGF0ZShzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2xfdCBlbmFibGVkKQogewpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21tL3AybS1lcHQuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKaW5kZXggNTY4 OTQ0Zi4uY2MxZWIyMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYworKysg Yi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCkBAIC0xMzEsNiArMTMxLDEzIEBAIHN0YXRpYyB2 b2lkIGVwdF9wMm1fdHlwZV90b19mbGFncyhzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBlcHRfZW50 cnlfdCAqZW50cnksCiAgICAgICAgICAgICBlbnRyeS0+ciA9IGVudHJ5LT53ID0gZW50cnktPngg PSAxOwogICAgICAgICAgICAgZW50cnktPmEgPSBlbnRyeS0+ZCA9ICEhY3B1X2hhc192bXhfZXB0 X2FkOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgcDJtX2lvcmVxX3NlcnZlcjoK KyAgICAgICAgICAgIGVudHJ5LT5yID0gMTsKKyAgICAgICAgICAgIGVudHJ5LT53ID0gIShwMm0t PmlvcmVxLmZsYWdzICYgWEVOX0RNT1BfSU9SRVFfTUVNX0FDQ0VTU19XUklURSk7CisgICAgICAg ICAgICBlbnRyeS0+eCA9IDA7CisgICAgICAgICAgICBlbnRyeS0+YSA9ICEhY3B1X2hhc192bXhf ZXB0X2FkOworICAgICAgICAgICAgZW50cnktPmQgPSBlbnRyeS0+dyAmJiBlbnRyeS0+YTsKKyAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIHAybV9tbWlvX2RpcmVjdDoKICAgICAgICAg ICAgIGVudHJ5LT5yID0gZW50cnktPnggPSAxOwogICAgICAgICAgICAgZW50cnktPncgPSAhcmFu Z2VzZXRfY29udGFpbnNfc2luZ2xldG9uKG1taW9fcm9fcmFuZ2VzLApAQCAtMTcwLDcgKzE3Nyw2 IEBAIHN0YXRpYyB2b2lkIGVwdF9wMm1fdHlwZV90b19mbGFncyhzdHJ1Y3QgcDJtX2RvbWFpbiAq cDJtLCBlcHRfZW50cnlfdCAqZW50cnksCiAgICAgICAgICAgICBlbnRyeS0+YSA9IGVudHJ5LT5k ID0gISFjcHVfaGFzX3ZteF9lcHRfYWQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz ZSBwMm1fZ3JhbnRfbWFwX3JvOgotICAgICAgICBjYXNlIHAybV9pb3JlcV9zZXJ2ZXI6CiAgICAg ICAgICAgICBlbnRyeS0+ciA9IDE7CiAgICAgICAgICAgICBlbnRyeS0+dyA9IGVudHJ5LT54ID0g MDsKICAgICAgICAgICAgIGVudHJ5LT5hID0gISFjcHVfaGFzX3ZteF9lcHRfYWQ7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMK aW5kZXggMjY4YjIzMi4uYzAwNTVmMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1w dC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwpAQCAtNzAsNyArNzAsOSBAQCBzdGF0 aWMgY29uc3QgdW5zaWduZWQgbG9uZyBwZ3RbXSA9IHsKICAgICBQR1RfbDNfcGFnZV90YWJsZQog fTsKIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgcDJtX3R5cGVfdG9fZmxhZ3MocDJtX3R5cGVfdCB0 LCBtZm5fdCBtZm4sCitzdGF0aWMgdW5zaWduZWQgbG9uZyBwMm1fdHlwZV90b19mbGFncyhjb25z dCBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcDJtX3R5cGVfdCB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWZuX3QgbWZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGxldmVsKQogewogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC05Miw4 ICs5NCwxMiBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBwMm1fdHlwZV90b19mbGFncyhwMm1fdHlw ZV90IHQsIG1mbl90IG1mbiwKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmxhZ3MgfCBf UEFHRV9OWF9CSVQ7CiAgICAgY2FzZSBwMm1fZ3JhbnRfbWFwX3JvOgotICAgIGNhc2UgcDJtX2lv cmVxX3NlcnZlcjoKICAgICAgICAgcmV0dXJuIGZsYWdzIHwgUDJNX0JBU0VfRkxBR1MgfCBfUEFH RV9OWF9CSVQ7CisgICAgY2FzZSBwMm1faW9yZXFfc2VydmVyOgorICAgICAgICBmbGFncyB8PSBQ Mk1fQkFTRV9GTEFHUyB8IF9QQUdFX1JXIHwgX1BBR0VfTlhfQklUOworICAgICAgICBpZiAoIHAy bS0+aW9yZXEuZmxhZ3MgJiBYRU5fRE1PUF9JT1JFUV9NRU1fQUNDRVNTX1dSSVRFICkKKyAgICAg ICAgICAgIHJldHVybiBmbGFncyAmIH5fUEFHRV9SVzsKKyAgICAgICAgcmV0dXJuIGZsYWdzOwog ICAgIGNhc2UgcDJtX3JhbV9ybzoKICAgICBjYXNlIHAybV9yYW1fbG9nZGlydHk6CiAgICAgY2Fz ZSBwMm1fcmFtX3NoYXJlZDoKQEAgLTQ0MCw3ICs0NDYsOCBAQCBzdGF0aWMgaW50IGRvX3JlY2Fs YyhzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbikKICAgICAgICAgICAg IHAybV90eXBlX3QgcDJtdCA9IHAybV9pc19sb2dkaXJ0eV9yYW5nZShwMm0sIGdmbiAmIG1hc2ss IGdmbiB8IH5tYXNrKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBwMm1fcmFtX2xv Z2RpcnR5IDogcDJtX3JhbV9ydzsKICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuID0gbDFl X2dldF9wZm4oZSk7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzID0gcDJtX3R5cGVf dG9fZmxhZ3MocDJtdCwgX21mbihtZm4pLCBsZXZlbCk7CisgICAgICAgICAgICB1bnNpZ25lZCBs b25nIGZsYWdzID0gcDJtX3R5cGVfdG9fZmxhZ3MocDJtLCBwMm10LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tZm4obWZuKSwgbGV2ZWwpOwog CiAgICAgICAgICAgICBpZiAoIGxldmVsICkKICAgICAgICAgICAgIHsKQEAgLTU3OCw3ICs1ODUs NyBAQCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2lnbmVkIGxv bmcgZ2ZuLCBtZm5fdCBtZm4sCiAgICAgICAgIEFTU0VSVCghbWZuX3ZhbGlkKG1mbikgfHwgcDJt dCAhPSBwMm1fbW1pb19kaXJlY3QpOwogICAgICAgICBsM2VfY29udGVudCA9IG1mbl92YWxpZCht Zm4pIHx8IHAybV9hbGxvd3NfaW52YWxpZF9tZm4ocDJtdCkKICAgICAgICAgICAgID8gbDNlX2Zy b21fcGZuKG1mbl94KG1mbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fdHlwZV90 b19mbGFncyhwMm10LCBtZm4sIDIpIHwgX1BBR0VfUFNFKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgcDJtX3R5cGVfdG9fZmxhZ3MocDJtLCBwMm10LCBtZm4sIDIpIHwgX1BBR0VfUFNFKQog ICAgICAgICAgICAgOiBsM2VfZW1wdHkoKTsKICAgICAgICAgZW50cnlfY29udGVudC5sMSA9IGwz ZV9jb250ZW50LmwzOwogCkBAIC02MTUsNyArNjIyLDcgQEAgcDJtX3B0X3NldF9lbnRyeShzdHJ1 Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbiwgbWZuX3QgbWZuLAogCiAgICAg ICAgIGlmICggbWZuX3ZhbGlkKG1mbikgfHwgcDJtX2FsbG93c19pbnZhbGlkX21mbihwMm10KSAp CiAgICAgICAgICAgICBlbnRyeV9jb250ZW50ID0gcDJtX2wxZV9mcm9tX3BmbihtZm5feChtZm4p LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX3R5cGVf dG9fZmxhZ3MocDJtdCwgbWZuLCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHAybV90eXBlX3RvX2ZsYWdzKHAybSwgcDJtdCwgbWZuLCAwKSk7CiAgICAgICAg IGVsc2UKICAgICAgICAgICAgIGVudHJ5X2NvbnRlbnQgPSBsMWVfZW1wdHkoKTsKIApAQCAtNjUy LDcgKzY1OSw3IEBAIHAybV9wdF9zZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5z aWduZWQgbG9uZyBnZm4sIG1mbl90IG1mbiwKICAgICAgICAgQVNTRVJUKCFtZm5fdmFsaWQobWZu KSB8fCBwMm10ICE9IHAybV9tbWlvX2RpcmVjdCk7CiAgICAgICAgIGlmICggbWZuX3ZhbGlkKG1m bikgfHwgcDJtX2FsbG93c19pbnZhbGlkX21mbihwMm10KSApCiAgICAgICAgICAgICBsMmVfY29u dGVudCA9IGwyZV9mcm9tX3BmbihtZm5feChtZm4pLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcDJtX3R5cGVfdG9fZmxhZ3MocDJtdCwgbWZuLCAxKSB8CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fdHlwZV90b19mbGFncyhwMm0sIHAy bXQsIG1mbiwgMSkgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1BB R0VfUFNFKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbDJlX2NvbnRlbnQgPSBsMmVfZW1w dHkoKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9t bS9wMm0uYwppbmRleCBkMzgwMDRjLi5iODRhZGQwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv bW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC04Miw2ICs4Miw4IEBAIHN0 YXRpYyBpbnQgcDJtX2luaXRpYWxpc2Uoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHAybV9kb21h aW4gKnAybSkKICAgICBlbHNlCiAgICAgICAgIHAybV9wdF9pbml0KHAybSk7CiAKKyAgICBzcGlu X2xvY2tfaW5pdCgmcDJtLT5pb3JlcS5sb2NrKTsKKwogICAgIHJldHVybiByZXQ7CiB9CiAKQEAg LTI4Niw2ICsyODgsNjIgQEAgdm9pZCBwMm1fbWVtb3J5X3R5cGVfY2hhbmdlZChzdHJ1Y3QgZG9t YWluICpkKQogICAgIH0KIH0KIAoraW50IHAybV9zZXRfaW9yZXFfc2VydmVyKHN0cnVjdCBkb21h aW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzLAorICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQoreworICAg IHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSBwMm1fZ2V0X2hvc3RwMm0oZCk7CisgICAgaW50IHJj OworCisgICAgLyoKKyAgICAgKiBVc2UgbG9jayB0byBwcmV2ZW50IGNvbmN1cnJlbnQgc2V0dGlu ZyBhdHRlbXB0cworICAgICAqIGZyb20gbXVsdGlwbGUgaW9yZXEgc2VydmVycy4KKyAgICAgKi8K KyAgICBzcGluX2xvY2soJnAybS0+aW9yZXEubG9jayk7CisKKyAgICAvKiBVbm1hcCBpb3JlcSBz ZXJ2ZXIgZnJvbSBwMm0gdHlwZSBieSBwYXNzaW5nIGZsYWdzIHdpdGggMC4gKi8KKyAgICBpZiAo IGZsYWdzID09IDAgKQorICAgIHsKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBpZiAo IHAybS0+aW9yZXEuc2VydmVyICE9IHMgKQorICAgICAgICAgICAgZ290byBvdXQ7CisKKyAgICAg ICAgcDJtLT5pb3JlcS5zZXJ2ZXIgPSBOVUxMOworICAgICAgICBwMm0tPmlvcmVxLmZsYWdzID0g MDsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgcmMgPSAtRUJVU1k7CisgICAgICAg IGlmICggcDJtLT5pb3JlcS5zZXJ2ZXIgIT0gTlVMTCApCisgICAgICAgICAgICBnb3RvIG91dDsK KworICAgICAgICBwMm0tPmlvcmVxLnNlcnZlciA9IHM7CisgICAgICAgIHAybS0+aW9yZXEuZmxh Z3MgPSBmbGFnczsKKyAgICB9CisKKyAgICByYyA9IDA7CisKKyBvdXQ6CisgICAgc3Bpbl91bmxv Y2soJnAybS0+aW9yZXEubG9jayk7CisKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0cnVjdCBodm1f aW9yZXFfc2VydmVyICpwMm1fZ2V0X2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAq ZmxhZ3MpCit7CisgICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9zdHAybShk KTsKKyAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqczsKKworICAgIHNwaW5fbG9jaygmcDJt LT5pb3JlcS5sb2NrKTsKKworICAgIHMgPSBwMm0tPmlvcmVxLnNlcnZlcjsKKyAgICAqZmxhZ3Mg PSBwMm0tPmlvcmVxLmZsYWdzOworCisgICAgc3Bpbl91bmxvY2soJnAybS0+aW9yZXEubG9jayk7 CisgICAgcmV0dXJuIHM7Cit9CisKIHZvaWQgcDJtX2VuYWJsZV9oYXJkd2FyZV9sb2dfZGlydHko c3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gcDJtX2dl dF9ob3N0cDJtKGQpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5j IGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCmluZGV4IDQ3OThjOTMuLjUxOTVkNjEg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYworKysgYi94ZW4vYXJj aC94ODYvbW0vc2hhZG93L211bHRpLmMKQEAgLTMzMDYsOCArMzMwNiw3IEBAIHN0YXRpYyBpbnQg c2hfcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAqdiwKICAgICB9CiAKICAgICAvKiBOZWVkIHRvIGhh bmQgb2ZmIGRldmljZS1tb2RlbCBNTUlPIHRvIHRoZSBkZXZpY2UgbW9kZWwgKi8KLSAgICBpZiAo IHAybXQgPT0gcDJtX21taW9fZG0KLSAgICAgICAgIHx8IChwMm10ID09IHAybV9pb3JlcV9zZXJ2 ZXIgJiYgZnQgPT0gZnRfZGVtYW5kX3dyaXRlKSApCisgICAgaWYgKCBwMm10ID09IHAybV9tbWlv X2RtICkKICAgICB7CiAgICAgICAgIGdwYSA9IGd1ZXN0X3dhbGtfdG9fZ3BhKCZndyk7CiAgICAg ICAgIGdvdG8gbW1pbzsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvcmVx LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pb3JlcS5oCmluZGV4IGZiZjJjNzQuLmI0MzY2 N2EgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvcmVxLmgKKysrIGIveGVu L2luY2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEuaApAQCAtMzcsNiArMzcsOCBAQCBpbnQgaHZtX21h cF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBp ZCwKIGludCBodm1fdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFp biAqZCwgaW9zZXJ2aWRfdCBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDMyX3QgdHlwZSwgdWludDY0X3Qgc3RhcnQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGVuZCk7CitpbnQgaHZtX21hcF9tZW1fdHlw ZV90b19pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0eXBlLCB1aW50MzJfdCBm bGFncyk7CiBpbnQgaHZtX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUoc3RydWN0IGRvbWFpbiAqZCwg aW9zZXJ2aWRfdCBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sX3QgZW5h YmxlZCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmggYi94ZW4vaW5j bHVkZS9hc20teDg2L3AybS5oCmluZGV4IGJjMTg5ZDEuLjQ1MjE2MjAgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaApA QCAtODksNyArODksOCBAQCB0eXBlZGVmIHVuc2lnbmVkIGludCBwMm1fcXVlcnlfdDsKICAgICAg ICAgICAgICAgICAgICAgICAgfCBwMm1fdG9fbWFzayhwMm1fcmFtX3BhZ2luZ19vdXQpICAgICAg XAogICAgICAgICAgICAgICAgICAgICAgICB8IHAybV90b19tYXNrKHAybV9yYW1fcGFnZWQpICAg ICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgIHwgcDJtX3RvX21hc2socDJtX3JhbV9w YWdpbmdfaW4pICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgfCBwMm1fdG9fbWFzayhw Mm1fcmFtX3NoYXJlZCkpCisgICAgICAgICAgICAgICAgICAgICAgIHwgcDJtX3RvX21hc2socDJt X3JhbV9zaGFyZWQpICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgfCBwMm1fdG9f bWFzayhwMm1faW9yZXFfc2VydmVyKSkKIAogLyogVHlwZXMgdGhhdCByZXByZXNlbnQgYSBwaHlz bWFwIGhvbGUgdGhhdCBpcyBvayB0byByZXBsYWNlIHdpdGggYSBzaGFyZWQKICAqIGVudHJ5ICov CkBAIC0xMTEsOCArMTEyLDcgQEAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgcDJtX3F1ZXJ5X3Q7CiAj ZGVmaW5lIFAyTV9ST19UWVBFUyAocDJtX3RvX21hc2socDJtX3JhbV9sb2dkaXJ0eSkgICAgIFwK ICAgICAgICAgICAgICAgICAgICAgICB8IHAybV90b19tYXNrKHAybV9yYW1fcm8pICAgICAgICAg XAogICAgICAgICAgICAgICAgICAgICAgIHwgcDJtX3RvX21hc2socDJtX2dyYW50X21hcF9ybykg ICBcCi0gICAgICAgICAgICAgICAgICAgICAgfCBwMm1fdG9fbWFzayhwMm1fcmFtX3NoYXJlZCkg ICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICB8IHAybV90b19tYXNrKHAybV9pb3JlcV9zZXJ2 ZXIpKQorICAgICAgICAgICAgICAgICAgICAgIHwgcDJtX3RvX21hc2socDJtX3JhbV9zaGFyZWQp KQogCiAvKiBXcml0ZS1kaXNjYXJkIHR5cGVzLCB3aGljaCBzaG91bGQgZGlzY2FyZCB0aGUgd3Jp dGUgb3BlcmF0aW9ucyAqLwogI2RlZmluZSBQMk1fRElTQ0FSRF9XUklURV9UWVBFUyAocDJtX3Rv X21hc2socDJtX3JhbV9ybykgICAgIFwKQEAgLTMzNiw2ICszMzYsMjAgQEAgc3RydWN0IHAybV9k b21haW4gewogICAgICAgICBzdHJ1Y3QgZXB0X2RhdGEgZXB0OwogICAgICAgICAvKiBOUFQtZXF1 aXZhbGVudCBzdHJ1Y3R1cmUgY291bGQgYmUgYWRkZWQgaGVyZS4gKi8KICAgICB9OworCisgICAg IHN0cnVjdCB7CisgICAgICAgICBzcGlubG9ja190IGxvY2s7CisgICAgICAgICAvKgorICAgICAg ICAgICogaW9yZXEgc2VydmVyIHdobydzIHJlc3BvbnNpYmxlIGZvciB0aGUgZW11bGF0aW9uIG9m CisgICAgICAgICAgKiBnZm5zIHdpdGggc3BlY2lmaWMgcDJtIHR5cGUoZm9yIG5vdywgcDJtX2lv cmVxX3NlcnZlcikuCisgICAgICAgICAgKi8KKyAgICAgICAgIHN0cnVjdCBodm1faW9yZXFfc2Vy dmVyICpzZXJ2ZXI7CisgICAgICAgICAvKgorICAgICAgICAgICogZmxhZ3Mgc3BlY2lmaWVzIHdo ZXRoZXIgcmVhZCwgd3JpdGUgb3IgYm90aCBvcGVyYXRpb25zCisgICAgICAgICAgKiBhcmUgdG8g YmUgZW11bGF0ZWQgYnkgYW4gaW9yZXEgc2VydmVyLgorICAgICAgICAgICovCisgICAgICAgICB1 bnNpZ25lZCBpbnQgZmxhZ3M7CisgICAgIH0gaW9yZXE7CiB9OwogCiAvKiBnZXQgaG9zdCBwMm0g dGFibGUgKi8KQEAgLTgyNyw2ICs4NDEsMTEgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQg cDJtX2dldF9pb21tdV9mbGFncyhwMm1fdHlwZV90IHAybXQsIG1mbl90IG1mbikKICAgICByZXR1 cm4gZmxhZ3M7CiB9CiAKK2ludCBwMm1fc2V0X2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBpbnQgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGh2 bV9pb3JlcV9zZXJ2ZXIgKnMpOworc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnAybV9nZXRfaW9y ZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpmbGFncyk7CisKICNlbmRpZiAvKiBfWEVO X0FTTV9YODZfUDJNX0ggKi8KIAogLyoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9o dm0vZG1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAppbmRleCBmNTRjZWNl Li41ZWE3OWVmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKKysr IGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCkBAIC0zMTgsNiArMzE4LDMyIEBAIHN0 cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X21zaSB7CiAgICAgdWludDY0X2FsaWduZWRfdCBhZGRyOwog fTsKIAorLyoKKyAqIFhFTl9ETU9QX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIgOiBtYXAg b3IgdW5tYXAgdGhlIElPUkVRIFNlcnZlciA8aWQ+CisgKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdG8gc3BlY2lmaWMgbWVtb3J5IHR5cGUgPHR5cGU+CisgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHNwZWNpZmljIGFjY2Vzc2VzIDxmbGFn cz4KKyAqCisgKiBGb3Igbm93LCBmbGFncyBvbmx5IGFjY2VwdCB0aGUgdmFsdWUgb2YgWEVOX0RN T1BfSU9SRVFfTUVNX0FDQ0VTU19XUklURSwKKyAqIHdoaWNoIG1lYW5zIG9ubHkgd3JpdGUgb3Bl cmF0aW9ucyBhcmUgdG8gYmUgZm9yd2FyZGVkIHRvIGFuIGlvcmVxIHNlcnZlci4KKyAqIFN1cHBv cnQgZm9yIHRoZSBlbXVsYXRpb24gb2YgcmVhZCBvcGVyYXRpb25zIGNhbiBiZSBhZGRlZCB3aGVu IGFuIGlvcmVxCisgKiBzZXJ2ZXIgaGFzIHN1Y2ggcmVxdWlyZW1lbnQgaW4gZnV0dXJlLgorICov CisjZGVmaW5lIFhFTl9ETU9QX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIgMTUKKworc3Ry dWN0IHhlbl9kbV9vcF9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyIHsKKyAgICBpb3NlcnZp ZF90IGlkOyAgICAgIC8qIElOIC0gaW9yZXEgc2VydmVyIGlkICovCisgICAgdWludDE2X3QgdHlw ZTsgICAgICAvKiBJTiAtIG1lbW9yeSB0eXBlICovCisgICAgdWludDMyX3QgZmxhZ3M7ICAgICAv KiBJTiAtIHR5cGVzIG9mIGFjY2Vzc2VzIHRvIGJlIGZvcndhcmRlZCB0byB0aGUKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlvcmVxIHNlcnZlci4gZmxhZ3Mgd2l0aCAwIG1lYW5zIHRvIHVu bWFwIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9yZXEgc2VydmVyICovCisKKyNk ZWZpbmUgWEVOX0RNT1BfSU9SRVFfTUVNX0FDQ0VTU19SRUFEICgxdSA8PCAwKQorI2RlZmluZSBY RU5fRE1PUF9JT1JFUV9NRU1fQUNDRVNTX1dSSVRFICgxdSA8PCAxKQorCisgICAgdWludDY0X3Qg b3BhcXVlOyAgICAvKiBJTi9PVVQgLSBvbmx5IHVzZWQgZm9yIGh5cGVyY2FsbCBjb250aW51YXRp b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXMgdG8gYmUgc2V0IHRvIHplcm8gYnkg dGhlIGNhbGxlciAqLworfTsKKwogc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgdWludDMyX3Qgb3A7 CiAgICAgdWludDMyX3QgcGFkOwpAQCAtMzM2LDYgKzM2Miw4IEBAIHN0cnVjdCB4ZW5fZG1fb3Ag ewogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1fdHlwZSBzZXRfbWVtX3R5cGU7CiAg ICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X2V2ZW50IGluamVjdF9ldmVudDsKICAgICAg ICAgc3RydWN0IHhlbl9kbV9vcF9pbmplY3RfbXNpIGluamVjdF9tc2k7CisgICAgICAgIHN0cnVj dCB4ZW5fZG1fb3BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlcgorICAgICAgICAgICAgICAg IG1hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXI7CiAgICAgfSB1OwogfTsKIApkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9o dm0vaHZtX29wLmgKaW5kZXggYmMwMGVmMC4uMGJkYWZkZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUvcHVibGljL2h2bS9odm1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9v cC5oCkBAIC05Myw3ICs5MywxMyBAQCB0eXBlZGVmIGVudW0gewogICAgIEhWTU1FTV91bnVzZWQs ICAgICAgICAgICAgIC8qIFBsYWNlaG9sZGVyOyBzZXR0aW5nIG1lbW9yeSB0byB0aGlzIHR5cGUK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsIGZhaWwgZm9yIGNvZGUgYWZ0 ZXIgNC43LjAgKi8KICNlbmRpZgotICAgIEhWTU1FTV9pb3JlcV9zZXJ2ZXIKKyAgICBIVk1NRU1f aW9yZXFfc2VydmVyICAgICAgICAvKiBNZW1vcnkgdHlwZSBjbGFpbWVkIGJ5IGFuIGlvcmVxIHNl cnZlcjsgdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZXMgdG8g dGhpcyB2YWx1ZSBhcmUgb25seSBhbGxvd2VkIGFmdGVyCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYW4gaW9yZXEgc2VydmVyIGhhcyBjbGFpbWVkIGl0cyBvd25lcnNoaXAuCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSBwYWdlcyB3aXRoIEhWTU1FTV9y YW1fcncgYXJlIGFsbG93ZWQgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj aGFuZ2UgdG8gdGhpcyB0eXBlOyBjb252ZXJzZWx5LCBwYWdlcyB3aXRoCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGhpcyB0eXBlIGFyZSBvbmx5IGFsbG93ZWQgdG8gYmUgY2hh bmdlZCBiYWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gSFZNTUVNX3Jh bV9ydy4gKi8KIH0gaHZtbWVtX3R5cGVfdDsKIAogLyogSGludCBmcm9tIFBWIGRyaXZlcnMgZm9y IHBhZ2V0YWJsZSBkZXN0cnVjdGlvbi4gKi8KLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==