From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 08/20] drm/i915: Add a relay backed debugfs interface for capturing GuC logs Date: Fri, 12 Aug 2016 14:53:08 +0100 Message-ID: <57ADD4C4.8010902@linux.intel.com> References: <1470983123-22127-1-git-send-email-akash.goel@intel.com> <1470983123-22127-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 896E36EBB9 for ; Fri, 12 Aug 2016 13:53:11 +0000 (UTC) In-Reply-To: <1470983123-22127-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 Ck9uIDEyLzA4LzE2IDA3OjI1LCBha2FzaC5nb2VsQGludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBB a2FzaCBHb2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4KPgo+IEFkZGVkIGEgbmV3IGRlYnVnZnMg aW50ZXJmYWNlICcvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvZ3VjX2xvZycgZm9yIHRoZQo+IFVzZXIg dG8gY2FwdHVyZSBHdUMgZmlybXdhcmUgbG9ncy4gQXZhaWxlZCByZWxheSBmcmFtZXdvcmsgdG8g aW1wbGVtZW50Cj4gdGhlIGludGVyZmFjZSwgd2hlcmUgRHJpdmVyIHdpbGwgaGF2ZSB0byBqdXN0 IHVzZSBhIHJlbGF5IEFQSSB0byBzdG9yZQo+IHNuYXBzaG90cyBvZiB0aGUgR3VDIGxvZyBidWZm ZXIgaW4gdGhlIGJ1ZmZlciBtYW5hZ2VkIGJ5IHJlbGF5Lgo+IFRoZSBzbmFwc2hvdCB3aWxsIGJl IHRha2VuIHdoZW4gR3VDIGZpcm13YXJlIHNlbmRzIGEgbG9nIGJ1ZmZlciBmbHVzaAo+IGludGVy cnVwdCBhbmQgdXAgdG8gZm91ciBzbmFwaG90cyBjb3VsZCBiZSBzdG9yZWQgaW4gdGhlIHJlbGF5 IGJ1ZmZlci4KCnNuYXBzaG90cwoKPiBUaGUgcmVsYXkgYnVmZmVyIHdpbGwgYmUgb3BlcmF0ZWQg aW4gYSBtb2RlIHdoZXJlIGl0IHdpbGwgb3ZlcndyaXRlIHRoZQo+IGRhdGEgbm90IHlldCBjb2xs ZWN0ZWQgYnkgVXNlci4KPiBCZXNpZGVzIG1tYXAgbWV0aG9kLCB0aHJvdWdoIHdoaWNoIFVzZXIg Y2FuIGRpcmVjdGx5IGFjY2VzcyB0aGUgcmVsYXkKPiBidWZmZXIgY29udGVudHMsIHJlbGF5IGFs c28gc3VwcG9ydHMgdGhlICdwb2xsJyBtZXRob2QuIFRocm91Z2ggdGhlICdwb2xsJwo+IGNhbGwg b24gbG9nIGZpbGUsIFVzZXIgY2FuIGNvbWUgdG8ga25vdyB3aGVuZXZlciBhIG5ldyBzbmFwc2hv dCBvZiB0aGUKPiBsb2cgYnVmZmVyIGlzIHRha2VuIGJ5IERyaXZlciwgc28gY2FuIHJ1biBpbiB0 YW5kZW0gd2l0aCB0aGUgRHJpdmVyIGFuZAo+IGNhcHR1cmUgdGhlIGxvZ3MgaW4gYSBzdXN0YWlu ZWQvc3RyZWFtaW5nIG1hbm5lciwgd2l0aG91dCBhbnkgbG9zcyBvZiBkYXRhLgo+Cj4gdjI6IERl ZmVyIHRoZSBjcmVhdGlvbiBvZiByZWxheSBjaGFubmVsICYgYXNzb2NpYXRlZCBkZWJ1Z2ZzIGZp bGUsIGFzCj4gICAgICBkZWJ1Z2ZzIHNldHVwIGlzIG5vdyBkb25lIGF0IHRoZSBlbmQgb2YgaTkx NSBEcml2ZXIgbG9hZC4gKENocmlzKQo+Cj4gdjM6Cj4gLSBTd2l0Y2ggdG8gbm8tb3ZlcndyaXRl IG1vZGUgZm9yIHJlbGF5Lgo+IC0gRml4IHRoZSByZWxheSBzdWIgYnVmZmVyIHN3aXRjaGluZyBz ZXF1ZW5jZS4KPgo+IHY0Ogo+IC0gVXBkYXRlIGk5MTUgS2NvbmZpZyB0byBzZWxlY3QgUkVMQVkg Y29uZmlnLiAoVHZydEtvKQo+IC0gTG9nIGEgbWVzc2FnZSB3aGVuIHRoZXJlIGlzIG5vIHN1YiBi dWZmZXIgYXZhaWxhYmxlIHRvIGNhcHR1cmUKPiAgICB0aGUgR3VDIGxvZyBidWZmZXIuIChUdnJ0 a28pCj4gLSBJbmNyZWFzZSB0aGUgbnVtYmVyIG9mIHJlbGF5IHN1YiBidWZmZXJzIHRvIDggZnJv bSA0LCB0byBoYXZlCj4gICAgc3VmZmljaWVudCBidWZmZXJpbmcgZm9yIGJvb3QgdGltZSBsb2dz Cj4KPiBTdWdnZXN0ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr Pgo+IFNpZ25lZC1vZmYtYnk6IFNvdXJhYiBHdXB0YSA8c291cmFiLmd1cHRhQGludGVsLmNvbT4K PiBTaWduZWQtb2ZmLWJ5OiBBa2FzaCBHb2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4KPiAtLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcgICAgICAgICAgICAgICB8ICAgMSArCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgICAgfCAgIDIgKwo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgMjA2ICsrKysrKysr KysrKysrKysrKysrKysrKysrKystCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMu aCAgICAgICAgICAgfCAgIDMgKwo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAyMDkgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9L Y29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZwo+IGluZGV4IDc3NjllNDYuLmZj OTAwZDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcKPiBAQCAtMTEsNiArMTEsNyBAQCBjb25maWcg RFJNX0k5MTUKPiAgIAlzZWxlY3QgRFJNX0tNU19IRUxQRVIKPiAgIAlzZWxlY3QgRFJNX1BBTkVM Cj4gICAJc2VsZWN0IERSTV9NSVBJX0RTSQo+ICsJc2VsZWN0IFJFTEFZCj4gICAJIyBpOTE1IGRl cGVuZHMgb24gQUNQSV9WSURFTyB3aGVuIEFDUEkgaXMgZW5hYmxlZAo+ICAgCSMgYnV0IGZvciBz ZWxlY3QgdG8gd29yaywgbmVlZCB0byBzZWxlY3QgQUNQSV9WSURFTydzIGRlcGVuZGVuY2llcywg aWNrCj4gICAJc2VsZWN0IEJBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpZiBBQ1BJCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jCj4gaW5kZXggZmMyZGEzMi4uY2I4Yzk0MyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYwo+IEBAIC0xMTQ1LDYgKzExNDUsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2RyaXZl cl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJLyogUmV2 ZWFsIG91ciBwcmVzZW5jZSB0byB1c2Vyc3BhY2UgKi8KPiAgIAlpZiAoZHJtX2Rldl9yZWdpc3Rl cihkZXYsIDApID09IDApIHsKPiAgIAkJaTkxNV9kZWJ1Z2ZzX3JlZ2lzdGVyKGRldl9wcml2KTsK PiArCQlpOTE1X2d1Y19yZWdpc3RlcihkZXZfcHJpdik7Cj4gICAJCWk5MTVfc2V0dXBfc3lzZnMo ZGV2KTsKPiAgIAl9IGVsc2UKPiAgIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVnaXN0ZXIgZHJp dmVyIGZvciB1c2Vyc3BhY2UgYWNjZXNzIVxuIik7Cj4gQEAgLTExODMsNiArMTE4NCw3IEBAIHN0 YXRpYyB2b2lkIGk5MTVfZHJpdmVyX3VucmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ICAgCWludGVsX29wcmVnaW9uX3VucmVnaXN0ZXIoZGV2X3ByaXYpOwo+Cj4g ICAJaTkxNV90ZWFyZG93bl9zeXNmcygmZGV2X3ByaXYtPmRybSk7Cj4gKwlpOTE1X2d1Y191bnJl Z2lzdGVyKGRldl9wcml2KTsKPiAgIAlpOTE1X2RlYnVnZnNfdW5yZWdpc3RlcihkZXZfcHJpdik7 Cj4gICAJZHJtX2Rldl91bnJlZ2lzdGVyKCZkZXZfcHJpdi0+ZHJtKTsKPgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiBpbmRleCAyNjM1YjY3Li4xYTJkNjQ4 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24u Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IEBA IC0yMyw2ICsyMyw4IEBACj4gICAgKi8KPiAgICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgo+ ICAgI2luY2x1ZGUgPGxpbnV4L2NpcmNfYnVmLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2Zz Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9yZWxheS5oPgo+ICAgI2luY2x1ZGUgImk5MTVfZHJ2Lmgi Cj4gICAjaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCj4KPiBAQCAtODUxLDEyICs4NTMsMzMgQEAgZXJy Ogo+Cj4gICBzdGF0aWMgdm9pZCBndWNfbW92ZV90b19uZXh0X2J1ZihzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMpCj4gICB7Cj4gLQlyZXR1cm47Cj4gKwkvKiBNYWtlIHN1cmUgdGhlIHVwZGF0ZXMgbWFk ZSBpbiB0aGUgc3ViIGJ1ZmZlciBhcmUgdmlzaWJsZSB3aGVuCj4gKwkgKiBDb25zdW1lciBzZWVz IHRoZSBmb2xsb3dpbmcgdXBkYXRlIHRvIG9mZnNldCBpbnNpZGUgdGhlIHN1YiBidWZmZXIuCj4g KwkgKi8KPiArCXNtcF93bWIoKTsKPiArCj4gKwkvKiBBbGwgZGF0YSBoYXMgYmVlbiB3cml0dGVu LCBzbyBub3cgbW92ZSB0aGUgb2Zmc2V0IG9mIHN1YiBidWZmZXIuICovCj4gKwlyZWxheV9yZXNl cnZlKGd1Yy0+bG9nLnJlbGF5X2NoYW4sIGd1Yy0+bG9nLm9iai0+YmFzZS5zaXplKTsKPiArCj4g KwkvKiBTd2l0Y2ggdG8gdGhlIG5leHQgc3ViIGJ1ZmZlciAqLwo+ICsJcmVsYXlfZmx1c2goZ3Vj LT5sb2cucmVsYXlfY2hhbik7Cj4gICB9Cj4KPiAgIHN0YXRpYyB2b2lkKiBndWNfZ2V0X3dyaXRl X2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gICB7Cj4gLQlyZXR1cm4gTlVMTDsKPiAr CS8qIEZJWE1FOiBDb3ZlciB0aGUgY2hlY2sgdW5kZXIgYSBsb2NrID8gKi8KCk5lZWQgdG8gcmVz b2x2ZSBiZWZvcmUgci1iIGluIGFueSBjYXNlLgoKPiArCWlmICghZ3VjLT5sb2cucmVsYXlfY2hh bikKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwkvKiBKdXN0IGdldCB0aGUgYmFzZSBhZGRyZXNz IG9mIGEgbmV3IHN1YiBidWZmZXIgYW5kIGNvcHkgZGF0YSBpbnRvIGl0Cj4gKwkgKiBvdXJzZWx2 ZXMuIE5VTEwgd2lsbCBiZSByZXR1cm5lZCBpbiBuby1vdmVyd3JpdGUgbW9kZSwgaWYgYWxsIHN1 Ygo+ICsJICogYnVmZmVycyBhcmUgZnVsbC4gQ291bGQgaGF2ZSB1c2VkIHRoZSByZWxheV93cml0 ZSgpIHRvIGluZGlyZWN0bHkKPiArCSAqIGNvcHkgdGhlIGRhdGEsIGJ1dCB0aGF0IHdvdWxkIGhh dmUgYmVlbiBiaXQgY29udm9sdXRlZCwgYXMgd2UgbmVlZCB0bwo+ICsJICogd3JpdGUgdG8gb25s eSBjZXJ0YWluIGxvY2F0aW9ucyBpbnNpZGUgYSBzdWIgYnVmZmVyIHdoaWNoIGNhbm5vdCBiZQo+ ICsJICogZG9uZSB3aXRob3V0IHVzaW5nIHJlbGF5X3Jlc2VydmUoKSBhbG9uZyB3aXRoIHJlbGF5 X3dyaXRlKCkuIFNvIGl0cwo+ICsJICogYmV0dGVyIHRvIHVzZSByZWxheV9yZXNlcnZlKCkgYWxv bmUuCj4gKwkgKi8KPiArCXJldHVybiByZWxheV9yZXNlcnZlKGd1Yy0+bG9nLnJlbGF5X2NoYW4s IDApOwo+ICAgfQo+Cj4gICBzdGF0aWMgdm9pZCBndWNfcmVhZF91cGRhdGVfbG9nX2J1ZmZlcihz dHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gQEAgLTkyMyw2ICs5NDYsMTMwIEBAIHN0YXRpYyB2b2lk IGd1Y19yZWFkX3VwZGF0ZV9sb2dfYnVmZmVyKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPgo+ICAg CWlmIChsb2dfYnVmZmVyX3NuYXBzaG90X3N0YXRlKQo+ICAgCQlndWNfbW92ZV90b19uZXh0X2J1 ZihndWMpOwo+ICsJZWxzZSB7Cj4gKwkJLyogVXNlZCByYXRlIGxpbWl0ZWQgdG8gYXZvaWQgZGVs dWdlIG9mIG1lc3NhZ2VzLCBsb2dzIG1pZ2h0IGJlCj4gKwkJICogZ2V0dGluZyBjb25zdW1lZCBi eSBVc2VyIGF0IGEgc2xvdyByYXRlLgo+ICsJCSAqLwo+ICsJCURSTV9FUlJPUl9SQVRFTElNSVRF RCgibm8gc3ViLWJ1ZmZlciB0byBjYXB0dXJlIGxvZyBidWZmZXJcbiIpOwo+ICsJfQo+ICt9Cj4g Kwo+ICsvKgo+ICsgKiBTdWIgYnVmZmVyIHN3aXRjaCBjYWxsYmFjay4gQ2FsbGVkIHdoZW5ldmVy IHJlbGF5IGhhcyB0byBzd2l0Y2ggdG8gYSBuZXcKPiArICogc3ViIGJ1ZmZlciwgcmVsYXkgc3Rh eXMgb24gdGhlIHNhbWUgc3ViIGJ1ZmZlciBpZiAwIGlzIHJldHVybmVkLgo+ICsgKi8KPiArc3Rh dGljIGludCBzdWJidWZfc3RhcnRfY2FsbGJhY2soc3RydWN0IHJjaGFuX2J1ZiAqYnVmLAo+ICsJ CQkJIHZvaWQgKnN1YmJ1ZiwKPiArCQkJCSB2b2lkICpwcmV2X3N1YmJ1ZiwKPiArCQkJCSBzaXpl X3QgcHJldl9wYWRkaW5nKQo+ICt7Cj4gKwkvKiBVc2Ugbm8tb3ZlcndyaXRlIG1vZGUgYnkgZGVm YXVsdCwgd2hlcmUgcmVsYXkgd2lsbCBzdG9wIGFjY2VwdGluZwo+ICsJICogbmV3IGRhdGEgaWYg dGhlcmUgYXJlIG5vIGVtcHR5IHN1YiBidWZmZXJzIGxlZnQuCj4gKwkgKiBUaGVyZSBpcyBubyBz dHJpY3Qgc3luY2hyb25pemF0aW9uIGVuZm9yY2VkIGJ5IHJlbGF5IGJldHdlZW4gQ29uc3VtZXIK PiArCSAqIGFuZCBQcm9kdWNlci4gSW4gb3ZlcndyaXRlIG1vZGUsIHRoZXJlIGlzIGEgcG9zc2li aWxpdHkgb2YgZ2V0dGluZwo+ICsJICogaW5jb25zaXN0ZW50L2dhcmJsZWQgZGF0YSwgdGhlIHBy b2R1Y2VyIGNvdWxkIGJlIHdyaXRpbmcgb24gdG8gdGhlCj4gKwkgKiBzYW1lIHN1YiBidWZmZXIg ZnJvbSB3aGljaCBDb25zdW1lciBpcyByZWFkaW5nLiBUaGlzIGNhbid0IGJlIGF2b2lkZWQKPiAr CSAqIHVubGVzcyBDb25zdW1lciBpcyBmYXN0IGVub3VnaCBhbmQgY2FuIGFsd2F5cyBydW4gaW4g dGFuZGVtIHdpdGgKPiArCSAqIFByb2R1Y2VyLgo+ICsJICovCj4gKwlpZiAocmVsYXlfYnVmX2Z1 bGwoYnVmKSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlyZXR1cm4gMTsKPiArfQo+ICsKPiArLyoK PiArICogZmlsZV9jcmVhdGUoKSBjYWxsYmFjay4gQ3JlYXRlcyByZWxheSBmaWxlIGluIGRlYnVn ZnMuCj4gKyAqLwo+ICtzdGF0aWMgc3RydWN0IGRlbnRyeSAqY3JlYXRlX2J1Zl9maWxlX2NhbGxi YWNrKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAo+ICsJCQkJCSAgICAgICBzdHJ1Y3QgZGVudHJ5ICpw YXJlbnQsCj4gKwkJCQkJICAgICAgIHVtb2RlX3QgbW9kZSwKPiArCQkJCQkgICAgICAgc3RydWN0 IHJjaGFuX2J1ZiAqYnVmLAo+ICsJCQkJCSAgICAgICBpbnQgKmlzX2dsb2JhbCkKPiArewo+ICsJ c3RydWN0IGRlbnRyeSAqYnVmX2ZpbGUgPSBOVUxMOwo+ICsKCldvdWxkIHRoaXMgZnVuY3Rpb24g YmUgYSB0aW55IGJpdCBzaW1wbGVyIGFzOgoKCWlmICghcGFyZW50KQoJCXJldHVybiBOVUxMOwoK PwoKPiArCWlmIChwYXJlbnQpIHsKPiArCQkvKiBOb3QgdXNpbmcgdGhlIGNoYW5uZWwgZmlsZW5h bWUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50LCBzaW5jZQo+ICsJCSAqIGZvciBlYWNoIGNoYW5uZWwg cmVsYXkgYXBwZW5kcyB0aGUgY29ycmVzcG9uZGluZyBDUFUgbnVtYmVyCj4gKwkJICogdG8gdGhl IGZpbGVuYW1lIHBhc3NlZCBpbiByZWxheV9vcGVuKCkuIFRoaXMgc2hvdWxkIGJlIGZpbmUKPiAr CQkgKiBhcyByZWxheSBqdXN0IG5lZWRzIGEgZGVudHJ5IG9mIHRoZSBmaWxlIGFzc29jaWF0ZWQg d2l0aCB0aGUKPiArCQkgKiBjaGFubmVsIGJ1ZmZlciBhbmQgdGhhdCBmaWxlJ3MgbmFtZSBuZWVk IG5vdCBiZSBzYW1lIGFzIHRoZQo+ICsJCSAqIGZpbGVuYW1lIHBhc3NlZCBhcyBhbiBhcmd1bWVu dC4KPiArCQkgKi8KPiArCQlidWZfZmlsZSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoImd1Y19sb2ci LCBtb2RlLAo+ICsJCQkJcGFyZW50LCBidWYsICZyZWxheV9maWxlX29wZXJhdGlvbnMpOwoKQWxp Z25tZW50IGlzIHdyb25nLgoKPiArCX0KPiArCj4gKwkvKiBUaGlzIHRvIGVuYWJsZSB0aGUgdXNl IG9mIGEgc2luZ2xlIGJ1ZmZlciBmb3IgdGhlIHJlbGF5IGNoYW5uZWwgYW5kCj4gKwkgKiBjb3Jy ZXNwb25kaW5nbHkgaGF2ZSBhIHNpbmdsZSBmaWxlIGV4cG9zZWQgdG8gVXNlciwgdGhyb3VnaCB3 aGljaAo+ICsJICogaXQgY2FuIGNvbGxlY3QgdGhlIGxvZ3MgaW5vcmRlciB3aXRob3V0IGFueSBw b3N0LXByb2Nlc3NpbmcuCgoiaW4gb3JkZXIiCgo+ICsJICovCj4gKwkqaXNfZ2xvYmFsID0gMTsK PiArCj4gKwlyZXR1cm4gYnVmX2ZpbGU7Cj4gK30KPiArCj4gKy8qCj4gKyAqIGZpbGVfcmVtb3Zl KCkgZGVmYXVsdCBjYWxsYmFjay4gUmVtb3ZlcyByZWxheSBmaWxlIGluIGRlYnVnZnMuCj4gKyAq Lwo+ICtzdGF0aWMgaW50IHJlbW92ZV9idWZfZmlsZV9jYWxsYmFjayhzdHJ1Y3QgZGVudHJ5ICpk ZW50cnkpCj4gK3sKPiArCWRlYnVnZnNfcmVtb3ZlKGRlbnRyeSk7Cj4gKwlyZXR1cm4gMDsKPiAr fQo+ICsKPiArLyogcmVsYXkgY2hhbm5lbCBjYWxsYmFja3MgKi8KPiArc3RhdGljIHN0cnVjdCBy Y2hhbl9jYWxsYmFja3MgcmVsYXlfY2FsbGJhY2tzID0gewo+ICsJLnN1YmJ1Zl9zdGFydCA9IHN1 YmJ1Zl9zdGFydF9jYWxsYmFjaywKPiArCS5jcmVhdGVfYnVmX2ZpbGUgPSBjcmVhdGVfYnVmX2Zp bGVfY2FsbGJhY2ssCj4gKwkucmVtb3ZlX2J1Zl9maWxlID0gcmVtb3ZlX2J1Zl9maWxlX2NhbGxi YWNrLAo+ICt9Owo+ICsKPiArc3RhdGljIHZvaWQgZ3VjX3JlbW92ZV9sb2dfcmVsYXlfZmlsZShz dHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gK3sKPiArCXJlbGF5X2Nsb3NlKGd1Yy0+bG9nLnJlbGF5 X2NoYW4pOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGd1Y19jcmVhdGVfbG9nX3JlbGF5X2ZpbGUo c3RydWN0IGludGVsX2d1YyAqZ3VjKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOwo+ICsJc3RydWN0IHJjaGFuICpndWNfbG9nX3Jl bGF5X2NoYW47Cj4gKwlzdHJ1Y3QgZGVudHJ5ICpsb2dfZGlyOwo+ICsJc2l6ZV90IG5fc3ViYnVm cywgc3ViYnVmX3NpemU7Cj4gKwo+ICsJLyogRm9yIG5vdyBjcmVhdGUgdGhlIGxvZyBmaWxlIGlu IC9zeXMva2VybmVsL2RlYnVnL2RyaS8wIGRpciAqLwoKV2hlcmUgaXQgc2hvdWxkIGJlIG9yIHdp bGwgYmUgbGF0ZXI/Cgo+ICsJbG9nX2RpciA9IGRldl9wcml2LT5kcm0ucHJpbWFyeS0+ZGVidWdm c19yb290Owo+ICsKPiArCS8qIElmIC9zeXMva2VybmVsL2RlYnVnL2RyaS8wIGxvY2F0aW9uIGRv IG5vdCBleGlzdCwgdGhlbiBkZWJ1Z2ZzIGlzCj4gKwkgKiBub3QgbW91bnRlZCBhbmQgc28gY2Fu J3QgY3JlYXRlIHRoZSByZWxheSBmaWxlLgo+ICsJICogVGhlIHJlbGF5IEFQSSBzZWVtcyB0byBm aXQgd2VsbCB3aXRoIGRlYnVnZnMgb25seS4KPiArCSAqLwo+ICsJaWYgKCFsb2dfZGlyKSB7Cj4g KwkJRFJNX0RFQlVHX0RSSVZFUigiUGFyZW50IGRlYnVnZnMgZGlyZWN0b3J5IG5vdCBhdmFpbGFi bGUgeWV0XG4iKTsKPiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCX0KPiArCj4gKwkvKiBLZWVwIHRo ZSBzaXplIG9mIHN1YiBidWZmZXJzIHNhbWUgYXMgc2hhcmVkIGxvZyBidWZmZXIgKi8KPiArCXN1 YmJ1Zl9zaXplID0gZ3VjLT5sb2cub2JqLT5iYXNlLnNpemU7CgpJbnNlcnQgYmxhbmsgbGluZSBm b3IgcmVhZGFiaWxpdHkgcHJvYmFibHkuCgo+ICsJLyogU3RvcmUgdXAgdG8gOCBzbmFwaG9zdHMs IHdoaWNoIGlzIGxhcmdlIGVub3VnaCB0byBidWZmZXIgc3VmZmljaWVudAoKc25hcHNob3RzCgo+ ICsJICogYm9vdCB0aW1lIGxvZ3MgYW5kIHByb3ZpZGVzIGVub3VnaCBsZWV3YXkgdG8gVXNlciwg aW4gdGVybXMgb2YKPiArCSAqIGxhdGVuY3ksIGZvciBjb25zdW1pbmcgdGhlIGxvZ3MgZnJvbSBy ZWxheS4gQWxzbyBkb2Vzbid0IHRha2UKPiArCSAqIHVwIHRvbyBtdWNoIG1lbW9yeS4KPiArICAg ICAgICAgKi8KCkluZGVudGF0aW9uIGlzIG9mZi4KCj4gKwluX3N1YmJ1ZnMgPSA4Owo+ICsKPiAr CWd1Y19sb2dfcmVsYXlfY2hhbiA9IHJlbGF5X29wZW4oImd1Y19sb2ciLCBsb2dfZGlyLAo+ICsJ CQlzdWJidWZfc2l6ZSwgbl9zdWJidWZzLCAmcmVsYXlfY2FsbGJhY2tzLCBkZXZfcHJpdik7CgpB bGlnbm1lbnQgaXMgd3JvbmcuCgo+ICsKPiArCWlmICghZ3VjX2xvZ19yZWxheV9jaGFuKSB7Cj4g KwkJRFJNX0RFQlVHX0RSSVZFUigiQ291bGRuJ3QgY3JlYXRlIHJlbGF5IGNoYW4gZm9yIGd1YyBs b2dzXG4iKTsKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCX0KPiArCj4gKwkvKiBGSVhNRTogQ292 ZXIgdGhlIHVwZGF0ZSB1bmRlciBhIGxvY2sgPyAqLwoKQW5vdGhlciBGSVhNRSB0byBiZSByZXNv bHZlZC4KCj4gKwlndWMtPmxvZy5yZWxheV9jaGFuID0gZ3VjX2xvZ19yZWxheV9jaGFuOwo+ICsJ cmV0dXJuIDA7Cj4gICB9Cj4KPiAgIHN0YXRpYyB2b2lkIGd1Y19sb2dfY2xlYW51cChzdHJ1Y3Qg aW50ZWxfZ3VjICpndWMpCj4gQEAgLTkzNyw2ICsxMDg0LDExIEBAIHN0YXRpYyB2b2lkIGd1Y19s b2dfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gICAJLyogRmlyc3QgZGlzYWJsZSB0 aGUgZmx1c2ggaW50ZXJydXB0ICovCj4gICAJZ2VuOV9kaXNhYmxlX2d1Y19pbnRlcnJ1cHRzKGRl dl9wcml2KTsKPgo+ICsJaWYgKGd1Yy0+bG9nLnJlbGF5X2NoYW4pCj4gKwkJZ3VjX3JlbW92ZV9s b2dfcmVsYXlfZmlsZShndWMpOwo+ICsKPiArCWd1Yy0+bG9nLnJlbGF5X2NoYW4gPSBOVUxMOwo+ ICsKPiAgIAlpZiAoZ3VjLT5sb2cuYnVmX2FkZHIpCj4gICAJCWk5MTVfZ2VtX29iamVjdF91bnBp bl9tYXAoZ3VjLT5sb2cub2JqKTsKPgo+IEBAIC0xMDE1LDYgKzExNjcsMzUgQEAgc3RhdGljIHZv aWQgZ3VjX2NyZWF0ZV9sb2coc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+ICAgCWd1Yy0+bG9nLmZs YWdzID0gKG9mZnNldCA8PCBHVUNfTE9HX0JVRl9BRERSX1NISUZUKSB8IGZsYWdzOwo+ICAgfQo+ Cj4gK3N0YXRpYyBpbnQgZ3VjX2xvZ19sYXRlX3NldHVwKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykK CnN0YXRpYyB2b2lkIGlmIGZhaWx1cmUgY2Fubm90IGJlIGhhbmRsZWQgb3Igb3RoZXJ3aXNlIGFj dCBvbiB0aGUgcmV0dXJuIAp2YWx1ZT8KCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWxvY2tk ZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiArCj4gKwlpZiAo aTkxNS5ndWNfbG9nX2xldmVsIDwgMCkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwkvKiBJ ZiBsb2dfbGV2ZWwgd2FzIHNldCBhcyAtMSBhdCBib290IHRpbWUsIHRoZW4gdm1hbGxvYyBtYXBw aW5nIHdvdWxkCj4gKwkgKiBub3QgaGF2ZSBiZWVuIGNyZWF0ZWQgZm9yIHRoZSBsb2cgYnVmZmVy LCBzbyBjcmVhdGUgb25lIG5vdy4KPiArCSAqLwo+ICsJcmV0ID0gZ3VjX2NyZWF0ZV9sb2dfZXh0 cmFzKGd1Yyk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXJyOwo+ICsKPiArCXJldCA9IGd1Y19j cmVhdGVfbG9nX3JlbGF5X2ZpbGUoZ3VjKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBlcnI7Cj4g Kwo+ICsJcmV0dXJuIDA7Cj4gK2VycjoKPiArCWd1Y19sb2dfY2xlYW51cChndWMpOwo+ICsJLyog bG9nZ2luZyB3aWxsIHJlbWFpbiBvZmYgKi8KPiArCWk5MTUuZ3VjX2xvZ19sZXZlbCA9IC0xOwo+ ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkIGluaXRfZ3VjX3BvbGljaWVz KHN0cnVjdCBndWNfcG9saWNpZXMgKnBvbGljaWVzKQo+ICAgewo+ICAgCXN0cnVjdCBndWNfcG9s aWN5ICpwb2xpY3k7Cj4gQEAgLTExODUsNyArMTM2Niw2IEBAIHZvaWQgaTkxNV9ndWNfc3VibWlz c2lvbl9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlnZW1fcmVs ZWFzZV9ndWNfb2JqKGRldl9wcml2LT5ndWMuYWRzX29iaik7Cj4gICAJZ3VjLT5hZHNfb2JqID0g TlVMTDsKPgo+IC0JZ3VjX2xvZ19jbGVhbnVwKGd1Yyk7Cj4gICAJZ2VtX3JlbGVhc2VfZ3VjX29i aihkZXZfcHJpdi0+Z3VjLmxvZy5vYmopOwo+ICAgCWd1Yy0+bG9nLm9iaiA9IE5VTEw7Cj4KPiBA QCAtMTI2MSwzICsxNDQxLDIzIEBAIHZvaWQgaTkxNV9ndWNfY2FwdHVyZV9sb2dzKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlob3N0Mmd1Y19sb2didWZmZXJfZmx1c2hf Y29tcGxldGUoJmRldl9wcml2LT5ndWMpOwo+ICAgCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9w cml2KTsKPiAgIH0KPiArCj4gK3ZvaWQgaTkxNV9ndWNfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCWlmICghaTkxNS5lbmFibGVfZ3VjX3N1Ym1p c3Npb24pCj4gKwkJcmV0dXJuOwo+ICsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3Ry dWN0X211dGV4KTsKPiArCWd1Y19sb2dfY2xlYW51cCgmZGV2X3ByaXYtPmd1Yyk7Cj4gKwltdXRl eF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiArfQo+ICsKPiArdm9pZCBp OTE1X2d1Y19yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sK PiArCWlmICghaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pCj4gKwkJcmV0dXJuOwo+ICsKPiAr CW11dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiArCWd1Y19sb2dfbGF0 ZV9zZXR1cCgmZGV2X3ByaXYtPmd1Yyk7Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0u c3RydWN0X211dGV4KTsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gaW5kZXggN2Mw YmRiYS4uOTZlZjdkYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gQEAgLTEyNiw2 ICsxMjYsNyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyB7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iajsKPiAgIAlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3E7Cj4gICAJdm9p ZCAqYnVmX2FkZHI7Cj4gKwlzdHJ1Y3QgcmNoYW4gKnJlbGF5X2NoYW47Cj4gICB9Owo+Cj4gICBz dHJ1Y3QgaW50ZWxfZ3VjIHsKPiBAQCAtMTcyLDUgKzE3Myw3IEBAIGludCBpOTE1X2d1Y193cV9j aGVja19zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKTsKPiAgIHZvaWQgaTkx NV9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7Cj4gICB2b2lkIGk5MTVfZ3VjX3N1Ym1pc3Npb25fZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOwo+ICAgdm9pZCBpOTE1X2d1Y19jYXB0dXJlX2xvZ3Moc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiArdm9pZCBpOTE1X2d1Y19yZWdpc3RlcihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICt2b2lkIGk5MTVfZ3VjX3VucmVnaXN0 ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPgo+ICAgI2VuZGlmCj4KClJl Z2FyZHMsCgpUdnJ0a28KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=