From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v3] drm/i915/skl: Add support for the SAGV, fix underrun hangs Date: Tue, 12 Jul 2016 11:21:39 -0700 Message-ID: <20160712182139.GH18143@intel.com> References: <1468344963-6282-1-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1468344963-6282-1-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lyude Cc: David Airlie , Daniel Vetter , intel-gfx@lists.freedesktop.org, "open list:INTEL DRM DRIVERS (excluding Poulsbo, Moorestow...), linux-kernel@vger.kernel.org (open list)" , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdWwgMTIsIDIwMTYgYXQgMDE6MzY6MDNQTSAtMDQwMCwgTHl1ZGUgd3JvdGU6Cj4g U2luY2UgdGhlIHdhdGVybWFyayBjYWxjdWxhdGlvbnMgZm9yIFNreWxha2UgYXJlIHN0aWxsIGJy b2tlbiwgd2UncmUgYXB0Cj4gdG8gaGl0dGluZyB1bmRlcnJ1bnMgdmVyeSBlYXNpbHkgdW5kZXIg bXVsdGktbW9uaXRvciBjb25maWd1cmF0aW9ucy4KPiBXaGlsZSBpdCB3b3VsZCBiZSBsb3ZlbHkg aWYgdGhpcyB3YXMgZml4ZWQsIGl0J3Mgbm90LiBBbm90aGVyIHByb2JsZW0KPiB0aGF0J3MgYmVl biBjb21pbmcgZnJvbSB0aGlzIGhvd2V2ZXIsIGlzIHRoZSBteXN0ZXJpb3VzIGlzc3VlIG9mCj4g dW5kZXJydW5zIGNhdXNpbmcgZnVsbCBzeXN0ZW0gaGFuZ3MuIEFuIGVhc3kgd2F5IHRvIHJlcHJv ZHVjZSB0aGlzIHdpdGgKPiBhIHNreWxha2Ugc3lzdGVtOgo+IAo+IC0gR2V0IGEgbGFwdG9wIHdp dGggYSBza3lsYWtlIEdQVSwgYW5kIGhvb2sgdXAgdHdvIGV4dGVybmFsIG1vbml0b3JzIHRvCj4g ICBpdAo+IC0gTW92ZSB0aGUgY3Vyc29yIGZyb20gdGhlIGJ1aWx0LWluIExDRCB0byBvbmUgb2Yg dGhlIGV4dGVybmFsIGRpc3BsYXlzCj4gICBhcyBxdWlja2x5IGFzIHlvdSBjYW4KPiAtIFlvdSds bCBnZXQgYSBmZXcgcGlwZSB1bmRlcnJ1bnMsIGFuZCBldmVudHVhbGx5IHRoZSBlbnRpcmUgc3lz dGVtIHdpbGwKPiAgIGp1c3QgZnJlZXplLgo+IAo+IEFmdGVyIGRvaW5nIGEgbG90IG9mIGludmVz dGlnYXRpb24gYW5kIHJlYWRpbmcgdGhyb3VnaCB0aGUgYnNwZWMsIEkKPiBmb3VuZCB0aGUgZXhp c3RlbmNlIG9mIHRoZSBTQUdWLCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IgYWRqdXN0aW5nIHRo ZQo+IHN5c3RlbSBhZ2VudCB2b2x0YWdlIGFuZCBjbG9jayBmcmVxdWVuY2llcyBkZXBlbmRpbmcg b24gaG93IG11Y2ggcG93ZXIKPiB3ZSBuZWVkLiBBY2NvcmRpbmcgdG8gdGhlIGJzcGVjOgo+IAo+ ICJUaGUgZGlzcGxheSBlbmdpbmUgYWNjZXNzIHRvIHN5c3RlbSBtZW1vcnkgaXMgYmxvY2tlZCBk dXJpbmcgdGhlCj4gIGFkanVzdG1lbnQgdGltZS4gU0FHViBkZWZhdWx0cyB0byBlbmFibGVkLiBT b2Z0d2FyZSBtdXN0IHVzZSB0aGUKPiAgR1QtZHJpdmVyIHBjb2RlIG1haWxib3ggdG8gZGlzYWJs ZSBTQUdWIHdoZW4gdGhlIGRpc3BsYXkgZW5naW5lIGlzIG5vdAo+ICBhYmxlIHRvIHRvbGVyYXRl IHRoZSBibG9ja2luZyB0aW1lLiIKPiAKPiBUaGUgcmVzdCBvZiB0aGUgYnNwZWMgZ29lcyBvbiB0 byBleHBsYWluIHRoYXQgc29mdHdhcmUgY2FuIHNpbXBseSBsZWF2ZQo+IHRoZSBTQUdWIGVuYWJs ZWQsIGFuZCBkaXNhYmxlIGl0IHdoZW4gd2UgdXNlIGludGVybGFjZWQgcGlwZXMvaGF2ZSBtb3Jl Cj4gdGhlbiBvbmUgcGlwZSBhY3RpdmUuCj4gCj4gU3VyZSBlbm91Z2gsIHdpdGggdGhpcyBwYXRj aHNldCB0aGUgc3lzdGVtIGhhbmdzIHJlc3VsdGluZyBmcm9tIHBpcGUKPiB1bmRlcnJ1bnMgb24g U2t5bGFrZSBoYXZlIGNvbXBsZXRlbHkgdmFuaXNoZWQgb24gbXkgVDQ2MHMuIEFkZGl0aW9uYWxs eSwKPiB0aGUgYnNwZWMgbWVudGlvbnMgdHVybmluZyBvZmYgdGhlIFNBR1YJd2l0aCBtb3JlIHRo ZW4gb25lIHBpcGUgZW5hYmxlZAo+IGFzIGEgd29ya2Fyb3VuZCBmb3IgZGlzcGxheSB1bmRlcnJ1 bnMuIFdoaWxlIHRoaXMgcGF0Y2ggZG9lc24ndCBlbnRpcmVseQo+IGZpeCB0aGF0LCBpdCBsb29r cyBsaWtlIGl0IGRvZXMgaW1wcm92ZSB0aGUgc2l0dWF0aW9uIGEgbGl0dGxlIGJpdCBzbwo+IGl0 J3MgbGlrZWx5IHRoaXMgaXMgZ29pbmcgdG8gYmUgcmVxdWlyZWQgdG8gbWFrZSB3YXRlcm1hcmtz IG9uIFNreWxha2UKPiBmdWxseSBmdW5jdGlvbmFsLgo+IAo+IENoYW5nZXMgc2luY2UgdjI6Cj4g IC0gUmVhbGx5IGFwcGx5IG1pbm9yIHN0eWxlIG5pdHBpY2tzIHRvIHBhdGNoIHRoaXMgdGltZQo+ IENoYW5nZXMgc2luY2UgdjE6Cj4gIC0gQWRkZWQgY29tbWVudHMgYWJvdXQgdGhpcyBwcm9iYWJs eSBiZWluZyBvbmUgb2YgdGhlIHJlcXVpcmVtZW50cyB0bwo+ICAgIGZpeGluZyBTa3lsYWtlJ3Mg d2F0ZXJtYXJrIGlzc3Vlcwo+ICAtIE1pbm9yIHN0eWxlIG5pdHBpY2tzIGZyb20gTWF0dCBSb3Bl cgo+ICAtIERpc2FibGUgdGhlc2UgZnVuY3Rpb25zIG9uIEJyb3h0b24sIHNpbmNlIGl0IGRvZXNu J3QgaGF2ZSBhbiBTQUdWCj4gCj4gQ2M6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRl bC5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gQ2M6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gU2lnbmVk LW9mZi1ieTogTHl1ZGUgPGNwYXVsQHJlZGhhdC5jb20+CgpJIGRvbid0IGhhdmUgYSBTS0wgdG8g dHJ5IHRoaXMgb3V0IG9uIChvbmx5IEJYVCBoZXJlKSwgYnV0IHRoaXMgbWF0Y2hlcwpteSBpbnRl cnByZXRhdGlvbiBvZiB0aGUgY3VycmVudCBic3BlYyB0ZXh0LCBzbwoKUmV2aWV3ZWQtYnk6IE1h dHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+CgpJIHRoaW5rIHRoaXMgYWxzbyBh cHBsaWVzIHRvCgpCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9OTQ2MjUKCkFuZCBtYXliZSBhICtjYyBzdGFibGU/CgoKTWF0dAoKPiAtLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCB8ICAgMiArCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmggfCAgIDUgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYyB8IDExMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDMg ZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBpbmRleCAwM2UxYmZhLi42NjBkMGE2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gQEAgLTE5NTksNiArMTk1OSw4IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiAgCXN0 cnVjdCBpOTE1X3N1c3BlbmRfc2F2ZWRfcmVnaXN0ZXJzIHJlZ2ZpbGU7Cj4gIAlzdHJ1Y3Qgdmx2 X3MwaXhfc3RhdGUgdmx2X3MwaXhfc3RhdGU7Cj4gIAo+ICsJYm9vbCBza2xfc2Fndl9lbmFibGVk Owo+ICsKPiAgCXN0cnVjdCB7Cj4gIAkJLyoKPiAgCQkgKiBSYXcgd2F0ZXJtYXJrIGxhdGVuY3kg dmFsdWVzOgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGluZGV4IDhiZmRlNzUuLjliMmViMGIg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtNzE2Miw2ICs3MTYyLDExIEBAIGVu dW0gewo+ICAjZGVmaW5lICAgSFNXX1BDT0RFX0RFX1dSSVRFX0ZSRVFfUkVRCQkweDE3Cj4gICNk ZWZpbmUgICBESVNQTEFZX0lQU19DT05UUk9MCQkJMHgxOQo+ICAjZGVmaW5lCSAgSFNXX1BDT0RF X0RZTkFNSUNfRFVUWV9DWUNMRV9DT05UUk9MCTB4MUEKPiArI2RlZmluZSAgIEdFTjlfUENPREVf U0FHVl9DT05UUk9MCQkweDIxCj4gKyNkZWZpbmUgICAgIEdFTjlfU0FHVl9ESVNBQkxFCQkJMHgw Cj4gKyNkZWZpbmUgICAgIEdFTjlfU0FHVl9MT1dfRlJFUQkJCTB4MQo+ICsjZGVmaW5lICAgICBH RU45X1NBR1ZfSElHSF9GUkVRCQkJMHgyCj4gKyNkZWZpbmUgICAgIEdFTjlfU0FHVl9EWU5BTUlD X0ZSRVEgICAgICAgICAgICAgIDB4Mwo+ICAjZGVmaW5lIEdFTjZfUENPREVfREFUQQkJCQlfTU1J TygweDEzODEyOCkKPiAgI2RlZmluZSAgIEdFTjZfUENPREVfRlJFUV9JQV9SQVRJT19TSElGVAk4 Cj4gICNkZWZpbmUgICBHRU42X1BDT0RFX0ZSRVFfUklOR19SQVRJT19TSElGVAkxNgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IDVhOGVlMGMuLjk0ODU2NGEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKPiBAQCAtMjg3Niw2ICsyODc2LDEwOSBAQCBza2xfd21fcGxhbmVfaWQo Y29uc3Qgc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQK PiArc2tsX3NhZ3ZfZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiArewo+ICsJdTMyIHRlbXA7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWlmIChJU19CUk9YVE9O KGRldl9wcml2KSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJw cy5od19sb2NrKTsKPiArCXJldCA9IHNhbmR5YnJpZGdlX3Bjb2RlX3JlYWQoZGV2X3ByaXYsIEdF TjlfUENPREVfU0FHVl9DT05UUk9MLCAmdGVtcCk7Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2 LT5ycHMuaHdfbG9jayk7Cj4gKwo+ICsJaWYgKCFyZXQpIHsKPiArCQlkZXZfcHJpdi0+c2tsX3Nh Z3ZfZW5hYmxlZCA9ICEhKHRlbXAgJiBHRU45X1NBR1ZfRFlOQU1JQ19GUkVRKTsKPiArCX0gZWxz ZSB7Cj4gKwkJLyoKPiArCQkgKiBJZiBmb3Igc29tZSByZWFzb24gd2UgY2FuJ3QgYWNjZXNzIHRo ZSBTQUdWIHN0YXRlLCBmb2xsb3cKPiArCQkgKiB0aGUgYnNwZWMgYW5kIGFzc3VtZSBpdCdzIGVu YWJsZWQKPiArCQkgKi8KPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byBnZXQgU0FHViBzdGF0ZSwg YXNzdW1pbmcgZW5hYmxlZFxuIik7Cj4gKwkJZGV2X3ByaXYtPnNrbF9zYWd2X2VuYWJsZWQgPSB0 cnVlOwo+ICsJfQo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBTQUdWIGR5bmFtaWNhbGx5IGFkanVzdHMg dGhlIHN5c3RlbSBhZ2VudCB2b2x0YWdlIGFuZCBjbG9jayBmcmVxdWVuY2llcwo+ICsgKiBkZXBl bmRpbmcgb24gcG93ZXIgYW5kIHBlcmZvcm1hbmNlIHJlcXVpcmVtZW50cy4gVGhlIGRpc3BsYXkg ZW5naW5lIGFjY2Vzcwo+ICsgKiB0byBzeXN0ZW0gbWVtb3J5IGlzIGJsb2NrZWQgZHVyaW5nIHRo ZSBhZGp1c3RtZW50IHRpbWUuIEhhdmluZyB0aGlzIGVuYWJsZWQKPiArICogaW4gbXVsdGktcGlw ZSBjb25maWd1cmF0aW9ucyBjYW4gY2F1c2UgaXNzdWVzIChzdWNoIGFzIHVuZGVycnVucyBjYXVz aW5nCj4gKyAqIGZ1bGwgc3lzdGVtIGhhbmdzKSwgYW5kIHRoZSBic3BlYyBhbHNvIHN1Z2dlc3Rz IHRoYXQgc29mdHdhcmUgZGlzYWJsZSBpdAo+ICsgKiB3aGVuIG1vcmUgdGhlbiBvbmUgcGlwZSBp cyBlbmFibGVkLgo+ICsgKi8KPiArc3RhdGljIGludAo+ICtza2xfZW5hYmxlX3NhZ3Yoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWlm IChJU19CUk9YVE9OKGRldl9wcml2KSkKPiArCQlyZXR1cm4gMDsKPiArCWlmIChkZXZfcHJpdi0+ c2tsX3NhZ3ZfZW5hYmxlZCkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwltdXRleF9sb2NrKCZkZXZf cHJpdi0+cnBzLmh3X2xvY2spOwo+ICsJRFJNX0RFQlVHX0tNUygiRW5hYmxpbmcgdGhlIFNBR1Zc biIpOwo+ICsKPiArCXJldCA9IHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2LCBHRU45 X1BDT0RFX1NBR1ZfQ09OVFJPTCwKPiArCQkJCSAgICAgIEdFTjlfU0FHVl9EWU5BTUlDX0ZSRVEp Owo+ICsJaWYgKCFyZXQpCj4gKwkJZGV2X3ByaXYtPnNrbF9zYWd2X2VuYWJsZWQgPSB0cnVlOwo+ ICsJZWxzZQo+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIGVuYWJsZSB0aGUgU0FHVlxuIik7Cj4g Kwo+ICsJLyogV2UgZG9uJ3QgbmVlZCB0byB3YWl0IGZvciBTQUdWIHdoZW4gZW5hYmxpbmcgKi8K PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiArCXJldHVybiByZXQ7 Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQKPiArc2tsX2Rpc2FibGVfc2FndihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCWludCByZXQgPSAwOwo+ICsJdW5zaWduZWQg bG9uZyB0aW1lb3V0Owo+ICsJdTMyIHRlbXA7Cj4gKwo+ICsJaWYgKElTX0JST1hUT04oZGV2X3By aXYpKQo+ICsJCXJldHVybiAwOwo+ICsJaWYgKCFkZXZfcHJpdi0+c2tsX3NhZ3ZfZW5hYmxlZCkK PiArCQlyZXR1cm4gMDsKPiArCj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2sp Owo+ICsJRFJNX0RFQlVHX0tNUygiRGlzYWJsaW5nIHRoZSBTQUdWXG4iKTsKPiArCj4gKwkvKiBi c3BlYyBzYXlzIHRvIGtlZXAgcmV0cnlpbmcgZm9yIGF0IGxlYXN0IDEgbXMgKi8KPiArCXRpbWVv dXQgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxKTsKPiArCWRvIHsKPiArCQlyZXQgPSBz YW5keWJyaWRnZV9wY29kZV93cml0ZShkZXZfcHJpdiwgR0VOOV9QQ09ERV9TQUdWX0NPTlRST0ws Cj4gKwkJCQkJICAgICAgR0VOOV9TQUdWX0RJU0FCTEUpOwo+ICsJCWlmIChyZXQpIHsKPiArCQkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gZGlzYWJsZSB0aGUgU0FHVlxuIik7Cj4gKwkJCWdvdG8gb3V0 Owo+ICsJCX0KPiArCj4gKwkJcmV0ID0gc2FuZHlicmlkZ2VfcGNvZGVfcmVhZChkZXZfcHJpdiwg R0VOOV9QQ09ERV9TQUdWX0NPTlRST0wsCj4gKwkJCQkJICAgICAmdGVtcCk7Cj4gKwkJaWYgKHJl dCkgewo+ICsJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBjaGVjayB0aGUgc3RhdHVzIG9mIHRoZSBT QUdWXG4iKTsKPiArCQkJZ290byBvdXQ7Cj4gKwkJfQo+ICsJfSB3aGlsZSAoISh0ZW1wICYgMHgx KSAmJiBqaWZmaWVzIDwgdGltZW91dCk7Cj4gKwo+ICsJaWYgKHRlbXAgJiAweDEpIHsKPiArCQlk ZXZfcHJpdi0+c2tsX3NhZ3ZfZW5hYmxlZCA9IGZhbHNlOwo+ICsJfSBlbHNlIHsKPiArCQlyZXQg PSAtMTsKPiArCQlEUk1fRVJST1IoIlJlcXVlc3QgdG8gZGlzYWJsZSBTQUdWIHRpbWVkIG91dFxu Iik7Cj4gKwl9Cj4gKwo+ICtvdXQ6Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdf bG9jayk7Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICBza2xfZGRi X2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJ CQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJCQkJICAgc3Ry dWN0IHNrbF9kZGJfZW50cnkgKmFsbG9jLCAvKiBvdXQgKi8KPiBAQCAtMzY4Niw2ICszNzg5LDEx IEBAIHN0YXRpYyB2b2lkIHNrbF93cml0ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJt Owo+ICAJc3RydWN0IGludGVsX2NydGMgKmNydGM7Cj4gIAo+ICsJaWYgKGRldl9wcml2LT5hY3Rp dmVfY3J0Y3MgPT0gMSkKPiArCQlza2xfZW5hYmxlX3NhZ3YoZGV2X3ByaXYpOwo+ICsJZWxzZQo+ ICsJCXNrbF9kaXNhYmxlX3NhZ3YoZGV2X3ByaXYpOwo+ICsKPiAgCWZvcl9lYWNoX2ludGVsX2Ny dGMoZGV2LCBjcnRjKSB7Cj4gIAkJaW50IGksIGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4 X2xldmVsKGRldik7Cj4gIAkJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+IEBAIC00MjI4 LDYgKzQzMzYsOCBAQCB2b2lkIHNrbF93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgCQkvKiBFYXN5L2NvbW1vbiBjYXNlOyBqdXN0IHNhbml0aXplIEREQiBub3cgaWYg ZXZlcnl0aGluZyBvZmYgKi8KPiAgCQltZW1zZXQoZGRiLCAwLCBzaXplb2YoKmRkYikpOwo+ICAJ fQo+ICsKPiArCXNrbF9zYWd2X2dldF9od19zdGF0ZShkZXZfcHJpdik7Cj4gIH0KPiAgCj4gIHN0 YXRpYyB2b2lkIGlsa19waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4gLS0gCj4gMi43LjQKPiAKCi0tIApNYXR0IFJvcGVyCkdyYXBoaWNzIFNvZnR3YXJlIEVuZ2lu ZWVyCklvVEcgUGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudApJbnRlbCBDb3Jwb3JhdGlv bgooOTE2KSAzNTYtMjc5NQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK