From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christopher Clark Subject: [PATCH v3 04/15] argo: init, destroy and soft-reset, with enable command line opt Date: Sun, 6 Jan 2019 23:42:37 -0800 Message-ID: <1546846968-7372-5-git-send-email-christopher.w.clark@gmail.com> References: <1546846968-7372-1-git-send-email-christopher.w.clark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ggPZ4-0004eW-Qe for xen-devel@lists.xenproject.org; Mon, 07 Jan 2019 07:43:14 +0000 Received: by mail-pg1-x543.google.com with SMTP id s198so20381607pgs.2 for ; Sun, 06 Jan 2019 23:43:12 -0800 (PST) In-Reply-To: <1546846968-7372-1-git-send-email-christopher.w.clark@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , Ross Philipson , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Jason Andryuk , Ian Jackson , Rich Persaud , Tim Deegan , Daniel Smith , Julien Grall , Paul Durrant , Jan Beulich , James McKenzie , Eric Chanudet , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SW5pdGlhbGlzZXMgYmFzaWMgZGF0YSBzdHJ1Y3R1cmVzIGFuZCBwZXJmb3JtcyB0ZWFyZG93biBv ZiBhcmdvIHN0YXRlCmZvciBkb21haW4gc2h1dGRvd24uCgpJbmNsdXNpb24gb2YgdGhlIEFyZ28g aW1wbGVtZW50YXRpb24gaXMgZGVwZW5kZW50IG9uIENPTkZJR19BUkdPLgoKSW50cm9kdWNlcyBh IG5ldyBYZW4gY29tbWFuZCBsaW5lIHBhcmFtZXRlciAnYXJnbyc6IGJvb2wgdG8gZW5hYmxlL2Rp c2FibGUKdGhlIGFyZ28gaHlwZXJjYWxsLiBEZWZhdWx0cyB0byBkaXNhYmxlZC4KCk5ldyBoZWFk ZXJzOgogIHB1YmxpYy9hcmdvLmg6IHdpdGggZGVmaW5pb25zIG9mIGFkZHJlc3NlcyBhbmQgcmlu ZyBzdHJ1Y3R1cmUsIGluY2x1ZGluZwogIGluZGV4ZXMgZm9yIGF0b21pYyB1cGRhdGUgZm9yIGNv bW11bmljYXRpb24gYmV0d2VlbiBkb21haW4gYW5kIGh5cGVydmlzb3IuCgogIHhlbi9hcmdvLmg6 IHRvIGV4cG9zZSB0aGUgaG9va3MgZm9yIGludGVncmF0aW9uIGludG8gZG9tYWluIGxpZmVjeWNs ZToKICAgIGFyZ29faW5pdDogcGVyLWRvbWFpbiBpbml0IG9mIGFyZ28gZGF0YSBzdHJ1Y3R1cmVz IGZvciBkb21haW5fY3JlYXRlLgogICAgYXJnb19kZXN0cm95OiB0ZWFyZG93biBmb3IgZG9tYWlu X2Rlc3Ryb3kgYW5kIHRoZSBlcnJvciBleGl0CiAgICAgICAgICAgICAgICAgIHBhdGggb2YgZG9t YWluX2NyZWF0ZS4KICAgIGFyZ29fc29mdF9yZXNldDogcmVzZXQgb2YgZG9tYWluIHN0YXRlIGZv ciBkb21haW5fc29mdF9yZXNldC4KCkFkZHMgdHdvIG5ldyBmaWVsZHMgdG8gc3RydWN0IGRvbWFp bjoKICAgIHJ3bG9ja190IGFyZ29fbG9jazsKICAgIHN0cnVjdCBhcmdvX2RvbWFpbiAqYXJnbzsK CkluIGFjY29yZGFuY2Ugd2l0aCByZWNlbnQgd29yayBvbiBfZG9tYWluX2Rlc3Ryb3ksIGFyZ29f ZGVzdHJveSBpcwppZGVtcG90ZW50LiBJdCB3aWxsIHRlYXIgZG93bjogYWxsIHJpbmdzIHJlZ2lz dGVyZWQgYnkgdGhpcyBkb21haW4sIGFsbApyaW5ncyB3aGVyZSB0aGlzIGRvbWFpbiBpcyB0aGUg c2luZ2xlIHNlbmRlciAoaWUuIHNwZWNpZmllZCBwYXJ0bmVyLApub24td2lsZGNhcmQgcmluZ3Mp LCBhbmQgYWxsIHBlbmRpbmcgbm90aWZpY2F0aW9ucyB3aGVyZSB0aGlzIGRvbWFpbiBpcwphd2Fp dGluZyBzaWduYWwgYWJvdXQgYXZhaWxhYmxlIHNwYWNlIGluIHRoZSByaW5ncyBvZiBvdGhlciBk b21haW5zLgoKQSBjb3VudCB3aWxsIGJlIG1haW50YWluZWQgb2YgdGhlIG51bWJlciBvZiByaW5n cyB0aGF0IGEgZG9tYWluIGhhcwpyZWdpc3RlcmVkIGluIG9yZGVyIHRvIGxpbWl0IGl0IGJlbG93 IHRoZSBmaXhlZCBtYXhpbXVtIGxpbWl0IGRlZmluZWQgaGVyZS4KClRoZSBzb2Z0d2FyZSBsaWNl bnNlIG9uIHRoZSBwdWJsaWMgaGVhZGVyIGlzIHRoZSBCU0QgbGljZW5zZSwgc3RhbmRhcmQKcHJv Y2VkdXJlIGZvciB0aGUgcHVibGljIFhlbiBoZWFkZXJzLiBUaGUgcHVibGljIGhlYWRlciB3YXMg b3JpZ2luYWxseQpwb3N0ZWQgdW5kZXIgYSBHUEwgbGljZW5zZSBhdDogWzFdOgpodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTMtMDUvbXNnMDI3 MTAuaHRtbAoKVGhlIGZvbGxvd2luZyBBQ0sgYnkgTGFycyBLdXJ0aCBpcyB0byBjb25maXJtIHRo YXQgb25seSBwZW9wbGUgYmVpbmcKZW1wbG95ZWVzIG9mIENpdHJpeCBjb250cmlidXRlZCB0byB0 aGUgaGVhZGVyIGZpbGVzIGluIHRoZSBzZXJpZXMgcG9zdGVkIGF0ClsxXSBhbmQgdGhhdCB0aHVz IHRoZSBjb3B5cmlnaHQgb2YgdGhlIGZpbGVzIGluIHF1ZXN0aW9uIGlzIGZ1bGx5IG93bmVkIGJ5 CkNpdHJpeC4gVGhlIEFDSyBhbHNvIGNvbmZpcm1zIHRoYXQgQ2l0cml4IGlzIGhhcHB5IGZvciB0 aGUgaGVhZGVyIGZpbGVzIHRvCmJlIHB1Ymxpc2hlZCB1bmRlciBhIEJTRCBsaWNlbnNlIGluIHRo aXMgc2VyaWVzICh3aGljaCBpcyBiYXNlZCBvbiBbMV0pLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0 b3BoZXIgQ2xhcmsgPGNocmlzdG9waGVyLmNsYXJrNkBiYWVzeXN0ZW1zLmNvbT4KQWNrZWQtYnk6 IExhcnMgS3VydGggPGxhcnMua3VydGhAY2l0cml4LmNvbT4KLS0tCnYyIHJld3JpdGUgbG9ja2lu ZyBleHBsYW5hdGlvbiBjb21tZW50CnYyIGhlYWRlciBjb3B5cmlnaHQgbGluZSBub3cgaW5jbHVk ZXMgMjAxOQp2MiBzZWxmOiB1c2UgcmluZ19pbmZvIGJhY2twb2ludGVyIGluIHBlbmRpbmdfZW50 IHRvIG1haW50YWluIG5wZW5kaW5nCnYyIHNlbGY6IHJlbmFtZSBhbGxfcmluZ3NfcmVtb3ZlX2lu Zm8gdG8gZG9tYWluX3JpbmdzX3JlbW92ZV9hbGwKdjIgZmVlZGJhY2sgSmFuOiBkcm9wIGNvb2tp ZSwgaW1wbGVtZW50IHRlYXJkb3duCnYyIHNlbGY6IGFkZCBucGVuZGluZyB0byB0cmFjayBudW1i ZXIgb2YgcGVuZGluZyBlbnRyaWVzIHBlciByaW5nCnYyIHNlbGY6IGFtZW5kIGNvbW1lbnQgb24g bG9ja2luZzsgZHJvcCBzZWN0aW9uIGNvbW1lbnRzCnYyIGNvb2tpZV9lcTogdGVzdCBsb3cgYml0 cyBmaXJzdCBhbmQgdXNlIGxpa2VseSBvbiBoaWdoIGJpdHMKdjIgc2VsZjogT1ZFUkhBVUwKdjIg c2VsZjogcy9hcmdvX3BlbmRpbmdfZW50L3BlbmRpbmdfZW50L2cKdjIgc2VsZjogZHJvcCBwZW5k aW5nX3JlbW92ZV9lbnQsIGlubGluZSBhdCBzaW5nbGUgY2FsbCBzaXRlCnYxIGZlZWRiYWNrIFJv Z2VyLCBKYW46IGRyb3AgYXJnbyBwcmVmaXggb24gc3RhdGljIGZ1bmN0aW9ucwp2MiAjNCBMYXJz OiBhZGQgQWNrZWQtYnkgYW5kIGRldGFpbHMgdG8gY29tbWl0IG1lc3NhZ2UuCnYyIGZlZWRiYWNr ICM5IEphbjogZG9jdW1lbnQgYXJnbyBib290IG9wdCBpbiB4ZW4tY29tbWFuZC1saW5lLm1hcmtk b3duCnYyIGJ1Z2ZpeDogeHNtIHVzZSBpbiBzb2Z0LXJlc2V0IHByaW9yIHRvIGludHJvZHVjdGlv bgp2MiBmZWVkYmFjayAjOSBKYW46IGRyb3AgJ21lc3NhZ2UnIGZyb20gZG9fYXJnb19tZXNzYWdl X29wCnYxICM1IGZlZWRiYWNrIFBhdWw6IGluaXQvZGVzdHJveSB1bnNpZ25lZCwgYnJhY2tldHMg YW5kIHdoaXRlc3BhY2UgZml4ZXMKdjEgIzUgZmVlZGJhY2sgUGF1bDogVXNlIG1mbl9lcSBmb3Ig Y29tcGFyaW5nIG1mbnMuCnYxICM1IGZlZWRiYWNrIFBhdWw6IGluaXQvZGVzdHJveSA6IHVzZSBj dXJyZAp2MSAjNiAoIzUpIGZlZWRiYWNrIEphbjogaW5pdC9kZXN0cm95OiBzL0VOT1NZUy9FT1BO T1RTVVBQLwp2MSAjNiBmZWVkYmFjayBQYXVsOiBGb2xkZWQgcGF0Y2ggNiBpbnRvIHBhdGNoIDUu CnYxICM2IGZlZWRiYWNrIEphbjogZHJvcCBvcHRfYXJnb19lbmFibGVkIGluaXRpYWxpemVyCnYx ICQ2IGZlZWRiYWNrIEphbjogcy9FTk9TWVMvRU9QTk9UU1VQUC9nIGFuZCBkcm9wIHVzZWxlc3Mg ZHByaW50awp2MS4gIzUgZmVlZGJhY2sgUGF1bDogY2hhbmdlIHRoZSBsaWNlbnNlIG9uIHB1Ymxp YyBoZWFkZXIgdG8gQlNECi0gYWNrIGZyb20gTGFycyBhdCBDaXRyaXguCnYxLiBzZWxmLCBKYW46 IGRyb3AgdW5uZWNlc3NhcnkgeGVuIGluY2x1ZGUgZnJvbSBzY2hlZC5oCnYxLiBzZWxmLCBKYW46 IGRyb3AgaW5jbHVzaW9uIG9mIHB1YmxpYyBhcmdvLmggaW4gcHJpdmF0ZSBvbmUKdjEuIHNlbGYs IEphbjogYWRkIGluY2x1ZGUgb2YgcHVibGljIGFyZ28uaCB0byBhcmdvLmMKdjEuIHNlbGYsIEph bjogZHJvcCBmd2QgZGVjbCBvZiBhcmdvX2RvbWFpbiBpbiBwcml2IGhlYWRlcgp2MS4gUGF1bC9z ZWxmL0phbjogYWRkIGRhdGEgc3RydWN0dXJlcyB0byB4bGF0LmxzdCBhbmQgY29tcGF0L2FyZ28u aCB0byBNYWtlZmlsZQp2MS4gc2VsZjogcmVtb3ZlZCBhbGxvY2F0aW9uIG9mIGV2ZW50IGNoYW5u ZWwgc2luY2Ugc3dpdGNoaW5nIHRvIFZJUlEKdjEuIHNlbGY6IGRyb3AgdHlwZXMuaCBpbmNsdWRl IGZyb20gcHJpdmF0ZSBhcmdvLmgKdjE6IHJlb3JkZXIgcHVibGljIGFyZ28gaW5jbHVkZSBwb3Np dGlvbgp2MTogIzEzIGZlZWRiYWNrIEphbjogcHVibGljIG5hbWVzcGFjZTogcHJlZml4IHdpdGgg eGVuCnYxOiBzZWxmOiByZW5hbWUgcGVuZGluZyBlbnQgImlkIiB0byAiZG9tYWluX2lkIgp2MTog c2VsZjogYWRkIGRvbWFpbl9jb29raWUgdG8gZW50IHN0cnVjdAp2MS4gIzE1IGZlZWRiYWNrIEph bjogbWFrZSBjbWQgdW5zaWduZWQKdjEuICMxNSBmZWVkYmFjayBKYW46IG1ha2UgaSBsb29wIHZh cmlhYmxlIHVuc2lnbmVkCnYxOiBzZWxmOiBhZGp1c3QgZHByaW50a3MgaW4gaW5pdCwgZGVzdHJv eQp2MTogIzE4IGZlZWRiYWNrIEphbjogbWVsZCBtYXggcmluZyBjb3VudCBsaW1pdAp2MTogc2Vs ZjogdXNlIHR5cGUgbm90IHN0cnVjdCBpbiBwdWJsaWMgZGVmbiwgYWZmZWN0cyBjb21wYXQgZ2Vu IGhlYWRlcgp2MTogZmVlZGJhY2sgIzE1IEphbjogaGFuZGxlIHVwcGVyLWhhbHZlcyBvZiBoeXBl cmNhbGwgYXJncwp2MTogYWRkIGNvbW1lbnQgZXhwbGFpbmluZyB0aGUgJ21hZ2ljJyBmaWVsZAp2 MTogc2VsZiArIEphbiBmZWVkYmFjazogaW1wbGVtZW50IHNvZnQgcmVzZXQKdjE6IGZlZWRiYWNr ICMxMyBSb2dlcjogdXNlIEFTU0VSVF9VTlJFQUNIQUJMRQoKIGRvY3MvbWlzYy94ZW4tY29tbWFu ZC1saW5lLnBhbmRvYyB8ICAxMSArCiB4ZW4vY29tbW9uL2FyZ28uYyAgICAgICAgICAgICAgICAg fCA0NjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHhlbi9jb21tb24v ZG9tYWluLmMgICAgICAgICAgICAgICB8ICAyMCArKwogeGVuL2luY2x1ZGUvTWFrZWZpbGUgICAg ICAgICAgICAgIHwgICAxICsKIHhlbi9pbmNsdWRlL3B1YmxpYy9hcmdvLmggICAgICAgICB8ICA1 OSArKysrKwogeGVuL2luY2x1ZGUveGVuL2FyZ28uaCAgICAgICAgICAgIHwgIDIzICsrCiB4ZW4v aW5jbHVkZS94ZW4vc2NoZWQuaCAgICAgICAgICAgfCAgIDYgKwogeGVuL2luY2x1ZGUveGxhdC5s c3QgICAgICAgICAgICAgIHwgICAyICsKIDggZmlsZXMgY2hhbmdlZCwgNTgyIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS9wdWJsaWMv YXJnby5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUveGVuL2FyZ28uaAoKZGlmZiAt LWdpdCBhL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLnBhbmRvYyBiL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLnBhbmRvYwppbmRleCBhNzU1YTY3Li5hZWExM2ViIDEwMDY0NAotLS0gYS9k b2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5wYW5kb2MKKysrIGIvZG9jcy9taXNjL3hlbi1jb21t YW5kLWxpbmUucGFuZG9jCkBAIC0xODIsNiArMTgyLDE3IEBAIFBlcm1pdCBYZW4gdG8gdXNlICJB bHdheXMgUnVubmluZyBBUElDIFRpbWVyIiBzdXBwb3J0IG9uIGNvbXBhdGlibGUgaGFyZHdhcmUK IGluIGNvbWJpbmF0aW9uIHdpdGggY3B1aWRsZS4gIFRoaXMgb3B0aW9uIGlzIG9ubHkgZXhwZWN0 ZWQgdG8gYmUgdXNlZnVsIGZvcgogZGV2ZWxvcGVycyB3aXNoaW5nIFhlbiB0byBmYWxsIGJhY2sg dG8gb2xkZXIgdGltaW5nIG1ldGhvZHMgb24gbmV3ZXIgaGFyZHdhcmUuCiAKKyMjIyBhcmdvCis+ IGA9IDxib29sZWFuPmAKKworPiBEZWZhdWx0OiBgZmFsc2VgCisKK0VuYWJsZSB0aGUgQXJnbyBo eXBlcnZpc29yLW1lZGlhdGVkIGludGVyZG9tYWluIGNvbW11bmljYXRpb24gbWVjaGFuaXNtLgor CitUaGlzIGFsbG93cyBkb21haW5zIGFjY2VzcyB0byB0aGUgQXJnbyBoeXBlcmNhbGwsIHdoaWNo IHN1cHBvcnRzIHJlZ2lzdHJhdGlvbgorb2YgbWVtb3J5IHJpbmdzIHdpdGggdGhlIGh5cGVydmlz b3IgdG8gcmVjZWl2ZSBtZXNzYWdlcywgc2VuZGluZyBtZXNzYWdlcyB0bworb3RoZXIgZG9tYWlu cyBieSBoeXBlcmNhbGwgYW5kIHF1ZXJ5aW5nIHRoZSByaW5nIHN0YXR1cyBvZiBvdGhlciBkb21h aW5zLgorCiAjIyMgYXNpZCAoeDg2KQogPiBgPSA8Ym9vbGVhbj5gCiAKZGlmZiAtLWdpdCBhL3hl bi9jb21tb24vYXJnby5jIGIveGVuL2NvbW1vbi9hcmdvLmMKaW5kZXggNmY3ODJmNy4uODYxOTVk MyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9hcmdvLmMKKysrIGIveGVuL2NvbW1vbi9hcmdvLmMK QEAgLTE3LDcgKzE3LDE3NyBAQAogICovCiAKICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KKyNpbmNs dWRlIDx4ZW4vc2NoZWQuaD4KKyNpbmNsdWRlIDx4ZW4vZG9tYWluLmg+CisjaW5jbHVkZSA8eGVu L2FyZ28uaD4KKyNpbmNsdWRlIDx4ZW4vZXZlbnQuaD4KKyNpbmNsdWRlIDx4ZW4vZG9tYWluX3Bh Z2UuaD4KICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+CisjaW5jbHVkZSA8eGVuL3RpbWUu aD4KKyNpbmNsdWRlIDxwdWJsaWMvYXJnby5oPgorCitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4 ZW5fYXJnb19hZGRyX3QpOworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2FyZ29fcmluZ190 KTsKKworLyogWGVuIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gZW5hYmxlIGFyZ28gKi8KK3N0YXRp YyBib29sIF9fcmVhZF9tb3N0bHkgb3B0X2FyZ29fZW5hYmxlZDsKK2Jvb2xlYW5fcGFyYW0oImFy Z28iLCBvcHRfYXJnb19lbmFibGVkKTsKKwordHlwZWRlZiBzdHJ1Y3QgYXJnb19yaW5nX2lkCit7 CisgICAgdWludDMyX3QgcG9ydDsKKyAgICBkb21pZF90IHBhcnRuZXJfaWQ7CisgICAgZG9taWRf dCBkb21haW5faWQ7Cit9IGFyZ29fcmluZ19pZDsKKworLyogRGF0YSBhYm91dCBhIGRvbWFpbidz IG93biByaW5nIHRoYXQgaXQgaGFzIHJlZ2lzdGVyZWQgKi8KK3N0cnVjdCBhcmdvX3JpbmdfaW5m bworeworICAgIC8qIG5leHQgbm9kZSBpbiB0aGUgaGFzaCwgcHJvdGVjdGVkIGJ5IEwyICovCisg ICAgc3RydWN0IGhsaXN0X25vZGUgbm9kZTsKKyAgICAvKiB0aGlzIHJpbmcncyBpZCwgcHJvdGVj dGVkIGJ5IEwyICovCisgICAgc3RydWN0IGFyZ29fcmluZ19pZCBpZDsKKyAgICAvKiBMMyAqLwor ICAgIHNwaW5sb2NrX3QgbG9jazsKKyAgICAvKiBsZW5ndGggb2YgdGhlIHJpbmcsIHByb3RlY3Rl ZCBieSBMMyAqLworICAgIHVpbnQzMl90IGxlbjsKKyAgICAvKiBudW1iZXIgb2YgcGFnZXMgaW4g dGhlIHJpbmcsIHByb3RlY3RlZCBieSBMMyAqLworICAgIHVpbnQzMl90IG5wYWdlOworICAgIC8q IG51bWJlciBvZiBwYWdlcyB0cmFuc2xhdGVkIGludG8gbWZucywgcHJvdGVjdGVkIGJ5IEwzICov CisgICAgdWludDMyX3Qgbm1mbnM7CisgICAgLyogY2FjaGVkIHR4IHBvaW50ZXIgbG9jYXRpb24s IHByb3RlY3RlZCBieSBMMyAqLworICAgIHVpbnQzMl90IHR4X3B0cjsKKyAgICAvKiBtYXBwZWQg cmluZyBwYWdlcyBwcm90ZWN0ZWQgYnkgTDMgKi8KKyAgICB1aW50OF90ICoqbWZuX21hcHBpbmc7 CisgICAgLyogbGlzdCBvZiBtZm5zIG9mIGd1ZXN0IHJpbmcsIHByb3RlY3RlZCBieSBMMyAqLwor ICAgIG1mbl90ICptZm5zOworICAgIC8qIGxpc3Qgb2Ygc3RydWN0IHBlbmRpbmdfZW50IGZvciB0 aGlzIHJpbmcsIHByb3RlY3RlZCBieSBMMyAqLworICAgIHN0cnVjdCBobGlzdF9oZWFkIHBlbmRp bmc7CisgICAgLyogbnVtYmVyIG9mIHBlbmRpbmcgZW50cmllcyBxdWV1ZWQgZm9yIHRoaXMgcmlu ZywgcHJvdGVjdGVkIGJ5IEwzICovCisgICAgdWludDMyX3QgbnBlbmRpbmc7Cit9OworCisvKiBE YXRhIGFib3V0IGEgc2luZ2xlLXNlbmRlciByaW5nLCBoZWxkIGJ5IHRoZSBzZW5kZXIgKHBhcnRu ZXIpIGRvbWFpbiAqLworc3RydWN0IGFyZ29fc2VuZF9pbmZvCit7CisgICAgLyogbmV4dCBub2Rl IGluIHRoZSBoYXNoLCBwcm90ZWN0ZWQgYnkgTHNlbmQgKi8KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9k ZSBub2RlOworICAgIC8qIHRoaXMgcmluZydzIGlkLCBwcm90ZWN0ZWQgYnkgTHNlbmQgKi8KKyAg ICBzdHJ1Y3QgYXJnb19yaW5nX2lkIGlkOworfTsKKworLyogQSBzcGFjZS1hdmFpbGFibGUgbm90 aWZpY2F0aW9uIHRoYXQgaXMgYXdhaXRpbmcgc3VmZmljaWVudCBzcGFjZSAqLworc3RydWN0IHBl bmRpbmdfZW50Cit7CisgICAgLyogTGlzdCBub2RlIHdpdGhpbiBhcmdvX3JpbmdfaW5mbydzIHBl bmRpbmcgbGlzdCAqLworICAgIHN0cnVjdCBobGlzdF9ub2RlIG5vZGU7CisgICAgLyoKKyAgICAg KiBMaXN0IG5vZGUgd2l0aGluIGFyZ29fZG9tYWluJ3Mgd2lsZGNhcmRfcGVuZF9saXN0LiBPbmx5 IHVzZWQgaWYgdGhlCisgICAgICogcmluZyBpcyBvbmUgd2l0aCBhIHdpbGRjYXJkIHBhcnRuZXIg KGllLiB0aGF0IGFueSBkb21haW4gbWF5IHNlbmQgdG8pCisgICAgICogdG8gZW5hYmxlIGNhbmNl bGxpbmcgc2lnbmFscyBvbiB3aWxkY2FyZCByaW5ncyBvbiBkb21haW4gZGVzdHJveS4KKyAgICAg Ki8KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSB3aWxkY2FyZF9ub2RlOworICAgIC8qCisgICAgICog UG9pbnRlciB0byB0aGUgcmluZ19pbmZvIHRoYXQgdGhpcyBlbnQgcGVydGFpbnMgdG8uIFVzZWQg dG8gZW5zdXJlIHRoYXQKKyAgICAgKiByaW5nX2luZm8tPm5wZW5kaW5nIGlzIGRlY3JlbWVudGVk IHdoZW4gZW50cyBmb3Igd2lsZGNhcmQgcmluZ3MgYXJlCisgICAgICogY2FuY2VsbGVkIGZvciBk b21haW4gZGVzdHJveS4KKyAgICAgKiBDYXV0aW9uOiBNdXN0IGhvbGQgdGhlIGNvcnJlY3QgbG9j a3MgYmVmb3JlIGFjY2Vzc2luZyByaW5nX2luZm8gdmlhIHRoaXMuCisgICAgICovCisgICAgc3Ry dWN0IGFyZ29fcmluZ19pbmZvICpyaW5nX2luZm87CisgICAgLyogZG9tYWluIHRvIGJlIG5vdGlm aWVkIHdoZW4gc3BhY2UgaXMgYXZhaWxhYmxlICovCisgICAgZG9taWRfdCBkb21haW5faWQ7Cisg ICAgdWludDE2X3QgcGFkOworICAgIC8qIG1pbmltdW0gcmluZyBzcGFjZSBhdmFpbGFibGUgdGhh dCB0aGlzIHNpZ25hbCBpcyB3YWl0aW5nIHVwb24gKi8KKyAgICB1aW50MzJfdCBsZW47Cit9Owor CisvKgorICogVGhlIHZhbHVlIG9mIHRoZSBhcmdvIGVsZW1lbnQgaW4gYSBzdHJ1Y3QgZG9tYWlu IGlzCisgKiBwcm90ZWN0ZWQgYnkgdGhlIGdsb2JhbCBsb2NrIGFyZ29fbG9jazogTDEKKyAqLwor I2RlZmluZSBBUkdPX0hUQUJMRV9TSVpFIDMyCitzdHJ1Y3QgYXJnb19kb21haW4KK3sKKyAgICAv KiBMMiAqLworICAgIHJ3bG9ja190IGxvY2s7CisgICAgLyoKKyAgICAgKiBIYXNoIHRhYmxlIG9m IGFyZ29fcmluZ19pbmZvIGFib3V0IHJpbmdzIHRoaXMgZG9tYWluIGhhcyByZWdpc3RlcmVkLgor ICAgICAqIFByb3RlY3RlZCBieSBMMi4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgaGxpc3RfaGVhZCBy aW5nX2hhc2hbQVJHT19IVEFCTEVfU0laRV07CisgICAgLyogQ291bnRlciBvZiByaW5ncyByZWdp c3RlcmVkIGJ5IHRoaXMgZG9tYWluLiBQcm90ZWN0ZWQgYnkgTDIuICovCisgICAgdWludDMyX3Qg cmluZ19jb3VudDsKKworICAgIC8qIExzZW5kICovCisgICAgc3BpbmxvY2tfdCBzZW5kX2xvY2s7 CisgICAgLyoKKyAgICAgKiBIYXNoIHRhYmxlIG9mIGFyZ29fc2VuZF9pbmZvIGFib3V0IHJpbmdz IG90aGVyIGRvbWFpbnMgaGF2ZSByZWdpc3RlcmVkCisgICAgICogZm9yIHRoaXMgZG9tYWluIHRv IHNlbmQgdG8uIFNpbmdsZSBwYXJ0bmVyLCBub24td2lsZGNhcmQgcmluZ3MuCisgICAgICogUHJv dGVjdGVkIGJ5IExzZW5kLgorICAgICAqLworICAgIHN0cnVjdCBobGlzdF9oZWFkIHNlbmRfaGFz aFtBUkdPX0hUQUJMRV9TSVpFXTsKKworICAgIC8qIEx3aWxkY2FyZCAqLworICAgIHNwaW5sb2Nr X3Qgd2lsZGNhcmRfbG9jazsKKyAgICAvKgorICAgICAqIExpc3Qgb2YgcGVuZGluZyBzcGFjZS1h dmFpbGFibGUgc2lnbmFscyBmb3IgdGhpcyBkb21haW4gYWJvdXQgd2lsZGNhcmQKKyAgICAgKiBy aW5ncyByZWdpc3RlcmVkIGJ5IG90aGVyIGRvbWFpbnMuIFByb3RlY3RlZCBieSBMd2lsZGNhcmQu CisgICAgICovCisgICAgc3RydWN0IGhsaXN0X2hlYWQgd2lsZGNhcmRfcGVuZF9saXN0OworfTsK KworLyoKKyAqIExvY2tpbmcgaXMgb3JnYW5pemVkIGFzIGZvbGxvd3M6CisgKgorICogVGVybWlu b2xvZ3k6IFIoPGxvY2s+KSBtZWFucyB0YWtpbmcgYSByZWFkIGxvY2sgb24gdGhlIHNwZWNpZmll ZCBsb2NrOworICogICAgICAgICAgICAgIFcoPGxvY2s+KSBtZWFucyB0YWtpbmcgYSB3cml0ZSBs b2NrIG9uIGl0LgorICoKKyAqIEwxIDogVGhlIGdsb2JhbCBsb2NrOiBhcmdvX2xvY2sKKyAqIFBy b3RlY3RzIHRoZSBhcmdvIGVsZW1lbnRzIG9mIGFsbCBzdHJ1Y3QgZG9tYWluICpkIGluIHRoZSBz eXN0ZW0uCisgKiBJdCBkb2VzIG5vdCBwcm90ZWN0IGFueSBvZiB0aGUgZWxlbWVudHMgb2YgZC0+ YXJnbywgb25seSB0aGVpcgorICogYWRkcmVzc2VzLgorICoKKyAqIEJ5IGV4dGVuc2lvbiBzaW5j ZSB0aGUgZGVzdHJ1Y3Rpb24gb2YgYSBkb21haW4gd2l0aCBhIG5vbi1OVUxMCisgKiBkLT5hcmdv IHdpbGwgbmVlZCB0byBmcmVlIHRoZSBkLT5hcmdvIHBvaW50ZXIsIGhvbGRpbmcgVyhMMSkKKyAq IGd1YXJhbnRlZXMgdGhhdCBubyBkb21haW5zIHBvaW50ZXJzIHRoYXQgYXJnbyBpcyBpbnRlcmVz dGVkIGluCisgKiBiZWNvbWUgaW52YWxpZCB3aGlsc3QgdGhpcyBsb2NrIGlzIGhlbGQuCisgKi8K Kworc3RhdGljIERFRklORV9SV0xPQ0soYXJnb19sb2NrKTsgLyogTDEgKi8KKworLyoKKyAqIEwy IDogVGhlIHBlci1kb21haW4gcmluZyBoYXNoIGxvY2s6IGQtPmFyZ28tPmxvY2sKKyAqIEhvbGRp bmcgYSByZWFkIGxvY2sgb24gTDIgcHJvdGVjdHMgdGhlIHJpbmcgaGFzaCB0YWJsZSBhbmQKKyAq IHRoZSBlbGVtZW50cyBpbiB0aGUgaGFzaF90YWJsZSBkLT5hcmdvLT5yaW5nX2hhc2gsIGFuZAor ICogdGhlIG5vZGUgYW5kIGlkIGZpZWxkcyBpbiBzdHJ1Y3QgYXJnb19yaW5nX2luZm8gaW4gdGhl CisgKiBoYXNoIHRhYmxlLgorICogSG9sZGluZyBhIHdyaXRlIGxvY2sgb24gTDIgcHJvdGVjdHMg YWxsIG9mIHRoZSBlbGVtZW50cyBvZgorICogc3RydWN0IGFyZ29fcmluZ19pbmZvLgorICoKKyAq IFRvIHRha2UgTDIgeW91IG11c3QgYWxyZWFkeSBoYXZlIFIoTDEpLiBXKEwxKSBpbXBsaWVzIFco TDIpIGFuZCBMMy4KKyAqCisgKiBMMyA6IFRoZSByaW5naW5mbyBsb2NrOiBhcmdvX3JpbmdfaW5m byAqcmluZ2luZm87IHJpbmdpbmZvLT5sb2NrCisgKiBQcm90ZWN0cyBhbGwgdGhlIGZpZWxkcyB3 aXRoaW4gdGhlIGFyZ29fcmluZ19pbmZvLCBhc2lkZSBmcm9tIHRoZSBvbmVzIHRoYXQKKyAqIEwy IGFscmVhZHkgcHJvdGVjdHM6IG5vZGUsIGlkLCBsb2NrLgorICoKKyAqIFRvIGFxdWlyZSBMMyB5 b3UgbXVzdCBhbHJlYWR5IGhhdmUgUihMMikuIFcoTDIpIGltcGxpZXMgTDMuCisgKgorICogTHNl bmQgOiBUaGUgcGVyLWRvbWFpbiBzaW5nbGUtc2VuZGVyIHBhcnRuZXIgcmluZ3MgbG9jazogZC0+ YXJnby0+c2VuZF9sb2NrCisgKiBQcm90ZWN0cyB0aGUgcGVyLWRvbWFpbiBzZW5kIGhhc2ggdGFi bGUgOiBkLT5hcmdvLT5zZW5kX2hhc2gKKyAqIGFuZCB0aGUgZWxlbWVudHMgaW4gdGhlIGhhc2gg dGFibGUsIGFuZCB0aGUgbm9kZSBhbmQgaWQgZmllbGRzCisgKiBpbiBzdHJ1Y3QgYXJnb19zZW5k X2luZm8gaW4gdGhlIGhhc2ggdGFibGUuCisgKgorICogVG8gdGFrZSBMc2VuZCwgeW91IG11c3Qg YWxyZWFkeSBoYXZlIFIoTDEpLiBXKEwxKSBpbXBsaWVzIExzZW5kLgorICogRG8gbm90IGF0dGVt cHQgdG8gYWNxdWlyZSBhIEwyIG9uIGFueSBkb21haW4gYWZ0ZXIgdGFraW5nIGFuZCB3aGlsZQor ICogaG9sZGluZyBhIExzZW5kIGxvY2sgLS0gYWNxdWlyZSB0aGUgTDIgKGlmIG9uZSBpcyBuZWVk ZWQpIGJlZm9yZWhhbmQuCisgKgorICogTHdpbGRjYXJkIDogVGhlIHBlci1kb21haW4gd2lsZGNh cmQgcGVuZGluZyBsaXN0IGxvY2s6IGQtPmFyZ28tPndpbGRjYXJkX2xvY2sKKyAqIFByb3RlY3Rz IHRoZSBwZXItZG9tYWluIGxpc3Qgb2Ygb3V0c3RhbmRpbmcgc2lnbmFscyBmb3Igc3BhY2UgYXZh aWxhYmlsaXR5CisgKiBvbiB3aWxkY2FyZCByaW5ncy4KKyAqCisgKiBUbyB0YWtlIEx3aWxkY2Fy ZCwgeW91IG11c3QgYWxyZWFkeSBoYXZlIFIoTDEpLiBXKEwxKSBpbXBsaWVzIEx3aWxkY2FyZC4K KyAqIE5vIG90aGVyIGxvY2tzIGFyZSBhY3F1aXJlZCBhZnRlciBvYnRhaW5pbmcgTHdpbGRjYXJk LgorICovCiAKIC8qIENoYW5nZSB0aGlzIHRvICNkZWZpbmUgQVJHT19ERUJVRyBoZXJlIHRvIGVu YWJsZSBtb3JlIGRlYnVnIG1lc3NhZ2VzICovCiAjdW5kZWYgQVJHT19ERUJVRwpAQCAtMjgsMTAg KzE5OCwyOTkgQEAKICNkZWZpbmUgYXJnb19kcHJpbnRrKGZvcm1hdCwgLi4uICkgKCh2b2lkKTAp CiAjZW5kaWYKIAorc3RhdGljIHZvaWQKK3JpbmdfdW5tYXAoc3RydWN0IGFyZ29fcmluZ19pbmZv ICpyaW5nX2luZm8pCit7CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICBpZiAoICFyaW5nX2lu Zm8tPm1mbl9tYXBwaW5nICkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yICggaSA9IDA7IGkg PCByaW5nX2luZm8tPm5tZm5zOyBpKysgKQorICAgIHsKKyAgICAgICAgaWYgKCAhcmluZ19pbmZv LT5tZm5fbWFwcGluZ1tpXSApCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKCBy aW5nX2luZm8tPm1mbnMgKQorICAgICAgICAgICAgYXJnb19kcHJpbnRrKFhFTkxPR19FUlIgImFy Z286IHVubWFwcGluZyBwYWdlICUiUFJJX21mbiIgZnJvbSAlcFxuIiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICBtZm5feChyaW5nX2luZm8tPm1mbnNbaV0pLAorICAgICAgICAgICAgICAgICAg ICAgICAgIHJpbmdfaW5mby0+bWZuX21hcHBpbmdbaV0pOworICAgICAgICB1bm1hcF9kb21haW5f cGFnZV9nbG9iYWwocmluZ19pbmZvLT5tZm5fbWFwcGluZ1tpXSk7CisgICAgICAgIHJpbmdfaW5m by0+bWZuX21hcHBpbmdbaV0gPSBOVUxMOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3dpbGRj YXJkX3BlbmRpbmdfbGlzdF9yZW1vdmUoZG9taWRfdCBkb21haW5faWQsIHN0cnVjdCBwZW5kaW5n X2VudCAqZW50KQoreworICAgIHN0cnVjdCBkb21haW4gKmQgPSBnZXRfZG9tYWluX2J5X2lkKGRv bWFpbl9pZCk7CisgICAgaWYgKCAhZCApCisgICAgICAgIHJldHVybjsKKworICAgIGlmICggZC0+ YXJnbyApCisgICAgeworICAgICAgICBzcGluX2xvY2soJmQtPmFyZ28tPndpbGRjYXJkX2xvY2sp OworICAgICAgICBobGlzdF9kZWwoJmVudC0+d2lsZGNhcmRfbm9kZSk7CisgICAgICAgIHNwaW5f dW5sb2NrKCZkLT5hcmdvLT53aWxkY2FyZF9sb2NrKTsKKyAgICB9CisgICAgcHV0X2RvbWFpbihk KTsKK30KKworc3RhdGljIHZvaWQKK3BlbmRpbmdfcmVtb3ZlX2FsbChzdHJ1Y3QgYXJnb19yaW5n X2luZm8gKnJpbmdfaW5mbykKK3sKKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZSwgKm5leHQ7 CisgICAgc3RydWN0IHBlbmRpbmdfZW50ICplbnQ7CisKKyAgICBobGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKGVudCwgbm9kZSwgbmV4dCwgJnJpbmdfaW5mby0+cGVuZGluZywgbm9kZSkKKyAgICB7 CisgICAgICAgIGlmICggcmluZ19pbmZvLT5pZC5wYXJ0bmVyX2lkID09IFhFTl9BUkdPX0RPTUlE X0FOWSApCisgICAgICAgICAgICB3aWxkY2FyZF9wZW5kaW5nX2xpc3RfcmVtb3ZlKGVudC0+ZG9t YWluX2lkLCBlbnQpOworICAgICAgICBobGlzdF9kZWwoJmVudC0+bm9kZSk7CisgICAgICAgIHhm cmVlKGVudCk7CisgICAgfQorICAgIHJpbmdfaW5mby0+bnBlbmRpbmcgPSAwOworfQorCitzdGF0 aWMgdm9pZAord2lsZGNhcmRfcmluZ3NfcGVuZGluZ19yZW1vdmUoc3RydWN0IGRvbWFpbiAqZCkK K3sKKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZSwgKm5leHQ7CisgICAgc3RydWN0IHBlbmRp bmdfZW50ICplbnQ7CisKKyAgICBBU1NFUlQocndfaXNfd3JpdGVfbG9ja2VkKCZhcmdvX2xvY2sp KTsKKworICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZW50LCBub2RlLCBuZXh0LCAmZC0+ YXJnby0+d2lsZGNhcmRfcGVuZF9saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bm9kZSkKKyAgICB7CisgICAgICAgIGhsaXN0X2RlbCgmZW50LT5ub2RlKTsKKyAgICAgICAgZW50 LT5yaW5nX2luZm8tPm5wZW5kaW5nLS07CisgICAgICAgIGhsaXN0X2RlbCgmZW50LT53aWxkY2Fy ZF9ub2RlKTsKKyAgICAgICAgeGZyZWUoZW50KTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCity aW5nX3JlbW92ZV9tZm5zKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBhcmdvX3Jpbmdf aW5mbyAqcmluZ19pbmZvKQoreworICAgIHVuc2lnbmVkIGludCBpOworCisgICAgQVNTRVJUKHJ3 X2lzX3dyaXRlX2xvY2tlZCgmZC0+YXJnby0+bG9jaykgfHwKKyAgICAgICAgICAgcndfaXNfd3Jp dGVfbG9ja2VkKCZhcmdvX2xvY2spKTsKKworICAgIGlmICggIXJpbmdfaW5mby0+bWZucyApCisg ICAgICAgIHJldHVybjsKKworICAgIGlmICggIXJpbmdfaW5mby0+bWZuX21hcHBpbmcgKQorICAg IHsKKyAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9 CisKKyAgICByaW5nX3VubWFwKHJpbmdfaW5mbyk7CisKKyAgICBmb3IgKCBpID0gMDsgaSA8IHJp bmdfaW5mby0+bm1mbnM7IGkrKyApCisgICAgICAgIGlmICggIW1mbl9lcShyaW5nX2luZm8tPm1m bnNbaV0sIElOVkFMSURfTUZOKSApCisgICAgICAgICAgICBwdXRfcGFnZV9hbmRfdHlwZShtZm5f dG9fcGFnZShyaW5nX2luZm8tPm1mbnNbaV0pKTsKKworICAgIHhmcmVlKHJpbmdfaW5mby0+bWZu cyk7CisgICAgcmluZ19pbmZvLT5tZm5zID0gTlVMTDsKKyAgICByaW5nX2luZm8tPm5wYWdlID0g MDsKKyAgICB4ZnJlZShyaW5nX2luZm8tPm1mbl9tYXBwaW5nKTsKKyAgICByaW5nX2luZm8tPm1m bl9tYXBwaW5nID0gTlVMTDsKKyAgICByaW5nX2luZm8tPm5tZm5zID0gMDsKK30KKworc3RhdGlj IHZvaWQKK3JpbmdfcmVtb3ZlX2luZm8oc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGFyZ29fcmlu Z19pbmZvICpyaW5nX2luZm8pCit7CisgICAgQVNTRVJUKHJ3X2lzX3dyaXRlX2xvY2tlZCgmZC0+ YXJnby0+bG9jaykgfHwKKyAgICAgICAgICAgcndfaXNfd3JpdGVfbG9ja2VkKCZhcmdvX2xvY2sp KTsKKworICAgIHBlbmRpbmdfcmVtb3ZlX2FsbChyaW5nX2luZm8pOworICAgIGhsaXN0X2RlbCgm cmluZ19pbmZvLT5ub2RlKTsKKyAgICByaW5nX3JlbW92ZV9tZm5zKGQsIHJpbmdfaW5mbyk7Cisg ICAgeGZyZWUocmluZ19pbmZvKTsKK30KKworc3RhdGljIHZvaWQKK2RvbWFpbl9yaW5nc19yZW1v dmVfYWxsKHN0cnVjdCBkb21haW4gKmQpCit7CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICBm b3IgKCBpID0gMDsgaSA8IEFSR09fSFRBQkxFX1NJWkU7ICsraSApCisgICAgeworICAgICAgICBz dHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZSwgKm5leHQ7CisgICAgICAgIHN0cnVjdCBhcmdvX3Jpbmdf aW5mbyAqcmluZ19pbmZvOworCisgICAgICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocmlu Z19pbmZvLCBub2RlLCBuZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZk LT5hcmdvLT5yaW5nX2hhc2hbaV0sIG5vZGUpCisgICAgICAgICAgICByaW5nX3JlbW92ZV9pbmZv KGQsIHJpbmdfaW5mbyk7CisgICAgfQorICAgIGQtPmFyZ28tPnJpbmdfY291bnQgPSAwOworfQor CisvKgorICogVGVhciBkb3duIGFsbCByaW5ncyBvZiBvdGhlciBkb21haW5zIHdoZXJlIHNyY19k IGRvbWFpbiBpcyB0aGUgcGFydG5lci4KKyAqIChpZS4gaXQgaXMgdGhlIHNpbmdsZSBkb21haW4g dGhhdCBjYW4gc2VuZCB0byB0aG9zZSByaW5ncy4pCisgKiBUaGlzIHdpbGwgYWxzbyBjYW5jZWwg YW55IHBlbmRpbmcgbm90aWZpY2F0aW9ucyBhYm91dCB0aG9zZSByaW5ncy4KKyAqLworc3RhdGlj IHZvaWQKK3BhcnRuZXJfcmluZ3NfcmVtb3ZlKHN0cnVjdCBkb21haW4gKnNyY19kKQoreworICAg IHVuc2lnbmVkIGludCBpOworCisgICAgQVNTRVJUKHJ3X2lzX3dyaXRlX2xvY2tlZCgmYXJnb19s b2NrKSk7CisKKyAgICBmb3IgKCBpID0gMDsgaSA8IEFSR09fSFRBQkxFX1NJWkU7ICsraSApCisg ICAgeworICAgICAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqbm9kZSwgKm5leHQ7CisgICAgICAgIHN0 cnVjdCBhcmdvX3NlbmRfaW5mbyAqc2VuZF9pbmZvOworCisgICAgICAgIGhsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUoc2VuZF9pbmZvLCBub2RlLCBuZXh0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZzcmNfZC0+YXJnby0+c2VuZF9oYXNoW2ldLCBub2RlKQorICAgICAgICB7 CisgICAgICAgICAgICBzdHJ1Y3QgYXJnb19yaW5nX2luZm8gKnJpbmdfaW5mbzsKKyAgICAgICAg ICAgIHN0cnVjdCBkb21haW4gKmRzdF9kOworCisgICAgICAgICAgICBkc3RfZCA9IGdldF9kb21h aW5fYnlfaWQoc2VuZF9pbmZvLT5pZC5kb21haW5faWQpOworICAgICAgICAgICAgaWYgKCBkc3Rf ZCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmluZ19pbmZvID0gcmluZ19maW5k X2luZm8oZHN0X2QsICZzZW5kX2luZm8tPmlkKTsKKyAgICAgICAgICAgICAgICBpZiAoIHJpbmdf aW5mbyApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByaW5nX3JlbW92 ZV9pbmZvKGRzdF9kLCByaW5nX2luZm8pOworICAgICAgICAgICAgICAgICAgICBkc3RfZC0+YXJn by0+cmluZ19jb3VudC0tOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1 dF9kb21haW4oZHN0X2QpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBobGlzdF9kZWwo JnNlbmRfaW5mby0+bm9kZSk7CisgICAgICAgICAgICB4ZnJlZShzZW5kX2luZm8pOworICAgICAg ICB9CisgICAgfQorfQorCiBsb25nCiBkb19hcmdvX29wKHVuc2lnbmVkIGludCBjbWQsIFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnMSwKICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRM RV9QQVJBTSh2b2lkKSBhcmcyLCB1bnNpZ25lZCBsb25nIGFyZzMsCiAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgYXJnNCkKIHsKLSAgICByZXR1cm4gLUVOT1NZUzsKKyAgICBzdHJ1Y3QgZG9tYWlu ICpjdXJyZCA9IGN1cnJlbnQtPmRvbWFpbjsKKyAgICBsb25nIHJjID0gLUVGQVVMVDsKKworICAg IGFyZ29fZHByaW50aygiLT5kb19hcmdvX29wKCV1LCVwLCVwLCVkLCVkKVxuIiwgY21kLAorICAg ICAgICAgICAgICAgICAodm9pZCAqKWFyZzEucCwgKHZvaWQgKilhcmcyLnAsIChpbnQpIGFyZzMs IChpbnQpIGFyZzQpOworCisgICAgaWYgKCB1bmxpa2VseSghb3B0X2FyZ29fZW5hYmxlZCkgKQor ICAgIHsKKyAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKKyAgICAgICAgcmV0dXJuIHJjOworICAg IH0KKworICAgIGRvbWFpbl9sb2NrKGN1cnJkKTsKKworICAgIHN3aXRjaCAoY21kKQorICAgIHsK KyAgICBkZWZhdWx0OgorICAgICAgICByYyA9IC1FT1BOT1RTVVBQOworICAgICAgICBicmVhazsK KyAgICB9CisKKyAgICBkb21haW5fdW5sb2NrKGN1cnJkKTsKKworICAgIGFyZ29fZHByaW50aygi PC1kb19hcmdvX29wKCV1KT0lbGRcbiIsIGNtZCwgcmMpOworCisgICAgcmV0dXJuIHJjOworfQor CitzdGF0aWMgdm9pZAorYXJnb19kb21haW5faW5pdChzdHJ1Y3QgYXJnb19kb21haW4gKmFyZ28p Cit7CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICByd2xvY2tfaW5pdCgmYXJnby0+bG9jayk7 CisgICAgc3Bpbl9sb2NrX2luaXQoJmFyZ28tPnNlbmRfbG9jayk7CisgICAgc3Bpbl9sb2NrX2lu aXQoJmFyZ28tPndpbGRjYXJkX2xvY2spOworICAgIGFyZ28tPnJpbmdfY291bnQgPSAwOworCisg ICAgZm9yICggaSA9IDA7IGkgPCBBUkdPX0hUQUJMRV9TSVpFOyArK2kgKQorICAgIHsKKyAgICAg ICAgSU5JVF9ITElTVF9IRUFEKCZhcmdvLT5yaW5nX2hhc2hbaV0pOworICAgICAgICBJTklUX0hM SVNUX0hFQUQoJmFyZ28tPnNlbmRfaGFzaFtpXSk7CisgICAgfQorICAgIElOSVRfSExJU1RfSEVB RCgmYXJnby0+d2lsZGNhcmRfcGVuZF9saXN0KTsKK30KKworaW50CithcmdvX2luaXQoc3RydWN0 IGRvbWFpbiAqZCkKK3sKKyAgICBzdHJ1Y3QgYXJnb19kb21haW4gKmFyZ287CisKKyAgICBpZiAo ICFvcHRfYXJnb19lbmFibGVkICkKKyAgICB7CisgICAgICAgIGFyZ29fZHByaW50aygiYXJnbyBk aXNhYmxlZCwgZG9taWQ6ICVkXG4iLCBkLT5kb21haW5faWQpOworICAgICAgICByZXR1cm4gMDsK KyAgICB9CisKKyAgICBhcmdvX2RwcmludGsoImluaXQ6IGRvbWlkOiAlZFxuIiwgZC0+ZG9tYWlu X2lkKTsKKworICAgIGFyZ28gPSB4bWFsbG9jKHN0cnVjdCBhcmdvX2RvbWFpbik7CisgICAgaWYg KCAhYXJnbyApCisgICAgICAgIHJldHVybiAtRU5PTUVNOworCisgICAgd3JpdGVfbG9jaygmYXJn b19sb2NrKTsKKworICAgIGFyZ29fZG9tYWluX2luaXQoYXJnbyk7CisKKyAgICBkLT5hcmdvID0g YXJnbzsKKworICAgIHdyaXRlX3VubG9jaygmYXJnb19sb2NrKTsKKworICAgIHJldHVybiAwOwor fQorCit2b2lkCithcmdvX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkKK3sKKyAgICBCVUdfT04o IWQtPmlzX2R5aW5nKTsKKworICAgIHdyaXRlX2xvY2soJmFyZ29fbG9jayk7CisKKyAgICBhcmdv X2RwcmludGsoImRlc3Ryb3k6IGRvbWlkICVkIGQtPmFyZ289JXBcbiIsIGQtPmRvbWFpbl9pZCwg ZC0+YXJnbyk7CisKKyAgICBpZiAoIGQtPmFyZ28gKQorICAgIHsKKyAgICAgICAgZG9tYWluX3Jp bmdzX3JlbW92ZV9hbGwoZCk7CisgICAgICAgIHBhcnRuZXJfcmluZ3NfcmVtb3ZlKGQpOworICAg ICAgICB3aWxkY2FyZF9yaW5nc19wZW5kaW5nX3JlbW92ZShkKTsKKyAgICAgICAgeGZyZWUoZC0+ YXJnbyk7CisgICAgICAgIGQtPmFyZ28gPSBOVUxMOworICAgIH0KKyAgICB3cml0ZV91bmxvY2so JmFyZ29fbG9jayk7Cit9CisKK3ZvaWQKK2FyZ29fc29mdF9yZXNldChzdHJ1Y3QgZG9tYWluICpk KQoreworICAgIHdyaXRlX2xvY2soJmFyZ29fbG9jayk7CisKKyAgICBhcmdvX2RwcmludGsoInNv ZnQgcmVzZXQgZD0lZCBkLT5hcmdvPSVwXG4iLCBkLT5kb21haW5faWQsIGQtPmFyZ28pOworCisg ICAgaWYgKCBkLT5hcmdvICkKKyAgICB7CisgICAgICAgIGRvbWFpbl9yaW5nc19yZW1vdmVfYWxs KGQpOworICAgICAgICBwYXJ0bmVyX3JpbmdzX3JlbW92ZShkKTsKKyAgICAgICAgd2lsZGNhcmRf cmluZ3NfcGVuZGluZ19yZW1vdmUoZCk7CisKKyAgICAgICAgaWYgKCAhb3B0X2FyZ29fZW5hYmxl ZCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHhmcmVlKGQtPmFyZ28pOworICAgICAgICAgICAg ZC0+YXJnbyA9IE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXJn b19kb21haW5faW5pdChkLT5hcmdvKTsKKyAgICB9CisKKyAgICB3cml0ZV91bmxvY2soJmFyZ29f bG9jayk7CiB9CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWFpbi5jIGIveGVuL2NvbW1vbi9k b21haW4uYwppbmRleCBjNjIzZGFlLi45NTk2ODQwIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2Rv bWFpbi5jCisrKyBiL3hlbi9jb21tb24vZG9tYWluLmMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs dWRlIDx4ZW4vZ3JhbnRfdGFibGUuaD4KICNpbmNsdWRlIDx4ZW4veGVub3Byb2YuaD4KICNpbmNs dWRlIDx4ZW4vaXJxLmg+CisjaW5jbHVkZSA8eGVuL2FyZ28uaD4KICNpbmNsdWRlIDxhc20vZGVi dWdnZXIuaD4KICNpbmNsdWRlIDxhc20vcDJtLmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5o PgpAQCAtMjc3LDYgKzI3OCwxMCBAQCBzdGF0aWMgdm9pZCBfZG9tYWluX2Rlc3Ryb3koc3RydWN0 IGRvbWFpbiAqZCkKIAogICAgIHhmcmVlKGQtPnBidWYpOwogCisjaWZkZWYgQ09ORklHX0FSR08K KyAgICBhcmdvX2Rlc3Ryb3koZCk7CisjZW5kaWYKKwogICAgIHJhbmdlc2V0X2RvbWFpbl9kZXN0 cm95KGQpOwogCiAgICAgZnJlZV9jcHVtYXNrX3ZhcihkLT5kaXJ0eV9jcHVtYXNrKTsKQEAgLTM3 Niw2ICszODEsOSBAQCBzdHJ1Y3QgZG9tYWluICpkb21haW5fY3JlYXRlKGRvbWlkX3QgZG9taWQs CiAgICAgc3Bpbl9sb2NrX2luaXQoJmQtPmh5cGVyY2FsbF9kZWFkbG9ja19tdXRleCk7CiAgICAg SU5JVF9QQUdFX0xJU1RfSEVBRCgmZC0+cGFnZV9saXN0KTsKICAgICBJTklUX1BBR0VfTElTVF9I RUFEKCZkLT54ZW5wYWdlX2xpc3QpOworI2lmZGVmIENPTkZJR19BUkdPCisgICAgcndsb2NrX2lu aXQoJmQtPmFyZ29fbG9jayk7CisjZW5kaWYKIAogICAgIHNwaW5fbG9ja19pbml0KCZkLT5ub2Rl X2FmZmluaXR5X2xvY2spOwogICAgIGQtPm5vZGVfYWZmaW5pdHkgPSBOT0RFX01BU0tfQUxMOwpA QCAtNDQ1LDYgKzQ1MywxMSBAQCBzdHJ1Y3QgZG9tYWluICpkb21haW5fY3JlYXRlKGRvbWlkX3Qg ZG9taWQsCiAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgIGluaXRfc3RhdHVzIHw9IElO SVRfZ250dGFiOwogCisjaWZkZWYgQ09ORklHX0FSR08KKyAgICAgICAgaWYgKCAoZXJyID0gYXJn b19pbml0KGQpKSAhPSAwICkKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyNlbmRpZgorCiAgICAg ICAgIGVyciA9IC1FTk9NRU07CiAKICAgICAgICAgZC0+cGJ1ZiA9IHh6YWxsb2NfYXJyYXkoY2hh ciwgRE9NQUlOX1BCVUZfU0laRSk7CkBAIC03MTcsNiArNzMwLDkgQEAgaW50IGRvbWFpbl9raWxs KHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgIGlmICggZC0+aXNfZHlpbmcgIT0gRE9NRFlJTkdf YWxpdmUgKQogICAgICAgICAgICAgcmV0dXJuIGRvbWFpbl9raWxsKGQpOwogICAgICAgICBkLT5p c19keWluZyA9IERPTURZSU5HX2R5aW5nOworI2lmZGVmIENPTkZJR19BUkdPCisgICAgICAgIGFy Z29fZGVzdHJveShkKTsKKyNlbmRpZgogICAgICAgICBldnRjaG5fZGVzdHJveShkKTsKICAgICAg ICAgZ250dGFiX3JlbGVhc2VfbWFwcGluZ3MoZCk7CiAgICAgICAgIHRtZW1fZGVzdHJveShkLT50 bWVtX2NsaWVudCk7CkBAIC0xMTc1LDYgKzExOTEsMTAgQEAgaW50IGRvbWFpbl9zb2Z0X3Jlc2V0 KHN0cnVjdCBkb21haW4gKmQpCiAKICAgICBncmFudF90YWJsZV93YXJuX2FjdGl2ZV9ncmFudHMo ZCk7CiAKKyNpZmRlZiBDT05GSUdfQVJHTworICAgIGFyZ29fc29mdF9yZXNldChkKTsKKyNlbmRp ZgorCiAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQogICAgIHsKICAgICAgICAgc2V0X3hlbl9n dWVzdF9oYW5kbGUocnVuc3RhdGVfZ3Vlc3QodiksIE5VTEwpOwpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUvTWFrZWZpbGUgYi94ZW4vaW5jbHVkZS9NYWtlZmlsZQppbmRleCBmNzg5NWU0Li4zZDE0 NTMyIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9NYWtlZmlsZQorKysgYi94ZW4vaW5jbHVkZS9N YWtlZmlsZQpAQCAtNSw2ICs1LDcgQEAgaWZuZXEgKCQoQ09ORklHX0NPTVBBVCksKQogY29tcGF0 LWFyY2gtJChDT05GSUdfWDg2KSA6PSB4ODZfMzIKIAogaGVhZGVycy15IDo9IFwKKyAgICBjb21w YXQvYXJnby5oIFwKICAgICBjb21wYXQvY2FsbGJhY2suaCBcCiAgICAgY29tcGF0L2VsZm5vdGUu aCBcCiAgICAgY29tcGF0L2V2ZW50X2NoYW5uZWwuaCBcCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9wdWJsaWMvYXJnby5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyZ28uaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODE4Njg0Ci0tLSAvZGV2L251bGwKKysrIGIveGVuL2lu Y2x1ZGUvcHVibGljL2FyZ28uaApAQCAtMCwwICsxLDU5IEBACisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisgKiBBcmdvIDogSHlwZXJ2aXNvci1NZWRpYXRlZCBkYXRhIGVYY2hhbmdlCisgKgorICog RGVyaXZlZCBmcm9tIHY0diwgdGhlIHZlcnNpb24gMiBvZiB2MnYuCisgKgorICogQ29weXJpZ2h0 IChjKSAyMDEwLCBDaXRyaXggU3lzdGVtcworICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTksIEJB RSBTeXN0ZW1zCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2Fy ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRv CisgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBT b2Z0d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS QUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENP Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElO R1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaWZuZGVmIF9fWEVOX1BVQkxJQ19BUkdP X0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfQVJHT19IX18KKworI2luY2x1ZGUgInhlbi5oIgor Cit0eXBlZGVmIHN0cnVjdCB4ZW5fYXJnb19hZGRyCit7CisgICAgdWludDMyX3QgcG9ydDsKKyAg ICBkb21pZF90IGRvbWFpbl9pZDsKKyAgICB1aW50MTZfdCBwYWQ7Cit9IHhlbl9hcmdvX2FkZHJf dDsKKwordHlwZWRlZiBzdHJ1Y3QgeGVuX2FyZ29fcmluZworeworICAgIC8qIEd1ZXN0cyBzaG91 bGQgdXNlIGF0b21pYyBvcGVyYXRpb25zIHRvIGFjY2VzcyByeF9wdHIgKi8KKyAgICB1aW50MzJf dCByeF9wdHI7CisgICAgLyogR3Vlc3RzIHNob3VsZCB1c2UgYXRvbWljIG9wZXJhdGlvbnMgdG8g YWNjZXNzIHR4X3B0ciAqLworICAgIHVpbnQzMl90IHR4X3B0cjsKKyAgICAvKgorICAgICAqIEhl YWRlciBzcGFjZSByZXNlcnZlZCBmb3IgbGF0ZXIgdXNlLiBBbGlnbiB0aGUgc3RhcnQgb2YgdGhl IHJpbmcgdG8gYQorICAgICAqIG11bHRpcGxlIG9mIHRoZSBtZXNzYWdlIHNsb3Qgc2l6ZS4KKyAg ICAgKi8KKyAgICB1aW50OF90IHJlc2VydmVkWzU2XTsKKyNpZiBkZWZpbmVkKF9fU1REQ19WRVJT SU9OX18pICYmIF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxTAorICAgIHVpbnQ4X3QgcmluZ1td OworI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyAgICB1aW50OF90IHJpbmdbMF07CisjZW5kaWYK K30geGVuX2FyZ29fcmluZ190OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hl bi9hcmdvLmggYi94ZW4vaW5jbHVkZS94ZW4vYXJnby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjI5ZDMyYTkKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vaW5jbHVkZS94ZW4v YXJnby5oCkBAIC0wLDAgKzEsMjMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEFyZ28g OiBIeXBlcnZpc29yLU1lZGlhdGVkIGRhdGEgZVhjaGFuZ2UKKyAqCisgKiBDb3B5cmlnaHQgKGMp IDIwMTgsIEJBRSBTeXN0ZW1zCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICog R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUg MzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaWZuZGVmIF9fWEVOX0FS R09fSF9fCisjZGVmaW5lIF9fWEVOX0FSR09fSF9fCisKK2ludCBhcmdvX2luaXQoc3RydWN0IGRv bWFpbiAqZCk7Cit2b2lkIGFyZ29fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKTsKK3ZvaWQgYXJn b19zb2Z0X3Jlc2V0KHN0cnVjdCBkb21haW4gKmQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL3hlbi9zY2hlZC5oIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKaW5kZXggNDk1 NmE3Ny4uMjA0MThlNyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKKysrIGIv eGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKQEAgLTQ5MCw2ICs0OTAsMTIgQEAgc3RydWN0IGRvbWFp bgogICAgICAgICB1bnNpZ25lZCBpbnQgZ3Vlc3RfcmVxdWVzdF9lbmFibGVkICAgICAgIDogMTsK ICAgICAgICAgdW5zaWduZWQgaW50IGd1ZXN0X3JlcXVlc3Rfc3luYyAgICAgICAgICA6IDE7CiAg ICAgfSBtb25pdG9yOworCisjaWZkZWYgQ09ORklHX0FSR08KKyAgICAvKiBBcmdvIGludGVyZG9t YWluIGNvbW11bmljYXRpb24gc3VwcG9ydCAqLworICAgIHJ3bG9ja190IGFyZ29fbG9jazsKKyAg ICBzdHJ1Y3QgYXJnb19kb21haW4gKmFyZ287CisjZW5kaWYKIH07CiAKIC8qIFByb3RlY3QgdXBk YXRlcy9yZWFkcyAocmVzcC4pIG9mIGRvbWFpbl9saXN0IGFuZCBkb21haW5faGFzaC4gKi8KZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hsYXQubHN0IGIveGVuL2luY2x1ZGUveGxhdC5sc3QKaW5k ZXggNTI3MzMyMC4uOWY2MTZlNCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGxhdC5sc3QKKysr IGIveGVuL2luY2x1ZGUveGxhdC5sc3QKQEAgLTE0OCwzICsxNDgsNSBAQAogPwlmbGFza19zZXRl bmZvcmNlCQl4c20vZmxhc2tfb3AuaAogIQlmbGFza19zaWRfY29udGV4dAkJeHNtL2ZsYXNrX29w LmgKID8JZmxhc2tfdHJhbnNpdGlvbgkJeHNtL2ZsYXNrX29wLmgKKz8JYXJnb19hZGRyCQkJYXJn by5oCis/CWFyZ29fcmluZwkJCWFyZ28uaAotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h aWxtYW4vbGlzdGluZm8veGVuLWRldmVs