From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v5 1/6] drm/i915/skl: Add support for the SAGV, fix underrun hangs Date: Tue, 2 Aug 2016 14:05:27 -0700 Message-ID: <20160802210527.GX32025@intel.com> References: <1470163975-30467-1-git-send-email-cpaul@redhat.com> <1470163975-30467-2-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: <1470163975-30467-2-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: dri-devel@lists.freedesktop.org, David Airlie , Daniel Vetter , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBdWcgMDIsIDIwMTYgYXQgMDI6NTI6NDlQTSAtMDQwMCwgTHl1ZGUgd3JvdGU6Cj4g 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+IENoYW5nZXMgc2luY2UgdjU6Cj4g IC0gRG9uJ3QgdXNlIGlzX3Bvd2VyX29mXzIuIE1ha2VzIHRoaW5ncyBjb25mdXNpbmcKPiAgLSBE b24ndCB1c2UgdGhlIG9sZCBzdGF0ZSB0byBmaWd1cmUgb3V0IHdoZXRoZXIgb3Igbm90IHRvCj4g ICAgZW5hYmxlL2Rpc2FibGUgdGhlIHNhZ3YsIHVzZSB0aGUgbmV3IG9uZQo+ICAtIFNwbGl0IHRo ZSBsb29wIGluIHNrbF9kaXNhYmxlX3NhZ3YgaW50byBpdCdzIG93biBmdW5jdGlvbgo+IENoYW5n ZXMgc2luY2UgdjQ6Cj4gIC0gVXNlIGlzX3Bvd2VyX29mXzIgYWdhaW5zdCBhY3RpdmVfY3J0Y3Mg dG8gY2hlY2sgd2hldGhlciB3ZSBoYXZlID4gMQo+ICAgIHBpcGUgZW5hYmxlZAo+ICAtIEZpeCBz a2xfc2Fndl9nZXRfaHdfc3RhdGUoKTogKHRlbXAgJiAweDEpIGluZGljYXRlcyBkaXNhYmxlZCwg MHgwCj4gICAgZW5hYmxlZAo+ICAtIENhbGwgc2tsX3NhZ3ZfZW5hYmxlL2Rpc2FibGUoKSBmcm9t IHByZS9wb3N0LXBsYW5lIHVwZGF0ZXMKPiBDaGFuZ2VzIHNpbmNlIHYzOgo+ICAtIFVzZSB0aW1l X2JlZm9yZSgpIHRvIGNvbXBhcmUgdGltZW91dCB0byBqaWZmaWVzCj4gQ2hhbmdlcyBzaW5jZSB2 MjoKPiAgLSBSZWFsbHkgYXBwbHkgbWlub3Igc3R5bGUgbml0cGlja3MgdG8gcGF0Y2ggdGhpcyB0 aW1lCj4gQ2hhbmdlcyBzaW5jZSB2MToKPiAgLSBBZGRlZCBjb21tZW50cyBhYm91dCB0aGlzIHBy b2JhYmx5IGJlaW5nIG9uZSBvZiB0aGUgcmVxdWlyZW1lbnRzIHRvCj4gICAgZml4aW5nIFNreWxh a2UncyB3YXRlcm1hcmsgaXNzdWVzCj4gIC0gTWlub3Igc3R5bGUgbml0cGlja3MgZnJvbSBNYXR0 IFJvcGVyCj4gIC0gRGlzYWJsZSB0aGVzZSBmdW5jdGlvbnMgb24gQnJveHRvbiwgc2luY2UgaXQg ZG9lc24ndCBoYXZlIGFuIFNBR1YKPiAKPiBSZXZpZXdlZC1ieTogTWF0dCBSb3BlciA8bWF0dGhl dy5kLnJvcGVyQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBMeXVkZSA8Y3BhdWxAcmVkaGF0 LmNvbT4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiBDYzog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogc3Rh YmxlQHZnZXIua2VybmVsLm9yZwo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICAgfCAgIDIgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAg fCAgIDUgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDEyICsr KysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAyICsKPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgIHwgMTEyICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKykK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA2NWFkYTVkLi44NzAxOGQzIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTE5NjIsNiArMTk2Miw4IEBAIHN0cnVjdCBk cm1faTkxNV9wcml2YXRlIHsKPiAgCXN0cnVjdCBpOTE1X3N1c3BlbmRfc2F2ZWRfcmVnaXN0ZXJz IHJlZ2ZpbGU7Cj4gIAlzdHJ1Y3Qgdmx2X3MwaXhfc3RhdGUgdmx2X3MwaXhfc3RhdGU7Cj4gIAo+ ICsJYm9vbCBza2xfc2Fndl9lbmFibGVkOwo+ICsKPiAgCXN0cnVjdCB7Cj4gIAkJLyoKPiAgCQkg KiBSYXcgd2F0ZXJtYXJrIGxhdGVuY3kgdmFsdWVzOgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ IGluZGV4IDJmOTNkNGEuLjVmYjFjNjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBA QCAtNzE3MCw2ICs3MTcwLDExIEBAIGVudW0gewo+ICAjZGVmaW5lICAgSFNXX1BDT0RFX0RFX1dS SVRFX0ZSRVFfUkVRCQkweDE3Cj4gICNkZWZpbmUgICBESVNQTEFZX0lQU19DT05UUk9MCQkJMHgx OQo+ICAjZGVmaW5lCSAgSFNXX1BDT0RFX0RZTkFNSUNfRFVUWV9DWUNMRV9DT05UUk9MCTB4MUEK PiArI2RlZmluZSAgIEdFTjlfUENPREVfU0FHVl9DT05UUk9MCQkweDIxCj4gKyNkZWZpbmUgICAg IEdFTjlfU0FHVl9ESVNBQkxFCQkJMHgwCj4gKyNkZWZpbmUgICAgIEdFTjlfU0FHVl9MT1dfRlJF UQkJCTB4MQo+ICsjZGVmaW5lICAgICBHRU45X1NBR1ZfSElHSF9GUkVRCQkJMHgyCj4gKyNkZWZp bmUgICAgIEdFTjlfU0FHVl9EWU5BTUlDX0ZSRVEgICAgICAgICAgICAgIDB4Mwo+ICAjZGVmaW5l IEdFTjZfUENPREVfREFUQQkJCQlfTU1JTygweDEzODEyOCkKPiAgI2RlZmluZSAgIEdFTjZfUENP REVfRlJFUV9JQV9SQVRJT19TSElGVAk4Cj4gICNkZWZpbmUgICBHRU42X1BDT0RFX0ZSRVFfUklO R19SQVRJT19TSElGVAkxNgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRl eCBhOGU4Y2M4Li43NmJhNzlmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+IEBAIC00NTY1LDYgKzQ1NjUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3N0X3BsYW5lX3Vw ZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gIAlzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQo+ICAJCXRvX2ludGVsX2NydGNfc3RhdGUo Y3J0Yy0+YmFzZS5zdGF0ZSk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFz ZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRl dik7Cj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5ID0gY3J0Yy0+YmFzZS5wcmltYXJ5Owo+ ICAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3ByaV9zdGF0ZSA9Cj4gIAkJZHJtX2F0b21p Y19nZXRfZXhpc3RpbmdfcGxhbmVfc3RhdGUob2xkX3N0YXRlLCBwcmltYXJ5KTsKPiBAQCAtNDU4 OSw2ICs0NTkwLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+ICAJCSAgICAgIW9sZF9wcmltYXJ5 X3N0YXRlLT52aXNpYmxlKSkKPiAgCQkJaW50ZWxfcG9zdF9lbmFibGVfcHJpbWFyeSgmY3J0Yy0+ YmFzZSk7Cj4gIAl9Cj4gKwo+ICsJaWYgKGh3ZWlnaHQzMihkZXZfcHJpdi0+YWN0aXZlX2NydGNz KSA8PSAxKQo+ICsJCXNrbF9lbmFibGVfc2FndihkZXZfcHJpdik7CgpUaGVyZSBtaWdodCBiZSBh IHNsaWdodGx5IGJldHRlciBwbGFjZSB0byBoYW5kbGUgdGhpczsgc2VlIGNvbW1lbnQKYmVsb3cu Cgo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKPiBAQCAtNDY0OSw2ICs0NjUzLDE0IEBA IHN0YXRpYyB2b2lkIGludGVsX3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm9sZF9jcnRjX3N0YXRlKQo+ICAJfQo+ICAKPiAgCS8qCj4gKwkgKiBTS0wgd29ya2Fyb3Vu ZDogYnNwZWMgcmVjb21tZW5kcyB3ZSBkaXNhYmxlIHRoZSBTQUdWIHdoZW4gd2UgaGF2ZQo+ICsJ ICogbW9yZSB0aGVuIG9uZSBwaXBlIGVuYWJsZWQKPiArCSAqLwo+ICsJaWYgKHBpcGVfY29uZmln LT5iYXNlLmFjdGl2ZSAmJgo+ICsJICAgIGh3ZWlnaHQzMihkZXZfcHJpdi0+YWN0aXZlX2NydGNz IHwgZHJtX2NydGNfbWFzaygmY3J0Yy0+YmFzZSkpID4gMSkKPiArCQlza2xfZGlzYWJsZV9zYWd2 KGRldl9wcml2KTsKCkFzIEhhbnMgcG9pbnRlZCBvdXQsIHRoaXMgZG9lc24ndCBsb29rIHJpZ2h0 LiAgSSdtIGd1ZXNzaW5nIHlvdSdyZQp0cnlpbmcgdG8gZ3VhcmQgYWdhaW5zdCB0aGUgY2FzZSB3 aGVyZSB0aGVyZSdzIG5vIGludGVyc2VjdGlvbiBiZXR3ZWVuCnRoZSBzdGFydGluZyBwaXBlIHVz YWdlIGFuZCB0aGUgZmluYWwgcGlwZSB1c2FnZT8gIEUuZy4sIG9ubHkgcGlwZSBBCmFjdGl2ZSBi ZWZvcmUgY29tbWl0LCBvbmx5IHBpcGUgQiBhY3RpdmUgYWZ0ZXIgY29tbWl0LCBhbmQgeW91J3Jl CndvcnJpZWQgdGhlcmUgbWlnaHQgYmUgYSBicmllZiBwb2ludCB3aGVyZSBib3RoIEEgYW5kIEIg YXJlIG9uIHRvZ2V0aGVyPwpJIGRvbid0IHRoaW5rIHRoaXMgc2hvdWxkIHJlYWxseSBtYXR0ZXIg c2luY2Ugd2UgcG93ZXIgZXZlcnl0aGluZwpvbGQtY2hhbmdpbmcgZG93biBiZWZvcmUgcG93ZXJp bmcgYW55dGhpbmcgbmV3LWNoYW5naW5nIHVwLiAgU28gSSB0aGluawphbGwgd2UgcmVhbGx5IG5l ZWQgdG8gY2FyZSBhYm91dCBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIGlzIGhvdyBtYW55CkNSVEMn cyB0aGVyZSBhcmUgaW4gdGhlIGZpbmFsIHN0YXRlLgoKSXQgc2VlbXMgbGlrZSBhIG1vcmUgbmF0 dXJhbCBwbGFjZSB0byBwbGFjZSB0byBoYW5kbGUgZW5hYmxlL2Rpc2FibGUKd291bGQgYmUgaW4g dGhlICdpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpJyBibG9ja3Mgb2YKaW50ZWxfYXRvbWljX2Nv bW1pdF90YWlsKCkgKHNpbmNlIG9ubHkgYSBtb2Rlc2V0IG9wZXJhdGlvbiBjb3VsZCBjaGFuZ2UK dGhlIG51bWJlciBvZiBDUlRDJ3MgaW4gdXNlIHRvIHRyaWdnZXIgYSBTQUdWIHRvZ2dsZSkuICBU aGF0IGFsc28gaGFzCnRoZSBzbGlnaHQgYmVuZWZpdCBvZiBvbmx5IGdldHRpbmcgcnVuIG9uY2Ug Zm9yIHRoZSBhdG9taWMgdHJhbnNhY3Rpb24KcmF0aGVyIHRoYW4gb25jZSBmb3IgZWFjaCBDUlRD IChhbmQgeW91IGNhbiBqdXN0IGRvIGEgc2ltcGxlIHRlc3Qgb2YKaHdlaWdodChpbnRlbF9zdGF0 ZS0+YWN0aXZlX2NydGNzKSB0byBmaWd1cmUgb3V0IGhvdyBtYW55IENSVEMncyBhcmUKZ29pbmcg dG8gYmUgb24gYWZ0ZXIgdGhlIHRyYW5zYWN0aW9uIGNvbXBsZXRlcy4KCgo+ICsKPiArCS8qCj4g IAkgKiBJZiB3ZSdyZSBkb2luZyBhIG1vZGVzZXQsIHdlJ3JlIGRvbmUuICBObyBuZWVkIHRvIGRv IGFueSBwcmUtdmJsYW5rCj4gIAkgKiB3YXRlcm1hcmsgcHJvZ3JhbW1pbmcgaGVyZS4KPiAgCSAq Lwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNTBjZGM4OS4uNmIwNTMyYSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTE3MDksNiArMTcwOSw4IEBAIHZvaWQg aWxrX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgdm9pZCBza2xf d21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICB2b2lkIHNrbF9kZGJf Z2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJICBz dHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIgLyogb3V0ICovKTsKPiAraW50IHNrbF9lbmFi bGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICtpbnQgc2tsX2Rp c2FibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB1aW50MzJf dCBpbGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZyk7Cj4gIGJvb2wgaWxrX2Rpc2FibGVfbHBfd20oc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Cj4gIGludCBzYW5pdGl6ZV9yYzZfb3B0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgaW50IGVuYWJsZV9yYzYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4 IGY2MTBiNzEuLjY4NzIxYTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtMjg4 NCw2ICsyODg0LDExNiBAQCBza2xfd21fcGxhbmVfaWQoY29uc3Qgc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSkKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQKPiArc2tsX3NhZ3ZfZ2V0X2h3X3N0YXRl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJdTMyIHRlbXA7Cj4g KwlpbnQgcmV0Owo+ICsKPiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKPiArCQlyZXR1cm47 Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiArCXJldCA9IHNh bmR5YnJpZGdlX3Bjb2RlX3JlYWQoZGV2X3ByaXYsIEdFTjlfUENPREVfU0FHVl9DT05UUk9MLCAm dGVtcCk7Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gKwo+ICsJ aWYgKCFyZXQpIHsKPiArCQlkZXZfcHJpdi0+c2tsX3NhZ3ZfZW5hYmxlZCA9ICEodGVtcCAmIDB4 MSk7Cj4gKwl9IGVsc2Ugewo+ICsJCS8qCj4gKwkJICogSWYgZm9yIHNvbWUgcmVhc29uIHdlIGNh bid0IGFjY2VzcyB0aGUgU0FHViBzdGF0ZSwgZm9sbG93Cj4gKwkJICogdGhlIGJzcGVjIGFuZCBh c3N1bWUgaXQncyBlbmFibGVkCj4gKwkJICovCj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZ2V0 IFNBR1Ygc3RhdGUsIGFzc3VtaW5nIGVuYWJsZWRcbiIpOwo+ICsJCWRldl9wcml2LT5za2xfc2Fn dl9lbmFibGVkID0gdHJ1ZTsKPiArCX0KPiArfQo+ICsKPiArLyoKPiArICogU0FHViBkeW5hbWlj YWxseSBhZGp1c3RzIHRoZSBzeXN0ZW0gYWdlbnQgdm9sdGFnZSBhbmQgY2xvY2sgZnJlcXVlbmNp ZXMKPiArICogZGVwZW5kaW5nIG9uIHBvd2VyIGFuZCBwZXJmb3JtYW5jZSByZXF1aXJlbWVudHMu IFRoZSBkaXNwbGF5IGVuZ2luZSBhY2Nlc3MKPiArICogdG8gc3lzdGVtIG1lbW9yeSBpcyBibG9j a2VkIGR1cmluZyB0aGUgYWRqdXN0bWVudCB0aW1lLiBIYXZpbmcgdGhpcyBlbmFibGVkCj4gKyAq IGluIG11bHRpLXBpcGUgY29uZmlndXJhdGlvbnMgY2FuIGNhdXNlIGlzc3VlcyAoc3VjaCBhcyB1 bmRlcnJ1bnMgY2F1c2luZwo+ICsgKiBmdWxsIHN5c3RlbSBoYW5ncyksIGFuZCB0aGUgYnNwZWMg YWxzbyBzdWdnZXN0cyB0aGF0IHNvZnR3YXJlIGRpc2FibGUgaXQKPiArICogd2hlbiBtb3JlIHRo ZW4gb25lIHBpcGUgaXMgZW5hYmxlZC4KPiArICovCj4gK2ludAo+ICtza2xfZW5hYmxlX3NhZ3Yo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsK PiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKPiArCQlyZXR1cm4gMDsKPiArCWlmIChkZXZf cHJpdi0+c2tsX3NhZ3ZfZW5hYmxlZCkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwltdXRleF9sb2Nr KCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsJRFJNX0RFQlVHX0tNUygiRW5hYmxpbmcgdGhl IFNBR1ZcbiIpOwo+ICsKPiArCXJldCA9IHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2 LCBHRU45X1BDT0RFX1NBR1ZfQ09OVFJPTCwKPiArCQkJCSAgICAgIEdFTjlfU0FHVl9EWU5BTUlD X0ZSRVEpOwo+ICsJaWYgKCFyZXQpCj4gKwkJZGV2X3ByaXYtPnNrbF9zYWd2X2VuYWJsZWQgPSB0 cnVlOwo+ICsJZWxzZQo+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIGVuYWJsZSB0aGUgU0FHVlxu Iik7Cj4gKwo+ICsJLyogV2UgZG9uJ3QgbmVlZCB0byB3YWl0IGZvciBTQUdWIHdoZW4gZW5hYmxp bmcgKi8KPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiArCXJldHVy biByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQKPiArc2tsX2RvX3NhZ3ZfZGlzYWJsZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCWludCByZXQ7Cj4gKwl1aW50 MzJfdCB0ZW1wOwo+ICsKPiArCXJldCA9IHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2 LCBHRU45X1BDT0RFX1NBR1ZfQ09OVFJPTCwKPiArCQkJCSAgICAgIEdFTjlfU0FHVl9ESVNBQkxF KTsKPiArCWlmIChyZXQpIHsKPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byBkaXNhYmxlIHRoZSBT QUdWXG4iKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldCA9IHNhbmR5YnJpZGdl X3Bjb2RlX3JlYWQoZGV2X3ByaXYsIEdFTjlfUENPREVfU0FHVl9DT05UUk9MLAo+ICsJCQkJICAg ICAmdGVtcCk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gY2hlY2sg dGhlIHN0YXR1cyBvZiB0aGUgU0FHVlxuIik7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4g KwlyZXR1cm4gdGVtcCAmIDB4MTsKPiArfQo+ICsKPiAraW50Cj4gK3NrbF9kaXNhYmxlX3NhZ3Yo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlpbnQgcmV0LCByZXN1 bHQ7Cj4gKwo+ICsJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+ICsJCXJldHVybiAwOwo+ICsJ aWYgKCFkZXZfcHJpdi0+c2tsX3NhZ3ZfZW5hYmxlZCkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlt dXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsJRFJNX0RFQlVHX0tNUygiRGlz YWJsaW5nIHRoZSBTQUdWXG4iKTsKPiArCj4gKwkvKiBic3BlYyBzYXlzIHRvIGtlZXAgcmV0cnlp bmcgZm9yIGF0IGxlYXN0IDEgbXMgKi8KPiArCXJldCA9IHdhaXRfZm9yKHJlc3VsdCA9IHNrbF9k b19zYWd2X2Rpc2FibGUoZGV2X3ByaXYpLCAxKTsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PnJwcy5od19sb2NrKTsKPiArCj4gKwlpZiAocmV0ID09IC1FVElNRURPVVQpCj4gKwkJRFJNX0VS Uk9SKCJSZXF1ZXN0IHRvIGRpc2FibGUgU0FHViB0aW1lZCBvdXRcbiIpOwo+ICsJZWxzZSB7CgpN aW5vciBzdHlsZSBuaXRwaWNrOyBpZiBlaXRoZXIgYnJhbmNoIG9mIGFuIGlmL2Vsc2UgbmVlZHMg YnJhY2VzLCB0aGV5CmJvdGggbmVlZCBicmFjZXMuCgo+ICsJCWlmIChyZXN1bHQgPT0gMSkKCllv dSd2ZSBnb3QgYSBmZXcgdXNlcyBvZiAweDEgYXMgYSBtYWdpYyBudW1iZXIgdGhhdCBhcmUgY29y cmVjdCwgYnV0CnNlZW0gY291bnRlcmludHVpdGl2ZSB0byBzb21lb25lIG5vdCBsb29raW5nIGF0 IHRoZSBic3BlYyAoMT1vZmYpLgpNYXliZSByZXBsYWNpbmcgdGhlc2Ugd2l0aCBhICNkZWZpbmUg bWlnaHQgaGVscCBjbGFyaWZ5IHNsaWdodGx5PwoKCk1hdHQKCj4gKwkJCWRldl9wcml2LT5za2xf c2Fndl9lbmFibGVkID0gZmFsc2U7Cj4gKwo+ICsJCXJldCA9IHJlc3VsdDsKPiArCX0KPiArCj4g KwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICBza2xfZGRiX2dldF9waXBl X2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJCQkJICAgc3RydWN0IHNrbF9k ZGJfZW50cnkgKmFsbG9jLCAvKiBvdXQgKi8KPiBAQCAtNDIzNiw2ICs0MzQ2LDggQEAgdm9pZCBz a2xfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJLyogRWFzeS9j b21tb24gY2FzZTsganVzdCBzYW5pdGl6ZSBEREIgbm93IGlmIGV2ZXJ5dGhpbmcgb2ZmICovCj4g IAkJbWVtc2V0KGRkYiwgMCwgc2l6ZW9mKCpkZGIpKTsKPiAgCX0KPiArCj4gKwlza2xfc2Fndl9n ZXRfaHdfc3RhdGUoZGV2X3ByaXYpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbGtfcGlwZV93 bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+IC0tIAo+IDIuNy40Cj4gCgot LSAKTWF0dCBSb3BlcgpHcmFwaGljcyBTb2Z0d2FyZSBFbmdpbmVlcgpJb1RHIFBsYXRmb3JtIEVu YWJsaW5nICYgRGV2ZWxvcG1lbnQKSW50ZWwgQ29ycG9yYXRpb24KKDkxNikgMzU2LTI3OTUKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==