From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 06/20] drm/i915: Handle log buffer flush interrupt event from GuC Date: Fri, 12 Aug 2016 14:17:37 +0100 Message-ID: <57ADCC71.9060801@linux.intel.com> References: <1470983123-22127-1-git-send-email-akash.goel@intel.com> <1470983123-22127-7-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 26DB06EB6A for ; Fri, 12 Aug 2016 13:17:39 +0000 (UTC) In-Reply-To: <1470983123-22127-7-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 List-Id: intel-gfx@lists.freedesktop.org Ck9uIDEyLzA4LzE2IDA3OjI1LCBha2FzaC5nb2VsQGludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBT YWdhciBBcnVuIEthbWJsZSA8c2FnYXIuYS5rYW1ibGVAaW50ZWwuY29tPgo+Cj4gR3VDIHVrZXJu ZWwgc2VuZHMgYW4gaW50ZXJydXB0IHRvIEhvc3QgdG8gZmx1c2ggdGhlIGxvZyBidWZmZXIKPiBh bmQgZXhwZWN0cyBIb3N0IHRvIGNvcnJlc3BvbmRpbmdseSB1cGRhdGUgdGhlIHJlYWQgcG9pbnRl cgo+IGluZm9ybWF0aW9uIGluIHRoZSBzdGF0ZSBzdHJ1Y3R1cmUsIG9uY2UgaXQgaGFzIGNvbnN1 bWVkIHRoZQo+IGxvZyBidWZmZXIgY29udGVudHMgYnkgY29weWluZyB0aGVtIHRvIGEgZmlsZSBv ciBidWZmZXIuCj4gRXZlbiBpZiBIb3N0IGNvdWxkbid0IGNvcHkgdGhlIGNvbnRlbnRzLCBpdCBj YW4gc3RpbGwgdXBkYXRlIHRoZQo+IHJlYWQgcG9pbnRlciBzbyB0aGF0IGxvZ2dpbmcgc3RhdGUg aXMgbm90IGRpc3R1cmJlZCBvbiBHdUMgc2lkZS4KPgo+IHYyOgo+IC0gVXNlIGEgZGVkaWNhdGVk IHdvcmtxdWV1ZSBmb3IgaGFuZGxpbmcgZmx1c2ggaW50ZXJydXB0LiAoVHZydGtvKQo+IC0gUmVk dWNlIHRoZSBvdmVyYWxsIGxvZyBidWZmZXIgY29weWluZyB0aW1lIGJ5IHNraXBwaW5nIHRoZSBj b3B5IG9mCj4gICAgY3Jhc2ggYnVmZmVyIGFyZWEgZm9yIHJlZ3VsYXIgY2FzZXMgYW5kIGNvcHlp bmcgb25seSB0aGUgc3RhdGUKPiAgICBzdHJ1Y3R1cmUgZGF0YSBpbiBmaXJzdCBwYWdlLgo+Cj4g djM6Cj4gICAtIENyZWF0ZSBhIHZtYWxsb2MgbWFwcGluZyBvZiBsb2cgYnVmZmVyLiAoQ2hyaXMp Cj4gICAtIENvdmVyIHRoZSBmbHVzaCBhY2tub3dsZWRnbWVudCB1bmRlciBycG0gZ2V0ICYgcHV0 LihDaHJpcykKPiAgIC0gUmV2ZXJ0IHRoZSBjaGFuZ2Ugb2Ygc2tpcHBpbmcgdGhlIGNvcHkgb2Yg Y3Jhc2ggZHVtcCBhcmVhLCBhcwo+ICAgICBub3QgcmVhbGx5IG5lZWRlZCwgd2lsbCBiZSBjb3Zl cmVkIGJ5IHN1YnNlcXVlbnQgcGF0Y2guCj4KPiB2NDoKPiAgIC0gRGVzdHJveSB0aGUgd3EgdW5k ZXIgdGhlIHNhbWUgY29uZGl0aW9uIGluIHdoaWNoIGl0IHdhcyBjcmVhdGVkLAo+ICAgICBwYXNz IGRldl9waXYgcG9pbnRlciBpbnN0ZWFkIG9mIGRldiB0byBuZXdseSBhZGRlZCBHdUMgZnVuY3Rp b24sCj4gICAgIGFkZCBtb3JlIGNvbW1lbnRzICYgcmVuYW1lIHZhcmlhYmxlIGZvciBjbGFyaXR5 LiAoVHZydGtvKQo+Cj4gU2lnbmVkLW9mZi1ieTogU2FnYXIgQXJ1biBLYW1ibGUgPHNhZ2FyLmEu a2FtYmxlQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBa2FzaCBHb2VsIDxha2FzaC5nb2Vs QGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAg ICAgICAgICB8ICAxNCArKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1p c3Npb24uYyB8IDE1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgICAgIHwgICA1ICstCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgIDMgKwo+ICAgNCBmaWxlcyBjaGFu Z2VkLCAxNzAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYwo+IGluZGV4IDBmY2QxYzAuLmZjMmRhMzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKPiBAQCAtNzcwLDggKzc3MCwyMCBAQCBzdGF0aWMgaW50IGk5MTVfd29ya3F1ZXVlc19p bml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlpZiAoZGV2X3ByaXYt PmhvdHBsdWcuZHBfd3EgPT0gTlVMTCkKPiAgIAkJZ290byBvdXRfZnJlZV93cTsKPgo+ICsJaWYg KEhBU19HVUNfU0NIRUQoZGV2X3ByaXYpKSB7CgpUaGlzIGp1c3QgcmVtaW5kZWQgbWUgdGhhdCBh IHByZXZpb3VzIHBhdGNoIGhhZDoKCisJaWYgKEhBU19HVUNfVUNPREUoZGV2KSkKKwkJZGV2X3By aXYtPnBtX2d1Y19ldmVudHMgPSBHRU45X0dVQ19UT19IT1NUX0lOVF9FVkVOVDsKCkluIHRoZSBp bnRlcnJ1cHQgc2V0dXAuIEkgZG9uJ3QgdGhpbmsgdGhlcmUgaXMgYSBidWcgcmlnaHQgbm93LCBi dXQgCnRoZXJlIGlzIGEgZGlzYWdyZWVtZW50IGJldHdlZW4gdGhlIHR3byB3aGljaCB3b3VsZCBi ZSBnb29kIHRvIHJlc29sdmUuCgpUaGlzIEhBU19HVUNfVUNPREUgaW4gdGhlIG90aGVyIHBhdGNo IHNob3VsZCBwcm9iYWJseSBiZSBIQVNfR1VDX1NDSEVEIApmb3IgY29ycmVjdG5lc3MuIEkgdGhp bmsuCgo+ICsJCS8qIE5lZWQgYSBkZWRpY2F0ZWQgd3EgdG8gcHJvY2VzcyBsb2cgYnVmZmVyIGZs dXNoIGludGVycnVwdHMKPiArCQkgKiBmcm9tIEd1QyB3aXRob3V0IG11Y2ggZGVsYXkgc28gYXMg dG8gYXZvaWQgYW55IGxvc3Mgb2YgbG9ncy4KPiArCQkgKi8KPiArCQlkZXZfcHJpdi0+Z3VjLmxv Zy53cSA9Cj4gKwkJCWFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJpOTE1LWd1Y19sb2ciLCAwKTsK PiArCQlpZiAoZGV2X3ByaXYtPmd1Yy5sb2cud3EgPT0gTlVMTCkKPiArCQkJZ290byBvdXRfZnJl ZV9ob3RwbHVnX2RwX3dxOwo+ICsJfQo+ICsKPiAgIAlyZXR1cm4gMDsKPgo+ICtvdXRfZnJlZV9o b3RwbHVnX2RwX3dxOgo+ICsJZGVzdHJveV93b3JrcXVldWUoZGV2X3ByaXYtPmhvdHBsdWcuZHBf d3EpOwo+ICAgb3V0X2ZyZWVfd3E6Cj4gICAJZGVzdHJveV93b3JrcXVldWUoZGV2X3ByaXYtPndx KTsKPiAgIG91dF9lcnI6Cj4gQEAgLTc4Miw2ICs3OTQsOCBAQCBvdXRfZXJyOgo+Cj4gICBzdGF0 aWMgdm9pZCBpOTE1X3dvcmtxdWV1ZXNfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gICB7Cj4gKwlpZiAoSEFTX0dVQ19TQ0hFRChkZXZfcHJpdikpCj4gKwkJZGVz dHJveV93b3JrcXVldWUoZGV2X3ByaXYtPmd1Yy5sb2cud3EpOwo+ICAgCWRlc3Ryb3lfd29ya3F1 ZXVlKGRldl9wcml2LT5ob3RwbHVnLmRwX3dxKTsKPiAgIAlkZXN0cm95X3dvcmtxdWV1ZShkZXZf cHJpdi0+d3EpOwo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNz aW9uLmMKPiBpbmRleCBjN2M2NzlmLi4yNjM1YjY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IEBAIC0xNzIsNiArMTcyLDE1IEBAIHN0YXRpYyBp bnQgaG9zdDJndWNfc2FtcGxlX2ZvcmNld2FrZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCj4gICAJ cmV0dXJuIGhvc3QyZ3VjX2FjdGlvbihndWMsIGRhdGEsIEFSUkFZX1NJWkUoZGF0YSkpOwo+ICAg fQo+Cj4gK3N0YXRpYyBpbnQgaG9zdDJndWNfbG9nYnVmZmVyX2ZsdXNoX2NvbXBsZXRlKHN0cnVj dCBpbnRlbF9ndWMgKmd1YykKPiArewo+ICsJdTMyIGRhdGFbMV07Cj4gKwo+ICsJZGF0YVswXSA9 IEhPU1QyR1VDX0FDVElPTl9MT0dfQlVGRkVSX0ZJTEVfRkxVU0hfQ09NUExFVEU7Cj4gKwo+ICsJ cmV0dXJuIGhvc3QyZ3VjX2FjdGlvbihndWMsIGRhdGEsIDEpOwo+ICt9Cj4gKwo+ICAgLyoKPiAg ICAqIEluaXRpYWxpc2UsIHVwZGF0ZSwgb3IgY2xlYXIgZG9vcmJlbGwgZGF0YSBzaGFyZWQgd2l0 aCB0aGUgR3VDCj4gICAgKgo+IEBAIC04NDAsNiArODQ5LDEyNyBAQCBlcnI6Cj4gICAJcmV0dXJu IE5VTEw7Cj4gICB9Cj4KPiArc3RhdGljIHZvaWQgZ3VjX21vdmVfdG9fbmV4dF9idWYoc3RydWN0 IGludGVsX2d1YyAqZ3VjKQo+ICt7Cj4gKwlyZXR1cm47Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lk KiBndWNfZ2V0X3dyaXRlX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gK3sKPiArCXJl dHVybiBOVUxMOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBndWNfcmVhZF91cGRhdGVfbG9nX2J1 ZmZlcihzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gK3sKPiArCXN0cnVjdCBndWNfbG9nX2J1ZmZl cl9zdGF0ZSAqbG9nX2J1ZmZlcl9zdGF0ZSwgKmxvZ19idWZmZXJfc25hcHNob3Rfc3RhdGU7Cj4g KwlzdHJ1Y3QgZ3VjX2xvZ19idWZmZXJfc3RhdGUgbG9nX2J1ZmZlcl9zdGF0ZV9sb2NhbDsKPiAr CXZvaWQgKnNyY19kYXRhX3B0ciwgKmRzdF9kYXRhX3B0cjsKPiArCXUzMiBpLCBidWZmZXJfc2l6 ZTsKCnVuc2lnbmVkIGludCBpIGlmIHlvdSBjYW4gYmUgYm90aGVyZWQuCgo+ICsKPiArCWlmICgh Z3VjLT5sb2cuYnVmX2FkZHIpCj4gKwkJcmV0dXJuOwoKQ2FuIGl0IGhpdCB0aGlzPyBJZiB5ZXMs IEkgdGhpbmsgYmV0dGVyIGRpc2FibGUgR3VDIGxvZ2dpbmcgd2hlbiBwaW4gbWFwIApvbiB0aGUg b2JqZWN0IGZhaWxzIHJhdGhlciB0aGFuIGxldCBpdCBnZW5lcmF0ZSBpbnRlcnJ1cHRzIGluIHZh aW4uCgo+ICsKPiArCS8qIEdldCB0aGUgcG9pbnRlciB0byBzaGFyZWQgR3VDIGxvZyBidWZmZXIg Ki8KPiArCWxvZ19idWZmZXJfc3RhdGUgPSBzcmNfZGF0YV9wdHIgPSBndWMtPmxvZy5idWZfYWRk cjsKPiArCj4gKwkvKiBHZXQgdGhlIHBvaW50ZXIgdG8gbG9jYWwgYnVmZmVyIHRvIHN0b3JlIHRo ZSBsb2dzICovCj4gKwlkc3RfZGF0YV9wdHIgPSBsb2dfYnVmZmVyX3NuYXBzaG90X3N0YXRlID0g Z3VjX2dldF93cml0ZV9idWZmZXIoZ3VjKTsKPiArCj4gKwkvKiBBY3R1YWwgbG9ncyBhcmUgcHJl c2VudCBmcm9tIHRoZSAybmQgcGFnZSAqLwo+ICsJc3JjX2RhdGFfcHRyICs9IFBBR0VfU0laRTsK PiArCWRzdF9kYXRhX3B0ciArPSBQQUdFX1NJWkU7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IEdV Q19NQVhfTE9HX0JVRkZFUjsgaSsrKSB7Cj4gKwkJLyogTWFrZSBhIGNvcHkgb2YgdGhlIHN0YXRl IHN0cnVjdHVyZSBpbiBHdUMgbG9nIGJ1ZmZlciAod2hpY2gKPiArCQkgKiBpcyB1bmNhY2hlZCBt YXBwZWQpIG9uIHRoZSBzdGFjayB0byBhdm9pZCByZWFkaW5nIGZyb20gaXQKPiArCQkgKiBtdWx0 aXBsZSB0aW1lcy4KPiArCQkgKi8KPiArCQltZW1jcHkoJmxvZ19idWZmZXJfc3RhdGVfbG9jYWws IGxvZ19idWZmZXJfc3RhdGUsCj4gKwkJCQlzaXplb2Yoc3RydWN0IGd1Y19sb2dfYnVmZmVyX3N0 YXRlKSk7Cj4gKwkJYnVmZmVyX3NpemUgPSBsb2dfYnVmZmVyX3N0YXRlX2xvY2FsLnNpemU7CgpO ZWVkcyBjaGVja2luZyAoYW5kIGxvZ2dpbmcpIHRoYXQgYSBiYWQgZmlybXdhcmUgb3Igc29tZSBv dGhlciBlcnJvciAKZG9lcyBub3QgcmVwb3J0IGEgZGFuZ2Vyb3VzIHNpemUgKHRvbyBiaWcpIHdo aWNoIHdvdWxkIHRoZW4gb3ZlcndyaXRlIAptZW1vcnkgcG9pbnRlZCBieSBkc3RfZGF0YV9wdHIg bWVtb3J5LiAoQW5kL29yIHJlYWQgZnJvbSByYW5kb20gbWVtb3J5LikKCj4gKwo+ICsJCWlmIChs b2dfYnVmZmVyX3NuYXBzaG90X3N0YXRlKSB7Cj4gKwkJCS8qIEZpcnN0IGNvcHkgdGhlIHN0YXRl IHN0cnVjdHVyZSBpbiBsb2NhbCBidWZmZXIgKi8KCk1heWJlICJkZXN0aW5hdGlvbiBidWZmZXIi IHdvdWxkIGJlIGNsZWFyZXI/Cgo+ICsJCQltZW1jcHkobG9nX2J1ZmZlcl9zbmFwc2hvdF9zdGF0 ZSwgJmxvZ19idWZmZXJfc3RhdGVfbG9jYWwsCj4gKwkJCQkJc2l6ZW9mKHN0cnVjdCBndWNfbG9n X2J1ZmZlcl9zdGF0ZSkpOwo+ICsKPiArCQkJLyogVGhlIHdyaXRlIHBvaW50ZXIgY291bGQgaGF2 ZSBiZWVuIHVwZGF0ZWQgYnkgdGhlIEd1Qwo+ICsJCQkgKiBmaXJtd2FyZSwgYWZ0ZXIgc2VuZGlu ZyB0aGUgZmx1c2ggaW50ZXJydXB0IHRvIEhvc3QsCj4gKwkJCSAqIGZvciBjb25zaXN0ZW5jeSBz ZXQgdGhlIHdyaXRlIHBvaW50ZXIgdmFsdWUgdG8gc2FtZQo+ICsJCQkgKiB2YWx1ZSBvZiBzYW1w bGVkX3dyaXRlX3B0ciBpbiB0aGUgc25hcHNob3QgYnVmZmVyLgo+ICsJCQkgKi8KPiArCQkJbG9n X2J1ZmZlcl9zbmFwc2hvdF9zdGF0ZS0+d3JpdGVfcHRyID0KPiArCQkJCWxvZ19idWZmZXJfc25h cHNob3Rfc3RhdGUtPnNhbXBsZWRfd3JpdGVfcHRyOwo+ICsKPiArCQkJbG9nX2J1ZmZlcl9zbmFw c2hvdF9zdGF0ZSsrOwo+ICsKPiArCQkJLyogTm93IGNvcHkgdGhlIGFjdHVhbCBsb2dzICovCj4g KwkJCW1lbWNweShkc3RfZGF0YV9wdHIsIHNyY19kYXRhX3B0ciwgYnVmZmVyX3NpemUpOwo+ICsK PiArCQkJc3JjX2RhdGFfcHRyICs9IGJ1ZmZlcl9zaXplOwo+ICsJCQlkc3RfZGF0YV9wdHIgKz0g YnVmZmVyX3NpemU7Cj4gKwkJfQo+ICsKPiArCQkvKiBGSVhNRTogaW52YWxpZGF0ZS9mbHVzaCBm b3IgbG9nIGJ1ZmZlciBuZWVkZWQgKi8KClllcyBubyBtYXliZT8gOikKCj4gKwo+ICsJCS8qIFVw ZGF0ZSB0aGUgcmVhZCBwb2ludGVyIGluIHRoZSBzaGFyZWQgbG9nIGJ1ZmZlciAqLwo+ICsJCWxv Z19idWZmZXJfc3RhdGUtPnJlYWRfcHRyID0KPiArCQkJbG9nX2J1ZmZlcl9zdGF0ZV9sb2NhbC5z YW1wbGVkX3dyaXRlX3B0cjsKPiArCj4gKwkJLyogQ2xlYXIgdGhlICdmbHVzaCB0byBmaWxlJyBm bGFnICovCj4gKwkJbG9nX2J1ZmZlcl9zdGF0ZS0+Zmx1c2hfdG9fZmlsZSA9IDA7Cj4gKwkJbG9n X2J1ZmZlcl9zdGF0ZSsrOwo+ICsJfQo+ICsKPiArCWlmIChsb2dfYnVmZmVyX3NuYXBzaG90X3N0 YXRlKQo+ICsJCWd1Y19tb3ZlX3RvX25leHRfYnVmKGd1Yyk7Cj4gK30KPiArCj4gK3N0YXRpYyB2 b2lkIGd1Y19sb2dfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4gK3sKPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Cj4gKwo+ICsJ bG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICsKPiAr CWlmIChpOTE1Lmd1Y19sb2dfbGV2ZWwgPCAwKQo+ICsJCXJldHVybjsKPiArCj4gKwkvKiBGaXJz dCBkaXNhYmxlIHRoZSBmbHVzaCBpbnRlcnJ1cHQgKi8KPiArCWdlbjlfZGlzYWJsZV9ndWNfaW50 ZXJydXB0cyhkZXZfcHJpdik7Cj4gKwo+ICsJaWYgKGd1Yy0+bG9nLmJ1Zl9hZGRyKQo+ICsJCWk5 MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoZ3VjLT5sb2cub2JqKTsKPiArCj4gKwlndWMtPmxvZy5i dWZfYWRkciA9IE5VTEw7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZ3VjX2NyZWF0ZV9sb2dfZXh0 cmFzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKPiArCXZvaWQgKnZhZGRyOwo+ICsJaW50 IHJldDsKPiArCj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9t dXRleCk7Cj4gKwo+ICsJLyogTm90aGluZyB0byBkbyAqLwo+ICsJaWYgKGk5MTUuZ3VjX2xvZ19s ZXZlbCA8IDApCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJaWYgKCFndWMtPmxvZy5idWZfYWRkcikg ewo+ICsJCS8qIENyZWF0ZSBhIHZtYWxsb2MgbWFwcGluZyBvZiBsb2cgYnVmZmVyIHBhZ2VzICov Cj4gKwkJdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChndWMtPmxvZy5vYmopOwo+ICsJ CWlmIChJU19FUlIodmFkZHIpKSB7Cj4gKwkJCXJldCA9IFBUUl9FUlIodmFkZHIpOwo+ICsJCQlE Uk1fRVJST1IoIkNvdWxkbid0IG1hcCBsb2cgYnVmZmVyIHBhZ2VzICVkXG4iLCByZXQpOwo+ICsJ CQlyZXR1cm4gcmV0Owo+ICsJCX0KPiArCj4gKwkJZ3VjLT5sb2cuYnVmX2FkZHIgPSB2YWRkcjsK PiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkIGd1Y19jcmVh dGVfbG9nKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOwo+IEBAIC04NjYsNiArOTk2LDEz IEBAIHN0YXRpYyB2b2lkIGd1Y19jcmVhdGVfbG9nKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiAg IAkJfQo+Cj4gICAJCWd1Yy0+bG9nLm9iaiA9IG9iajsKPiArCj4gKwkJaWYgKGd1Y19jcmVhdGVf bG9nX2V4dHJhcyhndWMpKSB7Cj4gKwkJCWdlbV9yZWxlYXNlX2d1Y19vYmooZ3VjLT5sb2cub2Jq KTsKPiArCQkJZ3VjLT5sb2cub2JqID0gTlVMTDsKPiArCQkJaTkxNS5ndWNfbG9nX2xldmVsID0g LTE7Cj4gKwkJCXJldHVybjsKPiArCQl9Cj4gICAJfQo+Cj4gICAJLyogZWFjaCBhbGxvY2F0ZWQg dW5pdCBpcyBhIHBhZ2UgKi8KPiBAQCAtMTA0OCw2ICsxMTg1LDcgQEAgdm9pZCBpOTE1X2d1Y19z dWJtaXNzaW9uX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCWdl bV9yZWxlYXNlX2d1Y19vYmooZGV2X3ByaXYtPmd1Yy5hZHNfb2JqKTsKPiAgIAlndWMtPmFkc19v YmogPSBOVUxMOwo+Cj4gKwlndWNfbG9nX2NsZWFudXAoZ3VjKTsKPiAgIAlnZW1fcmVsZWFzZV9n dWNfb2JqKGRldl9wcml2LT5ndWMubG9nLm9iaik7Cj4gICAJZ3VjLT5sb2cub2JqID0gTlVMTDsK Pgo+IEBAIC0xMTExLDMgKzEyNDksMTUgQEAgaW50IGludGVsX2d1Y19yZXN1bWUoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPgo+ICAgCXJldHVybiBob3N0Mmd1Y19hY3Rpb24oZ3VjLCBkYXRhLCBB UlJBWV9TSVpFKGRhdGEpKTsKPiAgIH0KPiArCj4gK3ZvaWQgaTkxNV9ndWNfY2FwdHVyZV9sb2dz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJZ3VjX3JlYWRfdXBk YXRlX2xvZ19idWZmZXIoJmRldl9wcml2LT5ndWMpOwo+ICsKPiArCS8qIEdlbmVyYWxseSBkZXZp Y2UgaXMgZXhwZWN0ZWQgdG8gYmUgYWN0aXZlIG9ubHkgYXQgdGhpcwo+ICsJICogdGltZSwgc28g Z2V0L3B1dCBzaG91bGQgYmUgcmVhbGx5IHF1aWNrLgo+ICsJICovCj4gKwlpbnRlbF9ydW50aW1l X3BtX2dldChkZXZfcHJpdik7Cj4gKwlob3N0Mmd1Y19sb2didWZmZXJfZmx1c2hfY29tcGxldGUo JmRldl9wcml2LT5ndWMpOwo+ICsJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwo+ICt9 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gaW5kZXggNWYxOTc0Zi4uZDRkNmYwYSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC0xMjEzLDcgKzEyMTMsNyBAQCBzdGF0aWMgdm9p ZCBnZW45X2d1YzJob3N0X2V2ZW50c193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAg IAl9Cj4gICAJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+Cj4gLQkvKiBU T0RPOiBIYW5kbGUgdGhlIGV2ZW50cyBmb3Igd2hpY2ggR3VDIGludGVycnVwdGVkIGhvc3QgKi8K PiArCWk5MTVfZ3VjX2NhcHR1cmVfbG9ncyhkZXZfcHJpdik7Cj4gICB9Cj4KPiAgIC8qKgo+IEBA IC0xNzAzLDcgKzE3MDMsOCBAQCBzdGF0aWMgdm9pZCBnZW45X2d1Y19pcnFfaGFuZGxlcihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBndF9paXIpCj4gICAJCQkJCUk5MTVf UkVBRChTT0ZUX1NDUkFUQ0goMTUpKSAmIH5tc2cpOwo+Cj4gICAJCQkJLyogSGFuZGxlIGZsdXNo IGludGVycnVwdCBldmVudCBpbiBib3R0b20gaGFsZiAqLwo+IC0JCQkJcXVldWVfd29yayhkZXZf cHJpdi0+d3EsICZkZXZfcHJpdi0+Z3VjLmV2ZW50c193b3JrKTsKPiArCQkJCXF1ZXVlX3dvcmso ZGV2X3ByaXYtPmd1Yy5sb2cud3EsCj4gKwkJCQkJCSZkZXZfcHJpdi0+Z3VjLmV2ZW50c193b3Jr KTsKPiAgIAkJCX0KPiAgIAkJfQo+ICAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IGlu ZGV4IGJlMWUwNGQuLjdjMGJkYmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IEBA IC0xMjQsNiArMTI0LDggQEAgc3RydWN0IGludGVsX2d1Y19mdyB7Cj4gICBzdHJ1Y3QgaW50ZWxf Z3VjX2xvZyB7Cj4gICAJdWludDMyX3QgZmxhZ3M7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iajsKPiArCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cTsKPiArCXZvaWQgKmJ1 Zl9hZGRyOwo+ICAgfTsKPgo+ICAgc3RydWN0IGludGVsX2d1YyB7Cj4gQEAgLTE2OSw1ICsxNzEs NiBAQCBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKPiAgIGludCBpOTE1X2d1Y193cV9jaGVja19zcGFjZShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJxKTsKPiAgIHZvaWQgaTkxNV9ndWNfc3VibWlzc2lvbl9kaXNh YmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gICB2b2lkIGk5MTVfZ3Vj X3N1Ym1pc3Npb25fZmluaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICt2 b2lkIGk5MTVfZ3VjX2NhcHR1cmVfbG9ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+Cj4gICAjZW5kaWYKPgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK