From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 08/18] drm/i915: Add a relay backed debugfs interface for capturing GuC logs Date: Mon, 15 Aug 2016 16:29:50 +0100 Message-ID: <57B1DFEE.4020201@linux.intel.com> References: <1471272599-14586-1-git-send-email-akash.goel@intel.com> <1471272599-14586-9-git-send-email-akash.goel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 0EE0F6E585 for ; Mon, 15 Aug 2016 15:29:58 +0000 (UTC) In-Reply-To: <1471272599-14586-9-git-send-email-akash.goel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: akash.goel@intel.com, intel-gfx@lists.freedesktop.org Cc: Sourab Gupta List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE1LzA4LzE2IDE1OjQ5LCBha2FzaC5nb2VsQGludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBB a2FzaCBHb2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4KPgo+IEFkZGVkIGEgbmV3IGRlYnVnZnMg aW50ZXJmYWNlICcvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvZ3VjX2xvZycgZm9yIHRoZQo+IFVzZXIg dG8gY2FwdHVyZSBHdUMgZmlybXdhcmUgbG9ncy4gQXZhaWxlZCByZWxheSBmcmFtZXdvcmsgdG8g aW1wbGVtZW50Cj4gdGhlIGludGVyZmFjZSwgd2hlcmUgRHJpdmVyIHdpbGwgaGF2ZSB0byBqdXN0 IHVzZSBhIHJlbGF5IEFQSSB0byBzdG9yZQo+IHNuYXBzaG90cyBvZiB0aGUgR3VDIGxvZyBidWZm ZXIgaW4gdGhlIGJ1ZmZlciBtYW5hZ2VkIGJ5IHJlbGF5Lgo+IFRoZSBzbmFwc2hvdCB3aWxsIGJl IHRha2VuIHdoZW4gR3VDIGZpcm13YXJlIHNlbmRzIGEgbG9nIGJ1ZmZlciBmbHVzaAo+IGludGVy cnVwdCBhbmQgdXAgdG8gZm91ciBzbmFwc2hvdHMgY291bGQgYmUgc3RvcmVkIGluIHRoZSByZWxh eSBidWZmZXIuCj4gVGhlIHJlbGF5IGJ1ZmZlciB3aWxsIGJlIG9wZXJhdGVkIGluIGEgbW9kZSB3 aGVyZSBpdCB3aWxsIG92ZXJ3cml0ZSB0aGUKPiBkYXRhIG5vdCB5ZXQgY29sbGVjdGVkIGJ5IFVz ZXIuCj4gQmVzaWRlcyBtbWFwIG1ldGhvZCwgdGhyb3VnaCB3aGljaCBVc2VyIGNhbiBkaXJlY3Rs eSBhY2Nlc3MgdGhlIHJlbGF5Cj4gYnVmZmVyIGNvbnRlbnRzLCByZWxheSBhbHNvIHN1cHBvcnRz IHRoZSAncG9sbCcgbWV0aG9kLiBUaHJvdWdoIHRoZSAncG9sbCcKPiBjYWxsIG9uIGxvZyBmaWxl LCBVc2VyIGNhbiBjb21lIHRvIGtub3cgd2hlbmV2ZXIgYSBuZXcgc25hcHNob3Qgb2YgdGhlCj4g bG9nIGJ1ZmZlciBpcyB0YWtlbiBieSBEcml2ZXIsIHNvIGNhbiBydW4gaW4gdGFuZGVtIHdpdGgg dGhlIERyaXZlciBhbmQKPiBjYXB0dXJlIHRoZSBsb2dzIGluIGEgc3VzdGFpbmVkL3N0cmVhbWlu ZyBtYW5uZXIsIHdpdGhvdXQgYW55IGxvc3Mgb2YgZGF0YS4KPgo+IHYyOiBEZWZlciB0aGUgY3Jl YXRpb24gb2YgcmVsYXkgY2hhbm5lbCAmIGFzc29jaWF0ZWQgZGVidWdmcyBmaWxlLCBhcwo+ICAg ICAgZGVidWdmcyBzZXR1cCBpcyBub3cgZG9uZSBhdCB0aGUgZW5kIG9mIGk5MTUgRHJpdmVyIGxv YWQuIChDaHJpcykKPgo+IHYzOgo+IC0gU3dpdGNoIHRvIG5vLW92ZXJ3cml0ZSBtb2RlIGZvciBy ZWxheS4KPiAtIEZpeCB0aGUgcmVsYXkgc3ViIGJ1ZmZlciBzd2l0Y2hpbmcgc2VxdWVuY2UuCj4K PiB2NDoKPiAtIFVwZGF0ZSBpOTE1IEtjb25maWcgdG8gc2VsZWN0IFJFTEFZIGNvbmZpZy4gKFR2 cnRLbykKPiAtIExvZyBhIG1lc3NhZ2Ugd2hlbiB0aGVyZSBpcyBubyBzdWIgYnVmZmVyIGF2YWls YWJsZSB0byBjYXB0dXJlCj4gICAgdGhlIEd1QyBsb2cgYnVmZmVyLiAoVHZydGtvKQo+IC0gSW5j cmVhc2UgdGhlIG51bWJlciBvZiByZWxheSBzdWIgYnVmZmVycyB0byA4IGZyb20gNCwgdG8gaGF2 ZQo+ICAgIHN1ZmZpY2llbnQgYnVmZmVyaW5nIGZvciBib290IHRpbWUgbG9ncwo+Cj4gdjU6Cj4g LSBGaXggdGhlIGFsaWdubWVudCwgaW5kZW50YXRpb24gaXNzdWVzIGFuZCBzb21lIG1pbm9yIGNs ZWFudXAuIChUdnJ0a28pCj4gLSBVcGRhdGUgdGhlIGNvbW1lbnQgdG8gZWxhYm9yYXRlIG9uIHdo eSBhIHJlbGF5IGNoYW5uZWwgaGFzIHRvIGJlCj4gICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWJ1 Z2ZzIGZpbGUuIChUdnJ0a28pCj4KPiBTdWdnZXN0ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNA Y2hyaXMtd2lsc29uLmNvLnVrPgo+IFNpZ25lZC1vZmYtYnk6IFNvdXJhYiBHdXB0YSA8c291cmFi Lmd1cHRhQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBa2FzaCBHb2VsIDxha2FzaC5nb2Vs QGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcgICAgICAg ICAgICAgICB8ICAgMSArCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAg ICAgICAgfCAgIDIgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lv bi5jIHwgMjExICsrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgIDMgKwo+ICAgNCBmaWxlcyBjaGFuZ2Vk LCAyMTUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZwo+ IGluZGV4IDc3NjllNDYuLmZjOTAwZDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvS2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcKPiBAQCAtMTEs NiArMTEsNyBAQCBjb25maWcgRFJNX0k5MTUKPiAgIAlzZWxlY3QgRFJNX0tNU19IRUxQRVIKPiAg IAlzZWxlY3QgRFJNX1BBTkVMCj4gICAJc2VsZWN0IERSTV9NSVBJX0RTSQo+ICsJc2VsZWN0IFJF TEFZCj4gICAJIyBpOTE1IGRlcGVuZHMgb24gQUNQSV9WSURFTyB3aGVuIEFDUEkgaXMgZW5hYmxl ZAo+ICAgCSMgYnV0IGZvciBzZWxlY3QgdG8gd29yaywgbmVlZCB0byBzZWxlY3QgQUNQSV9WSURF TydzIGRlcGVuZGVuY2llcywgaWNrCj4gICAJc2VsZWN0IEJBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBp ZiBBQ1BJCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggMTNhZTM0MC4uY2RlZTYwYiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBAIC0xMTMzLDYgKzExMzMsNyBAQCBzdGF0 aWMgdm9pZCBpOTE1X2RyaXZlcl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gICAJLyogUmV2ZWFsIG91ciBwcmVzZW5jZSB0byB1c2Vyc3BhY2UgKi8KPiAgIAlp ZiAoZHJtX2Rldl9yZWdpc3RlcihkZXYsIDApID09IDApIHsKPiAgIAkJaTkxNV9kZWJ1Z2ZzX3Jl Z2lzdGVyKGRldl9wcml2KTsKPiArCQlpOTE1X2d1Y19yZWdpc3RlcihkZXZfcHJpdik7Cj4gICAJ CWk5MTVfc2V0dXBfc3lzZnMoZGV2KTsKPiAgIAl9IGVsc2UKPiAgIAkJRFJNX0VSUk9SKCJGYWls ZWQgdG8gcmVnaXN0ZXIgZHJpdmVyIGZvciB1c2Vyc3BhY2UgYWNjZXNzIVxuIik7Cj4gQEAgLTEx NzEsNiArMTE3Miw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX3VucmVnaXN0ZXIoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCWludGVsX29wcmVnaW9uX3VucmVnaXN0 ZXIoZGV2X3ByaXYpOwo+Cj4gICAJaTkxNV90ZWFyZG93bl9zeXNmcygmZGV2X3ByaXYtPmRybSk7 Cj4gKwlpOTE1X2d1Y191bnJlZ2lzdGVyKGRldl9wcml2KTsKPiAgIAlpOTE1X2RlYnVnZnNfdW5y ZWdpc3RlcihkZXZfcHJpdik7Cj4gICAJZHJtX2Rldl91bnJlZ2lzdGVyKCZkZXZfcHJpdi0+ZHJt KTsKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNz aW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiBpbmRl eCAyYjI3Yjg3Li45YjEwNTRjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3VjX3N1Ym1pc3Npb24uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3Vj X3N1Ym1pc3Npb24uYwo+IEBAIC0yMyw2ICsyMyw4IEBACj4gICAgKi8KPiAgICNpbmNsdWRlIDxs aW51eC9maXJtd2FyZS5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4L2NpcmNfYnVmLmg+Cj4gKyNpbmNs dWRlIDxsaW51eC9kZWJ1Z2ZzLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9yZWxheS5oPgo+ICAgI2lu Y2x1ZGUgImk5MTVfZHJ2LmgiCj4gICAjaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCj4KPiBAQCAtODM3 LDEzICs4MzksMTU5IEBAIGVycjoKPiAgIAlyZXR1cm4gTlVMTDsKPiAgIH0KPgo+ICsvKgo+ICsg KiBTdWIgYnVmZmVyIHN3aXRjaCBjYWxsYmFjay4gQ2FsbGVkIHdoZW5ldmVyIHJlbGF5IGhhcyB0 byBzd2l0Y2ggdG8gYSBuZXcKPiArICogc3ViIGJ1ZmZlciwgcmVsYXkgc3RheXMgb24gdGhlIHNh bWUgc3ViIGJ1ZmZlciBpZiAwIGlzIHJldHVybmVkLgo+ICsgKi8KPiArc3RhdGljIGludCBzdWJi dWZfc3RhcnRfY2FsbGJhY2soc3RydWN0IHJjaGFuX2J1ZiAqYnVmLAo+ICsJCQkJIHZvaWQgKnN1 YmJ1ZiwKPiArCQkJCSB2b2lkICpwcmV2X3N1YmJ1ZiwKPiArCQkJCSBzaXplX3QgcHJldl9wYWRk aW5nKQo+ICt7Cj4gKwkvKiBVc2Ugbm8tb3ZlcndyaXRlIG1vZGUgYnkgZGVmYXVsdCwgd2hlcmUg cmVsYXkgd2lsbCBzdG9wIGFjY2VwdGluZwo+ICsJICogbmV3IGRhdGEgaWYgdGhlcmUgYXJlIG5v IGVtcHR5IHN1YiBidWZmZXJzIGxlZnQuCj4gKwkgKiBUaGVyZSBpcyBubyBzdHJpY3Qgc3luY2hy b25pemF0aW9uIGVuZm9yY2VkIGJ5IHJlbGF5IGJldHdlZW4gQ29uc3VtZXIKPiArCSAqIGFuZCBQ cm9kdWNlci4gSW4gb3ZlcndyaXRlIG1vZGUsIHRoZXJlIGlzIGEgcG9zc2liaWxpdHkgb2YgZ2V0 dGluZwo+ICsJICogaW5jb25zaXN0ZW50L2dhcmJsZWQgZGF0YSwgdGhlIHByb2R1Y2VyIGNvdWxk IGJlIHdyaXRpbmcgb24gdG8gdGhlCj4gKwkgKiBzYW1lIHN1YiBidWZmZXIgZnJvbSB3aGljaCBD b25zdW1lciBpcyByZWFkaW5nLiBUaGlzIGNhbid0IGJlIGF2b2lkZWQKPiArCSAqIHVubGVzcyBD b25zdW1lciBpcyBmYXN0IGVub3VnaCBhbmQgY2FuIGFsd2F5cyBydW4gaW4gdGFuZGVtIHdpdGgK PiArCSAqIFByb2R1Y2VyLgo+ICsJICovCj4gKwlpZiAocmVsYXlfYnVmX2Z1bGwoYnVmKSkKPiAr CQlyZXR1cm4gMDsKPiArCj4gKwlyZXR1cm4gMTsKPiArfQo+ICsKPiArLyoKPiArICogZmlsZV9j cmVhdGUoKSBjYWxsYmFjay4gQ3JlYXRlcyByZWxheSBmaWxlIGluIGRlYnVnZnMuCj4gKyAqLwo+ ICtzdGF0aWMgc3RydWN0IGRlbnRyeSAqY3JlYXRlX2J1Zl9maWxlX2NhbGxiYWNrKGNvbnN0IGNo YXIgKmZpbGVuYW1lLAo+ICsJCQkJCSAgICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCj4gKwkJ CQkJICAgICAgIHVtb2RlX3QgbW9kZSwKPiArCQkJCQkgICAgICAgc3RydWN0IHJjaGFuX2J1ZiAq YnVmLAo+ICsJCQkJCSAgICAgICBpbnQgKmlzX2dsb2JhbCkKPiArewo+ICsJc3RydWN0IGRlbnRy eSAqYnVmX2ZpbGU7Cj4gKwo+ICsJLyogVGhpcyB0byBlbmFibGUgdGhlIHVzZSBvZiBhIHNpbmds ZSBidWZmZXIgZm9yIHRoZSByZWxheSBjaGFubmVsIGFuZAo+ICsJICogY29ycmVzcG9uZGluZ2x5 IGhhdmUgYSBzaW5nbGUgZmlsZSBleHBvc2VkIHRvIFVzZXIsIHRocm91Z2ggd2hpY2gKPiArCSAq IGl0IGNhbiBjb2xsZWN0IHRoZSBsb2dzIGluIG9yZGVyIHdpdGhvdXQgYW55IHBvc3QtcHJvY2Vz c2luZy4KPiArCSAqLwo+ICsJKmlzX2dsb2JhbCA9IDE7Cj4gKwo+ICsJaWYgKCFwYXJlbnQpCj4g KwkJcmV0dXJuIE5VTEw7CgpTaG91bGQgd3JpdGluZyB0byBpc19nbG9iYWwgYmUgYWZ0ZXIgdGhp cyBjaGVjaz8KCj4gKwo+ICsJLyogTm90IHVzaW5nIHRoZSBjaGFubmVsIGZpbGVuYW1lIHBhc3Nl ZCBhcyBhbiBhcmd1bWVudCwgc2luY2UgZm9yIGVhY2gKPiArCSAqIGNoYW5uZWwgcmVsYXkgYXBw ZW5kcyB0aGUgY29ycmVzcG9uZGluZyBDUFUgbnVtYmVyIHRvIHRoZSBmaWxlbmFtZQo+ICsJICog cGFzc2VkIGluIHJlbGF5X29wZW4oKS4gVGhpcyBzaG91bGQgYmUgZmluZSBhcyByZWxheSBqdXN0 IG5lZWRzIGEKPiArCSAqIGRlbnRyeSBvZiB0aGUgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNo YW5uZWwgYnVmZmVyIGFuZCB0aGF0IGZpbGUncwo+ICsJICogbmFtZSBuZWVkIG5vdCBiZSBzYW1l IGFzIHRoZSBmaWxlbmFtZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQuCj4gKwkgKi8KPiArCWJ1Zl9m aWxlID0gZGVidWdmc19jcmVhdGVfZmlsZSgiZ3VjX2xvZyIsIG1vZGUsCj4gKwkJCQkgICAgICAg cGFyZW50LCBidWYsICZyZWxheV9maWxlX29wZXJhdGlvbnMpOwo+ICsJcmV0dXJuIGJ1Zl9maWxl Owo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBmaWxlX3JlbW92ZSgpIGRlZmF1bHQgY2FsbGJhY2suIFJl bW92ZXMgcmVsYXkgZmlsZSBpbiBkZWJ1Z2ZzLgo+ICsgKi8KPiArc3RhdGljIGludCByZW1vdmVf YnVmX2ZpbGVfY2FsbGJhY2soc3RydWN0IGRlbnRyeSAqZGVudHJ5KQo+ICt7Cj4gKwlkZWJ1Z2Zz X3JlbW92ZShkZW50cnkpOwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gKy8qIHJlbGF5IGNoYW5u ZWwgY2FsbGJhY2tzICovCj4gK3N0YXRpYyBzdHJ1Y3QgcmNoYW5fY2FsbGJhY2tzIHJlbGF5X2Nh bGxiYWNrcyA9IHsKPiArCS5zdWJidWZfc3RhcnQgPSBzdWJidWZfc3RhcnRfY2FsbGJhY2ssCj4g KwkuY3JlYXRlX2J1Zl9maWxlID0gY3JlYXRlX2J1Zl9maWxlX2NhbGxiYWNrLAo+ICsJLnJlbW92 ZV9idWZfZmlsZSA9IHJlbW92ZV9idWZfZmlsZV9jYWxsYmFjaywKPiArfTsKPiArCj4gK3N0YXRp YyB2b2lkIGd1Y19yZW1vdmVfbG9nX3JlbGF5X2ZpbGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+ ICt7Cj4gKwlyZWxheV9jbG9zZShndWMtPmxvZy5yZWxheV9jaGFuKTsKPiArfQo+ICsKPiArc3Rh dGljIGludCBndWNfY3JlYXRlX2xvZ19yZWxheV9maWxlKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykK PiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUo Z3VjKTsKPiArCXN0cnVjdCByY2hhbiAqZ3VjX2xvZ19yZWxheV9jaGFuOwo+ICsJc3RydWN0IGRl bnRyeSAqbG9nX2RpcjsKPiArCXNpemVfdCBuX3N1YmJ1ZnMsIHN1YmJ1Zl9zaXplOwo+ICsKPiAr CS8qIEZvciBub3cgY3JlYXRlIHRoZSBsb2cgZmlsZSBpbiAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkv MCBkaXIgKi8KPiArCWxvZ19kaXIgPSBkZXZfcHJpdi0+ZHJtLnByaW1hcnktPmRlYnVnZnNfcm9v dDsKPiArCj4gKwkvKiBJZiAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvMCBsb2NhdGlvbiBkbyBub3Qg ZXhpc3QsIHRoZW4gZGVidWdmcyBpcwo+ICsJICogbm90IG1vdW50ZWQgYW5kIHNvIGNhbid0IGNy ZWF0ZSB0aGUgcmVsYXkgZmlsZS4KPiArCSAqIFRoZSByZWxheSBBUEkgc2VlbXMgdG8gZml0IHdl bGwgd2l0aCBkZWJ1Z2ZzIG9ubHksIGZvciBhdmFpbGluZyByZWxheQo+ICsJICogdGhlcmUgYXJl IDMgcmVxdWlyZW1lbnRzIHdoaWNoIGNhbiBiZSBtZXQgZm9yIGRlYnVnZnMgZmlsZSBvbmx5IGlu IGEKPiArCSAqIHN0cmFpZ2h0Zm9yd2FyZC9jbGVhbiBtYW5uZXIgOi0KPiArCSAqIGkpICAgTmVl ZCB0aGUgYXNzb2NpYXRlZCBkZW50cnkgcG9pbnRlciBvZiB0aGUgZmlsZSwgd2hpbGUgb3Blbmlu ZyB0aGUKPiArCSAqICAgICAgcmVsYXkgY2hhbm5lbC4KPiArCSAqIGlpKSAgU2hvdWxkIGJlIGFi bGUgdG8gdXNlICdyZWxheV9maWxlX29wZXJhdGlvbnMnIGZvcHMgZm9yIHRoZSBmaWxlLgo+ICsJ ICogaWlpKSBTZXQgdGhlICdpX3ByaXZhdGUnIGZpZWxkIG9mIGZpbGUncyBpbm9kZSB0byB0aGUg cG9pbnRlciBvZgo+ICsJICoJcmVsYXkgY2hhbm5lbCBidWZmZXIuCj4gKwkgKi8KPiArCWlmICgh bG9nX2Rpcikgewo+ICsJCURSTV9FUlJPUigiRGVidWdmcyBkaXIgbm90IGF2YWlsYWJsZSB5ZXQg Zm9yIEd1QyBsb2cgZmlsZVxuIik7Cj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwl9Cj4gKwo+ICsJ LyogS2VlcCB0aGUgc2l6ZSBvZiBzdWIgYnVmZmVycyBzYW1lIGFzIHNoYXJlZCBsb2cgYnVmZmVy ICovCj4gKwlzdWJidWZfc2l6ZSA9IGd1Yy0+bG9nLnZtYS0+b2JqLT5iYXNlLnNpemU7Cj4gKwo+ ICsJLyogU3RvcmUgdXAgdG8gOCBzbmFwc2hvdHMsIHdoaWNoIGlzIGxhcmdlIGVub3VnaCB0byBi dWZmZXIgc3VmZmljaWVudAo+ICsJICogYm9vdCB0aW1lIGxvZ3MgYW5kIHByb3ZpZGVzIGVub3Vn aCBsZWV3YXkgdG8gVXNlciwgaW4gdGVybXMgb2YKPiArCSAqIGxhdGVuY3ksIGZvciBjb25zdW1p bmcgdGhlIGxvZ3MgZnJvbSByZWxheS4gQWxzbyBkb2Vzbid0IHRha2UKPiArCSAqIHVwIHRvbyBt dWNoIG1lbW9yeS4KPiArCSAqLwo+ICsJbl9zdWJidWZzID0gODsKPiArCj4gKwlndWNfbG9nX3Jl bGF5X2NoYW4gPSByZWxheV9vcGVuKCJndWNfbG9nIiwgbG9nX2Rpciwgc3ViYnVmX3NpemUsCj4g KwkJCQkJbl9zdWJidWZzLCAmcmVsYXlfY2FsbGJhY2tzLCBkZXZfcHJpdik7Cj4gKwlpZiAoIWd1 Y19sb2dfcmVsYXlfY2hhbikgewo+ICsJCURSTV9FUlJPUigiQ291bGRuJ3QgY3JlYXRlIHJlbGF5 IGNoYW4gZm9yIEd1QyBsb2dnaW5nXG4iKTsKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCX0KPiAr Cj4gKwkvKiBGSVhNRTogQ292ZXIgdGhlIHVwZGF0ZSB1bmRlciBhIGxvY2sgPyAqLwo+ICsJZ3Vj LT5sb2cucmVsYXlfY2hhbiA9IGd1Y19sb2dfcmVsYXlfY2hhbjsKPiArCXJldHVybiAwOwo+ICt9 Cj4gKwo+ICAgc3RhdGljIHZvaWQgZ3VjX21vdmVfdG9fbmV4dF9idWYoc3RydWN0IGludGVsX2d1 YyAqZ3VjKQo+ICAgewo+ICsJLyogTWFrZSBzdXJlIHRoZSB1cGRhdGVzIG1hZGUgaW4gdGhlIHN1 YiBidWZmZXIgYXJlIHZpc2libGUgd2hlbgo+ICsJICogQ29uc3VtZXIgc2VlcyB0aGUgZm9sbG93 aW5nIHVwZGF0ZSB0byBvZmZzZXQgaW5zaWRlIHRoZSBzdWIgYnVmZmVyLgo+ICsJICovCj4gKwlz bXBfd21iKCk7Cj4gKwo+ICsJLyogQWxsIGRhdGEgaGFzIGJlZW4gd3JpdHRlbiwgc28gbm93IG1v dmUgdGhlIG9mZnNldCBvZiBzdWIgYnVmZmVyLiAqLwo+ICsJcmVsYXlfcmVzZXJ2ZShndWMtPmxv Zy5yZWxheV9jaGFuLCBndWMtPmxvZy52bWEtPm9iai0+YmFzZS5zaXplKTsKPiArCj4gKwkvKiBT d2l0Y2ggdG8gdGhlIG5leHQgc3ViIGJ1ZmZlciAqLwo+ICsJcmVsYXlfZmx1c2goZ3VjLT5sb2cu cmVsYXlfY2hhbik7Cj4gICB9Cj4KPiAgIHN0YXRpYyB2b2lkICpndWNfZ2V0X3dyaXRlX2J1ZmZl cihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gICB7Cj4gLQlyZXR1cm4gTlVMTDsKPiArCS8qIEZJ WE1FOiBDb3ZlciB0aGUgY2hlY2sgdW5kZXIgYSBsb2NrID8gKi8KPiArCWlmICghZ3VjLT5sb2cu cmVsYXlfY2hhbikKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwkvKiBKdXN0IGdldCB0aGUgYmFz ZSBhZGRyZXNzIG9mIGEgbmV3IHN1YiBidWZmZXIgYW5kIGNvcHkgZGF0YSBpbnRvIGl0Cj4gKwkg KiBvdXJzZWx2ZXMuIE5VTEwgd2lsbCBiZSByZXR1cm5lZCBpbiBuby1vdmVyd3JpdGUgbW9kZSwg aWYgYWxsIHN1Ygo+ICsJICogYnVmZmVycyBhcmUgZnVsbC4gQ291bGQgaGF2ZSB1c2VkIHRoZSBy ZWxheV93cml0ZSgpIHRvIGluZGlyZWN0bHkKPiArCSAqIGNvcHkgdGhlIGRhdGEsIGJ1dCB0aGF0 IHdvdWxkIGhhdmUgYmVlbiBiaXQgY29udm9sdXRlZCwgYXMgd2UgbmVlZCB0bwo+ICsJICogd3Jp dGUgdG8gb25seSBjZXJ0YWluIGxvY2F0aW9ucyBpbnNpZGUgYSBzdWIgYnVmZmVyIHdoaWNoIGNh bm5vdCBiZQo+ICsJICogZG9uZSB3aXRob3V0IHVzaW5nIHJlbGF5X3Jlc2VydmUoKSBhbG9uZyB3 aXRoIHJlbGF5X3dyaXRlKCkuIFNvIGl0cwo+ICsJICogYmV0dGVyIHRvIHVzZSByZWxheV9yZXNl cnZlKCkgYWxvbmUuCj4gKwkgKi8KPiArCXJldHVybiByZWxheV9yZXNlcnZlKGd1Yy0+bG9nLnJl bGF5X2NoYW4sIDApOwo+ICAgfQo+Cj4gICBzdGF0aWMgdm9pZCBndWNfcmVhZF91cGRhdGVfbG9n X2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gQEAgLTkyOSw2ICsxMDc3LDEyIEBAIHN0 YXRpYyB2b2lkIGd1Y19yZWFkX3VwZGF0ZV9sb2dfYnVmZmVyKHN0cnVjdCBpbnRlbF9ndWMgKmd1 YykKPgo+ICAgCWlmIChsb2dfYnVmZmVyX3NuYXBzaG90X3N0YXRlKQo+ICAgCQlndWNfbW92ZV90 b19uZXh0X2J1ZihndWMpOwo+ICsJZWxzZSB7Cj4gKwkJLyogVXNlZCByYXRlIGxpbWl0ZWQgdG8g YXZvaWQgZGVsdWdlIG9mIG1lc3NhZ2VzLCBsb2dzIG1pZ2h0IGJlCj4gKwkJICogZ2V0dGluZyBj b25zdW1lZCBieSBVc2VyIGF0IGEgc2xvdyByYXRlLgo+ICsJCSAqLwo+ICsJCURSTV9FUlJPUl9S QVRFTElNSVRFRCgibm8gc3ViLWJ1ZmZlciB0byBjYXB0dXJlIGxvZyBidWZmZXJcbiIpOwo+ICsJ fQo+ICAgfQo+Cj4gICBzdGF0aWMgdm9pZCBndWNfY2FwdHVyZV9sb2dzX3dvcmsoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQo+IEBAIC05NjQsNiArMTExOCwxMSBAQCBzdGF0aWMgdm9pZCBndWNf bG9nX2NsZWFudXAoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+Cj4gICAJZ3VjLT5sb2cuZmx1c2hf d3EgPSBOVUxMOwo+Cj4gKwlpZiAoZ3VjLT5sb2cucmVsYXlfY2hhbikKPiArCQlndWNfcmVtb3Zl X2xvZ19yZWxheV9maWxlKGd1Yyk7Cj4gKwo+ICsJZ3VjLT5sb2cucmVsYXlfY2hhbiA9IE5VTEw7 Cj4gKwo+ICAgCWlmIChndWMtPmxvZy5idWZfYWRkcikKPiAgIAkJaTkxNV9nZW1fb2JqZWN0X3Vu cGluX21hcChndWMtPmxvZy52bWEtPm9iaik7Cj4KPiBAQCAtMTA1NCw2ICsxMjEzLDM1IEBAIHN0 YXRpYyB2b2lkIGd1Y19jcmVhdGVfbG9nKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiAgIAlndWMt PmxvZy5mbGFncyA9IChvZmZzZXQgPDwgR1VDX0xPR19CVUZfQUREUl9TSElGVCkgfCBmbGFnczsK PiAgIH0KPgo+ICtzdGF0aWMgaW50IGd1Y19sb2dfbGF0ZV9zZXR1cChzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190 b19pOTE1KGd1Yyk7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRl dl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiArCj4gKwlpZiAoaTkxNS5ndWNfbG9nX2xldmVs IDwgMCkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwkvKiBJZiBsb2dfbGV2ZWwgd2FzIHNl dCBhcyAtMSBhdCBib290IHRpbWUsIHRoZW4gdm1hbGxvYyBtYXBwaW5nIHdvdWxkCj4gKwkgKiBu b3QgaGF2ZSBiZWVuIGNyZWF0ZWQgZm9yIHRoZSBsb2cgYnVmZmVyLCBzbyBjcmVhdGUgb25lIG5v dy4KPiArCSAqLwo+ICsJcmV0ID0gZ3VjX2NyZWF0ZV9sb2dfZXh0cmFzKGd1Yyk7Cj4gKwlpZiAo cmV0KQo+ICsJCWdvdG8gZXJyOwo+ICsKPiArCXJldCA9IGd1Y19jcmVhdGVfbG9nX3JlbGF5X2Zp bGUoZ3VjKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBlcnI7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4g K2VycjoKPiArCWd1Y19sb2dfY2xlYW51cChndWMpOwo+ICsJLyogbG9nZ2luZyB3aWxsIHJlbWFp biBvZmYgKi8KPiArCWk5MTUuZ3VjX2xvZ19sZXZlbCA9IC0xOwo+ICsJcmV0dXJuIHJldDsKPiAr fQo+ICsKPiAgIHN0YXRpYyB2b2lkIGluaXRfZ3VjX3BvbGljaWVzKHN0cnVjdCBndWNfcG9saWNp ZXMgKnBvbGljaWVzKQo+ICAgewo+ICAgCXN0cnVjdCBndWNfcG9saWN5ICpwb2xpY3k7Cj4gQEAg LTEyMjMsNyArMTQxMSw2IEBAIHZvaWQgaTkxNV9ndWNfc3VibWlzc2lvbl9maW5pKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAm ZGV2X3ByaXYtPmd1YzsKPgo+ICAgCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndWMtPmFk c192bWEpOwo+IC0JZ3VjX2xvZ19jbGVhbnVwKGd1Yyk7Cj4gICAJaTkxNV92bWFfdW5waW5fYW5k X3JlbGVhc2UoJmd1Yy0+bG9nLnZtYSk7Cj4KPiAgIAlpZiAoZ3VjLT5jdHhfcG9vbF92bWEpCj4g QEAgLTEyOTcsMyArMTQ4NCwyMyBAQCB2b2lkIGk5MTVfZ3VjX2NhcHR1cmVfbG9ncyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJaG9zdDJndWNfbG9nYnVmZmVyX2ZsdXNo X2NvbXBsZXRlKCZkZXZfcHJpdi0+Z3VjKTsKPiAgIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZf cHJpdik7Cj4gICB9Cj4gKwo+ICt2b2lkIGk5MTVfZ3VjX3VucmVnaXN0ZXIoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlpZiAoIWk5MTUuZW5hYmxlX2d1Y19zdWJt aXNzaW9uKQo+ICsJCXJldHVybjsKPiArCj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0 cnVjdF9tdXRleCk7Cj4gKwlndWNfbG9nX2NsZWFudXAoJmRldl9wcml2LT5ndWMpOwo+ICsJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gK30KPiArCj4gK3ZvaWQg aTkxNV9ndWNfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7 Cj4gKwlpZiAoIWk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQo+ICsJCXJldHVybjsKPiArCj4g KwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwlndWNfbG9nX2xh dGVfc2V0dXAoJmRldl9wcml2LT5ndWMpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJt LnN0cnVjdF9tdXRleCk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IGluZGV4IGQw NTNhMTguLjMyOTljY2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IEBAIC0xMjcs NiArMTI3LDcgQEAgc3RydWN0IGludGVsX2d1Y19sb2cgewo+ICAgCXZvaWQgKmJ1Zl9hZGRyOwo+ ICAgCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpmbHVzaF93cTsKPiAgIAlzdHJ1Y3Qgd29ya19z dHJ1Y3QgZmx1c2hfd29yazsKPiArCXN0cnVjdCByY2hhbiAqcmVsYXlfY2hhbjsKPiAgIH07Cj4K PiAgIHN0cnVjdCBpbnRlbF9ndWMgewo+IEBAIC0xNzEsNSArMTcyLDcgQEAgaW50IGk5MTVfZ3Vj X3dxX2NoZWNrX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpOwo+ICAgdm9p ZCBpOTE1X2d1Y19zdWJtaXNzaW9uX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKPiAgIHZvaWQgaTkxNV9ndWNfc3VibWlzc2lvbl9maW5pKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7Cj4gICB2b2lkIGk5MTVfZ3VjX2NhcHR1cmVfbG9ncyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICt2b2lkIGk5MTVfZ3VjX3JlZ2lzdGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gK3ZvaWQgaTkxNV9ndWNfdW5y ZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+Cj4gICAjZW5kaWYK PgoKVGhlIHJlc3QgbG9va3MgZmluZSB0byBtZSwgd2l0aCBhIGRpc2NsYWltZXIgdGhhdCBJIGRv bid0IGtub3cgcmVsYXlmcy4KClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==