From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 01/22] drm/i915/icl: Introduce initial Icelake Workarounds Date: Fri, 4 May 2018 17:31:05 +0100 Message-ID: References: <1525293261-13613-1-git-send-email-oscar.mateo@intel.com> <1525293261-13613-2-git-send-email-oscar.mateo@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id EECAF6E900 for ; Fri, 4 May 2018 16:31:07 +0000 (UTC) In-Reply-To: <1525293261-13613-2-git-send-email-oscar.mateo@intel.com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Oscar Mateo , intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org Ck9uIDAyLzA1LzIwMTggMjE6MzQsIE9zY2FyIE1hdGVvIHdyb3RlOgo+IEluaGVyaXQgd29ya2Fy b3VuZHMgZnJvbSBwcmV2aW91cyBwbGF0Zm9ybXMgdGhhdCBhcmUgc3RpbGwgdmFsaWQgZm9yCj4g SWNlbGFrZS4KPiAKPiB2MjogR0VON19ST1dfQ0hJQ0tFTjIgaXMgbWFza2VkCj4gdjM6Cj4gICAg LSBTaW5jZSBpdCBoYXMgYmVlbiBmaXhlZCBhbHJlYWR5IGluIHVwc3RyZWFtLCByZW1vdmVkIHRo ZSBUT0RPCj4gICAgICBjb21tZW50IGFib3V0IFdBX1NFVF9CSVQgZm9yIFdhSW5QbGFjZURlY29t cHJlc3Npb25IYW5nLgo+ICAgIC0gU3F1YXNoZWQgd2l0aCB0aGlzIHBhdGNoOgo+ICAgICAgICBk cm0vaTkxNS9pY2w6IGFkZCBpY2VsYWtlX2luaXRfY2xvY2tfZ2F0aW5nKCkKPiAgICAgIGZyb20g UGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gICAgLSBTcXVhc2hlZCB3 aXRoIHRoaXMgcGF0Y2g6Cj4gICAgICAgIGRybS9pOTE1L2ljbDogV2FGb3JjZUVuYWJsZU5vbkNv aGVyZW50Cj4gICAgICBmcm9tIE9zY2FyIE1hdGVvIDxvc2Nhci5tYXRlb0BpbnRlbC5jb20+Cj4g ICAgLSBXYVB1c2hDb25zdGFudERlcmVmZXJlbmNlSG9sZERpc2FibGUgaXMgbm93IFdhXzE2MDQz NzA1ODUgYW5kCj4gICAgICBhcHBsaWVzIHRvIEIwIGFzIHdlbGwuCj4gICAgLSBXYVBpcGVDb250 cm9sQmVmb3JlM0RTdGF0ZVNhbXBsZVBhdHRlcm4gV0FCQiB3YXMgYmVpbmcgYXBwbGllZAo+ICAg ICAgdG8gSUNMIGluY29ycmVjdGx5Lgo+IHY0Ogo+ICAgIC0gV3JhcCB0aGUgY29tbWl0IG1lc3Nh Z2UKPiAgICAtIHMvZGV2X3ByaXYvcCB0byBwbGVhc2UgY2hlY2twYXRjaAo+IHY1OiBSZWJhc2Vk IG9uIHRvcCBvZiB0aGUgV0EgcmVmYWN0b3JpbmcKPiB2NjogUmViYXNlZCBvbiB0b3Agb2YgZnVy dGhlciB3aGl0ZWxpc3QgcmVnaXN0ZXJzIHJlZmFjdG9yaW5nIChNaWNoZWwpCj4gdjc6IEFkZGVk IFdhUnNGb3JjZXdha2VBZGREZWxheUZvckFjawo+IHY4OiBzL0lDTF9IRENfQ0hJQ0tFTjAvSUNM X0hEQ19NT0RFIChNaWthKQo+IAo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRl bC5jb20+Cj4gQ2M6IFRvbWFzeiBMaXMgPHRvbWFzei5saXNAaW50ZWwuY29tPgo+IENjOiBNaWth IEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiBPc2NhciBNYXRlbyA8b3NjYXIubWF0ZW9AaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICB8ICA5ICsrKysrKysKPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgfCAgNCArLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAgICAgfCAgMSArCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYyAgICAgICAgIHwgIDIgKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMgICAgICAgICAgfCAgNCArKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3VuY29yZS5jICAgICAgfCAgNyArKystLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfd29ya2Fyb3VuZHMuYyB8IDQ2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g ICA3IGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMTkzMTc2Yi4uN2EzYjBiMSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yNDY2LDYgKzI0NjYsMTUgQEAgc3RhdGljIGlubGlu ZSB1bnNpZ25lZCBpbnQgaTkxNV9zZ19zZWdtZW50X3NpemUodm9pZCkKPiAgICNkZWZpbmUgSVNf Q05MX1JFVklEKHAsIHNpbmNlLCB1bnRpbCkgXAo+ICAgCShJU19DQU5OT05MQUtFKHApICYmIElT X1JFVklEKHAsIHNpbmNlLCB1bnRpbCkpCj4gICAKPiArI2RlZmluZSBJQ0xfUkVWSURfQTAJCTB4 MAo+ICsjZGVmaW5lIElDTF9SRVZJRF9BMgkJMHgxCj4gKyNkZWZpbmUgSUNMX1JFVklEX0IwCQkw eDMKPiArI2RlZmluZSBJQ0xfUkVWSURfQjIJCTB4NAo+ICsjZGVmaW5lIElDTF9SRVZJRF9DMAkJ MHg1Cj4gKwo+ICsjZGVmaW5lIElTX0lDTF9SRVZJRChwLCBzaW5jZSwgdW50aWwpIFwKPiArCShJ U19JQ0VMQUtFKHApICYmIElTX1JFVklEKHAsIHNpbmNlLCB1bnRpbCkpCj4gKwo+ICAgLyoKPiAg ICAqIFRoZSBnZW5YIGRlc2lnbmF0aW9uIHR5cGljYWxseSByZWZlcnMgdG8gdGhlIHJlbmRlciBl bmdpbmUsIHNvIHJlbmRlcgo+ICAgICogY2FwYWJpbGl0eSByZWxhdGVkIGNoZWNrcyBzaG91bGQg dXNlIElTX0dFTiwgd2hpbGUgZGlzcGxheSBhbmQgb3RoZXIgY2hlY2tzCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMKPiBpbmRleCAyMWQ3MmY2Li4yMjFiODczIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBAQCAtMjE0MCwxMiArMjE0MCwxMiBAQCBzdGF0aWMg dm9pZCBndHRfd3JpdGVfd29ya2Fyb3VuZHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICAgCSAqIGNhbGxlZCBvbiBkcml2ZXIgbG9hZCBhbmQgYWZ0ZXIgYSBHUFUgcmVzZXQs IHNvIHlvdSBjYW4gcGxhY2UKPiAgIAkgKiB3b3JrYXJvdW5kcyBoZXJlIGV2ZW4gaWYgdGhleSBn ZXQgb3ZlcndyaXR0ZW4gYnkgR1BVIHJlc2V0Lgo+ICAgCSAqLwo+IC0JLyogV2FJbmNyZWFzZURl ZmF1bHRUTEJFbnRyaWVzOmNodixiZHcsc2tsLGJ4dCxrYmwsZ2xrLGNmbCxjbmwgKi8KPiArCS8q IFdhSW5jcmVhc2VEZWZhdWx0VExCRW50cmllczpjaHYsYmR3LHNrbCxieHQsa2JsLGdsayxjZmws Y25sLGljbCAqLwo+ICAgCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ICAgCQlJOTE1X1dS SVRFKEdFTjhfTDNfTFJBXzFfR1BHUFUsIEdFTjhfTDNfTFJBXzFfR1BHUFVfREVGQVVMVF9WQUxV RV9CRFcpOwo+ICAgCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ICAgCQlJOTE1 X1dSSVRFKEdFTjhfTDNfTFJBXzFfR1BHUFUsIEdFTjhfTDNfTFJBXzFfR1BHUFVfREVGQVVMVF9W QUxVRV9DSFYpOwo+IC0JZWxzZSBpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikgfHwgSVNfR0VOMTAo ZGV2X3ByaXYpKQo+ICsJZWxzZSBpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikgfHwgSVNfR0VOMTAo ZGV2X3ByaXYpIHx8IElTX0dFTjExKGRldl9wcml2KSkKPiAgIAkJSTkxNV9XUklURShHRU44X0wz X0xSQV8xX0dQR1BVLCBHRU45X0wzX0xSQV8xX0dQR1BVX0RFRkFVTFRfVkFMVUVfU0tMKTsKPiAg IAllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkKPiAgIAkJSTkxNV9XUklURShHRU44X0wz X0xSQV8xX0dQR1BVLCBHRU45X0wzX0xSQV8xX0dQR1BVX0RFRkFVTFRfVkFMVUVfQlhUKTsKClNv dW5kcyBsaWtlOgoKaWYgKElTX0JST0FEV0VMTCkKZWxzZSBpZiAoSVNfQ0hFUlJZVklFVykKZWxz ZSBpZiAoSVNfR0VOOV9MUCkKZWxzZSBpZiAoSVNfR0VOID49IDkpIC8qIEhlcmUncyB0aGUgaW1w cm92ZW1lbnQgKi8KCkp1c3QgYSBkcml2ZSBieSwgc29ycnkuIDopCgpSZWdhcmRzLAoKVHZydGtv Cgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGluZGV4IDE5N2M5NjYuLjQ1NDAwOWYgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtNzIzOCw2ICs3MjM4LDcgQEAgZW51bSB7Cj4g ICAvKiBHRU44IGNoaWNrZW4gKi8KPiAgICNkZWZpbmUgSERDX0NISUNLRU4wCQkJCV9NTUlPKDB4 NzMwMCkKPiAgICNkZWZpbmUgQ05MX0hEQ19DSElDS0VOMAkJCV9NTUlPKDB4RTVGMCkKPiArI2Rl ZmluZSBJQ0xfSERDX01PREUJCQkJX01NSU8oMHhFNUY0KQo+ICAgI2RlZmluZSAgSERDX0ZPUkNF X0NTUl9OT05fQ09IRVJFTlRfT1ZSX0RJU0FCTEUJKDE8PDE1KQo+ICAgI2RlZmluZSAgSERDX0ZF TkNFX0RFU1RfU0xNX0RJU0FCTEUJCSgxPDwxNCkKPiAgICNkZWZpbmUgIEhEQ19ET05PVF9GRVRD SF9NRU1fV0hFTl9NQVNLRUQJKDE8PDExKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5k ZXggNTEzYWVlNi4uZDVmYWI0NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAg LTE2NjEsNiArMTY2MSw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF93b3JrYXJvdW5kX2JiKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4gICAK PiAgIAlzd2l0Y2ggKElOVEVMX0dFTihlbmdpbmUtPmk5MTUpKSB7Cj4gKwljYXNlIDExOgo+ICsJ CXJldHVybiAwOwo+ICAgCWNhc2UgMTA6Cj4gICAJCXdhX2JiX2ZuWzBdID0gZ2VuMTBfaW5pdF9p bmRpcmVjdGN0eF9iYjsKPiAgIAkJd2FfYmJfZm5bMV0gPSBOVUxMOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwo+IGluZGV4IDQxMjYxMzIuLjljNmU0OGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKPiBAQCAtOTE5MCw3ICs5MTkwLDkgQEAgc3RhdGljIHZvaWQgbm9wX2luaXRfY2xvY2tf Z2F0aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgICAqLwo+ICAgdm9p ZCBpbnRlbF9pbml0X2Nsb2NrX2dhdGluZ19ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gICB7Cj4gLQlpZiAoSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpCj4gKwlpZiAo SVNfSUNFTEFLRShkZXZfcHJpdikpCj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdF9jbG9ja19n YXRpbmcgPSBub3BfaW5pdF9jbG9ja19nYXRpbmc7Cj4gKwllbHNlIGlmIChJU19DQU5OT05MQUtF KGRldl9wcml2KSkKPiAgIAkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdF9jbG9ja19nYXRpbmcgPSBj bmxfaW5pdF9jbG9ja19nYXRpbmc7Cj4gICAJZWxzZSBpZiAoSVNfQ09GRkVFTEFLRShkZXZfcHJp dikpCj4gICAJCWRldl9wcml2LT5kaXNwbGF5LmluaXRfY2xvY2tfZ2F0aW5nID0gY2ZsX2luaXRf Y2xvY2tfZ2F0aW5nOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91 bmNvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gaW5kZXggZDZl MjBmMC4uNDQ4MjkzZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91 bmNvcmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gQEAg LTEzOSw3ICsxMzksOSBAQCBlbnVtIGFja190eXBlIHsKPiAgIAkgKiBpbiB0aGUgaG9wZSB0aGF0 IHRoZSBvcmlnaW5hbCBhY2sgd2lsbCBiZSBkZWxpdmVyZWQgYWxvbmcgd2l0aAo+ICAgCSAqIHRo ZSBmYWxsYmFjayBhY2suCj4gICAJICoKPiAtCSAqIFRoaXMgd29ya2Fyb3VuZCBpcyBkZXNjcmli ZWQgaW4gSFNERVMgIzE2MDQyNTQ1MjQKPiArCSAqIFRoaXMgd29ya2Fyb3VuZCBpcyBkZXNjcmli ZWQgaW4gSFNERVMgIzE2MDQyNTQ1MjQgYW5kIGl0J3Mga25vd24gYXM6Cj4gKwkgKiBXYVJzRm9y Y2V3YWtlQWRkRGVsYXlGb3JBY2s6c2tsLGJ4dCxrYmwsZ2xrLGNmbCxjbmwsaWNsCj4gKwkgKiBh bHRob3VnaCB0aGUgbmFtZSBpcyBhIGJpdCBtaXNsZWFkaW5nLgo+ICAgCSAqLwo+ICAgCj4gICAJ cGFzcyA9IDE7Cj4gQEAgLTEzOTQsNyArMTM5Niw4IEBAIHN0YXRpYyB2b2lkIGludGVsX3VuY29y ZV9md19kb21haW5zX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAg CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Cj4gICAJCWludCBpOwo+ICAgCj4gLQkJ ZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX2dldCA9IGZ3X2RvbWFpbnNfZ2V0Owo+ ICsJCWRldl9wcml2LT51bmNvcmUuZnVuY3MuZm9yY2Vfd2FrZV9nZXQgPQo+ICsJCQlmd19kb21h aW5zX2dldF93aXRoX2ZhbGxiYWNrOwo+ICAgCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLmZvcmNl X3dha2VfcHV0ID0gZndfZG9tYWluc19wdXQ7Cj4gICAJCWZ3X2RvbWFpbl9pbml0KGRldl9wcml2 LCBGV19ET01BSU5fSURfUkVOREVSLAo+ICAgCQkJICAgICAgIEZPUkNFV0FLRV9SRU5ERVJfR0VO OSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd29ya2Fyb3VuZHMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dvcmthcm91bmRzLmMKPiBpbmRleCBlYzlk MzQwLi45YTc5M2FjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3dv cmthcm91bmRzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF93b3JrYXJvdW5k cy5jCj4gQEAgLTQ0MSw2ICs0NDEsMjcgQEAgc3RhdGljIGludCBjbmxfY3R4X3dvcmthcm91bmRz X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCXJldHVybiAwOwo+ ICAgfQo+ICAgCj4gK3N0YXRpYyBpbnQgaWNsX2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJLyogV2FfMTYwNDM3MDU4NTppY2wg KHByZS1wcm9kKQo+ICsJICogRm9ybWVybHkga25vd24gYXMgV2FQdXNoQ29uc3RhbnREZXJlZmVy ZW5jZUhvbGREaXNhYmxlCj4gKwkgKi8KPiArCWlmIChJU19JQ0xfUkVWSUQoZGV2X3ByaXYsIElD TF9SRVZJRF9BMCwgSUNMX1JFVklEX0IwKSkKPiArCQlXQV9TRVRfQklUX01BU0tFRChHRU43X1JP V19DSElDS0VOMiwKPiArCQkJCSAgUFVTSF9DT05TVEFOVF9ERVJFRl9ESVNBQkxFKTsKPiArCj4g KwkvKiBXYUZvcmNlRW5hYmxlTm9uQ29oZXJlbnQ6aWNsCj4gKwkgKiBUaGlzIGlzIG5vdCB0aGUg c2FtZSB3b3JrYXJvdW5kIGFzIGluIGVhcmx5IEdlbjkgcGxhdGZvcm1zLCB3aGVyZQo+ICsJICog bGFja2luZyB0aGlzIGNvdWxkIGNhdXNlIHN5c3RlbSBoYW5ncywgYnV0IGNvaGVyZW5jeSBwZXJm b3JtYW5jZQo+ICsJICogb3ZlcmhlYWQgaXMgaGlnaCBhbmQgb25seSBhIGZldyBjb21wdXRlIHdv cmtsb2FkcyByZWFsbHkgbmVlZCBpdAo+ICsJICogKHRoZSByZWdpc3RlciBpcyB3aGl0ZWxpc3Rl ZCBpbiBoYXJkd2FyZSBub3csIHNvIFVNRHMgY2FuIG9wdCBpbgo+ICsJICogZm9yIGNvaGVyZW5j eSBpZiB0aGV5IGhhdmUgYSBnb29kIHJlYXNvbikuCj4gKwkgKi8KPiArCVdBX1NFVF9CSVRfTUFT S0VEKElDTF9IRENfTU9ERSwgSERDX0ZPUkNFX05PTl9DT0hFUkVOVCk7Cj4gKwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArCj4gICBpbnQgaW50ZWxfY3R4X3dvcmthcm91bmRzX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+ICAgCWludCBlcnIgPSAwOwo+IEBAIC00 NjUsNiArNDg2LDggQEAgaW50IGludGVsX2N0eF93b3JrYXJvdW5kc19pbml0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAkJZXJyID0gY2ZsX2N0eF93b3JrYXJvdW5kc19p bml0KGRldl9wcml2KTsKPiAgIAllbHNlIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSkKPiAg IAkJZXJyID0gY25sX2N0eF93b3JrYXJvdW5kc19pbml0KGRldl9wcml2KTsKPiArCWVsc2UgaWYg KElTX0lDRUxBS0UoZGV2X3ByaXYpKQo+ICsJCWVyciA9IGljbF9jdHhfd29ya2Fyb3VuZHNfaW5p dChkZXZfcHJpdik7Cj4gICAJZWxzZQo+ICAgCQlNSVNTSU5HX0NBU0UoSU5URUxfR0VOKGRldl9w cml2KSk7Cj4gICAJaWYgKGVycikKPiBAQCAtNjYzLDYgKzY4NiwyMSBAQCBzdGF0aWMgdm9pZCBj bmxfZ3Rfd29ya2Fyb3VuZHNfYXBwbHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ICAgCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUoR0VOOV9GRlNDX1BFUkNUWF9QUkVFTVBUX0NU UkwpKTsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgdm9pZCBpY2xfZ3Rfd29ya2Fyb3VuZHNfYXBwbHko c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwkvKiBUaGlzIGlzIG5v dCBhbiBXYS4gRW5hYmxlIGZvciBiZXR0ZXIgaW1hZ2UgcXVhbGl0eSAqLwo+ICsJSTkxNV9XUklU RShfM0RfQ0hJQ0tFTjMsCj4gKwkJICAgX01BU0tFRF9CSVRfRU5BQkxFKF8zRF9DSElDS0VOM19B QV9MSU5FX1FVQUxJVFlfRklYX0VOQUJMRSkpOwo+ICsKPiArCS8qIFdhSW5QbGFjZURlY29tcHJl c3Npb25IYW5nOmljbCAqLwo+ICsJSTkxNV9XUklURShHRU45X0dBTVRfRUNPX1JFR19SV19JQSwg KEk5MTVfUkVBRChHRU45X0dBTVRfRUNPX1JFR19SV19JQSkgfAo+ICsJCQkJCSAgICAgR0FNVF9F Q09fRU5BQkxFX0lOX1BMQUNFX0RFQ09NUFJFU1MpKTsKPiArCj4gKwkvKiBXYVBpcGVsaW5lRmx1 c2hDb2hlcmVudExpbmVzOmljbCAqLwo+ICsJSTkxNV9XUklURShHRU44X0wzU1FDUkVHNCwgKEk5 MTVfUkVBRChHRU44X0wzU1FDUkVHNCkgfAo+ICsJCQkJICAgIEdFTjhfTFFTQ19GTFVTSF9DT0hF UkVOVF9MSU5FUykpOwo+ICt9Cj4gKwo+ICAgdm9pZCBpbnRlbF9ndF93b3JrYXJvdW5kc19hcHBs eShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICB7Cj4gICAJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPCA4KQo+IEBAIC02ODMsNiArNzIxLDggQEAgdm9pZCBpbnRlbF9ndF93 b3JrYXJvdW5kc19hcHBseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJ CWNmbF9ndF93b3JrYXJvdW5kc19hcHBseShkZXZfcHJpdik7Cj4gICAJZWxzZSBpZiAoSVNfQ0FO Tk9OTEFLRShkZXZfcHJpdikpCj4gICAJCWNubF9ndF93b3JrYXJvdW5kc19hcHBseShkZXZfcHJp dik7Cj4gKwllbHNlIGlmIChJU19JQ0VMQUtFKGRldl9wcml2KSkKPiArCQlpY2xfZ3Rfd29ya2Fy b3VuZHNfYXBwbHkoZGV2X3ByaXYpOwo+ICAgCWVsc2UKPiAgIAkJTUlTU0lOR19DQVNFKElOVEVM X0dFTihkZXZfcHJpdikpOwo+ICAgfQo+IEBAIC03NjEsNiArODAxLDEwIEBAIHN0YXRpYyB2b2lk IGNubF93aGl0ZWxpc3RfYnVpbGQoc3RydWN0IHdoaXRlbGlzdCAqdykKPiAgIAl3aGl0ZWxpc3Rf cmVnKHcsIEdFTjhfQ1NfQ0hJQ0tFTjEpOwo+ICAgfQo+ICAgCj4gK3N0YXRpYyB2b2lkIGljbF93 aGl0ZWxpc3RfYnVpbGQoc3RydWN0IHdoaXRlbGlzdCAqdykKPiArewo+ICt9Cj4gKwo+ICAgc3Rh dGljIHN0cnVjdCB3aGl0ZWxpc3QgKndoaXRlbGlzdF9idWlsZChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUsCj4gICAJCQkJCSBzdHJ1Y3Qgd2hpdGVsaXN0ICp3KQo+ICAgewo+IEBAIC03 ODksNiArODMzLDggQEAgc3RhdGljIHN0cnVjdCB3aGl0ZWxpc3QgKndoaXRlbGlzdF9idWlsZChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICAJCWNmbF93aGl0ZWxpc3RfYnVpbGQo dyk7Cj4gICAJZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShpOTE1KSkKPiAgIAkJY25sX3doaXRlbGlz dF9idWlsZCh3KTsKPiArCWVsc2UgaWYgKElTX0lDRUxBS0UoaTkxNSkpCj4gKwkJaWNsX3doaXRl bGlzdF9idWlsZCh3KTsKPiAgIAllbHNlCj4gICAJCU1JU1NJTkdfQ0FTRShJTlRFTF9HRU4oaTkx NSkpOwo+ICAgCj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=