From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH] drm/i915: Expose exec parameter to force non IA-Coherent for Gen9+ Date: Wed, 13 Jan 2016 14:11:05 +0000 Message-ID: <56965AF9.40802@intel.com> References: <1452681879-1645-1-git-send-email-artur.harasimiuk@intel.com> <20160113125329.GA3541@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 26DE66E79D for ; Wed, 13 Jan 2016 06:11:22 -0800 (PST) In-Reply-To: <20160113125329.GA3541@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMTMvMDEvMTYgMTI6NTMsIENocmlzIFdpbHNvbiB3cm90ZToKPiBPbiBXZWQsIEphbiAxMywg MjAxNiBhdCAxMTo0NDozOUFNICswMTAwLCBBcnR1ciBIYXJhc2ltaXVrIHdyb3RlOgo+PiBTdGFy dGluZyBmcm9tIEdlbjkgd2UgY2FuIHVzZSBJQS1Db2hlcmVudCBjYWNoZXMuIENvaGVyZW5jZSBt YXkgYmUgbm90Cj4+IHJlcXVpcmVkIGluIGNlcnRhaW4gY2FzZXMgYW5kIGNhbiBiZSBkaXNhYmxl ZCBpbiBhbiBlYXN5IHdheS4gVG8gZG8gdGhpcwo+PiB3ZSBjYW4gc2V0IEhEQ19GT1JDRV9OT05f Q09IRVJFTlQgYml0IGluIEhEQ19DSElDS0VOMCByZWdpc3Rlci4gVGhpcwo+PiByZWdpc3RlciBp cyBwYXJ0IG9mIEhXIGNvbnRleHQsIGhvd2V2ZXIgaXQgaXMgcHJpdmF0ZSBhbmQgY2Fubm90IGJl Cj4+IHByb2dyYW1tZWQgZnJvbSBub24tcHJpdmlsZWdlZCBiYXRjaCBidWZmZXIuCj4+Cj4+IE5l dyBwYXJhbWV0ZXIgaXMgdG8gb3ZlcnJpZGUgZGVmYXVsdCBwcm9ncmFtbWluZyBhbmQgYWxsb3cg VU1EIHRvCj4+IGRlY2lkZSB3aGV0aGVyIElBLUNvaGVyZW5jeSBpcyBub3QgbmVlZGVkIGZvciBz dWJtaXR0ZWQgYmF0Y2ggYnVmZmVyLgo+PiBXaGVuIGZsYWcgaXMgc2V0IEtNRCBlbWl0cyBjb21t YW5kcyB0byBkaXNhYmxlIGNvaGVyZW5jeSBiZWZvcmUgYmF0Y2gKPj4gYnVmZmVyIGV4ZWN1dGlv biBzdGFydHMuIEFmdGVyIGV4ZWN1dGlvbiBmaW5pc2hlZCBzdGF0ZSBpcyByZXN0b3JlZC4KPgo+ IFdoYXQncyB0aGUgdXNlY2FzZSBmb3IgYmF0Y2ggdnMgY29udGV4dCBmbGFnPwo+Cj4+IFdoZW4g V2FGb3JjZUVuYWJsZU5vbkNvaGVyZW50IGlzIHByb2dyYW1tZWQsIGl0IGRvZXMgbm90IG1ha2Ug c2Vuc2UgdG8KPj4gYWxsb3cgZm9yIGNvaGVyZW5jeSBiZWNhdXNlIHRoaXMgY2FuIGxlYWQgdG8g R1BVIGhhbmdzLiBJbiBzdWNoCj4+IHNpdHVhdGlvbiBmbGFnIGlzIGlnbm9yZWQuCj4+Cj4+IFNp Z25lZC1vZmYtYnk6IEFydHVyIEhhcmFzaW1pdWsgPGFydHVyLmhhcmFzaW1pdWtAaW50ZWwuY29t Pgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jICAgICAgICAgICAg fCAgMyArKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAg fCAgNCArKysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5j IHwgIDggKysrKysrKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAg ICAgICAgfCAyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgIHwgIDcgKysrKysrKwo+PiAgIGluY2x1ZGUv dWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAgICAgICB8ICA4ICsrKysrKystCj4+ICAgNiBm aWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kbWEuYwo+PiBpbmRleCA0NGE4OTZjLi43OWVjZjIwIDEwMDY0NAo+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZG1hLmMKPj4gQEAgLTE3Miw2ICsxNzIsOSBAQCBzdGF0aWMgaW50IGk5MTVf Z2V0cGFyYW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4gICAJY2FzZSBJ OTE1X1BBUkFNX0hBU19FWEVDX1NPRlRQSU46Cj4+ICAgCQl2YWx1ZSA9IDE7Cj4+ICAgCQlicmVh azsKPj4gKwljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfRk9SQ0VfTk9OX0NPSEVSRU5UOgo+PiAr CQl2YWx1ZSA9IElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDk7Cj4KPiBUaGlzIHNob3VsZCBhY3R1 YWxseSByZXBvcnQgdGhlIHcvYSBzdGF0dXMsIG9yIGVsc2UgeW91IG5lZWQgdG8gcHJvdmlkZQo+ IHNvbWUgb3RoZXIgbWVhbnMgZm9yIHVzZXJzcGFjZSB0byBkZXRlY3QgaWYgaXQgY2FuIHN1Y2Nl c3NmdWxseSBmb3JjZQo+IG5vbi1jb2hlcmVuY3kuCgpBZ3JlZWQ7IGVzcGVjaWFsbHkgd2l0aCB0 aGUgbmFtaW5nIHVzZWQsIHNvbWV0aGluZyBjYWxsZWQgCipGb3JjZSpTb21ldGhpbmcgc2hvdWxk bid0IGJlIHJlcG9ydGVkIGFzIGF2YWlsYWJsZSBidXQgdGhlbiBzaWxlbnRseSAKaWdub3JlZCBv biB1c2UgYmVjYXVzZSBzb21lIHdvcmthcm91bmQgaXMgaW4gZWZmZWN0LiBJZiB1c2VyIGNvZGUg a25vd3MgCnRoYXQgaXQgd2FudHMgdG8gKmZvcmNlKiB0aGUgdXNlIG9mIGEgcGFydGljdWxhciBt b2RlIHRoZW4gaXQgaGFzIHRvIAprbm93IGlmIGl0IGRvZXNuJ3QgdGFrZSBlZmZlY3QuCgpPVE9I IGlzIGl0IHJlYWxseSAiRm9yY2UiLCBvciBpcyBpdCAiQWxsb3ciPyBPciAiUmVxdWVzdCIsIG9y ICJQcmVmZXIiPwoKPj4gKwkJYnJlYWs7Cj4+ICAgCWRlZmF1bHQ6Cj4+ICAgCQlEUk1fREVCVUco IlVua25vd24gcGFyYW1ldGVyICVkXG4iLCBwYXJhbS0+cGFyYW0pOwo+PiAgIAkJcmV0dXJuIC1F SU5WQUw7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBpbmRleCAxMDRiZDE4Li43MWQ3Mzlj IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gQEAgLTg4Niw2ICs4ODYsMTAgQEAg c3RydWN0IGludGVsX2NvbnRleHQgewo+PiAgIAl9IGVuZ2luZVtJOTE1X05VTV9SSU5HU107Cj4+ Cj4+ICAgCXN0cnVjdCBsaXN0X2hlYWQgbGluazsKPj4gKwo+PiArCXN0cnVjdCB7Cj4+ICsJCXVu c2lnbmVkIGludCBXYUZvcmNlRW5hYmxlTm9uQ29oZXJlbnQ6MTsKPj4gKwl9IHdhOwo+PiAgIH07 Cj4+Cj4+ICAgZW51bSBmYl9vcF9vcmlnaW4gewo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jCj4+IGluZGV4IGQ0NjljNDcuLjI5OTdhNTggMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPj4gQEAgLTE0MDAsNiAr MTQwMCwxMCBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCj4+ICAgCWlmICghaTkxNV9nZW1fY2hlY2tfZXhlY2J1ZmZlcihhcmdzKSkK Pj4gICAJCXJldHVybiAtRUlOVkFMOwo+Pgo+PiArCWlmICgoYXJncy0+ZmxhZ3MgJiBJOTE1X0VY RUNfRk9SQ0VfTk9OX0NPSEVSRU5UKSAmJgo+PiArCQlJTlRFTF9JTkZPKGRldiktPmdlbiA8IDkp Cj4+ICsJCXJldHVybiAtRUlOVkFMOwo+Cj4gSXQgd291bGQgc2VlbSBlYXNpZXIgdG8gc2ltcGx5 IGlnbm9yZSB0aGlzIHJlcXVlc3QgaW4gYWxsIHNpdHVhdGlvbnMKPiB3aGVyZSBpdCBkb2Vzbid0 IGFwcGx5LCByYXRoZXIgdGhhbiB0aGUgY3VycmVudCBzZWxlY3QgZmV3Lgo+Cj4+ICAgCXJldCA9 IHZhbGlkYXRlX2V4ZWNfbGlzdChkZXYsIGV4ZWMsIGFyZ3MtPmJ1ZmZlcl9jb3VudCk7Cj4+ICAg CWlmIChyZXQpCj4+ICAgCQlyZXR1cm4gcmV0Owo+PiBAQCAtMTQ5NCw2ICsxNDk4LDEwIEBAIGk5 MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK Pj4KPj4gICAJaTkxNV9nZW1fY29udGV4dF9yZWZlcmVuY2UoY3R4KTsKPj4KPj4gKwkvKiBDbGVh ciB0aGlzIGZsYWcgd2hlbiBXQSBpcyBwcm9ncmFtbWVkICovCj4+ICsJaWYgKGN0eC0+d2EuV2FG b3JjZUVuYWJsZU5vbkNvaGVyZW50KQo+PiArCQlhcmdzLT5mbGFncyAmPSB+STkxNV9FWEVDX0ZP UkNFX05PTl9DT0hFUkVOVDsKPj4gKwoKVGhpcyBzZWVtcyBiYWNrLXRvLWZyb250IChJJ20gb25s eSBsb29raW5nIGF0IHRoZSBuYW1lcywgd2l0aG91dCAKY2hlY2tpbmcgd2hhdCB0aGlzIGJpdCBy ZWFsbHkgZG9lcyksIGJ1dCBzdXJlbHkgaWYgdGhlIAoiRm9yY2VFbmFibGVOb25Db2hlcmVudCIg d29ya2Fyb3VuZCBpcyBpbiBlZmZlY3QgaXQgc2hvdWxkIGZvcmNlIHRoZSAKIkZPUkNFX05PTl9D T0hFUkVOVCIgZmxhZyBPTiwgbm90IE9GRj8KCkFsc28sIHRoZSB1c2Ugb2YgYSBwZXItYmF0Y2gg Ym9vbCBkb2Vzbid0IHNlZW0gdG8gbGVhdmUgYW55IGRvbid0LWNhcmUgCm9wdGlvbi4gSXMgdGhl cmUgYW55IHVzZSBjYXNlIHdoZXJlIHRoZSB1c2VyIGNvZGUgYWJzb2x1dGVseSAqZG9lc24ndCog CndhbnQgdGhpcyBub24tY29oZXJlbmN5PyBPciB3aGljaCBvZiB0aGVzZSBhcmUgdXNlZnVsOgoK MS4JUmVxdWlyZSBub24tY29oZXJlbnQsIGZhaWwgaWYgbm90IHBvc3NpYmxlCjIuCVJlcXVlc3Qg bm9uLWNvaGVyZW50LCB3YXJuIG1lIGJ1dCBjb250aW51ZSBpZiBub3QgcG9zc2libGUKMy4JUHJl ZmVyIG5vbi1jb2hlcmVudCwgaWdub3JlIGZhaWx1cmUgKGRvbid0IGV2ZW4gdGVsbCBtZSkKNC4J RG9uJ3QgY2FyZSwgdXNlIHN5c3RlbSBkZWZhdWx0CjUuCVByZWZlciBjb2hlcmVudCwgaWdub3Jl IGZhaWx1cmUgKGRvbid0IHRlbGwgbWUpCjYuCVJlcXVlc3QgY29oZXJlbnQsIHdhcm4gbWUgKGJ1 dCBjb250aW51ZSkgaWYgbm90IHBvc3NpYmxlCjcuCVJlcXVpcmUgY29oZXJlbnQsIGZhaWwgaWYg bm90IHBvc3NpYmxlCgpUaGVuIHdlIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUgdGhlIG5hbWVzIG1l YW4gd2hhdCB0aGV5IHdvdWxkIGFwcGVhciB0by4KCi5EYXZlLgoKPj4gICAJaWYgKGN0eC0+cHBn dHQpCj4+ICAgCQl2bSA9ICZjdHgtPnBwZ3R0LT5iYXNlOwo+PiAgIAllbHNlCj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCj4+IGluZGV4IGFiMzQ0ZTAuLjQ0ODJhNmEgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jCj4+IEBAIC04NzksNiArODc5LDI0IEBAIGludCBpbnRlbF9sb2dp Y2FsX3JpbmdfcmVzZXJ2ZV9zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVl c3QpCj4+ICAgCXJldHVybiBpbnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4ocmVxdWVzdCwgMCk7Cj4+ ICAgfQo+Pgo+PiArc3RhdGljIGlubGluZSB2b2lkCj4+ICtpbnRlbF9scl9lbWl0X2ZvcmNlX25v bl9jb2hlcmVudChzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAo+PiArCQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzLCBib29sIGZvcmNlKQo+PiArewo+ PiArCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19GT1JDRV9OT05fQ09IRVJFTlQpIHsKPj4g KwkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPQo+PiArCQkJCXBhcmFtcy0+Y3R4 LT5lbmdpbmVbcGFyYW1zLT5yaW5nLT5pZF0ucmluZ2J1ZjsKPgo+IFRoaXMgc2hvdWxkIGJlIHVz aW5nIHRoZSByZXF1ZXN0LT5yaW5nYnVmCj4KPj4gKwo+Cj4gTWlzc2luZyByaW5nX2JlZ2luLgo+ Cj4+ICsJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX05PT1ApOwo+PiArCQlp bnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKSk7 Cj4+ICsJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIEhEQ19DSElDS0VOMC5yZWcp Owo+Cj4gaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcmVnKHJpbmdidWYsIEhEQ19DSElDS0VOMCk7 Cj4KPj4gKwkJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgZm9yY2UgPwo+PiArCQkJ CV9NQVNLRURfQklUX0VOQUJMRShIRENfRk9SQ0VfTk9OX0NPSEVSRU5UKSA6Cj4+ICsJCQkJX01B U0tFRF9CSVRfRElTQUJMRShIRENfRk9SQ0VfTk9OX0NPSEVSRU5UKSk7Cj4+ICsJCWludGVsX2xv Z2ljYWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOwo+PiArCX0KPj4gK30KPj4gKwo+PiAgIC8qKgo+ PiAgICAqIGV4ZWNsaXN0c19zdWJtaXNzaW9uKCkgLSBzdWJtaXQgYSBiYXRjaGJ1ZmZlciBmb3Ig ZXhlY3V0aW9uLCBFeGVjbGlzdHMgc3R5bGUKPj4gICAgKiBAZGV2OiBEUk0gZGV2aWNlLgo+PiBA QCAtOTU5LDYgKzk3Nyw4IEBAIGludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbihzdHJ1Y3Qg aTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAo+PiAgIAkJZGV2X3ByaXYtPnJlbGF0aXZl X2NvbnN0YW50c19tb2RlID0gaW5zdHBfbW9kZTsKPj4gICAJfQo+Pgo+PiArCWludGVsX2xyX2Vt aXRfZm9yY2Vfbm9uX2NvaGVyZW50KHBhcmFtcywgYXJncywgdHJ1ZSk7Cj4KPiBUaGlzIGlzIGFm dGVyIGNhY2hlIGludmFsaWRhdGlvbi4gRG8geW91IG5lZWQgdG8gc2VuZCBhbm90aGVyIGNhY2hl Cj4gaW52YWxpZGF0ZT8KPgo+PiArCj4+ICAgCWV4ZWNfc3RhcnQgPSBwYXJhbXMtPmJhdGNoX29i al92bV9vZmZzZXQgKwo+PiAgIAkJICAgICBhcmdzLT5iYXRjaF9zdGFydF9vZmZzZXQ7Cj4+Cj4+ IEBAIC05NjYsNiArOTg2LDggQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVj dCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCj4+ICAgCWlmIChyZXQpCj4+ICAgCQly ZXR1cm4gcmV0Owo+Pgo+PiArCWludGVsX2xyX2VtaXRfZm9yY2Vfbm9uX2NvaGVyZW50KHBhcmFt cywgYXJncywgZmFsc2UpOwo+Cj4gWW91IGFudGljaXBhdGUgYSBjb250ZXh0IHN3aXRjaGluZyBi ZXR3ZWVuIG1vZGVzIGJldHdlZW4gZXZlcnkgYmF0Y2g/Cj4gVGhpcyBnb2VzIGJhY2sgdG8gd2hl dGhlciBpdCBpcyBhIGNvbnRleHQgZmxhZyB2cyBiYXRjaCBmbGFnLCBhbmQKPiB3aGV0aGVyIHdl IHNob3VsZCBjYWNoZSB0aGUgcmVnaXN0ZXIgdmFsdWUuCj4KPj4gKwo+PiAgIAl0cmFjZV9pOTE1 X2dlbV9yaW5nX2Rpc3BhdGNoKHBhcmFtcy0+cmVxdWVzdCwgcGFyYW1zLT5kaXNwYXRjaF9mbGFn cyk7Cj4+Cj4+ICAgCWk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19hY3RpdmUodm1hcywgcGFy YW1zLT5yZXF1ZXN0KTsKPj4gQEAgLTExMTIsNiArMTEzNCw5IEBAIHN0YXRpYyBpbnQgaW50ZWxf bG9naWNhbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEpCj4+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7Cj4+ICAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ICAg CXN0cnVjdCBpOTE1X3dvcmthcm91bmRzICp3ID0gJmRldl9wcml2LT53b3JrYXJvdW5kczsKPj4g KwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0gcmVxLT5jdHg7Cj4+ICsKPj4gKwljdHgtPndh LldhRm9yY2VFbmFibGVOb25Db2hlcmVudCA9IDA7Cj4+Cj4+ICAgCWlmICh3LT5jb3VudCA9PSAw KQo+PiAgIAkJcmV0dXJuIDA7Cj4+IEBAIC0xMTI5LDYgKzExNTQsOSBAQCBzdGF0aWMgaW50IGlu dGVsX2xvZ2ljYWxfcmluZ193b3JrYXJvdW5kc19lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKQo+PiAgIAlmb3IgKGkgPSAwOyBpIDwgdy0+Y291bnQ7IGkrKykgewo+PiAgIAkJ aW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcmVnKHJpbmdidWYsIHctPnJlZ1tpXS5hZGRyKTsKPj4g ICAJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIHctPnJlZ1tpXS52YWx1ZSk7Cj4+ ICsJCWN0eC0+d2EuV2FGb3JjZUVuYWJsZU5vbkNvaGVyZW50IHw9Cj4+ICsJCQkJKHctPnJlZ1tp XS5hZGRyLnJlZyA9PSBIRENfQ0hJQ0tFTjAucmVnKSAmJgo+PiArCQkJCSh3LT5yZWdbaV0udmFs dWUgJiBIRENfRk9SQ0VfTk9OX0NPSEVSRU5UKTsKPgo+IEkgZG9uJ3QgbGlrZSB0aGlzIHNlY29u ZCBndWVzc2luZyBvZiB3aGF0IHcvYSBhcmUgYmVpbmcgYXBwbGllZC4gV2UKPiBjb3VsZCBqdXN0 IGFzIGVhc2lseSBleHBsaWNpdGx5IGxpc3QgdGhlIHcvYSBvbiB0aGUgZW5naW5lIChpLmUuIGEK PiBzeW5vcHNpcyBvZiB0aGUgd2EgcmVnIGxpc3QsIHBsdXMgdGhvc2Ugc2V0dXAgZ2xvYmFsbHkp IGFuZCByZWZlcmVuY2UKPiB0aGF0IGluc3RlYWQgb2YgY29weWluZyB0aGF0IGZsYWcgdG8gZXZl cnkgY29udGV4dC4KPiAtQ2hyaXMKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK