From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Zhang Subject: [PATCH v9 2/5] x86/ioreq server: Add DMOP to map guest ram with p2m_ioreq_server to an ioreq server. Date: Tue, 21 Mar 2017 10:52:50 +0800 Message-ID: <1490064773-26751-3-git-send-email-yu.c.zhang@linux.intel.com> References: <1490064773-26751-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: <1490064773-26751-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 QSBuZXcgRE1PUCAtIFhFTl9ETU9QX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIsIGlzIGFk ZGVkIHRvCmxldCBvbmUgaW9yZXEgc2VydmVyIGNsYWltL2Rpc2NsYWltIGl0cyByZXNwb25zaWJp bGl0eSBmb3IgdGhlCmhhbmRsaW5nIG9mIGd1ZXN0IHBhZ2VzIHdpdGggcDJtIHR5cGUgcDJtX2lv cmVxX3NlcnZlci4gVXNlcnMKb2YgdGhpcyBETU9QIGNhbiBzcGVjaWZ5IHdoaWNoIGtpbmQgb2Yg b3BlcmF0aW9uIGlzIHN1cHBvc2VkCnRvIGJlIGVtdWxhdGVkIGluIGEgcGFyYW1ldGVyIG5hbWVk IGZsYWdzLiBDdXJyZW50bHksIHRoaXMgRE1PUApvbmx5IHN1cHBvcnQgdGhlIGVtdWxhdGlvbiBv ZiB3cml0ZSBvcGVyYXRpb25zLiBBbmQgaXQgY2FuIGJlCmZ1cnRoZXIgZXh0ZW5kZWQgdG8gc3Vw cG9ydCB0aGUgZW11bGF0aW9uIG9mIHJlYWQgb25lcyBpZiBhbgppb3JlcSBzZXJ2ZXIgaGFzIHN1 Y2ggcmVxdWlyZW1lbnQgaW4gdGhlIGZ1dHVyZS4KCkZvciBub3csIHdlIG9ubHkgc3VwcG9ydCBv bmUgaW9yZXEgc2VydmVyIGZvciB0aGlzIHAybSB0eXBlLCBzbwpvbmNlIGFuIGlvcmVxIHNlcnZl ciBoYXMgY2xhaW1lZCBpdHMgb3duZXJzaGlwLCBzdWJzZXF1ZW50IGNhbGxzCm9mIHRoZSBYRU5f RE1PUF9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyIHdpbGwgZmFpbC4gVXNlcnMgY2FuCmFs c28gZGlzY2xhaW0gdGhlIG93bmVyc2hpcCBvZiBndWVzdCByYW0gcGFnZXMgd2l0aCBwMm1faW9y ZXFfc2VydmVyLApieSB0cmlnZ2VyaW5nIHRoaXMgbmV3IERNT1AsIHdpdGggaW9yZXEgc2VydmVy IGlkIHNldCB0byB0aGUgY3VycmVudApvd25lcidzIGFuZCBmbGFncyBwYXJhbWV0ZXIgc2V0IHRv IDAuCgpOb3RlIGJvdGggWEVOX0RNT1BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciBhbmQg cDJtX2lvcmVxX3NlcnZlcgphcmUgb25seSBzdXBwb3J0ZWQgZm9yIEhWTXMgd2l0aCBIQVAgZW5h YmxlZC4KCkFsc28gbm90ZSB0aGF0IG9ubHkgYWZ0ZXIgb25lIGlvcmVxIHNlcnZlciBjbGFpbXMg aXRzIG93bmVyc2hpcApvZiBwMm1faW9yZXFfc2VydmVyLCB3aWxsIHRoZSBwMm0gdHlwZSBjaGFu Z2UgdG8gcDJtX2lvcmVxX3NlcnZlcgpiZSBhbGxvd2VkLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBE dXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogWXUgWmhhbmcg PHl1LmMuemhhbmdAbGludXguaW50ZWwuY29tPgpBY2tlZC1ieTogVGltIERlZWdhbiA8dGltQHhl bi5vcmc+Ci0tLQpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3 IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IFBhdWwgRHVycmFudCA8cGF1 bC5kdXJyYW50QGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1 LmNpdHJpeC5jb20+CkNjOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkNj OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4 ZW4ub3JnPgoKY2hhbmdlcyBpbiB2ODoKICAtIEFjY29yZGluZyB0byBjb21tZW50cyBmcm9tIEph biAmIFBhdWw6IGNvbW1lbnRzIGNoYW5nZXMgaW4gaHZtZW11bF9kb19pbygpLgogIC0gQWNjb3Jk aW5nIHRvIGNvbW1lbnRzIGZyb20gSmFuOiByZW1vdmUgdGhlIHJlZHVuZGFudCBjb2RlIHdoaWNo IHdvdWxkIG9ubHkKICAgIGJlIHVzZWZ1bCBmb3IgcmVhZCBlbXVsYXRpb25zLgogIC0gQWNjb3Jk aW5nIHRvIGNvbW1lbnRzIGZyb20gSmFuOiBjaGFuZ2UgaW50ZXJmYWNlIHdoaWNoIG1hcHMgbWVt IHR5cGUgdG8KICAgIGlvcmVxIHNlcnZlciwgcmVtb3ZlZCB1aW50MTZfdCBwYWQgYW5kIGFkZGVk IGFuIHVpbnQ2NF90IG9wYXF1ZS4KICAtIEFkZHJlc3Mgb3RoZXIgY29tbWVudHMgZnJvbSBKYW4s IGkuZS4gY29ycmVjdCByZXR1cm4gdmFsdWVzOyByZW1vdmUgc3RyYXkKICAgIGNhc3QuCgpjaGFu Z2VzIGluIHY3OgogIC0gVXNlIG5ldyBpb3JlcSBzZXJ2ZXIgaW50ZXJmYWNlIC0gWEVOX0RNT1Bf bWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlci4KICAtIEFjY29yZGluZyB0byBjb21tZW50cyBm cm9tIEdlb3JnZTogcmVtb3ZlZCBkb21haW5fcGF1c2UvdW5wYXVzZSgpIGluCiAgICBodm1fbWFw X21lbV90eXBlX3RvX2lvcmVxX3NlcnZlcigpLCBiZWNhdXNlIGl0J3MgdG9vIGV4cGVuc2l2ZSwK ICAgIGFuZCB3ZSBjYW4gYXZvaWQgdGhlOgogICAgYT4gZGVhZGxvY2sgaXNzdWUgZXhpc3RlZCBp biB2NiBwYXRjaCwgYmV0d2VlbiBwMm0gbG9jayBhbmQgaW9yZXEgc2VydmVyCiAgICAgICBsb2Nr IGJ5IHVzaW5nIHRoZXNlIGxvY2tzIGluIHRoZSBzYW1lIG9yZGVyIC0gc29sdmVkIGluIHBhdGNo IDQ7CiAgICBiPiBmb3IgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB2bSBleGl0IGFuZCBpb3JlcSBz ZXJ2ZXIgdW5iaW5kaW5nLCB3ZSBjYW4KICAgICAgIGp1c3QgcmV0cnkgdGhpcyBpbnN0cnVjdGlv bi4KICAtIEFjY29yZGluZyB0byBjb21tZW50cyBmcm9tIEphbiBhbmQgR2VvcmdlOiBjb250aW51 ZSB0byBjbGFyaWZ5IGxvZ2ljIGluCiAgICBodm1lbXVsX2RvX2lvKCkuCiAgLSBBY2NvcmRpbmcg dG8gY29tbWVudHMgZnJvbSBKYW46IGNsYXJpZnkgY29tbWVudCBpbiBwMm1fc2V0X2lvcmVxX3Nl cnZlcigpLgoKY2hhbmdlcyBpbiB2NjoKICAtIENsYXJpZnkgbG9naWMgaW4gaHZtZW11bF9kb19p bygpLgogIC0gVXNlIHJlY3Vyc2l2ZSBsb2NrIGZvciBpb3JlcSBzZXJ2ZXIgbG9jay4KICAtIFJl bW92ZSBkZWJ1ZyBwcmludCB3aGVuIG1hcHBpbmcgaW9yZXEgc2VydmVyLgogIC0gQ2xhcmlmeSBj b2RlIGluIGVwdF9wMm1fdHlwZV90b19mbGFncygpIGZvciBjb25zaXN0ZW5jeS4KICAtIFJlbW92 ZSBkZWZpbml0aW9uIG9mIFAyTV9JT1JFUV9IQU5ETEVfV1JJVEVfQUNDRVNTLgogIC0gQWRkIGNv bW1lbnRzIGZvciBIVk1NRU1faW9yZXFfc2VydmVyIHRvIG5vdGUgb25seSBjaGFuZ2VzCiAgICB0 by9mcm9tIEhWTU1FTV9yYW1fcncgYXJlIHBlcm1pdHRlZC4KICAtIEFkZCBkb21haW5fcGF1c2Uv dW5wYXVzZSgpIGluIGh2bV9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyKCkKICAgIHRvIGF2 b2lkIHRoZSByYWNlIGNvbmRpdGlvbiB3aGVuIGEgdm0gZXhpdCBoYXBwZW5zIG9uIGEgd3JpdGUt CiAgICBwcm90ZWN0ZWQgcGFnZSwganVzdCB0byBmaW5kIHRoZSBpb3JlcSBzZXJ2ZXIgaGFzIGJl ZW4gdW5tYXBwZWQKICAgIGFscmVhZHkuCiAgLSBJbnRyb2R1Y2UgYSBzZXBlcmF0ZSBwYXRjaCB0 byBkZWxheSB0aGUgcmVsZWFzZSBvZiBwMm0KICAgIGxvY2sgdG8gYXZvaWQgdGhlIHJhY2UgY29u ZGl0aW9uLgogIC0gSW50cm9kdWNlIGEgc2VwZXJhdGUgcGF0Y2ggdG8gaGFuZGxlIHRoZSByZWFk LW1vZGlmeS13cml0ZQogICAgb3BlcmF0aW9ucyBvbiBhIHdyaXRlIHByb3RlY3RlZCBwYWdlLgoK Y2hhbmdlcyBpbiB2NToKICAtIFNpbXBsaWZ5IGxvZ2ljIGluIGh2bWVtdWxfZG9faW8oKS4KICAt IFVzZSBuYXR1YWwgd2lkdGggdHlwZXMgaW5zdGVhZCBvZiBmaXhlZCB3aWR0aCB0eXBlcyB3aGVu IHBvc3NpYmxlLgogIC0gRG8gbm90IGdyYW50IGV4ZWN1dGFibGUgcGVybWlzc2lvbiBmb3IgcDJt X2lvcmVxX3NlcnZlciBlbnRyaWVzLgogIC0gQ2xhcmlmeSBjb21tZW50cyBhbmQgY29tbWl0IG1l c3NhZ2UuCiAgLSBJbnRyb2R1Y2UgYSBzZXBlcmF0ZSBwYXRjaCB0byByZWNhbGN1bGF0ZSB0aGUg cDJtIHR5cGVzIGFmdGVyCiAgICB0aGUgaW9yZXEgc2VydmVyIHVubWFwcyB0aGUgcDJtX2lvcmVx X3NlcnZlci4KCmNoYW5nZXMgaW4gdjQ6CiAgLSBBY2NvcmRpbmcgdG8gUGF1bCdzIGFkdmljZSwg YWRkIGNvbW1lbnRzIGFyb3VuZCB0aGUgZGVmaW5pdGlvbgogICAgb2YgSFZNTUVNX2lvcmVfc2Vy dmVyIGluIGh2bV9vcC5oLgogIC0gQWNjb3JkaW5nIHRvIFdlaSBMaXUncyBjb21tZW50cywgY2hh bmdlIHRoZSBmb3JtYXQgb2YgdGhlIGNvbW1pdAogICAgbWVzc2FnZS4KCmNoYW5nZXMgaW4gdjM6 CiAgLSBPbmx5IHN1cHBvcnQgd3JpdGUgZW11bGF0aW9uIGluIHRoaXMgcGF0Y2g7CiAgLSBSZW1v dmUgdGhlIGNvZGUgdG8gaGFuZGxlIHJhY2UgY29uZGl0aW9uIGluIGh2bWVtdWxfZG9faW8oKSwK ICAtIE5vIG5lZWQgdG8gcmVzZXQgdGhlIHAybSB0eXBlIGFmdGVyIGFuIGlvcmVxIHNlcnZlciBo YXMgZGlzY2xhaW1lZAogICAgaXRzIG93bmVyc2hpcCBvZiBwMm1faW9yZXFfc2VydmVyOwogIC0g T25seSBhbGxvdyBwMm0gdHlwZSBjaGFuZ2UgdG8gcDJtX2lvcmVxX3NlcnZlciBhZnRlciBhbiBp b3JlcQogICAgc2VydmVyIGhhcyBjbGFpbWVkIGl0cyBvd25lcnNoaXAgb2YgcDJtX2lvcmVxX3Nl cnZlcjsKICAtIE9ubHkgYWxsb3cgcDJtIHR5cGUgY2hhbmdlIHRvIHAybV9pb3JlcV9zZXJ2ZXIg ZnJvbSBwYWdlcyB3aXRoIHR5cGUKICAgIHAybV9yYW1fcncsIGFuZCB2aWNlIHZlcnNhOwogIC0g SFZNT1BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciBpbnRlcmZhY2UgY2hhbmdlIC0gdXNl IHVpbnQxNiwKICAgIGluc3RlYWQgb2YgZW51bSB0byBzcGVjaWZ5IHRoZSBtZW1vcnkgdHlwZTsK ICAtIEZ1bmN0aW9uIHByb3RvdHlwZSBjaGFuZ2UgdG8gcDJtX2dldF9pb3JlcV9zZXJ2ZXIoKTsK ICAtIENvZGluZyBzdHlsZSBjaGFuZ2VzOwogIC0gQ29tbWl0IG1lc3NhZ2UgY2hhbmdlczsKICAt IEFkZCBUaW0ncyBBY2tlZC1ieS4KCmNoYW5nZXMgaW4gdjI6CiAgLSBPbmx5IHN1cHBvcnQgSEFQ IGVuYWJsZWQgSFZNczsKICAtIFJlcGxhY2UgcDJtX21lbV90eXBlX2NoYW5nZWQoKSB3aXRoIHAy bV9jaGFuZ2VfZW50cnlfdHlwZV9nbG9iYWwoKQogICAgdG8gcmVzZXQgdGhlIHAybSB0eXBlLCB3 aGVuIGFuIGlvcmVxIHNlcnZlciB0cmllcyB0byBjbGFpbS9kaXNjbGFpbQogICAgaXRzIG93bmVy c2hpcCBvZiBwMm1faW9yZXFfc2VydmVyOwogIC0gQ29tbWVudHMgY2hhbmdlcy4KLS0tCiB4ZW4v YXJjaC94ODYvaHZtL2RtLmMgICAgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrKysrKy0tCiB4 ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYyAgICAgICB8IDY1ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMgICAgICAgICB8IDM4ICsr KysrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L21tL2hhcC9uZXN0ZWRfaGFwLmMgfCAg MiArLQogeGVuL2FyY2gveDg2L21tL3AybS1lcHQuYyAgICAgICAgfCAgOCArKysrLQogeGVuL2Fy Y2gveDg2L21tL3AybS1wdC5jICAgICAgICAgfCAxOSArKysrKysrLS0tLQogeGVuL2FyY2gveDg2 L21tL3AybS5jICAgICAgICAgICAgfCA3NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiB4ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMgICB8ICAzICstCiB4ZW4v aW5jbHVkZS9hc20teDg2L2h2bS9pb3JlcS5oICB8ICAyICsrCiB4ZW4vaW5jbHVkZS9hc20teDg2 L3AybS5oICAgICAgICB8IDI2ICsrKysrKysrKysrKy0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L2RtX29wLmggICB8IDI4ICsrKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9o dm1fb3AuaCAgfCAgOCArKysrLQogMTIgZmlsZXMgY2hhbmdlZCwgMjkwIGluc2VydGlvbnMoKyks IDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYyBiL3hl bi9hcmNoL3g4Ni9odm0vZG0uYwppbmRleCAzMzNjODg0Li4zZjk0ODRkIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvaHZtL2RtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCkBAIC0xNzMs OSArMTczLDE0IEBAIHN0YXRpYyBpbnQgbW9kaWZpZWRfbWVtb3J5KHN0cnVjdCBkb21haW4gKmQs CiAKIHN0YXRpYyBib29sIGFsbG93X3AybV90eXBlX2NoYW5nZShwMm1fdHlwZV90IG9sZCwgcDJt X3R5cGVfdCBuZXcpCiB7CisgICAgaWYgKCBuZXcgPT0gcDJtX2lvcmVxX3NlcnZlciApCisgICAg ICAgIHJldHVybiBvbGQgPT0gcDJtX3JhbV9ydzsKKworICAgIGlmICggb2xkID09IHAybV9pb3Jl cV9zZXJ2ZXIgKQorICAgICAgICByZXR1cm4gbmV3ID09IHAybV9yYW1fcnc7CisKICAgICByZXR1 cm4gcDJtX2lzX3JhbShvbGQpIHx8Ci0gICAgICAgICAgIChwMm1faXNfaG9sZShvbGQpICYmIG5l dyA9PSBwMm1fbW1pb19kbSkgfHwKLSAgICAgICAgICAgKG9sZCA9PSBwMm1faW9yZXFfc2VydmVy ICYmIG5ldyA9PSBwMm1fcmFtX3J3KTsKKyAgICAgICAgICAgKHAybV9pc19ob2xlKG9sZCkgJiYg bmV3ID09IHAybV9tbWlvX2RtKTsKIH0KIAogc3RhdGljIGludCBzZXRfbWVtX3R5cGUoc3RydWN0 IGRvbWFpbiAqZCwKQEAgLTIwMiw2ICsyMDcsMTkgQEAgc3RhdGljIGludCBzZXRfbWVtX3R5cGUo c3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgIHVubGlrZWx5KGRhdGEtPm1lbV90eXBlID09IEhW TU1FTV91bnVzZWQpICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKKyAgICBpZiAoIGRhdGEt Pm1lbV90eXBlICA9PSBIVk1NRU1faW9yZXFfc2VydmVyICkKKyAgICB7CisgICAgICAgIHVuc2ln bmVkIGludCBmbGFnczsKKworICAgICAgICAvKiBIVk1NRU1faW9yZXFfc2VydmVyIGlzIG9ubHkg c3VwcG9ydGVkIGZvciBIQVAgZW5hYmxlZCBodm0uICovCisgICAgICAgIGlmICggIWhhcF9lbmFi bGVkKGQpICkKKyAgICAgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKworICAgICAgICAvKiBE byBub3QgY2hhbmdlIHRvIEhWTU1FTV9pb3JlcV9zZXJ2ZXIgaWYgbm8gaW9yZXEgc2VydmVyIG1h cHBlZC4gKi8KKyAgICAgICAgaWYgKCAhcDJtX2dldF9pb3JlcV9zZXJ2ZXIoZCwgJmZsYWdzKSAp CisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKICAgICB3aGlsZSAoIGl0ZXIg PCBkYXRhLT5uciApCiAgICAgewogICAgICAgICB1bnNpZ25lZCBsb25nIHBmbiA9IGRhdGEtPmZp cnN0X3BmbiArIGl0ZXI7CkBAIC0zNjUsNiArMzgzLDIxIEBAIHN0YXRpYyBpbnQgZG1fb3AoZG9t aWRfdCBkb21pZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBYRU5fRE1PUF9t YXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyOgorICAgIHsKKyAgICAgICAgY29uc3Qgc3RydWN0 IHhlbl9kbV9vcF9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyICpkYXRhID0KKyAgICAgICAg ICAgICZvcC51Lm1hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXI7CisKKyAgICAgICAgcmMgPSAt RU9QTk9UU1VQUDsKKyAgICAgICAgLyogT25seSBzdXBwb3J0IGZvciBIQVAgZW5hYmxlZCBodm0u ICovCisgICAgICAgIGlmICggIWhhcF9lbmFibGVkKGQpICkKKyAgICAgICAgICAgIGJyZWFrOwor CisgICAgICAgIHJjID0gaHZtX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIoZCwgZGF0YS0+ aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+ dHlwZSwgZGF0YS0+ZmxhZ3MpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIFhF Tl9ETU9QX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGU6CiAgICAgewogICAgICAgICBjb25zdCBzdHJ1 Y3QgeGVuX2RtX29wX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUgKmRhdGEgPQpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwpp bmRleCBmMzZkN2M5Li4zNzEzOWU2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxh dGUuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwpAQCAtOTksNiArOTksNyBAQCBz dGF0aWMgaW50IGh2bWVtdWxfZG9faW8oCiAgICAgdWludDhfdCBkaXIsIGJvb2xfdCBkZiwgYm9v bF90IGRhdGFfaXNfYWRkciwgdWludHB0cl90IGRhdGEpCiB7CiAgICAgc3RydWN0IHZjcHUgKmN1 cnIgPSBjdXJyZW50OworICAgIHN0cnVjdCBkb21haW4gKmN1cnJkID0gY3Vyci0+ZG9tYWluOwog ICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1cnItPmFyY2guaHZtX3ZjcHUuaHZtX2lv OwogICAgIGlvcmVxX3QgcCA9IHsKICAgICAgICAgLnR5cGUgPSBpc19tbWlvID8gSU9SRVFfVFlQ RV9DT1BZIDogSU9SRVFfVFlQRV9QSU8sCkBAIC0xNDAsNyArMTQxLDcgQEAgc3RhdGljIGludCBo dm1lbXVsX2RvX2lvKAogICAgICAgICAgICAgIChwLmRpciAhPSBkaXIpIHx8CiAgICAgICAgICAg ICAgKHAuZGYgIT0gZGYpIHx8CiAgICAgICAgICAgICAgKHAuZGF0YV9pc19wdHIgIT0gZGF0YV9p c19hZGRyKSApCi0gICAgICAgICAgICBkb21haW5fY3Jhc2goY3Vyci0+ZG9tYWluKTsKKyAgICAg ICAgICAgIGRvbWFpbl9jcmFzaChjdXJyZCk7CiAKICAgICAgICAgaWYgKCBkYXRhX2lzX2FkZHIg KQogICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwpAQCAtMTc3LDggKzE3 OCw2NCBAQCBzdGF0aWMgaW50IGh2bWVtdWxfZG9faW8oCiAgICAgICAgIGJyZWFrOwogICAgIGNh c2UgWDg2RU1VTF9VTkhBTkRMRUFCTEU6CiAgICAgewotICAgICAgICBzdHJ1Y3QgaHZtX2lvcmVx X3NlcnZlciAqcyA9Ci0gICAgICAgICAgICBodm1fc2VsZWN0X2lvcmVxX3NlcnZlcihjdXJyLT5k b21haW4sICZwKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogWGVuIGlzbid0IGVtdWxhdGluZyB0 aGUgaW5zdHJ1Y3Rpb24gaW50ZXJuYWxseSwgc28gc2VlIGlmCisgICAgICAgICAqIHRoZXJlJ3Mg YW4gaW9yZXEgc2VydmVyIHRoYXQgY2FuIGhhbmRsZSBpdC4gUnVsZXM6CisgICAgICAgICAqCisg ICAgICAgICAqIC0gUElPIGFuZCAibm9ybWFsIiBNTUlPIHJ1biB0aHJvdWdoIGh2bV9zZWxlY3Rf aW9yZXFfc2VydmVyKCkKKyAgICAgICAgICogdG8gY2hvb3NlIHRoZSBpb3JlcSBzZXJ2ZXIgYnkg cmFuZ2UuIElmIG5vIHNlcnZlciBpcyBmb3VuZCwKKyAgICAgICAgICogdGhlIGFjY2VzcyBpcyBp Z25vcmVkLgorICAgICAgICAgKgorICAgICAgICAgKiAtIHAybV9pb3JlcV9zZXJ2ZXIgYWNjZXNz ZXMgYXJlIGhhbmRsZWQgYnkgdGhlIGRlc2lnbmF0ZWQKKyAgICAgICAgICogaW9yZXFfc2VydmVy IGZvciB0aGUgZG9tYWluLCBidXQgdGhlcmUgYXJlIHNvbWUgY29ybmVyCisgICAgICAgICAqIGNh c2VzOgorICAgICAgICAgKgorICAgICAgICAgKiAgIC0gSWYgdGhlIGRvbWFpbiBpb3JlcV9zZXJ2 ZXIgaXMgTlVMTCwgYXNzdW1lIHRoZXJlIGlzIGEKKyAgICAgICAgICogICByYWNlIGJldHdlZW4g dGhlIHVuYmluZGluZyBvZiBpb3JlcSBzZXJ2ZXIgYW5kIGd1ZXN0IGZhdWx0CisgICAgICAgICAq ICAgc28gcmUtdHJ5IHRoZSBpbnN0cnVjdGlvbi4KKyAgICAgICAgICovCisgICAgICAgIHN0cnVj dCBodm1faW9yZXFfc2VydmVyICpzID0gTlVMTDsKKyAgICAgICAgcDJtX3R5cGVfdCBwMm10ID0g cDJtX2ludmFsaWQ7CisKKyAgICAgICAgaWYgKCBpc19tbWlvICkKKyAgICAgICAgeworICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBnbWZuID0gcGFkZHJfdG9fcGZuKGFkZHIpOworCisgICAgICAg ICAgICBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGN1cnJkLCBnbWZuLCAmcDJtdCk7CisKKyAgICAg ICAgICAgIGlmICggcDJtdCA9PSBwMm1faW9yZXFfc2VydmVyICkKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CisKKyAgICAgICAgICAgICAgICAvKgor ICAgICAgICAgICAgICAgICAqIFZhbHVlIG9mIHMgY291bGQgYmUgc3RhbGUsIHdoZW4gd2UgbG9z dCBhIHJhY2UKKyAgICAgICAgICAgICAgICAgKiB3aXRoIGRtX29wIHdoaWNoIHVubWFwcyBwMm1f aW9yZXFfc2VydmVyIGZyb20gdGhlCisgICAgICAgICAgICAgICAgICogaW9yZXEgc2VydmVyLiBZ ZXQgdGhlcmUncyBubyBjaGVhcCB3YXkgdG8gYXZvaWQKKyAgICAgICAgICAgICAgICAgKiB0aGlz LCBzbyBkZXZpY2UgbW9kZWwgbmVlZCB0byBkbyB0aGUgY2hlY2suCisgICAgICAgICAgICAgICAg ICovCisgICAgICAgICAgICAgICAgcyA9IHAybV9nZXRfaW9yZXFfc2VydmVyKGN1cnJkLCAmZmxh Z3MpOworCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBJZiBwMm10IGlz IGlvcmVxX3NlcnZlciBidXQgaW9yZXFfc2VydmVyIGlzIE5VTEwsCisgICAgICAgICAgICAgICAg ICogd2UgcHJvYmFibHkgbG9zdCBhIHJhY2Ugd2l0aCB1bmJpbmRpbmcgb2YgaW9yZXEKKyAgICAg ICAgICAgICAgICAgKiBzZXJ2ZXIsIGp1c3QgcmV0cnkgdGhlIGFjY2Vzcy4KKyAgICAgICAgICAg ICAgICAgKi8KKyAgICAgICAgICAgICAgICBpZiAoIHMgPT0gTlVMTCApCisgICAgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICAgICByYyA9IFg4NkVNVUxfUkVUUlk7CisgICAgICAgICAg ICAgICAgICAgIHZpby0+aW9fcmVxLnN0YXRlID0gU1RBVEVfSU9SRVFfTk9ORTsKKyAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg ICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogVmFsdWUgb2YgcyBjb3VsZCBiZSBzdGFs ZSwgd2hlbiB3ZSBsb3N0IGEgcmFjZSB3aXRoIGRtX29wCisgICAgICAgICAqIHdoaWNoIHVubWFw cyB0aGlzIFBJTy9NTUlPIGFkZHJlc3MgZnJvbSB0aGUgaW9yZXEgc2VydmVyLgorICAgICAgICAg KiBUaGUgZGV2aWNlIG1vZGVsIHNpZGUgbmVlZCB0byBkbyB0aGUgY2hlY2suCisgICAgICAgICAq LworICAgICAgICBpZiAoICFzICkKKyAgICAgICAgICAgIHMgPSBodm1fc2VsZWN0X2lvcmVxX3Nl cnZlcihjdXJyZCwgJnApOwogCiAgICAgICAgIC8qIElmIHRoZXJlIGlzIG5vIHN1aXRhYmxlIGJh Y2tpbmcgRE0sIGp1c3QgaWdub3JlIGFjY2Vzc2VzICovCiAgICAgICAgIGlmICggIXMgKQpAQCAt MTg5LDcgKzI0Niw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9kb19pbygKICAgICAgICAgZWxzZQog ICAgICAgICB7CiAgICAgICAgICAgICByYyA9IGh2bV9zZW5kX2lvcmVxKHMsICZwLCAwKTsKLSAg ICAgICAgICAgIGlmICggcmMgIT0gWDg2RU1VTF9SRVRSWSB8fCBjdXJyLT5kb21haW4tPmlzX3No dXR0aW5nX2Rvd24gKQorICAgICAgICAgICAgaWYgKCByYyAhPSBYODZFTVVMX1JFVFJZIHx8IGN1 cnJkLT5pc19zaHV0dGluZ19kb3duICkKICAgICAgICAgICAgICAgICB2aW8tPmlvX3JlcS5zdGF0 ZSA9IFNUQVRFX0lPUkVRX05PTkU7CiAgICAgICAgICAgICBlbHNlIGlmICggZGF0YV9pc19hZGRy ICkKICAgICAgICAgICAgICAgICByYyA9IFg4NkVNVUxfT0tBWTsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9odm0vaW9yZXEuYyBiL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYwppbmRleCBhZDJl ZGFkLi43NDY3OTlmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKKysrIGIv eGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCkBAIC03NTMsNiArNzUzLDggQEAgaW50IGh2bV9kZXN0 cm95X2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkKQogCiAgICAg ICAgIGRvbWFpbl9wYXVzZShkKTsKIAorICAgICAgICBwMm1fZGVzdHJveV9pb3JlcV9zZXJ2ZXIo ZCwgcyk7CisKICAgICAgICAgaHZtX2lvcmVxX3NlcnZlcl9kaXNhYmxlKHMsIDApOwogCiAgICAg ICAgIGxpc3RfZGVsKCZzLT5saXN0X2VudHJ5KTsKQEAgLTkxNCw2ICs5MTYsNDIgQEAgaW50IGh2 bV91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3Nl cnZpZF90IGlkLAogICAgIHJldHVybiByYzsKIH0KIAoraW50IGh2bV9tYXBfbWVtX3R5cGVfdG9f aW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHlwZSwgdWludDMyX3QgZmxhZ3Mp Cit7CisgICAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnM7CisgICAgaW50IHJjOworCisgICAg LyogRm9yIG5vdywgb25seSBIVk1NRU1faW9yZXFfc2VydmVyIGlzIHN1cHBvcnRlZC4gKi8KKyAg ICBpZiAoIHR5cGUgIT0gSFZNTUVNX2lvcmVxX3NlcnZlciApCisgICAgICAgIHJldHVybiAtRUlO VkFMOworCisgICAgLyogRm9yIG5vdywgb25seSB3cml0ZSBlbXVsYXRpb24gaXMgc3VwcG9ydGVk LiAqLworICAgIGlmICggZmxhZ3MgJiB+KFhFTl9ETU9QX0lPUkVRX01FTV9BQ0NFU1NfV1JJVEUp ICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBzcGluX2xvY2tfcmVjdXJzaXZlKCZk LT5hcmNoLmh2bV9kb21haW4uaW9yZXFfc2VydmVyLmxvY2spOworCisgICAgcmMgPSAtRU5PRU5U OworICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5saXN0LAorICAgICAgICAgICAgICAg ICAgICAgICAgICBsaXN0X2VudHJ5ICkKKyAgICB7CisgICAgICAgIGlmICggcyA9PSBkLT5hcmNo Lmh2bV9kb21haW4uZGVmYXVsdF9pb3JlcV9zZXJ2ZXIgKQorICAgICAgICAgICAgY29udGludWU7 CisKKyAgICAgICAgaWYgKCBzLT5pZCA9PSBpZCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJj ID0gcDJtX3NldF9pb3JlcV9zZXJ2ZXIoZCwgZmxhZ3MsIHMpOworICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzcGluX3VubG9ja19yZWN1cnNpdmUoJmQtPmFyY2gu aHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubG9jayk7CisKKyAgICByZXR1cm4gcmM7Cit9CisKIGlu dCBodm1fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZShzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90 IGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xfdCBlbmFibGVkKQogewpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL2hhcC9uZXN0ZWRfaGFwLmMgYi94ZW4vYXJjaC94 ODYvbW0vaGFwL25lc3RlZF9oYXAuYwppbmRleCAxNjJhZmVkLi40MDhlYTdmIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvbW0vaGFwL25lc3RlZF9oYXAuYworKysgYi94ZW4vYXJjaC94ODYvbW0v aGFwL25lc3RlZF9oYXAuYwpAQCAtMTcyLDcgKzE3Miw3IEBAIG5lc3RlZGhhcF93YWxrX0wwX3Ay bShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBwYWRkcl90IEwxX2dwYSwgcGFkZHJfdCAqTDBfZ3Bh LAogICAgIGlmICggKnAybXQgPT0gcDJtX21taW9fZGlyZWN0ICkKICAgICAgICAgZ290byBkaXJl Y3RfbW1pb19vdXQ7CiAgICAgcmMgPSBORVNURURIVk1fUEFHRUZBVUxUX01NSU87Ci0gICAgaWYg KCAqcDJtdCA9PSBwMm1fbW1pb19kbSApCisgICAgaWYgKCAqcDJtdCA9PSBwMm1fbW1pb19kbSB8 fCAqcDJtdCA9PSBwMm1faW9yZXFfc2VydmVyICkKICAgICAgICAgZ290byBvdXQ7CiAKICAgICBy YyA9IE5FU1RFREhWTV9QQUdFRkFVTFRfTDBfRVJST1I7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvbW0vcDJtLWVwdC5jIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwppbmRleCA1Njg5NDRm Li5jYzFlYjIxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCisrKyBiL3hl bi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKQEAgLTEzMSw2ICsxMzEsMTMgQEAgc3RhdGljIHZvaWQg ZXB0X3AybV90eXBlX3RvX2ZsYWdzKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIGVwdF9lbnRyeV90 ICplbnRyeSwKICAgICAgICAgICAgIGVudHJ5LT5yID0gZW50cnktPncgPSBlbnRyeS0+eCA9IDE7 CiAgICAgICAgICAgICBlbnRyeS0+YSA9IGVudHJ5LT5kID0gISFjcHVfaGFzX3ZteF9lcHRfYWQ7 CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBwMm1faW9yZXFfc2VydmVyOgorICAg ICAgICAgICAgZW50cnktPnIgPSAxOworICAgICAgICAgICAgZW50cnktPncgPSAhKHAybS0+aW9y ZXEuZmxhZ3MgJiBYRU5fRE1PUF9JT1JFUV9NRU1fQUNDRVNTX1dSSVRFKTsKKyAgICAgICAgICAg IGVudHJ5LT54ID0gMDsKKyAgICAgICAgICAgIGVudHJ5LT5hID0gISFjcHVfaGFzX3ZteF9lcHRf YWQ7CisgICAgICAgICAgICBlbnRyeS0+ZCA9IGVudHJ5LT53ICYmIGVudHJ5LT5hOworICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgcDJtX21taW9fZGlyZWN0OgogICAgICAgICAgICAg ZW50cnktPnIgPSBlbnRyeS0+eCA9IDE7CiAgICAgICAgICAgICBlbnRyeS0+dyA9ICFyYW5nZXNl dF9jb250YWluc19zaW5nbGV0b24obW1pb19yb19yYW5nZXMsCkBAIC0xNzAsNyArMTc3LDYgQEAg c3RhdGljIHZvaWQgZXB0X3AybV90eXBlX3RvX2ZsYWdzKHN0cnVjdCBwMm1fZG9tYWluICpwMm0s IGVwdF9lbnRyeV90ICplbnRyeSwKICAgICAgICAgICAgIGVudHJ5LT5hID0gZW50cnktPmQgPSAh IWNwdV9oYXNfdm14X2VwdF9hZDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIHAy bV9ncmFudF9tYXBfcm86Ci0gICAgICAgIGNhc2UgcDJtX2lvcmVxX3NlcnZlcjoKICAgICAgICAg ICAgIGVudHJ5LT5yID0gMTsKICAgICAgICAgICAgIGVudHJ5LT53ID0gZW50cnktPnggPSAwOwog ICAgICAgICAgICAgZW50cnktPmEgPSAhIWNwdV9oYXNfdm14X2VwdF9hZDsKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwppbmRl eCAwN2UyY2NkLi5mNmM0NWVjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMK KysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCkBAIC03MCw3ICs3MCw5IEBAIHN0YXRpYyBj b25zdCB1bnNpZ25lZCBsb25nIHBndFtdID0gewogICAgIFBHVF9sM19wYWdlX3RhYmxlCiB9Owog Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyBwMm1fdHlwZV90b19mbGFncyhwMm1fdHlwZV90IHQsIG1m bl90IG1mbiwKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHAybV90eXBlX3RvX2ZsYWdzKGNvbnN0IHN0 cnVjdCBwMm1fZG9tYWluICpwMm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwMm1fdHlwZV90IHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtZm5fdCBtZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgbGV2ZWwpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTkyLDggKzk0 LDEyIEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHAybV90eXBlX3RvX2ZsYWdzKHAybV90eXBlX3Qg dCwgbWZuX3QgbWZuLAogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmbGFncyB8IF9QQUdF X05YX0JJVDsKICAgICBjYXNlIHAybV9ncmFudF9tYXBfcm86Ci0gICAgY2FzZSBwMm1faW9yZXFf c2VydmVyOgogICAgICAgICByZXR1cm4gZmxhZ3MgfCBQMk1fQkFTRV9GTEFHUyB8IF9QQUdFX05Y X0JJVDsKKyAgICBjYXNlIHAybV9pb3JlcV9zZXJ2ZXI6CisgICAgICAgIGZsYWdzIHw9IFAyTV9C QVNFX0ZMQUdTIHwgX1BBR0VfUlcgfCBfUEFHRV9OWF9CSVQ7CisgICAgICAgIGlmICggcDJtLT5p b3JlcS5mbGFncyAmIFhFTl9ETU9QX0lPUkVRX01FTV9BQ0NFU1NfV1JJVEUgKQorICAgICAgICAg ICAgcmV0dXJuIGZsYWdzICYgfl9QQUdFX1JXOworICAgICAgICByZXR1cm4gZmxhZ3M7CiAgICAg Y2FzZSBwMm1fcmFtX3JvOgogICAgIGNhc2UgcDJtX3JhbV9sb2dkaXJ0eToKICAgICBjYXNlIHAy bV9yYW1fc2hhcmVkOgpAQCAtNDQwLDcgKzQ0Niw4IEBAIHN0YXRpYyBpbnQgZG9fcmVjYWxjKHN0 cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2lnbmVkIGxvbmcgZ2ZuKQogICAgICAgICAgICAgcDJt X3R5cGVfdCBwMm10ID0gcDJtX2lzX2xvZ2RpcnR5X3JhbmdlKHAybSwgZ2ZuICYgbWFzaywgZ2Zu IHwgfm1hc2spCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHAybV9yYW1fbG9nZGly dHkgOiBwMm1fcmFtX3J3OwogICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBsMWVfZ2V0 X3BmbihlKTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBwMm1fdHlwZV90b19m bGFncyhwMm10LCBfbWZuKG1mbiksIGxldmVsKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg ZmxhZ3MgPSBwMm1fdHlwZV90b19mbGFncyhwMm0sIHAybXQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21mbihtZm4pLCBsZXZlbCk7CiAKICAg ICAgICAgICAgIGlmICggbGV2ZWwgKQogICAgICAgICAgICAgewpAQCAtNTc4LDcgKzU4NSw3IEBA IHAybV9wdF9zZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBn Zm4sIG1mbl90IG1mbiwKICAgICAgICAgQVNTRVJUKCFtZm5fdmFsaWQobWZuKSB8fCBwMm10ICE9 IHAybV9tbWlvX2RpcmVjdCk7CiAgICAgICAgIGwzZV9jb250ZW50ID0gbWZuX3ZhbGlkKG1mbikg fHwgcDJtX2FsbG93c19pbnZhbGlkX21mbihwMm10KQogICAgICAgICAgICAgPyBsM2VfZnJvbV9w Zm4obWZuX3gobWZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybV90eXBlX3RvX2Zs YWdzKHAybXQsIG1mbiwgMikgfCBfUEFHRV9QU0UpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBwMm1fdHlwZV90b19mbGFncyhwMm0sIHAybXQsIG1mbiwgMikgfCBfUEFHRV9QU0UpCiAgICAg ICAgICAgICA6IGwzZV9lbXB0eSgpOwogICAgICAgICBlbnRyeV9jb250ZW50LmwxID0gbDNlX2Nv bnRlbnQubDM7CiAKQEAgLTYxNSw3ICs2MjIsNyBAQCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBw Mm1fZG9tYWluICpwMm0sIHVuc2lnbmVkIGxvbmcgZ2ZuLCBtZm5fdCBtZm4sCiAKICAgICAgICAg aWYgKCBtZm5fdmFsaWQobWZuKSB8fCBwMm1fYWxsb3dzX2ludmFsaWRfbWZuKHAybXQpICkKICAg ICAgICAgICAgIGVudHJ5X2NvbnRlbnQgPSBwMm1fbDFlX2Zyb21fcGZuKG1mbl94KG1mbiksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fdHlwZV90b19m bGFncyhwMm10LCBtZm4sIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcDJtX3R5cGVfdG9fZmxhZ3MocDJtLCBwMm10LCBtZm4sIDApKTsKICAgICAgICAgZWxz ZQogICAgICAgICAgICAgZW50cnlfY29udGVudCA9IGwxZV9lbXB0eSgpOwogCkBAIC02NTIsNyAr NjU5LDcgQEAgcDJtX3B0X3NldF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25l ZCBsb25nIGdmbiwgbWZuX3QgbWZuLAogICAgICAgICBBU1NFUlQoIW1mbl92YWxpZChtZm4pIHx8 IHAybXQgIT0gcDJtX21taW9fZGlyZWN0KTsKICAgICAgICAgaWYgKCBtZm5fdmFsaWQobWZuKSB8 fCBwMm1fYWxsb3dzX2ludmFsaWRfbWZuKHAybXQpICkKICAgICAgICAgICAgIGwyZV9jb250ZW50 ID0gbDJlX2Zyb21fcGZuKG1mbl94KG1mbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwMm1fdHlwZV90b19mbGFncyhwMm10LCBtZm4sIDEpIHwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybV90eXBlX3RvX2ZsYWdzKHAybSwgcDJtdCwg bWZuLCAxKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfUEFHRV9Q U0UpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBsMmVfY29udGVudCA9IGwyZV9lbXB0eSgp OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3Ay bS5jCmluZGV4IGE1NjUxYTMuLmRkNGU0NzcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9w Mm0uYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKQEAgLTgyLDYgKzgyLDggQEAgc3RhdGlj IGludCBwMm1faW5pdGlhbGlzZShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcDJtX2RvbWFpbiAq cDJtKQogICAgIGVsc2UKICAgICAgICAgcDJtX3B0X2luaXQocDJtKTsKIAorICAgIHNwaW5fbG9j a19pbml0KCZwMm0tPmlvcmVxLmxvY2spOworCiAgICAgcmV0dXJuIHJldDsKIH0KIApAQCAtMjg2 LDYgKzI4OCw3OCBAQCB2b2lkIHAybV9tZW1vcnlfdHlwZV9jaGFuZ2VkKHN0cnVjdCBkb21haW4g KmQpCiAgICAgfQogfQogCitpbnQgcDJtX3NldF9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAq ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsCisgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCit7CisgICAgc3Ry dWN0IHAybV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9zdHAybShkKTsKKyAgICBpbnQgcmM7CisK KyAgICAvKgorICAgICAqIFVzZSBsb2NrIHRvIHByZXZlbnQgY29uY3VycmVudCBzZXR0aW5nIGF0 dGVtcHRzCisgICAgICogZnJvbSBtdWx0aXBsZSBpb3JlcSBzZXJlcnMuCisgICAgICovCisgICAg c3Bpbl9sb2NrKCZwMm0tPmlvcmVxLmxvY2spOworCisgICAgLyogVW5tYXAgaW9yZXEgc2VydmVy IGZyb20gcDJtIHR5cGUgYnkgcGFzc2luZyBmbGFncyB3aXRoIDAuICovCisgICAgaWYgKCBmbGFn cyA9PSAwICkKKyAgICB7CisgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgaWYgKCBwMm0t PmlvcmVxLnNlcnZlciAhPSBzICkKKyAgICAgICAgICAgIGdvdG8gb3V0OworCisgICAgICAgIHAy bS0+aW9yZXEuc2VydmVyID0gTlVMTDsKKyAgICAgICAgcDJtLT5pb3JlcS5mbGFncyA9IDA7Cisg ICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIHJjID0gLUVCVVNZOworICAgICAgICBpZiAo IHAybS0+aW9yZXEuc2VydmVyICE9IE5VTEwgKQorICAgICAgICAgICAgZ290byBvdXQ7CisKKyAg ICAgICAgcDJtLT5pb3JlcS5zZXJ2ZXIgPSBzOworICAgICAgICBwMm0tPmlvcmVxLmZsYWdzID0g ZmxhZ3M7CisgICAgfQorCisgICAgcmMgPSAwOworCisgb3V0OgorICAgIHNwaW5fdW5sb2NrKCZw Mm0tPmlvcmVxLmxvY2spOworCisgICAgcmV0dXJuIHJjOworfQorCitzdHJ1Y3QgaHZtX2lvcmVx X3NlcnZlciAqcDJtX2dldF9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmZsYWdz KQoreworICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSBwMm1fZ2V0X2hvc3RwMm0oZCk7Cisg ICAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnM7CisKKyAgICBzcGluX2xvY2soJnAybS0+aW9y ZXEubG9jayk7CisKKyAgICBzID0gcDJtLT5pb3JlcS5zZXJ2ZXI7CisgICAgKmZsYWdzID0gcDJt LT5pb3JlcS5mbGFnczsKKworICAgIHNwaW5fdW5sb2NrKCZwMm0tPmlvcmVxLmxvY2spOworICAg IHJldHVybiBzOworfQorCit2b2lkIHAybV9kZXN0cm95X2lvcmVxX3NlcnZlcihjb25zdCBzdHJ1 Y3QgZG9tYWluICpkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0 IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCit7CisgICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9IHAy bV9nZXRfaG9zdHAybShkKTsKKworICAgIHNwaW5fbG9jaygmcDJtLT5pb3JlcS5sb2NrKTsKKwor ICAgIGlmICggcDJtLT5pb3JlcS5zZXJ2ZXIgPT0gcyApCisgICAgeworICAgICAgICBwMm0tPmlv cmVxLnNlcnZlciA9IE5VTEw7CisgICAgICAgIHAybS0+aW9yZXEuZmxhZ3MgPSAwOworICAgIH0K KworICAgIHNwaW5fdW5sb2NrKCZwMm0tPmlvcmVxLmxvY2spOworfQorCiB2b2lkIHAybV9lbmFi bGVfaGFyZHdhcmVfbG9nX2RpcnR5KHN0cnVjdCBkb21haW4gKmQpCiB7CiAgICAgc3RydWN0IHAy bV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9zdHAybShkKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9tbS9zaGFkb3cvbXVsdGkuYyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYwpp bmRleCA3ZWE5ZDgxLi41MjFiNjM5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93 L211bHRpLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCkBAIC0zMjY5LDgg KzMyNjksNyBAQCBzdGF0aWMgaW50IHNoX3BhZ2VfZmF1bHQoc3RydWN0IHZjcHUgKnYsCiAgICAg fQogCiAgICAgLyogTmVlZCB0byBoYW5kIG9mZiBkZXZpY2UtbW9kZWwgTU1JTyB0byB0aGUgZGV2 aWNlIG1vZGVsICovCi0gICAgaWYgKCBwMm10ID09IHAybV9tbWlvX2RtCi0gICAgICAgICB8fCAo cDJtdCA9PSBwMm1faW9yZXFfc2VydmVyICYmIGZ0ID09IGZ0X2RlbWFuZF93cml0ZSkgKQorICAg IGlmICggcDJtdCA9PSBwMm1fbW1pb19kbSApCiAgICAgewogICAgICAgICBncGEgPSBndWVzdF93 YWxrX3RvX2dwYSgmZ3cpOwogICAgICAgICBnb3RvIG1taW87CmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9pb3JlcS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEu aAppbmRleCBmYmYyYzc0Li5iNDM2NjdhIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2 L2h2bS9pb3JlcS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvcmVxLmgKQEAgLTM3 LDYgKzM3LDggQEAgaW50IGh2bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyKHN0cnVjdCBk b21haW4gKmQsIGlvc2VydmlkX3QgaWQsCiBpbnQgaHZtX3VubWFwX2lvX3JhbmdlX2Zyb21faW9y ZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHR5cGUsIHVpbnQ2NF90IHN0YXJ0 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBlbmQp OworaW50IGh2bV9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQs IGlvc2VydmlkX3QgaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDMyX3QgdHlwZSwgdWludDMyX3QgZmxhZ3MpOwogaW50IGh2bV9zZXRfaW9yZXFfc2VydmVyX3N0 YXRlKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYm9vbF90IGVuYWJsZWQpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9h c20teDg2L3AybS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAppbmRleCA0NzBkMjlkLi4z Nzg2NjgwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCisrKyBiL3hlbi9p bmNsdWRlL2FzbS14ODYvcDJtLmgKQEAgLTg5LDcgKzg5LDggQEAgdHlwZWRlZiB1bnNpZ25lZCBp bnQgcDJtX3F1ZXJ5X3Q7CiAgICAgICAgICAgICAgICAgICAgICAgIHwgcDJtX3RvX21hc2socDJt X3JhbV9wYWdpbmdfb3V0KSAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgfCBwMm1fdG9f bWFzayhwMm1fcmFtX3BhZ2VkKSAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICB8 IHAybV90b19tYXNrKHAybV9yYW1fcGFnaW5nX2luKSAgICAgICBcCi0gICAgICAgICAgICAgICAg ICAgICAgIHwgcDJtX3RvX21hc2socDJtX3JhbV9zaGFyZWQpKQorICAgICAgICAgICAgICAgICAg ICAgICB8IHAybV90b19tYXNrKHAybV9yYW1fc2hhcmVkKSAgICAgICAgICBcCisgICAgICAgICAg ICAgICAgICAgICAgIHwgcDJtX3RvX21hc2socDJtX2lvcmVxX3NlcnZlcikpCiAKIC8qIFR5cGVz IHRoYXQgcmVwcmVzZW50IGEgcGh5c21hcCBob2xlIHRoYXQgaXMgb2sgdG8gcmVwbGFjZSB3aXRo IGEgc2hhcmVkCiAgKiBlbnRyeSAqLwpAQCAtMTExLDggKzExMiw3IEBAIHR5cGVkZWYgdW5zaWdu ZWQgaW50IHAybV9xdWVyeV90OwogI2RlZmluZSBQMk1fUk9fVFlQRVMgKHAybV90b19tYXNrKHAy bV9yYW1fbG9nZGlydHkpICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgfCBwMm1fdG9fbWFz ayhwMm1fcmFtX3JvKSAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICB8IHAybV90b19t YXNrKHAybV9ncmFudF9tYXBfcm8pICAgXAotICAgICAgICAgICAgICAgICAgICAgIHwgcDJtX3Rv X21hc2socDJtX3JhbV9zaGFyZWQpICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgfCBwMm1f dG9fbWFzayhwMm1faW9yZXFfc2VydmVyKSkKKyAgICAgICAgICAgICAgICAgICAgICB8IHAybV90 b19tYXNrKHAybV9yYW1fc2hhcmVkKSkKIAogLyogV3JpdGUtZGlzY2FyZCB0eXBlcywgd2hpY2gg c2hvdWxkIGRpc2NhcmQgdGhlIHdyaXRlIG9wZXJhdGlvbnMgKi8KICNkZWZpbmUgUDJNX0RJU0NB UkRfV1JJVEVfVFlQRVMgKHAybV90b19tYXNrKHAybV9yYW1fcm8pICAgICBcCkBAIC0zMzYsNiAr MzM2LDIwIEBAIHN0cnVjdCBwMm1fZG9tYWluIHsKICAgICAgICAgc3RydWN0IGVwdF9kYXRhIGVw dDsKICAgICAgICAgLyogTlBULWVxdWl2YWxlbnQgc3RydWN0dXJlIGNvdWxkIGJlIGFkZGVkIGhl cmUuICovCiAgICAgfTsKKworICAgICBzdHJ1Y3QgeworICAgICAgICAgc3BpbmxvY2tfdCBsb2Nr OworICAgICAgICAgLyoKKyAgICAgICAgICAqIGlvcmVxIHNlcnZlciB3aG8ncyByZXNwb25zaWJs ZSBmb3IgdGhlIGVtdWxhdGlvbiBvZgorICAgICAgICAgICogZ2ZucyB3aXRoIHNwZWNpZmljIHAy bSB0eXBlKGZvciBub3csIHAybV9pb3JlcV9zZXJ2ZXIpLgorICAgICAgICAgICovCisgICAgICAg ICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqc2VydmVyOworICAgICAgICAgLyoKKyAgICAgICAg ICAqIGZsYWdzIHNwZWNpZmllcyB3aGV0aGVyIHJlYWQsIHdyaXRlIG9yIGJvdGggb3BlcmF0aW9u cworICAgICAgICAgICogYXJlIHRvIGJlIGVtdWxhdGVkIGJ5IGFuIGlvcmVxIHNlcnZlci4KKyAg ICAgICAgICAqLworICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOworICAgICB9IGlvcmVxOwog fTsKIAogLyogZ2V0IGhvc3QgcDJtIHRhYmxlICovCkBAIC04MjcsNiArODQxLDEyIEBAIHN0YXRp YyBpbmxpbmUgdW5zaWduZWQgaW50IHAybV9nZXRfaW9tbXVfZmxhZ3MocDJtX3R5cGVfdCBwMm10 LCBtZm5fdCBtZm4pCiAgICAgcmV0dXJuIGZsYWdzOwogfQogCitpbnQgcDJtX3NldF9pb3JlcV9z ZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGZsYWdzLAorICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKTsKK3N0cnVjdCBodm1faW9y ZXFfc2VydmVyICpwMm1fZ2V0X2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqZmxh Z3MpOwordm9pZCBwMm1fZGVzdHJveV9pb3JlcV9zZXJ2ZXIoY29uc3Qgc3RydWN0IGRvbWFpbiAq ZCwgY29uc3Qgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpOworCiAjZW5kaWYgLyogX1hFTl9B U01fWDg2X1AyTV9IICovCiAKIC8qCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L2RtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKaW5kZXggZjU0Y2VjZS4u MmEzNjgzMyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCisrKyBi L3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaApAQCAtMzE4LDYgKzMxOCwzMiBAQCBzdHJ1 Y3QgeGVuX2RtX29wX2luamVjdF9tc2kgewogICAgIHVpbnQ2NF9hbGlnbmVkX3QgYWRkcjsKIH07 CiAKKy8qCisgKiBYRU5fRE1PUF9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyIDogbWFwIG9y IHVubWFwIHRoZSBJT1JFUSBTZXJ2ZXIgPGlkPgorICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRvIHNwZWNpZmljIG1lbXJveSB0eXBlIDx0eXBlPgorICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBzcGVjaWZpYyBhY2Nlc3NlcyA8ZmxhZ3M+ CisgKgorICogRm9yIG5vdywgZmxhZ3Mgb25seSBhY2NlcHQgdGhlIHZhbHVlIG9mIFhFTl9ETU9Q X0lPUkVRX01FTV9BQ0NFU1NfV1JJVEUsCisgKiB3aGljaCBtZWFucyBvbmx5IHdyaXRlIG9wZXJh dGlvbnMgYXJlIHRvIGJlIGZvcndhcmRlZCB0byBhbiBpb3JlcSBzZXJ2ZXIuCisgKiBTdXBwb3J0 IGZvciB0aGUgZW11bGF0aW9uIG9mIHJlYWQgb3BlcmF0aW9ucyBjYW4gYmUgYWRkZWQgd2hlbiBh biBpb3JlcQorICogc2VydmVyIGhhcyBzdWNoIHJlcXVpcmVtZW50IGluIGZ1dHVyZS4KKyAqLwor I2RlZmluZSBYRU5fRE1PUF9tYXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyIDE1CisKK3N0cnVj dCB4ZW5fZG1fb3BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciB7CisgICAgaW9zZXJ2aWRf dCBpZDsgICAgICAvKiBJTiAtIGlvcmVxIHNlcnZlciBpZCAqLworICAgIHVpbnQxNl90IHR5cGU7 ICAgICAgLyogSU4gLSBtZW1vcnkgdHlwZSAqLworICAgIHVpbnQzMl90IGZsYWdzOyAgICAgLyog SU4gLSB0eXBlcyBvZiBhY2Nlc3NlcyB0byBiZSBmb3J3YXJkZWQgdG8gdGhlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBpb3JlcSBzZXJ2ZXIuIGZsYWdzIHdpdGggMCBtZWFucyB0byB1bm1h cCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvcmVxIHNlcnZlciAqLworCisjZGVm aW5lIFhFTl9ETU9QX0lPUkVRX01FTV9BQ0NFU1NfUkVBRCAoMXUgPDwgMCkKKyNkZWZpbmUgWEVO X0RNT1BfSU9SRVFfTUVNX0FDQ0VTU19XUklURSAoMXUgPDwgMSkKKworICAgIHVpbnQ2NF90IG9w YXF1ZTsgICAgLyogSU4vT1VUIC0gb25seSB1c2VkIGZvciBoeXBlcmNhbGwgY29udGludWF0aW9u LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzIHRvIGJlIHNldCB0byB6ZXJvIGJ5IHRo ZSBjYWxsZXIgKi8KK307CisKIHN0cnVjdCB4ZW5fZG1fb3AgewogICAgIHVpbnQzMl90IG9wOwog ICAgIHVpbnQzMl90IHBhZDsKQEAgLTMzNiw2ICszNjIsOCBAQCBzdHJ1Y3QgeGVuX2RtX29wIHsK ICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfbWVtX3R5cGUgc2V0X21lbV90eXBlOwogICAg ICAgICBzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9ldmVudCBpbmplY3RfZXZlbnQ7CiAgICAgICAg IHN0cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X21zaSBpbmplY3RfbXNpOworICAgICAgICBzdHJ1Y3Qg eGVuX2RtX29wX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIKKyAgICAgICAgICAgICAgICBt YXBfbWVtX3R5cGVfdG9faW9yZXFfc2VydmVyOwogICAgIH0gdTsKIH07CiAKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L2h2bV9vcC5oCmluZGV4IGJjMDBlZjAuLjBiZGFmZGYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L3B1YmxpYy9odm0vaHZtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3Au aApAQCAtOTMsNyArOTMsMTMgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBIVk1NRU1fdW51c2VkLCAg ICAgICAgICAgICAvKiBQbGFjZWhvbGRlcjsgc2V0dGluZyBtZW1vcnkgdG8gdGhpcyB0eXBlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBmYWlsIGZvciBjb2RlIGFmdGVy IDQuNy4wICovCiAjZW5kaWYKLSAgICBIVk1NRU1faW9yZXFfc2VydmVyCisgICAgSFZNTUVNX2lv cmVxX3NlcnZlciAgICAgICAgLyogTWVtb3J5IHR5cGUgY2xhaW1lZCBieSBhbiBpb3JlcSBzZXJ2 ZXI7IHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VzIHRvIHRo aXMgdmFsdWUgYXJlIG9ubHkgYWxsb3dlZCBhZnRlcgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFuIGlvcmVxIHNlcnZlciBoYXMgY2xhaW1lZCBpdHMgb3duZXJzaGlwLgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9ubHkgcGFnZXMgd2l0aCBIVk1NRU1fcmFt X3J3IGFyZSBhbGxvd2VkIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hh bmdlIHRvIHRoaXMgdHlwZTsgY29udmVyc2VseSwgcGFnZXMgd2l0aAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRoaXMgdHlwZSBhcmUgb25seSBhbGxvd2VkIHRvIGJlIGNoYW5n ZWQgYmFjaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIEhWTU1FTV9yYW1f cncuICovCiB9IGh2bW1lbV90eXBlX3Q7CiAKIC8qIEhpbnQgZnJvbSBQViBkcml2ZXJzIGZvciBw YWdldGFibGUgZGVzdHJ1Y3Rpb24uICovCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=