From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 1/7] drm/i915: Don't use MI_STORE_DWORD_IMM on Sandybridge/vcs Date: Fri, 18 Aug 2017 14:07:20 +0300 Message-ID: <87pobtqglz.fsf@gaia.fi.intel.com> References: <20170816085210.4199-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170816085210.4199-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: drm-intel-fixes@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gTUlfU1RP UkVfRFdPUkRfSU1NIGp1c3QgZG9lc24ndCB3b3JrIG9uIHRoZSB2aWRlbyBkZWNvZGUgZW5naW5l IHVuZGVyCj4gU2FuZHlicmlkZ2UsIHNvIHJlZnJhaW4gZnJvbSB1c2luZyBpdC4gVGhlbiBzd2l0 Y2ggdGhlIHNlbGZ0ZXN0cyBvdmVyIHRvCj4gdXNpbmcgdGhlIG5vdyBjb21tb24gdGVzdCBwcmlv ciB0byB1c2luZyBNSV9TVE9SRV9EV09SRF9JTU0uCj4KPiBGaXhlczogN2RkNGY2NzI5ZjkyICgi ZHJtL2k5MTU6IEFzeW5jIEdQVSByZWxvY2F0aW9uIHByb2Nlc3NpbmciKQo+IFNpZ25lZC1vZmYt Ynk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBKb29uYXMg TGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IDxkcm0taW50 ZWwtZml4ZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPiAjIHY0LjEzLXJjMSsKPiAtLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysr KysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgICAgICAg ICAgfCAgOCArKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NlbGZ0ZXN0Lmgg ICAgICAgICAgICAgICAgfCAgMiAtLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmggICAgICAgICAgICAgfCAxMiArKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvaGVyZW5jeS5jIHwgIDIgKy0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyAgIHwgIDYgKysrKy0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2suYyAgICB8IDE4 ICsrKysrKysrKysrKy0tLS0tLQo+ICA3IGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyks IDE1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNmMyNWM4 NTIwYzg3Li42MjBlNTNiZDcwNWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAt NDMyNyw0ICs0MzI3LDExIEBAIGludCByZW1hcF9pb19tYXBwaW5nKHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hLAo+ICAJCSAgICAgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIHBm biwgdW5zaWduZWQgbG9uZyBzaXplLAo+ICAJCSAgICAgc3RydWN0IGlvX21hcHBpbmcgKmlvbWFw KTsKPiAgCj4gK3N0YXRpYyBpbmxpbmUgYm9vbAo+ICtpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3 b3JkKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArewo+ICsJcmV0dXJuIF9faW50 ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChJTlRFTF9HRU4oZW5naW5lLT5pOTE1KSwKPiArCQkJ CQkgICAgICBlbmdpbmUtPmNsYXNzKTsKPiArfQo+ICsKPiAgI2VuZGlmCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IGluZGV4IDhlOGJjN2FlZmQ5Yy4uMzU5 ZDVkYzZkOGRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwo+IEBAIC0xMjY4LDcgKzEyNjgsOSBAQCByZWxvY2F0ZV9lbnRyeShzdHJ1Y3QgaTkxNV92 bWEgKnZtYSwKPiAgCj4gIAlpZiAoIWViLT5yZWxvY19jYWNoZS52YWRkciAmJgo+ICAJICAgIChE QkdfRk9SQ0VfUkVMT0MgPT0gRk9SQ0VfR1BVX1JFTE9DIHx8Cj4gLQkgICAgICFyZXNlcnZhdGlv bl9vYmplY3RfdGVzdF9zaWduYWxlZF9yY3Uodm1hLT5yZXN2LCB0cnVlKSkpIHsKPiArCSAgICAg IXJlc2VydmF0aW9uX29iamVjdF90ZXN0X3NpZ25hbGVkX3JjdSh2bWEtPnJlc3YsIHRydWUpKSAm Jgo+ICsJICAgIF9faW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlYi0+cmVsb2NfY2FjaGUu Z2VuLAo+ICsJCQkJCSAgIGViLT5lbmdpbmUtPmNsYXNzKSkgewo+ICAJCWNvbnN0IHVuc2lnbmVk IGludCBnZW4gPSBlYi0+cmVsb2NfY2FjaGUuZ2VuOwoKSWYgeW91IGxpZnQgdGhpcyB0byB1cHBl ciBzY29wZSwgeW91IGNhbiBtYWtlIHRoZSBjaGVjayBsaXR0bGUKc2hvcnRlci4gQnV0IGluY2Fz ZSB5b3UgYXJlIGF2b2lkaW5nIHRoZSBhc3NpZ25tZW50IHRvIHRoZSBsYXRlc3QsCmkgYW0gbm90 IGluc2lzdGluZy4KClRoZXJlIGlzIGVuZ2luZSBpbiB0aGUgZWIgc28gY291bGQgeW91IGVsYWJv cmF0ZSB0aGF0CmRvIHdlIGdldCBieSBub3QgZG9pZyBpbnRlbF9lbmdpbmVfY2FuX3N0b3JlX2R3 b3JkKGViLT5lbmdpbmUpPwoKLU1pa2EKCj4gIAkJdW5zaWduZWQgaW50IGxlbjsKPiAgCQl1MzIg KmJhdGNoOwo+IEBAIC0xMjc4LDEwICsxMjgwLDggQEAgcmVsb2NhdGVfZW50cnkoc3RydWN0IGk5 MTVfdm1hICp2bWEsCj4gIAkJCWxlbiA9IG9mZnNldCAmIDcgPyA4IDogNTsKPiAgCQllbHNlIGlm IChnZW4gPj0gNCkKPiAgCQkJbGVuID0gNDsKPiAtCQllbHNlIGlmIChnZW4gPj0gMykKPiArCQll bHNlCj4gIAkJCWxlbiA9IDM7Cj4gLQkJZWxzZSAvKiBPbiBnZW4yIE1JX1NUT1JFX0RXT1JEX0lN TSB1c2VzIGEgcGh5c2ljYWwgYWRkcmVzcyAqLwo+IC0JCQlnb3RvIHJlcGVhdDsKPiAgCj4gIAkJ YmF0Y2ggPSByZWxvY19ncHUoZWIsIHZtYSwgbGVuKTsKPiAgCQlpZiAoSVNfRVJSKGJhdGNoKSkK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zZWxmdGVzdC5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zZWxmdGVzdC5oCj4gaW5kZXggOWQ3ZDg2ZjE3MzNkLi43 OGUxYTFiMTY4ZmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zZWxm dGVzdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zZWxmdGVzdC5oCj4gQEAg LTEwMSw2ICsxMDEsNCBAQCBib29sIF9faWd0X3RpbWVvdXQodW5zaWduZWQgbG9uZyB0aW1lb3V0 LCBjb25zdCBjaGFyICpmbXQsIC4uLik7Cj4gICNkZWZpbmUgaWd0X3RpbWVvdXQodCwgZm10LCAu Li4pIFwKPiAgCV9faWd0X3RpbWVvdXQoKHQpLCBLRVJOX1dBUk5JTkcgcHJfZm10KGZtdCksICMj X19WQV9BUkdTX18pCj4gIAo+IC0jZGVmaW5lIGlndF9jYW5fbWlfc3RvcmVfZHdvcmRfaW1tKEQp IChJTlRFTF9HRU4oRCkgPiAyKQo+IC0KPiAgI2VuZGlmIC8qICFfX0k5MTVfU0VMRlRFU1RfSF9f ICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IGQzM2M5 MzQ0NGMwZC4uMDJkODk3NGJmOWFiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaAo+IEBAIC03MzUsNCArNzM1LDE2IEBAIGJvb2wgaW50ZWxfZW5naW5lc19hcmVf aWRsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIGludGVsX2Vu Z2luZXNfbWFya19pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKPiAgdm9pZCBp bnRlbF9lbmdpbmVzX3Jlc2V0X2RlZmF1bHRfc3VibWlzc2lvbihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSk7Cj4gIAo+ICtzdGF0aWMgaW5saW5lIGJvb2wKPiArX19pbnRlbF9lbmdpbmVf Y2FuX3N0b3JlX2R3b3JkKHVuc2lnbmVkIGludCBnZW4sIHVuc2lnbmVkIGludCBjbGFzcykKPiAr ewo+ICsJaWYgKGdlbiA8PSAyKQo+ICsJCXJldHVybiBmYWxzZTsgLyogdXNlcyBwaHlzaWNhbCBu b3QgdmlydHVhbCBhZGRyZXNzZXMgKi8KPiArCj4gKwlpZiAoZ2VuID09IDYgJiYgY2xhc3MgPT0g VklERU9fREVDT0RFX0NMQVNTKQo+ICsJCXJldHVybiBmYWxzZTsgLyogYjBya2VkICovCj4gKwo+ ICsJcmV0dXJuIHRydWU7Cj4gK30KPiArCj4gICNlbmRpZiAvKiBfSU5URUxfUklOR0JVRkZFUl9I XyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9n ZW1fY29oZXJlbmN5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1f Y29oZXJlbmN5LmMKPiBpbmRleCA5NWQ0YWViYzAxODEuLjM1ZDc3OGQ3MDYyNiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29oZXJlbmN5LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29oZXJlbmN5 LmMKPiBAQCAtMjQxLDcgKzI0MSw3IEBAIHN0YXRpYyBib29sIGFsd2F5c192YWxpZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgCj4gIHN0YXRpYyBib29sIG5lZWRzX21pX3N0b3Jl X2R3b3JkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICB7Cj4gLQlyZXR1cm4gaWd0 X2Nhbl9taV9zdG9yZV9kd29yZF9pbW0oaTkxNSk7Cj4gKwlyZXR1cm4gaW50ZWxfZW5naW5lX2Nh bl9zdG9yZV9kd29yZChpOTE1LT5lbmdpbmVbUkNTXSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBjb25z dCBzdHJ1Y3QgaWd0X2NvaGVyZW5jeV9tb2RlIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCAxMmI4NWIzMjc4Y2QuLmZi MGE1OGZjODM0OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aTkxNV9nZW1fY29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2k5MTVfZ2VtX2NvbnRleHQuYwo+IEBAIC0zOCw4ICszOCw2IEBAIGdwdV9maWxsX2R3KHN0cnVj dCBpOTE1X3ZtYSAqdm1hLCB1NjQgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIGNvdW50LCB1MzIgdmFs dWUpCj4gIAl1MzIgKmNtZDsKPiAgCWludCBlcnI7Cj4gIAo+IC0JR0VNX0JVR19PTighaWd0X2Nh bl9taV9zdG9yZV9kd29yZF9pbW0odm1hLT52bS0+aTkxNSkpOwo+IC0KPiAgCXNpemUgPSAoNCAq IGNvdW50ICsgMSkgKiBzaXplb2YodTMyKTsKPiAgCXNpemUgPSByb3VuZF91cChzaXplLCBQQUdF X1NJWkUpOwo+ICAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbCh2bWEtPnZt LT5pOTE1LCBzaXplKTsKPiBAQCAtMTIzLDYgKzEyMSw3IEBAIHN0YXRpYyBpbnQgZ3B1X2ZpbGwo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCWludCBlcnI7Cj4gIAo+ICAJR0VN X0JVR19PTihvYmotPmJhc2Uuc2l6ZSA+IHZtLT50b3RhbCk7Cj4gKwlHRU1fQlVHX09OKCFpbnRl bF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpOwo+ICAKPiAgCXZtYSA9IGk5MTVfdm1h X2luc3RhbmNlKG9iaiwgdm0sIE5VTEwpOwo+ICAJaWYgKElTX0VSUih2bWEpKQo+IEBAIC0zNTks NiArMzU4LDkgQEAgc3RhdGljIGludCBpZ3RfY3R4X2V4ZWModm9pZCAqYXJnKQo+ICAJCX0KPiAg Cj4gIAkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKPiArCQkJaWYgKCFpbnRl bF9lbmdpbmVfY2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpCj4gKwkJCQljb250aW51ZTsKPiArCj4g IAkJCWlmICghb2JqKSB7Cj4gIAkJCQlvYmogPSBjcmVhdGVfdGVzdF9vYmplY3QoY3R4LCBmaWxl LCAmb2JqZWN0cyk7Cj4gIAkJCQlpZiAoSVNfRVJSKG9iaikpIHsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jCj4gaW5kZXggMjA4YjM0ZTg2 NGZiLi4wMmU1MmExNDZlZDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL2ludGVsX2hhbmdjaGVjay5jCj4gQEAgLTI1Myw5ICsyNTMsNiBAQCBzdGF0aWMgaW50 IGlndF9oYW5nX3Nhbml0eWNoZWNrKHZvaWQgKmFyZykKPiAgCj4gIAkvKiBCYXNpYyBjaGVjayB0 aGF0IHdlIGNhbiBleGVjdXRlIG91ciBoYW5naW5nIGJhdGNoICovCj4gIAo+IC0JaWYgKCFpZ3Rf Y2FuX21pX3N0b3JlX2R3b3JkX2ltbShpOTE1KSkKPiAtCQlyZXR1cm4gMDsKPiAtCj4gIAltdXRl eF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiAgCWVyciA9IGhhbmdfaW5pdCgmaCwg aTkxNSk7Cj4gIAlpZiAoZXJyKQo+IEBAIC0yNjQsNiArMjYxLDkgQEAgc3RhdGljIGludCBpZ3Rf aGFuZ19zYW5pdHljaGVjayh2b2lkICphcmcpCj4gIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBp OTE1LCBpZCkgewo+ICAJCWxvbmcgdGltZW91dDsKPiAgCj4gKwkJaWYgKCFpbnRlbF9lbmdpbmVf Y2FuX3N0b3JlX2R3b3JkKGVuZ2luZSkpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiAgCQlycSA9IGhh bmdfY3JlYXRlX3JlcXVlc3QoJmgsIGVuZ2luZSwgaTkxNS0+a2VybmVsX2NvbnRleHQpOwo+ICAJ CWlmIChJU19FUlIocnEpKSB7Cj4gIAkJCWVyciA9IFBUUl9FUlIocnEpOwo+IEBAIC01OTksNiAr NTk5LDkgQEAgc3RhdGljIGludCBpZ3Rfd2FpdF9yZXNldCh2b2lkICphcmcpCj4gIAlsb25nIHRp bWVvdXQ7Cj4gIAlpbnQgZXJyOwo+ICAKPiArCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9k d29yZChpOTE1LT5lbmdpbmVbUkNTXSkpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICAJLyogQ2hlY2sg dGhhdCB3ZSBkZXRlY3QgYSBzdHVjayB3YWl0ZXIgYW5kIGlzc3VlIGEgcmVzZXQgKi8KPiAgCj4g IAlnbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKPiBAQCAtNjY0LDkgKzY2Nyw2IEBAIHN0YXRpYyBp bnQgaWd0X3Jlc2V0X3F1ZXVlKHZvaWQgKmFyZykKPiAgCj4gIAkvKiBDaGVjayB0aGF0IHdlIHJl cGxheSBwZW5kaW5nIHJlcXVlc3RzIGZvbGxvd2luZyBhIGhhbmcgKi8KPiAgCj4gLQlpZiAoIWln dF9jYW5fbWlfc3RvcmVfZHdvcmRfaW1tKGk5MTUpKQo+IC0JCXJldHVybiAwOwo+IC0KPiAgCWds b2JhbF9yZXNldF9sb2NrKGk5MTUpOwo+ICAKPiAgCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1 Y3RfbXV0ZXgpOwo+IEBAIC02NzksNiArNjc5LDkgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfcXVl dWUodm9pZCAqYXJnKQo+ICAJCUlHVF9USU1FT1VUKGVuZF90aW1lKTsKPiAgCQl1bnNpZ25lZCBp bnQgY291bnQ7Cj4gIAo+ICsJCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlbmdp bmUpKQo+ICsJCQljb250aW51ZTsKPiArCj4gIAkJcHJldiA9IGhhbmdfY3JlYXRlX3JlcXVlc3Qo JmgsIGVuZ2luZSwgaTkxNS0+a2VybmVsX2NvbnRleHQpOwo+ICAJCWlmIChJU19FUlIocHJldikp IHsKPiAgCQkJZXJyID0gUFRSX0VSUihwcmV2KTsKPiBAQCAtNzg0LDYgKzc4Nyw5IEBAIHN0YXRp YyBpbnQgaWd0X2hhbmRsZV9lcnJvcih2b2lkICphcmcpCj4gIAlpZiAoIWludGVsX2hhc19yZXNl dF9lbmdpbmUoaTkxNSkpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICsJaWYgKCFpbnRlbF9lbmdpbmVf Y2FuX3N0b3JlX2R3b3JkKGk5MTUtPmVuZ2luZVtSQ1NdKSkKPiArCQlyZXR1cm4gMDsKPiArCj4g IAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiAgCj4gIAllcnIgPSBoYW5n X2luaXQoJmgsIGk5MTUpOwo+IC0tIAo+IDIuMTMuMwo+Cj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=