From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 08/19] drm/i915: Add a relay backed debugfs interface for capturing GuC logs Date: Wed, 17 Aug 2016 12:11:47 +0100 Message-ID: <57B44673.1090403@linux.intel.com> References: <1471428859-10339-1-git-send-email-akash.goel@intel.com> <1471428859-10339-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 A834E6E829 for ; Wed, 17 Aug 2016 11:11:49 +0000 (UTC) In-Reply-To: <1471428859-10339-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 Ck9uIDE3LzA4LzE2IDExOjE0LCBha2FzaC5nb2VsQGludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBB 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 Z2ZzIGZpbGUuIChUdnJ0a28pCj4KPiB2NjoKPiAtIE1vdmUgdGhlIHdyaXRlIHRvICdpc19nbG9i YWwnIGFmdGVyIHRoZSBOVUxMIGNoZWNrIG9uIHBhcmVudCBkaXJlY3RvcnkKPiAgICBkZW50cnkg cG9pbnRlci4gKFR2cnRrbykKPgo+IFN1Z2dlc3RlZC1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0Bj aHJpcy13aWxzb24uY28udWs+Cj4gU2lnbmVkLW9mZi1ieTogU291cmFiIEd1cHRhIDxzb3VyYWIu Z3VwdGFAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEFrYXNoIEdvZWwgPGFrYXNoLmdvZWxA aW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZyAgICAgICAg ICAgICAgIHwgICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAg ICAgICB8ICAgMiArCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9u LmMgfCAyMTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2d1Yy5oICAgICAgICAgICB8ICAgMyArCj4gICA0IGZpbGVzIGNoYW5nZWQs IDIxNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnCj4g aW5kZXggNzc2OWU0Ni4uZmM5MDBkMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZwo+IEBAIC0xMSw2 ICsxMSw3IEBAIGNvbmZpZyBEUk1fSTkxNQo+ICAgCXNlbGVjdCBEUk1fS01TX0hFTFBFUgo+ICAg CXNlbGVjdCBEUk1fUEFORUwKPiAgIAlzZWxlY3QgRFJNX01JUElfRFNJCj4gKwlzZWxlY3QgUkVM QVkKPiAgIAkjIGk5MTUgZGVwZW5kcyBvbiBBQ1BJX1ZJREVPIHdoZW4gQUNQSSBpcyBlbmFibGVk Cj4gICAJIyBidXQgZm9yIHNlbGVjdCB0byB3b3JrLCBuZWVkIHRvIHNlbGVjdCBBQ1BJX1ZJREVP J3MgZGVwZW5kZW5jaWVzLCBpY2sKPiAgIAlzZWxlY3QgQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlm IEFDUEkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBpbmRleCAxM2FlMzQwLi5jZGVlNjBiIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAgLTExMzMsNiArMTEzMyw3IEBAIHN0YXRp YyB2b2lkIGk5MTVfZHJpdmVyX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgIAkvKiBSZXZlYWwgb3VyIHByZXNlbmNlIHRvIHVzZXJzcGFjZSAqLwo+ICAgCWlm IChkcm1fZGV2X3JlZ2lzdGVyKGRldiwgMCkgPT0gMCkgewo+ICAgCQlpOTE1X2RlYnVnZnNfcmVn aXN0ZXIoZGV2X3ByaXYpOwo+ICsJCWk5MTVfZ3VjX3JlZ2lzdGVyKGRldl9wcml2KTsKPiAgIAkJ aTkxNV9zZXR1cF9zeXNmcyhkZXYpOwo+ICAgCX0gZWxzZQo+ICAgCQlEUk1fRVJST1IoIkZhaWxl ZCB0byByZWdpc3RlciBkcml2ZXIgZm9yIHVzZXJzcGFjZSBhY2Nlc3MhXG4iKTsKPiBAQCAtMTE3 MSw2ICsxMTcyLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9kcml2ZXJfdW5yZWdpc3RlcihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJaW50ZWxfb3ByZWdpb25fdW5yZWdpc3Rl cihkZXZfcHJpdik7Cj4KPiAgIAlpOTE1X3RlYXJkb3duX3N5c2ZzKCZkZXZfcHJpdi0+ZHJtKTsK PiArCWk5MTVfZ3VjX3VucmVnaXN0ZXIoZGV2X3ByaXYpOwo+ICAgCWk5MTVfZGVidWdmc191bnJl Z2lzdGVyKGRldl9wcml2KTsKPiAgIAlkcm1fZGV2X3VucmVnaXN0ZXIoJmRldl9wcml2LT5kcm0p Owo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Np b24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IGluZGV4 IGFkZTUxY2IuLjE3MTNjZTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ndWNfc3VibWlzc2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNf c3VibWlzc2lvbi5jCj4gQEAgLTIzLDYgKzIzLDggQEAKPiAgICAqLwo+ICAgI2luY2x1ZGUgPGxp bnV4L2Zpcm13YXJlLmg+Cj4gICAjaW5jbHVkZSA8bGludXgvY2lyY19idWYuaD4KPiArI2luY2x1 ZGUgPGxpbnV4L2RlYnVnZnMuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3JlbGF5Lmg+Cj4gICAjaW5j bHVkZSAiaTkxNV9kcnYuaCIKPiAgICNpbmNsdWRlICJpbnRlbF9ndWMuaCIKPgo+IEBAIC04Mzcs MTMgKzgzOSwxNTkgQEAgZXJyOgo+ICAgCXJldHVybiBOVUxMOwo+ICAgfQo+Cj4gKy8qCj4gKyAq IFN1YiBidWZmZXIgc3dpdGNoIGNhbGxiYWNrLiBDYWxsZWQgd2hlbmV2ZXIgcmVsYXkgaGFzIHRv IHN3aXRjaCB0byBhIG5ldwo+ICsgKiBzdWIgYnVmZmVyLCByZWxheSBzdGF5cyBvbiB0aGUgc2Ft ZSBzdWIgYnVmZmVyIGlmIDAgaXMgcmV0dXJuZWQuCj4gKyAqLwo+ICtzdGF0aWMgaW50IHN1YmJ1 Zl9zdGFydF9jYWxsYmFjayhzdHJ1Y3QgcmNoYW5fYnVmICpidWYsCj4gKwkJCQkgdm9pZCAqc3Vi YnVmLAo+ICsJCQkJIHZvaWQgKnByZXZfc3ViYnVmLAo+ICsJCQkJIHNpemVfdCBwcmV2X3BhZGRp bmcpCj4gK3sKPiArCS8qIFVzZSBuby1vdmVyd3JpdGUgbW9kZSBieSBkZWZhdWx0LCB3aGVyZSBy ZWxheSB3aWxsIHN0b3AgYWNjZXB0aW5nCj4gKwkgKiBuZXcgZGF0YSBpZiB0aGVyZSBhcmUgbm8g ZW1wdHkgc3ViIGJ1ZmZlcnMgbGVmdC4KPiArCSAqIFRoZXJlIGlzIG5vIHN0cmljdCBzeW5jaHJv bml6YXRpb24gZW5mb3JjZWQgYnkgcmVsYXkgYmV0d2VlbiBDb25zdW1lcgo+ICsJICogYW5kIFBy b2R1Y2VyLiBJbiBvdmVyd3JpdGUgbW9kZSwgdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSBvZiBnZXR0 aW5nCj4gKwkgKiBpbmNvbnNpc3RlbnQvZ2FyYmxlZCBkYXRhLCB0aGUgcHJvZHVjZXIgY291bGQg YmUgd3JpdGluZyBvbiB0byB0aGUKPiArCSAqIHNhbWUgc3ViIGJ1ZmZlciBmcm9tIHdoaWNoIENv bnN1bWVyIGlzIHJlYWRpbmcuIFRoaXMgY2FuJ3QgYmUgYXZvaWRlZAo+ICsJICogdW5sZXNzIENv bnN1bWVyIGlzIGZhc3QgZW5vdWdoIGFuZCBjYW4gYWx3YXlzIHJ1biBpbiB0YW5kZW0gd2l0aAo+ ICsJICogUHJvZHVjZXIuCj4gKwkgKi8KPiArCWlmIChyZWxheV9idWZfZnVsbChidWYpKQo+ICsJ CXJldHVybiAwOwo+ICsKPiArCXJldHVybiAxOwo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBmaWxlX2Ny ZWF0ZSgpIGNhbGxiYWNrLiBDcmVhdGVzIHJlbGF5IGZpbGUgaW4gZGVidWdmcy4KPiArICovCj4g K3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpjcmVhdGVfYnVmX2ZpbGVfY2FsbGJhY2soY29uc3QgY2hh ciAqZmlsZW5hbWUsCj4gKwkJCQkJICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwKPiArCQkJ CQkgICAgICAgdW1vZGVfdCBtb2RlLAo+ICsJCQkJCSAgICAgICBzdHJ1Y3QgcmNoYW5fYnVmICpi dWYsCj4gKwkJCQkJICAgICAgIGludCAqaXNfZ2xvYmFsKQo+ICt7Cj4gKwlzdHJ1Y3QgZGVudHJ5 ICpidWZfZmlsZTsKPiArCj4gKwlpZiAoIXBhcmVudCkKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4g KwkvKiBUaGlzIHRvIGVuYWJsZSB0aGUgdXNlIG9mIGEgc2luZ2xlIGJ1ZmZlciBmb3IgdGhlIHJl bGF5IGNoYW5uZWwgYW5kCj4gKwkgKiBjb3JyZXNwb25kaW5nbHkgaGF2ZSBhIHNpbmdsZSBmaWxl IGV4cG9zZWQgdG8gVXNlciwgdGhyb3VnaCB3aGljaAo+ICsJICogaXQgY2FuIGNvbGxlY3QgdGhl IGxvZ3MgaW4gb3JkZXIgd2l0aG91dCBhbnkgcG9zdC1wcm9jZXNzaW5nLgo+ICsJICovCj4gKwkq aXNfZ2xvYmFsID0gMTsKPiArCj4gKwkvKiBOb3QgdXNpbmcgdGhlIGNoYW5uZWwgZmlsZW5hbWUg cGFzc2VkIGFzIGFuIGFyZ3VtZW50LCBzaW5jZSBmb3IgZWFjaAo+ICsJICogY2hhbm5lbCByZWxh eSBhcHBlbmRzIHRoZSBjb3JyZXNwb25kaW5nIENQVSBudW1iZXIgdG8gdGhlIGZpbGVuYW1lCj4g KwkgKiBwYXNzZWQgaW4gcmVsYXlfb3BlbigpLiBUaGlzIHNob3VsZCBiZSBmaW5lIGFzIHJlbGF5 IGp1c3QgbmVlZHMgYQo+ICsJICogZGVudHJ5IG9mIHRoZSBmaWxlIGFzc29jaWF0ZWQgd2l0aCB0 aGUgY2hhbm5lbCBidWZmZXIgYW5kIHRoYXQgZmlsZSdzCj4gKwkgKiBuYW1lIG5lZWQgbm90IGJl IHNhbWUgYXMgdGhlIGZpbGVuYW1lIHBhc3NlZCBhcyBhbiBhcmd1bWVudC4KPiArCSAqLwo+ICsJ YnVmX2ZpbGUgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJndWNfbG9nIiwgbW9kZSwKPiArCQkJCSAg ICAgICBwYXJlbnQsIGJ1ZiwgJnJlbGF5X2ZpbGVfb3BlcmF0aW9ucyk7Cj4gKwlyZXR1cm4gYnVm X2ZpbGU7Cj4gK30KPiArCj4gKy8qCj4gKyAqIGZpbGVfcmVtb3ZlKCkgZGVmYXVsdCBjYWxsYmFj ay4gUmVtb3ZlcyByZWxheSBmaWxlIGluIGRlYnVnZnMuCj4gKyAqLwo+ICtzdGF0aWMgaW50IHJl bW92ZV9idWZfZmlsZV9jYWxsYmFjayhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCj4gK3sKPiArCWRl YnVnZnNfcmVtb3ZlKGRlbnRyeSk7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArLyogcmVsYXkg Y2hhbm5lbCBjYWxsYmFja3MgKi8KPiArc3RhdGljIHN0cnVjdCByY2hhbl9jYWxsYmFja3MgcmVs YXlfY2FsbGJhY2tzID0gewo+ICsJLnN1YmJ1Zl9zdGFydCA9IHN1YmJ1Zl9zdGFydF9jYWxsYmFj aywKPiArCS5jcmVhdGVfYnVmX2ZpbGUgPSBjcmVhdGVfYnVmX2ZpbGVfY2FsbGJhY2ssCj4gKwku cmVtb3ZlX2J1Zl9maWxlID0gcmVtb3ZlX2J1Zl9maWxlX2NhbGxiYWNrLAo+ICt9Owo+ICsKPiAr c3RhdGljIHZvaWQgZ3VjX3JlbW92ZV9sb2dfcmVsYXlfZmlsZShzdHJ1Y3QgaW50ZWxfZ3VjICpn dWMpCj4gK3sKPiArCXJlbGF5X2Nsb3NlKGd1Yy0+bG9nLnJlbGF5X2NoYW4pOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgaW50IGd1Y19jcmVhdGVfbG9nX3JlbGF5X2ZpbGUoc3RydWN0IGludGVsX2d1YyAq Z3VjKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9f aTkxNShndWMpOwo+ICsJc3RydWN0IHJjaGFuICpndWNfbG9nX3JlbGF5X2NoYW47Cj4gKwlzdHJ1 Y3QgZGVudHJ5ICpsb2dfZGlyOwo+ICsJc2l6ZV90IG5fc3ViYnVmcywgc3ViYnVmX3NpemU7Cj4g Kwo+ICsJLyogRm9yIG5vdyBjcmVhdGUgdGhlIGxvZyBmaWxlIGluIC9zeXMva2VybmVsL2RlYnVn L2RyaS8wIGRpciAqLwo+ICsJbG9nX2RpciA9IGRldl9wcml2LT5kcm0ucHJpbWFyeS0+ZGVidWdm c19yb290Owo+ICsKPiArCS8qIElmIC9zeXMva2VybmVsL2RlYnVnL2RyaS8wIGxvY2F0aW9uIGRv IG5vdCBleGlzdCwgdGhlbiBkZWJ1Z2ZzIGlzCj4gKwkgKiBub3QgbW91bnRlZCBhbmQgc28gY2Fu J3QgY3JlYXRlIHRoZSByZWxheSBmaWxlLgo+ICsJICogVGhlIHJlbGF5IEFQSSBzZWVtcyB0byBm aXQgd2VsbCB3aXRoIGRlYnVnZnMgb25seSwgZm9yIGF2YWlsaW5nIHJlbGF5Cj4gKwkgKiB0aGVy ZSBhcmUgMyByZXF1aXJlbWVudHMgd2hpY2ggY2FuIGJlIG1ldCBmb3IgZGVidWdmcyBmaWxlIG9u bHkgaW4gYQo+ICsJICogc3RyYWlnaHRmb3J3YXJkL2NsZWFuIG1hbm5lciA6LQo+ICsJICogaSkg ICBOZWVkIHRoZSBhc3NvY2lhdGVkIGRlbnRyeSBwb2ludGVyIG9mIHRoZSBmaWxlLCB3aGlsZSBv cGVuaW5nIHRoZQo+ICsJICogICAgICByZWxheSBjaGFubmVsLgo+ICsJICogaWkpICBTaG91bGQg YmUgYWJsZSB0byB1c2UgJ3JlbGF5X2ZpbGVfb3BlcmF0aW9ucycgZm9wcyBmb3IgdGhlIGZpbGUu Cj4gKwkgKiBpaWkpIFNldCB0aGUgJ2lfcHJpdmF0ZScgZmllbGQgb2YgZmlsZSdzIGlub2RlIHRv IHRoZSBwb2ludGVyIG9mCj4gKwkgKglyZWxheSBjaGFubmVsIGJ1ZmZlci4KPiArCSAqLwo+ICsJ aWYgKCFsb2dfZGlyKSB7Cj4gKwkJRFJNX0VSUk9SKCJEZWJ1Z2ZzIGRpciBub3QgYXZhaWxhYmxl IHlldCBmb3IgR3VDIGxvZyBmaWxlXG4iKTsKPiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCX0KPiAr Cj4gKwkvKiBLZWVwIHRoZSBzaXplIG9mIHN1YiBidWZmZXJzIHNhbWUgYXMgc2hhcmVkIGxvZyBi dWZmZXIgKi8KPiArCXN1YmJ1Zl9zaXplID0gZ3VjLT5sb2cudm1hLT5vYmotPmJhc2Uuc2l6ZTsK PiArCj4gKwkvKiBTdG9yZSB1cCB0byA4IHNuYXBzaG90cywgd2hpY2ggaXMgbGFyZ2UgZW5vdWdo IHRvIGJ1ZmZlciBzdWZmaWNpZW50Cj4gKwkgKiBib290IHRpbWUgbG9ncyBhbmQgcHJvdmlkZXMg ZW5vdWdoIGxlZXdheSB0byBVc2VyLCBpbiB0ZXJtcyBvZgo+ICsJICogbGF0ZW5jeSwgZm9yIGNv bnN1bWluZyB0aGUgbG9ncyBmcm9tIHJlbGF5LiBBbHNvIGRvZXNuJ3QgdGFrZQo+ICsJICogdXAg dG9vIG11Y2ggbWVtb3J5Lgo+ICsJICovCj4gKwluX3N1YmJ1ZnMgPSA4Owo+ICsKPiArCWd1Y19s b2dfcmVsYXlfY2hhbiA9IHJlbGF5X29wZW4oImd1Y19sb2ciLCBsb2dfZGlyLCBzdWJidWZfc2l6 ZSwKPiArCQkJCQluX3N1YmJ1ZnMsICZyZWxheV9jYWxsYmFja3MsIGRldl9wcml2KTsKPiArCWlm ICghZ3VjX2xvZ19yZWxheV9jaGFuKSB7Cj4gKwkJRFJNX0VSUk9SKCJDb3VsZG4ndCBjcmVhdGUg cmVsYXkgY2hhbiBmb3IgR3VDIGxvZ2dpbmdcbiIpOwo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJ fQo+ICsKPiArCS8qIEZJWE1FOiBDb3ZlciB0aGUgdXBkYXRlIHVuZGVyIGEgbG9jayA/ICovCj4g KwlndWMtPmxvZy5yZWxheV9jaGFuID0gZ3VjX2xvZ19yZWxheV9jaGFuOwo+ICsJcmV0dXJuIDA7 Cj4gK30KPiArCj4gICBzdGF0aWMgdm9pZCBndWNfbW92ZV90b19uZXh0X2J1ZihzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMpCj4gICB7Cj4gKwkvKiBNYWtlIHN1cmUgdGhlIHVwZGF0ZXMgbWFkZSBpbiB0 aGUgc3ViIGJ1ZmZlciBhcmUgdmlzaWJsZSB3aGVuCj4gKwkgKiBDb25zdW1lciBzZWVzIHRoZSBm b2xsb3dpbmcgdXBkYXRlIHRvIG9mZnNldCBpbnNpZGUgdGhlIHN1YiBidWZmZXIuCj4gKwkgKi8K PiArCXNtcF93bWIoKTsKPiArCj4gKwkvKiBBbGwgZGF0YSBoYXMgYmVlbiB3cml0dGVuLCBzbyBu b3cgbW92ZSB0aGUgb2Zmc2V0IG9mIHN1YiBidWZmZXIuICovCj4gKwlyZWxheV9yZXNlcnZlKGd1 Yy0+bG9nLnJlbGF5X2NoYW4sIGd1Yy0+bG9nLnZtYS0+b2JqLT5iYXNlLnNpemUpOwo+ICsKPiAr CS8qIFN3aXRjaCB0byB0aGUgbmV4dCBzdWIgYnVmZmVyICovCj4gKwlyZWxheV9mbHVzaChndWMt PmxvZy5yZWxheV9jaGFuKTsKPiAgIH0KPgo+ICAgc3RhdGljIHZvaWQgKmd1Y19nZXRfd3JpdGVf YnVmZmVyKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiAgIHsKPiAtCXJldHVybiBOVUxMOwo+ICsJ LyogRklYTUU6IENvdmVyIHRoZSBjaGVjayB1bmRlciBhIGxvY2sgPyAqLwo+ICsJaWYgKCFndWMt PmxvZy5yZWxheV9jaGFuKQo+ICsJCXJldHVybiBOVUxMOwo+ICsKPiArCS8qIEp1c3QgZ2V0IHRo ZSBiYXNlIGFkZHJlc3Mgb2YgYSBuZXcgc3ViIGJ1ZmZlciBhbmQgY29weSBkYXRhIGludG8gaXQK PiArCSAqIG91cnNlbHZlcy4gTlVMTCB3aWxsIGJlIHJldHVybmVkIGluIG5vLW92ZXJ3cml0ZSBt b2RlLCBpZiBhbGwgc3ViCj4gKwkgKiBidWZmZXJzIGFyZSBmdWxsLiBDb3VsZCBoYXZlIHVzZWQg dGhlIHJlbGF5X3dyaXRlKCkgdG8gaW5kaXJlY3RseQo+ICsJICogY29weSB0aGUgZGF0YSwgYnV0 IHRoYXQgd291bGQgaGF2ZSBiZWVuIGJpdCBjb252b2x1dGVkLCBhcyB3ZSBuZWVkIHRvCj4gKwkg KiB3cml0ZSB0byBvbmx5IGNlcnRhaW4gbG9jYXRpb25zIGluc2lkZSBhIHN1YiBidWZmZXIgd2hp Y2ggY2Fubm90IGJlCj4gKwkgKiBkb25lIHdpdGhvdXQgdXNpbmcgcmVsYXlfcmVzZXJ2ZSgpIGFs b25nIHdpdGggcmVsYXlfd3JpdGUoKS4gU28gaXRzCj4gKwkgKiBiZXR0ZXIgdG8gdXNlIHJlbGF5 X3Jlc2VydmUoKSBhbG9uZS4KPiArCSAqLwo+ICsJcmV0dXJuIHJlbGF5X3Jlc2VydmUoZ3VjLT5s b2cucmVsYXlfY2hhbiwgMCk7Cj4gICB9Cj4KPiAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ3VjX2dl dF9sb2dfYnVmZmVyX3NpemUoZW51bSBndWNfbG9nX2J1ZmZlcl90eXBlIHR5cGUpCj4gQEAgLTky MSw2ICsxMDY5LDEyIEBAIHN0YXRpYyB2b2lkIGd1Y19yZWFkX3VwZGF0ZV9sb2dfYnVmZmVyKHN0 cnVjdCBpbnRlbF9ndWMgKmd1YykKPgo+ICAgCWlmIChsb2dfYnVmZmVyX3NuYXBzaG90X3N0YXRl KQo+ICAgCQlndWNfbW92ZV90b19uZXh0X2J1ZihndWMpOwo+ICsJZWxzZSB7Cj4gKwkJLyogVXNl ZCByYXRlIGxpbWl0ZWQgdG8gYXZvaWQgZGVsdWdlIG9mIG1lc3NhZ2VzLCBsb2dzIG1pZ2h0IGJl Cj4gKwkJICogZ2V0dGluZyBjb25zdW1lZCBieSBVc2VyIGF0IGEgc2xvdyByYXRlLgo+ICsJCSAq Lwo+ICsJCURSTV9FUlJPUl9SQVRFTElNSVRFRCgibm8gc3ViLWJ1ZmZlciB0byBjYXB0dXJlIGxv ZyBidWZmZXJcbiIpOwo+ICsJfQo+ICAgfQo+Cj4gICBzdGF0aWMgdm9pZCBndWNfY2FwdHVyZV9s b2dzX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+IEBAIC05NDgsNiArMTEwMiwxMSBA QCBzdGF0aWMgdm9pZCBndWNfbG9nX2NsZWFudXAoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+Cj4g ICAJZ3VjLT5sb2cuZmx1c2hfd3EgPSBOVUxMOwo+Cj4gKwlpZiAoZ3VjLT5sb2cucmVsYXlfY2hh bikKPiArCQlndWNfcmVtb3ZlX2xvZ19yZWxheV9maWxlKGd1Yyk7Cj4gKwo+ICsJZ3VjLT5sb2cu cmVsYXlfY2hhbiA9IE5VTEw7Cj4gKwo+ICAgCWlmIChndWMtPmxvZy5idWZfYWRkcikKPiAgIAkJ aTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChndWMtPmxvZy52bWEtPm9iaik7Cj4KPiBAQCAtMTAz OCw2ICsxMTk3LDM2IEBAIHN0YXRpYyB2b2lkIGd1Y19jcmVhdGVfbG9nKHN0cnVjdCBpbnRlbF9n dWMgKmd1YykKPiAgIAlndWMtPmxvZy5mbGFncyA9IChvZmZzZXQgPDwgR1VDX0xPR19CVUZfQURE Ul9TSElGVCkgfCBmbGFnczsKPiAgIH0KPgo+ICtzdGF0aWMgaW50IGd1Y19sb2dfbGF0ZV9zZXR1 cChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWxvY2tk ZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiArCj4gKwlpZiAo aTkxNS5ndWNfbG9nX2xldmVsIDwgMCkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwkvKiBJ ZiBsb2dfbGV2ZWwgd2FzIHNldCBhcyAtMSBhdCBib290IHRpbWUsIHRoZW4gc2V0dXAgbmVlZGVk IHRvCj4gKwkgKiBoYW5kbGUgbG9nIGJ1ZmZlciBmbHVzaCBpbnRlcnJ1cHRzIHdvdWxkIG5vdCBo YXZlIGJlZW4gZG9uZSB5ZXQsCj4gKwkgKiBzbyBkbyB0aGF0IG5vdy4KPiArCSAqLwo+ICsJcmV0 ID0gZ3VjX2NyZWF0ZV9sb2dfZXh0cmFzKGd1Yyk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXJy Owo+ICsKPiArCXJldCA9IGd1Y19jcmVhdGVfbG9nX3JlbGF5X2ZpbGUoZ3VjKTsKPiArCWlmIChy ZXQpCj4gKwkJZ290byBlcnI7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK2VycjoKPiArCWd1Y19sb2df Y2xlYW51cChndWMpOwo+ICsJLyogbG9nZ2luZyB3aWxsIHJlbWFpbiBvZmYgKi8KPiArCWk5MTUu Z3VjX2xvZ19sZXZlbCA9IC0xOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAgIHN0YXRpYyB2 b2lkIGluaXRfZ3VjX3BvbGljaWVzKHN0cnVjdCBndWNfcG9saWNpZXMgKnBvbGljaWVzKQo+ICAg ewo+ICAgCXN0cnVjdCBndWNfcG9saWN5ICpwb2xpY3k7Cj4gQEAgLTEyMDcsNyArMTM5Niw2IEBA IHZvaWQgaTkxNV9ndWNfc3VibWlzc2lvbl9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAgIAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKPgo+ ICAgCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZndWMtPmFkc192bWEpOwo+IC0JZ3VjX2xv Z19jbGVhbnVwKGd1Yyk7Cj4gICAJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJmd1Yy0+bG9n LnZtYSk7Cj4KPiAgIAlpZiAoZ3VjLT5jdHhfcG9vbF92bWEpCj4gQEAgLTEyODEsMyArMTQ2OSwy MyBAQCB2b2lkIGk5MTVfZ3VjX2NhcHR1cmVfbG9ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gICAJaG9zdDJndWNfbG9nYnVmZmVyX2ZsdXNoX2NvbXBsZXRlKCZkZXZfcHJp di0+Z3VjKTsKPiAgIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4gICB9Cj4gKwo+ ICt2b2lkIGk5MTVfZ3VjX3VucmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICt7Cj4gKwlpZiAoIWk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQo+ICsJCXJldHVy bjsKPiArCj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwln dWNfbG9nX2NsZWFudXAoJmRldl9wcml2LT5ndWMpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gK30KPiArCj4gK3ZvaWQgaTkxNV9ndWNfcmVnaXN0ZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlpZiAoIWk5MTUuZW5h YmxlX2d1Y19zdWJtaXNzaW9uKQo+ICsJCXJldHVybjsKPiArCj4gKwltdXRleF9sb2NrKCZkZXZf cHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwlndWNfbG9nX2xhdGVfc2V0dXAoJmRldl9wcml2 LT5ndWMpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4g K30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IGluZGV4IGQwNTNhMTguLjMyOTljY2UgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IEBAIC0xMjcsNiArMTI3LDcgQEAgc3RydWN0 IGludGVsX2d1Y19sb2cgewo+ICAgCXZvaWQgKmJ1Zl9hZGRyOwo+ICAgCXN0cnVjdCB3b3JrcXVl dWVfc3RydWN0ICpmbHVzaF93cTsKPiAgIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZmx1c2hfd29yazsK PiArCXN0cnVjdCByY2hhbiAqcmVsYXlfY2hhbjsKPiAgIH07Cj4KPiAgIHN0cnVjdCBpbnRlbF9n dWMgewo+IEBAIC0xNzEsNSArMTcyLDcgQEAgaW50IGk5MTVfZ3VjX3dxX2NoZWNrX3NwYWNlKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpOwo+ICAgdm9pZCBpOTE1X2d1Y19zdWJtaXNz aW9uX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgIHZvaWQg aTkxNV9ndWNfc3VibWlzc2lvbl9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7Cj4gICB2b2lkIGk5MTVfZ3VjX2NhcHR1cmVfbG9ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOwo+ICt2b2lkIGk5MTVfZ3VjX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7Cj4gK3ZvaWQgaTkxNV9ndWNfdW5yZWdpc3RlcihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+Cj4gICAjZW5kaWYKPgoKUmV2aWV3ZWQtYnk6IFR2 cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CgpSZWdhcmRzLAoKVHZydGtv CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==