From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 07/17] drm/i915: Add a relay backed debugfs interface for capturing GuC logs Date: Tue, 19 Jul 2016 12:31:37 +0100 Message-ID: <578E0F99.3060309@linux.intel.com> References: <1468158084-22028-1-git-send-email-akash.goel@intel.com> <1468158084-22028-8-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 3B7A86E676 for ; Tue, 19 Jul 2016 11:31:39 +0000 (UTC) In-Reply-To: <1468158084-22028-8-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 Ck9uIDEwLzA3LzE2IDE0OjQxLCBha2FzaC5nb2VsQGludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBB a2FzaCBHb2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4KPgo+IEFkZGVkIGEgbmV3IGRlYnVnZnMg aW50ZXJmYWNlICcvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvZ3VjX2xvZycgZm9yIHRoZQo+IFVzZXIg dG8gY2FwdHVyZSBHdUMgZmlybXdhcmUgbG9ncy4gQXZhaWxlZCByZWxheSBmcmFtZXdvcmsgdG8g aW1wbGVtZW50Cj4gdGhlIGludGVyZmFjZSwgd2hlcmUgRHJpdmVyIHdpbGwgaGF2ZSB0byBqdXN0 IHVzZSBhIHJlbGF5IEFQSSB0byBzdG9yZQo+IHNuYXBzaG90cyBvZiB0aGUgR3VDIGxvZyBidWZm ZXIgaW4gdGhlIGJ1ZmZlciBtYW5hZ2VkIGJ5IHJlbGF5Lgo+IFRoZSBzbmFwc2hvdCB3aWxsIGJl IHRha2VuIHdoZW4gR3VDIGZpcm13YXJlIHNlbmRzIGEgbG9nIGJ1ZmZlciBmbHVzaAo+IGludGVy cnVwdCBhbmQgdXAgdG8gZm91ciBzbmFwaG90cyBjb3VsZCBiZSBzdG9yZWQgaW4gdGhlIHJlbGF5 IGJ1ZmZlci4KPiBUaGUgcmVsYXkgYnVmZmVyIHdpbGwgYmUgb3BlcmF0ZWQgaW4gYSBtb2RlIHdo ZXJlIGl0IHdpbGwgb3ZlcndyaXRlIHRoZQo+IGRhdGEgbm90IHlldCBjb2xsZWN0ZWQgYnkgVXNl ci4KPiBCZXNpZGVzIG1tYXAgbWV0aG9kLCB0aHJvdWdoIHdoaWNoIFVzZXIgY2FuIGRpcmVjdGx5 IGFjY2VzcyB0aGUgcmVsYXkKPiBidWZmZXIgY29udGVudHMsIHJlbGF5IGFsc28gc3VwcG9ydHMg dGhlICdwb2xsJyBtZXRob2QuIFRocm91Z2ggdGhlICdwb2xsJwo+IGNhbGwgb24gbG9nIGZpbGUs IFVzZXIgY2FuIGNvbWUgdG8ga25vdyB3aGVuZXZlciBhIG5ldyBzbmFwc2hvdCBvZiB0aGUKPiBs b2cgYnVmZmVyIGlzIHRha2VuIGJ5IERyaXZlciwgc28gY2FuIHJ1biBpbiB0YW5kZW0gd2l0aCB0 aGUgRHJpdmVyIGFuZAo+IGNhcHR1cmUgdGhlIGxvZ3MgaW4gYSBzdXN0YWluZWQvc3RyZWFtaW5n IG1hbm5lciwgd2l0aG91dCBhbnkgbG9zcyBvZiBkYXRhLgo+Cj4gdjI6IERlZmVyIHRoZSBjcmVh dGlvbiBvZiByZWxheSBjaGFubmVsICYgYXNzb2NpYXRlZCBkZWJ1Z2ZzIGZpbGUsIGFzCj4gICAg ICBkZWJ1Z2ZzIHNldHVwIGlzIG5vdyBkb25lIGF0IHRoZSBlbmQgb2YgaTkxNSBEcml2ZXIgbG9h ZC4gKENocmlzKQo+Cj4gdjM6Cj4gLSBTd2l0Y2ggdG8gbm8tb3ZlcndyaXRlIG1vZGUgZm9yIHJl bGF5Lgo+IC0gRml4IHRoZSByZWxheSBzdWIgYnVmZmVyIHN3aXRjaGluZyBzZXF1ZW5jZS4KPgo+ IFN1Z2dlc3RlZC1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4g U2lnbmVkLW9mZi1ieTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgo+IFNp Z25lZC1vZmYtYnk6IEFrYXNoIEdvZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPgo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICAgIHwgICAyICsKPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8IDE5NyArKysrKysrKysr KysrKysrKysrKysrKysrKysrLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgg ICAgICAgICAgIHwgICAzICsKPiAgIDMgZmlsZXMgY2hhbmdlZCwgMTk5IGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBpbmRleCAyNWM2Yjli Li40M2M5OTAwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAgLTExNzcsNiArMTE3 Nyw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiAgIAkvKiBSZXZlYWwgb3VyIHByZXNlbmNlIHRvIHVzZXJzcGFj ZSAqLwo+ICAgCWlmIChkcm1fZGV2X3JlZ2lzdGVyKGRldiwgMCkgPT0gMCkgewo+ICAgCQlpOTE1 X2RlYnVnZnNfcmVnaXN0ZXIoZGV2X3ByaXYpOwo+ICsJCWk5MTVfZ3VjX3JlZ2lzdGVyKGRldik7 Cj4gICAJCWk5MTVfc2V0dXBfc3lzZnMoZGV2KTsKPiAgIAl9IGVsc2UKPiAgIAkJRFJNX0VSUk9S KCJGYWlsZWQgdG8gcmVnaXN0ZXIgZHJpdmVyIGZvciB1c2Vyc3BhY2UgYWNjZXNzIVxuIik7Cj4g QEAgLTEyMTUsNiArMTIxNiw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX3VucmVnaXN0ZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCWludGVsX29wcmVnaW9uX3Vu cmVnaXN0ZXIoZGV2X3ByaXYpOwo+Cj4gICAJaTkxNV90ZWFyZG93bl9zeXNmcygmZGV2X3ByaXYt PmRybSk7Cj4gKwlpOTE1X2d1Y191bnJlZ2lzdGVyKCZkZXZfcHJpdi0+ZHJtKTsKPiAgIAlpOTE1 X2RlYnVnZnNfdW5yZWdpc3RlcihkZXZfcHJpdik7Cj4gICAJZHJtX2Rldl91bnJlZ2lzdGVyKCZk ZXZfcHJpdi0+ZHJtKTsKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNz aW9uLmMKPiBpbmRleCBkM2RiYjhlLi45YjQzNmZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IEBAIC0yMyw2ICsyMyw4IEBACj4gICAgKi8KPiAg ICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4L2NpcmNfYnVm Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9yZWxh eS5oPgo+ICAgI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4gICAjaW5jbHVkZSAiaW50ZWxfZ3VjLmgi Cj4KPiBAQCAtODM2LDEyICs4MzgsMzMgQEAgZXJyOgo+Cj4gICBzdGF0aWMgdm9pZCBndWNfbW92 ZV90b19uZXh0X2J1ZihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gICB7Cj4gLQlyZXR1cm47Cj4g KwkvKiBNYWtlIHN1cmUgb3VyIHVwZGF0ZXMgYXJlIGluIHRoZSBzdWIgYnVmZmVyIGFyZSB2aXNp YmxlIHdoZW4KPiArCSAqIENvbnN1bWVyIHNlZXMgYSBuZXdseSBwcm9kdWNlZCBzdWIgYnVmZmVy Lgo+ICsJICovCj4gKwlzbXBfd21iKCk7Cj4gKwo+ICsJLyogQWxsIGRhdGEgaGFzIGJlZW4gd3Jp dHRlbiwgc28gbm93IG1vdmUgdGhlIG9mZnNldCBvZiBzdWIgYnVmZmVyLiAqLwo+ICsJcmVsYXlf cmVzZXJ2ZShndWMtPmxvZy5yZWxheV9jaGFuLCBndWMtPmxvZy5vYmotPmJhc2Uuc2l6ZSk7Cj4g Kwo+ICsJLyogU3dpdGNoIHRvIHRoZSBuZXh0IHN1YiBidWZmZXIgKi8KPiArCXJlbGF5X2ZsdXNo KGd1Yy0+bG9nLnJlbGF5X2NoYW4pOwo+ICAgfQo+Cj4gICBzdGF0aWMgdm9pZCogZ3VjX2dldF93 cml0ZV9idWZmZXIoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+ICAgewo+IC0JcmV0dXJuIE5VTEw7 Cj4gKwkvKiBGSVhNRTogQ292ZXIgdGhlIGNoZWNrIHVuZGVyIGEgbG9jayA/ICovCj4gKwlpZiAo IWd1Yy0+bG9nLnJlbGF5X2NoYW4pCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJLyogSnVzdCBn ZXQgdGhlIGJhc2UgYWRkcmVzcyBvZiBhIG5ldyBzdWIgYnVmZmVyIGFuZCBjb3B5IGRhdGEgaW50 byBpdAo+ICsJICogb3Vyc2VsdmVzLiBOVUxMIHdpbGwgYmUgcmV0dXJuZWQgaW4gbm8tb3Zlcndy aXRlIG1vZGUsIGlmIGFsbCBzdWIKPiArCSAqIGJ1ZmZlcnMgYXJlIGZ1bGwuIENvdWxkIGhhdmUg dXNlZCB0aGUgcmVsYXlfd3JpdGUoKSB0byBpbmRpcmVjdGx5Cj4gKwkgKiBjb3B5IHRoZSBkYXRh LCBidXQgdGhhdCB3b3VsZCBoYXZlIGJlZW4gYml0IGNvbnZvbHV0ZWQsIGFzIHdlIG5lZWQgdG8K PiArCSAqIHdyaXRlIHRvIG9ubHkgY2VydGFpbiBsb2NhdGlvbnMgaW5zaWRlIGEgc3ViIGJ1ZmZl ciB3aGljaCBjYW5ub3QgYmUKPiArCSAqIGRvbmUgd2l0aG91dCB1c2luZyByZWxheV9yZXNlcnZl KCkgYWxvbmcgd2l0aCByZWxheV93cml0ZSgpLiBTbyBpdHMKPiArCSAqIGJldHRlciB0byB1c2Ug cmVsYXlfcmVzZXJ2ZSgpIGFsb25lLgo+ICsJICovCj4gKwlyZXR1cm4gcmVsYXlfcmVzZXJ2ZShn dWMtPmxvZy5yZWxheV9jaGFuLCAwKTsKPiAgIH0KPgo+ICAgc3RhdGljIHZvaWQgZ3VjX3JlYWRf dXBkYXRlX2xvZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiBAQCAtOTA2LDYgKzky OSwxMTkgQEAgc3RhdGljIHZvaWQgZ3VjX3JlYWRfdXBkYXRlX2xvZ19idWZmZXIoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgIAkJZ3VjX21vdmVfdG9fbmV4dF9idWYoZ3VjKTsKPiAgIH0KPgo+ ICsvKgo+ICsgKiBTdWIgYnVmZmVyIHN3aXRjaCBjYWxsYmFjay4gQ2FsbGVkIHdoZW5ldmVyIHJl bGF5IGhhcyB0byBzd2l0Y2ggdG8gYSBuZXcKPiArICogc3ViIGJ1ZmZlciwgcmVsYXkgc3RheXMg b24gdGhlIHNhbWUgc3ViIGJ1ZmZlciBpZiAwIGlzIHJldHVybmVkLgo+ICsgKi8KPiArc3RhdGlj IGludCBzdWJidWZfc3RhcnRfY2FsbGJhY2soc3RydWN0IHJjaGFuX2J1ZiAqYnVmLAo+ICsJCQkJ IHZvaWQgKnN1YmJ1ZiwKPiArCQkJCSB2b2lkICpwcmV2X3N1YmJ1ZiwKPiArCQkJCSBzaXplX3Qg cHJldl9wYWRkaW5nKQo+ICt7Cj4gKwkvKiBVc2Ugbm8tb3ZlcndyaXRlIG1vZGUgYnkgZGVmYXVs dCwgd2hlcmUgcmVsYXkgd2lsbCBzdG9wIGFjY2VwdGluZwo+ICsJICogbmV3IGRhdGEgaWYgdGhl cmUgYXJlIG5vIGVtcHR5IHN1YiBidWZmZXJzIGxlZnQuCj4gKwkgKiBUaGVyZSBpcyBubyBzdHJp Y3Qgc3luY2hyb25pemF0aW9uIGVuZm9yY2VkIGJ5IHJlbGF5IGJldHdlZW4gQ29uc3VtZXIKPiAr CSAqIGFuZCBQcm9kdWNlci4gSW4gb3ZlcndyaXRlIG1vZGUsIHRoZXJlIGlzIGEgcG9zc2liaWxp dHkgb2YgZ2V0dGluZwo+ICsJICogaW5jb25zaXN0ZW50L2dhcmJsZWQgZGF0YSwgdGhlIHByb2R1 Y2VyIGNvdWxkIGJlIHdyaXRpbmcgb24gdG8gdGhlCj4gKwkgKiBzYW1lIHN1YiBidWZmZXIgZnJv bSB3aGljaCBDb25zdW1lciBpcyByZWFkaW5nLiBUaGlzIGNhbid0IGJlIGF2b2lkZWQKPiArCSAq IHVubGVzcyBDb25zdW1lciBpcyBmYXN0IGVub3VnaCBhbmQgY2FuIGFsd2F5cyBydW4gaW4gdGFu ZGVtIHdpdGgKPiArCSAqIFByb2R1Y2VyLgo+ICsJICovCj4gKwlpZiAocmVsYXlfYnVmX2Z1bGwo YnVmKSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlyZXR1cm4gMTsKPiArfQo+ICsKPiArLyoKPiAr ICogZmlsZV9jcmVhdGUoKSBjYWxsYmFjay4gQ3JlYXRlcyByZWxheSBmaWxlIGluIGRlYnVnZnMu Cj4gKyAqLwo+ICtzdGF0aWMgc3RydWN0IGRlbnRyeSAqY3JlYXRlX2J1Zl9maWxlX2NhbGxiYWNr KGNvbnN0IGNoYXIgKmZpbGVuYW1lLAo+ICsJCQkJCSAgICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJl bnQsCj4gKwkJCQkJICAgICAgIHVtb2RlX3QgbW9kZSwKPiArCQkJCQkgICAgICAgc3RydWN0IHJj aGFuX2J1ZiAqYnVmLAo+ICsJCQkJCSAgICAgICBpbnQgKmlzX2dsb2JhbCkKPiArewo+ICsJLyoK PiArCSAqIE5vdCB1c2luZyB0aGUgY2hhbm5lbCBmaWxlbmFtZSBwYXNzZWQgYXMgYW4gYXJndW1l bnQsIHNpbmNlIGZvciBlYWNoCj4gKwkgKiBjaGFubmVsIHJlbGF5IGFwcGVuZHMgdGhlIGNvcnJl c3BvbmRpbmcgQ1BVIG51bWJlciB0byB0aGUgZmlsZW5hbWUKPiArCSAqIHBhc3NlZCBpbiByZWxh eV9vcGVuKCkuIFRoaXMgc2hvdWxkIGJlIGZpbmUgYXMgcmVsYXkganVzdCBuZWVkcyBhCj4gKwkg KiBkZW50cnkgb2YgdGhlIGZpbGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjaGFubmVsIGJ1ZmZlciBh bmQgdGhhdCBmaWxlJ3MKPiArCSAqIG5hbWUgbmVlZCBub3QgYmUgc2FtZSBhcyB0aGUgZmlsZW5h bWUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50Lgo+ICsJICovCj4gKwlzdHJ1Y3QgZGVudHJ5ICpidWZf ZmlsZSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoImd1Y19sb2ciLCBtb2RlLAo+ICsJCQlwYXJlbnQs IGJ1ZiwgJnJlbGF5X2ZpbGVfb3BlcmF0aW9ucyk7Cj4gKwo+ICsJLyogVGhpcyB0byBlbmFibGUg dGhlIHVzZSBvZiBhIHNpbmdsZSBidWZmZXIgZm9yIHRoZSByZWxheSBjaGFubmVsIGFuZAo+ICsJ ICogY29ycmVzcG9uZGluZ2x5IGhhdmUgYSBzaW5nbGUgZmlsZSBleHBvc2VkIHRvIFVzZXIsIHRo cm91Z2ggd2hpY2gKPiArCSAqIGl0IGNhbiBjb2xsZWN0IHRoZSBsb2dzIGlub3JkZXIgd2l0aG91 dCBhbnkgcG9zdC1wcm9jZXNzaW5nLgo+ICsJICovCj4gKwkqaXNfZ2xvYmFsID0gMTsKPiArCj4g KwlyZXR1cm4gYnVmX2ZpbGU7Cj4gK30KPiArCj4gKy8qCj4gKyAqIGZpbGVfcmVtb3ZlKCkgZGVm YXVsdCBjYWxsYmFjay4gUmVtb3ZlcyByZWxheSBmaWxlIGluIGRlYnVnZnMuCj4gKyAqLwo+ICtz dGF0aWMgaW50IHJlbW92ZV9idWZfZmlsZV9jYWxsYmFjayhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp Cj4gK3sKPiArCWRlYnVnZnNfcmVtb3ZlKGRlbnRyeSk7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsK PiArLyogcmVsYXkgY2hhbm5lbCBjYWxsYmFja3MgKi8KPiArc3RhdGljIHN0cnVjdCByY2hhbl9j YWxsYmFja3MgcmVsYXlfY2FsbGJhY2tzID0gewo+ICsJLnN1YmJ1Zl9zdGFydCA9IHN1YmJ1Zl9z dGFydF9jYWxsYmFjaywKPiArCS5jcmVhdGVfYnVmX2ZpbGUgPSBjcmVhdGVfYnVmX2ZpbGVfY2Fs bGJhY2ssCj4gKwkucmVtb3ZlX2J1Zl9maWxlID0gcmVtb3ZlX2J1Zl9maWxlX2NhbGxiYWNrLAo+ ICt9Owo+ICsKPiArc3RhdGljIHZvaWQgZ3VjX3JlbW92ZV9sb2dfcmVsYXlfZmlsZShzdHJ1Y3Qg aW50ZWxfZ3VjICpndWMpCj4gK3sKPiArCWlmIChndWMtPmxvZy5yZWxheV9jaGFuKQo+ICsJCXJl bGF5X2Nsb3NlKGd1Yy0+bG9nLnJlbGF5X2NoYW4pOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGd1 Y19jcmVhdGVfbG9nX3JlbGF5X2ZpbGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+ICt7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOwo+ICsJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+ICsJc3RydWN0IGRlbnRy eSAqbG9nX2RpcjsKPiArCXN0cnVjdCByY2hhbiAqZ3VjX2xvZ19yZWxheV9jaGFuOwo+ICsJc2l6 ZV90IG5fc3ViYnVmcywgc3ViYnVmX3NpemU7Cj4gKwo+ICsJaWYgKGd1Yy0+bG9nLnJlbGF5X2No YW4pCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJLyogSWYgL3N5cy9rZXJuZWwvZGVidWcvZHJpLzAg bG9jYXRpb24gZG8gbm90IGV4aXN0LCB0aGVuIGRlYnVnZnMgaXMKPiArCSAqIG5vdCBtb3VudGVk IGFuZCBzbyBjYW4ndCBjcmVhdGUgdGhlIHJlbGF5IGZpbGUuCj4gKwkgKiBUaGUgcmVsYXkgQVBJ IHNlZW1zIHRvIGZpdCB3ZWxsIHdpdGggZGVidWdmcyBvbmx5Lgo+ICsJICovCj4gKwlpZiAoIWRl di0+cHJpbWFyeS0+ZGVidWdmc19yb290KQo+ICsJCXJldHVybiAtRU5PREVWOwo+ICsKPiArCS8q IEZvciBub3cgY3JlYXRlIHRoZSBsb2cgZmlsZSBpbiAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvMCBk aXIgKi8KPiArCWxvZ19kaXIgPSBkZXYtPnByaW1hcnktPmRlYnVnZnNfcm9vdDsKPiArCj4gKwkv KiBLZWVwIHRoZSBzaXplIG9mIHN1YiBidWZmZXJzIHNhbWUgYXMgc2hhcmVkIGxvZyBidWZmZXIg Ki8KPiArCXN1YmJ1Zl9zaXplID0gZ3VjLT5sb2cub2JqLT5iYXNlLnNpemU7Cj4gKwkvKiBUT0RP OiBEZWNpZGUgYmFzZWQgb24gdGhlIFVzZXIncyBpbnB1dCAqLwo+ICsJbl9zdWJidWZzID0gNDsK PiArCj4gKwlndWNfbG9nX3JlbGF5X2NoYW4gPSByZWxheV9vcGVuKCJndWNfbG9nIiwgbG9nX2Rp ciwKPiArCQkJc3ViYnVmX3NpemUsIG5fc3ViYnVmcywgJnJlbGF5X2NhbGxiYWNrcywgZGV2KTsK PiArCj4gKwlpZiAoIWd1Y19sb2dfcmVsYXlfY2hhbikgewo+ICsJCURSTV9ERUJVR19EUklWRVIo IkNvdWxkbid0IGNyZWF0ZSByZWxheSBjaGFuIGZvciBndWMgbG9nc1xuIik7Cj4gKwkJcmV0dXJu IC1FTk9NRU07Cj4gKwl9Cj4gKwo+ICsJLyogRklYTUU6IENvdmVyIHRoZSB1cGRhdGUgdW5kZXIg YSBsb2NrID8gKi8KPiArCWd1Yy0+bG9nLnJlbGF5X2NoYW4gPSBndWNfbG9nX3JlbGF5X2NoYW47 Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkIGd1Y19sb2dfY2xlYW51cChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICB7Cj4gICAJc3RydWN0IGludGVs X2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7Cj4gQEAgLTkxOCw2ICsxMDU0LDkgQEAgc3RhdGlj IHZvaWQgZ3VjX2xvZ19jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgIAkvKiBGaXJzdCBkaXNhYmxlIHRoZSBmbHVzaCBpbnRlcnJ1cHQgKi8KPiAgIAlnZW45X2Rp c2FibGVfZ3VjX2ludGVycnVwdHMoZGV2X3ByaXYpOwo+Cj4gKwlndWNfcmVtb3ZlX2xvZ19yZWxh eV9maWxlKGd1Yyk7Cj4gKwlndWMtPmxvZy5yZWxheV9jaGFuID0gTlVMTDsKPiArCj4gICAJaWYg KGd1Yy0+bG9nLmJ1Zl9hZGRyKQo+ICAgCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGd1Yy0+ bG9nLm9iaik7Cj4KPiBAQCAtOTk2LDYgKzExMzUsMzkgQEAgc3RhdGljIHZvaWQgZ3VjX2NyZWF0 ZV9sb2coc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+ICAgCWd1Yy0+bG9nLmZsYWdzID0gKG9mZnNl dCA8PCBHVUNfTE9HX0JVRl9BRERSX1NISUZUKSB8IGZsYWdzOwo+ICAgfQo+Cj4gK3N0YXRpYyBp bnQgZ3VjX2xvZ19sYXRlX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3sKPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlz dHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKPiArCWludCByZXQ7Cj4gKwo+ ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsKPiArCWlmIChp OTE1Lmd1Y19sb2dfbGV2ZWwgPCAwKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWlmIChX QVJOX09OKGd1Yy0+bG9nLnJlbGF5X2NoYW4pKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiAr CS8qIElmIGxvZ19sZXZlbCB3YXMgc2V0IGFzIC0xIGF0IGJvb3QgdGltZSwgdGhlbiB2bWFsbG9j IG1hcHBpbmcgd291bGQKPiArCSAqIG5vdCBoYXZlIGJlZW4gY3JlYXRlZCBmb3IgdGhlIGxvZyBi dWZmZXIsIHNvIGNyZWF0ZSBvbmUgbm93Lgo+ICsJICovCj4gKwlyZXQgPSBndWNfY3JlYXRlX2xv Z19leHRyYXMoZ3VjKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBlcnI7Cj4gKwo+ICsJcmV0ID0g Z3VjX2NyZWF0ZV9sb2dfcmVsYXlfZmlsZShndWMpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGVy cjsKPiArCj4gKwlyZXR1cm4gMDsKPiArZXJyOgo+ICsJZ3VjX2xvZ19jbGVhbnVwKGRldl9wcml2 KTsKPiArCS8qIGxvZ2dpbmcgd2lsbCByZW1haW4gb2ZmICovCj4gKwlpOTE1Lmd1Y19sb2dfbGV2 ZWwgPSAtMTsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gICBzdGF0aWMgdm9pZCBpbml0X2d1 Y19wb2xpY2llcyhzdHJ1Y3QgZ3VjX3BvbGljaWVzICpwb2xpY2llcykKPiAgIHsKPiAgIAlzdHJ1 Y3QgZ3VjX3BvbGljeSAqcG9saWN5Owo+IEBAIC0xMTU0LDcgKzEzMjYsNiBAQCB2b2lkIGk5MTVf Z3VjX3N1Ym1pc3Npb25fZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g ICAJZ2VtX3JlbGVhc2VfZ3VjX29iaihkZXZfcHJpdi0+Z3VjLmFkc19vYmopOwo+ICAgCWd1Yy0+ YWRzX29iaiA9IE5VTEw7Cj4KPiAtCWd1Y19sb2dfY2xlYW51cChkZXZfcHJpdik7Cj4gICAJZ2Vt X3JlbGVhc2VfZ3VjX29iaihkZXZfcHJpdi0+Z3VjLmxvZy5vYmopOwo+ICAgCWd1Yy0+bG9nLm9i aiA9IE5VTEw7Cj4KPiBAQCAtMTIzMiwzICsxNDAzLDIzIEBAIHZvaWQgaTkxNV9ndWNfY2FwdHVy ZV9sb2dzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJaG9zdDJndWNfbG9nYnVmZmVyX2Zs dXNoX2NvbXBsZXRlKCZkZXZfcHJpdi0+Z3VjKTsKPiAgIAlpbnRlbF9ydW50aW1lX3BtX3B1dChk ZXZfcHJpdik7Cj4gICB9Cj4gKwo+ICt2b2lkIGk5MTVfZ3VjX3VucmVnaXN0ZXIoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiArewo+ICsJaWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikK PiArCQlyZXR1cm47Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJ Z3VjX2xvZ19jbGVhbnVwKGRldi0+ZGV2X3ByaXZhdGUpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXYt PnN0cnVjdF9tdXRleCk7Cj4gK30KPiArCj4gK3ZvaWQgaTkxNV9ndWNfcmVnaXN0ZXIoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsJaWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lv bikKPiArCQlyZXR1cm47Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ ICsJZ3VjX2xvZ19sYXRlX3NldHVwKGRldik7Cj4gKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0 X211dGV4KTsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gaW5kZXggZDRmMGZhZS4u YTc4NGNmOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gQEAgLTEyNyw2ICsxMjcs NyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyB7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iajsKPiAgIAlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3E7Cj4gICAJdm9pZCAqYnVm X2FkZHI7Cj4gKwlzdHJ1Y3QgcmNoYW4gKnJlbGF5X2NoYW47Cj4gICB9Owo+Cj4gICBzdHJ1Y3Qg aW50ZWxfZ3VjIHsKPiBAQCAtMTc0LDUgKzE3NSw3IEBAIGludCBpOTE1X2d1Y19zdWJtaXQoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSk7Cj4gICB2b2lkIGk5MTVfZ3VjX3N1Ym1pc3Np b25fZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAgdm9pZCBp OTE1X2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKPiAgIHZvaWQgaTkxNV9ndWNfY2FwdHVyZV9sb2dzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Owo+ICt2b2lkIGk5MTVfZ3VjX3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICt2 b2lkIGk5MTVfZ3VjX3VucmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4KPiAgICNl bmRpZgo+CgpJIGFtIGNsdWVsZXNzIGFib3V0IHJlbGF5ZnMgLSBkbyB3ZSBoYXZlIHNvbWVvbmUg aW4gaG91c2Ugd2hvIGNvdWxkIApwcm92aWRlIGEgYmV0dGVyIHJldmlldyBvZiB0aGF0PwoKSW4g dGhlIG1lYW4gdGltZSwgeW91IGdvdCBUT0RPIGFuZCBGSVhNRSdzIGluIHRoZSBjb2RlIHNvIHRo YXQgbmVlZHMgdG8gCmJlIHJlc29sdmVkIGJlZm9yZSBhIGZ1bGwgcmV2aWV3IGFueXdheS4gOikK ClJlZ2FyZHMsCgpUdnJ0a28KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=