From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 05/13] drm/i915: Cache LRCA in the context Date: Tue, 12 Jan 2016 09:59:03 +0000 Message-ID: <5694CE67.10905@linux.intel.com> References: <1452252592-24803-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1452252592-24803-6-git-send-email-tvrtko.ursulin@linux.intel.com> <20160111083859.GO8076@phenom.ffwll.local> <5694055F.9020508@intel.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 26E826E2BF for ; Tue, 12 Jan 2016 01:59:06 -0800 (PST) In-Reply-To: <5694055F.9020508@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon , Daniel Vetter Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDExLzAxLzE2IDE5OjQxLCBEYXZlIEdvcmRvbiB3cm90ZToKPiBPbiAxMS8wMS8xNiAwODoz OCwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4gT24gRnJpLCBKYW4gMDgsIDIwMTYgYXQgMTE6Mjk6 NDRBTSArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4+PiBGcm9tOiBUdnJ0a28gVXJzdWxp biA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pj4KPj4+IFdlIGFyZSBub3QgYWxsb3dlZCB0 byBjYWxsIGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldCBmcm9tIGlycQo+Pj4gY29udGV4dCB3aXRo b3V0IHRoZSBiaWcga2VybmVsIGxvY2sgaGVsZC4KPj4+Cj4+PiBMUkNBIGxpZmV0aW1lIGlzIHdl bGwgZGVmaW5lZCBzbyBjYWNoZSBpdCBzbyBpdCBjYW4gYmUgbG9va2VkIHVwCj4+PiBjaGVhcGx5 IGZyb20gdGhlIGludGVycnVwdCBjb250ZXh0IGFuZCBhdCBjb21tYW5kIHN1Ym1pc3Npb24KPj4+ IHRpbWUuCj4+Pgo+Pj4gdjI6IEFkZGVkIGlycSBjb250ZXh0IHJlYXNvbmluZyB0byB0aGUgY29t bWl0IG1lc3NhZ2UuIChEYW5pZWwgVmV0dGVyKQo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IFR2cnRr byBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4+Cj4+IEEgaTkxNV9vYmpfZm9y X2VhY2hfdm1hIG1hY3JvIHdpdGggYQo+PiBXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoZGV2LT5z dHJ1Y3RfbXV0ZXgpKSB3b3VsZCBiZSBhd2Vzb21lIHRvIHZhbGlkYXRlCj4+IHRoaXMuIEVzcGVj aWFsbHkgc2luY2UgdGhpcyBpcyBieSBmYXIgbm90IHRoZSBvbmx5IHRpbWUgSSd2ZSBzZWVuIHRo aXMKPj4gYnVnLiBOZWVkcyB0byBiZSBhIGZvbGxvdy11cCB0aG91Z2ggdG8gYXZvaWQgc3RhbGxp bmcgdGhpcyBmaXguCj4+Cj4+PiAtLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgfCAxNSArKysrKystLS0tLS0tLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oICAgICB8ICAxICsKPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMgICAgfCA0MAo+Pj4gKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCAgICB8ICAzICsrLQo+Pj4gICA0IGZp bGVzIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+Pj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+Pj4gaW5kZXggM2IwNWJkMTg5ZWFiLi43 MTRhNDVjZjhhNTEgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPj4+ IEBAIC0xOTc2LDEyICsxOTc2LDEzIEBAIHN0YXRpYyBpbnQgaTkxNV9jb250ZXh0X3N0YXR1cyhz dHJ1Y3QKPj4+IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCj4+PiAgIH0KPj4+Cj4+PiAgIHN0 YXRpYyB2b2lkIGk5MTVfZHVtcF9scmNfb2JqKHN0cnVjdCBzZXFfZmlsZSAqbSwKPj4+IC0gICAg ICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+Pj4gLSAgICAgICAg ICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqKQo+Pj4gKyAgICAg ICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4+PiArICAgICAgICAgICAg ICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPj4+ICAgewo+Pj4gICAgICAgc3Ry dWN0IHBhZ2UgKnBhZ2U7Cj4+PiAgICAgICB1aW50MzJfdCAqcmVnX3N0YXRlOwo+Pj4gICAgICAg aW50IGo7Cj4+PiArICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gY3R4 LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlOwo+Pj4gICAgICAgdW5zaWduZWQgbG9uZyBnZ3R0X29m ZnNldCA9IDA7Cj4+Pgo+Pj4gICAgICAgaWYgKGN0eF9vYmogPT0gTlVMTCkgewo+Pj4gQEAgLTE5 OTEsNyArMTk5Miw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHVtcF9scmNfb2JqKHN0cnVjdCBzZXFf ZmlsZSAqbSwKPj4+ICAgICAgIH0KPj4+Cj4+PiAgICAgICBzZXFfcHJpbnRmKG0sICJDT05URVhU OiAlcyAldVxuIiwgcmluZy0+bmFtZSwKPj4+IC0gICAgICAgICAgIGludGVsX2V4ZWNsaXN0c19j dHhfaWQoY3R4X29iaikpOwo+Pj4gKyAgICAgICAgICAgaW50ZWxfZXhlY2xpc3RzX2N0eF9pZChj dHgsIHJpbmcpKTsKPj4+Cj4+PiAgICAgICBpZiAoIWk5MTVfZ2VtX29ial9nZ3R0X2JvdW5kKGN0 eF9vYmopKQo+Pj4gICAgICAgICAgIHNlcV9wdXRzKG0sICJcdE5vdCBib3VuZCBpbiBHR1RUXG4i KTsKPj4+IEBAIC0yMDQwLDggKzIwNDEsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHVtcF9scmMoc3Ry dWN0IHNlcV9maWxlICptLAo+Pj4gdm9pZCAqdW51c2VkKQo+Pj4gICAgICAgbGlzdF9mb3JfZWFj aF9lbnRyeShjdHgsICZkZXZfcHJpdi0+Y29udGV4dF9saXN0LCBsaW5rKSB7Cj4+PiAgICAgICAg ICAgZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgewo+Pj4gICAgICAgICAgICAgICBp ZiAocmluZy0+ZGVmYXVsdF9jb250ZXh0ICE9IGN0eCkKPj4+IC0gICAgICAgICAgICAgICAgaTkx NV9kdW1wX2xyY19vYmoobSwgcmluZywKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIGN0 eC0+ZW5naW5lW2ldLnN0YXRlKTsKPj4+ICsgICAgICAgICAgICAgICAgaTkxNV9kdW1wX2xyY19v YmoobSwgY3R4LCByaW5nKTsKPj4+ICAgICAgICAgICB9Cj4+PiAgICAgICB9Cj4+Pgo+Pj4gQEAg LTIxMTUsMTEgKzIxMTUsOCBAQCBzdGF0aWMgaW50IGk5MTVfZXhlY2xpc3RzKHN0cnVjdCBzZXFf ZmlsZSAqbSwKPj4+IHZvaWQgKmRhdGEpCj4+Pgo+Pj4gICAgICAgICAgIHNlcV9wcmludGYobSwg Ilx0JWQgcmVxdWVzdHMgaW4gcXVldWVcbiIsIGNvdW50KTsKPj4+ICAgICAgICAgICBpZiAoaGVh ZF9yZXEpIHsKPj4+IC0gICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4 X29iajsKPj4+IC0KPj4+IC0gICAgICAgICAgICBjdHhfb2JqID0gaGVhZF9yZXEtPmN0eC0+ZW5n aW5lW3JpbmdfaWRdLnN0YXRlOwo+Pj4gICAgICAgICAgICAgICBzZXFfcHJpbnRmKG0sICJcdEhl YWQgcmVxdWVzdCBpZDogJXVcbiIsCj4+PiAtICAgICAgICAgICAgICAgICAgIGludGVsX2V4ZWNs aXN0c19jdHhfaWQoY3R4X29iaikpOwo+Pj4gKyAgICAgICAgICAgICAgICAgICBpbnRlbF9leGVj bGlzdHNfY3R4X2lkKGhlYWRfcmVxLT5jdHgsIHJpbmcpKTsKPj4+ICAgICAgICAgICAgICAgc2Vx X3ByaW50ZihtLCAiXHRIZWFkIHJlcXVlc3QgdGFpbDogJXVcbiIsCj4+PiAgICAgICAgICAgICAg ICAgICAgICBoZWFkX3JlcS0+dGFpbCk7Cj4+PiAgICAgICAgICAgfQo+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+Pj4gaW5kZXggOGNmNjU1YzZmYzAzLi5iNzdhNWQ4NGVhYzIgMTAwNjQ0 Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+PiBAQCAtODgxLDYgKzg4MSw3IEBAIHN0cnVj dCBpbnRlbF9jb250ZXh0IHsKPj4+ICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqc3RhdGU7Cj4+PiAgICAgICAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWY7 Cj4+PiAgICAgICAgICAgaW50IHBpbl9jb3VudDsKPj4+ICsgICAgICAgIHUzMiBscmNhOwo+Pgo+ PiBscmNfb2Zmc2V0IGltby4gQ29uc2lzdGVudCB3aXRoIG91ciBvdGhlciB1c2FnZSBpbiB0aGUg ZHJpdmVyLCBhbmQKPj4gYWN0dWFsbHkgcmVhZGFibGUuIFBsZWFzZSBhcHBseSBsaWJlcmFsbHkg ZXZlcnl3aGVyZSBlbHNlIChJIGtub3cgdGhhdAo+PiBic2VwYyBjYWxscyBpdCBscmNhLCBidXQg d2UgZG9uJ3QgbmVlZCB0byBmb2xsb3cgYmFkIG5hbWluZyBzdHlsZXMKPj4gYmxpbmRseSkuCj4+ Cj4+IFdpdGggdGhhdCBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBm ZndsbC5jaD4KPj4KPj4+ICAgICAgIH0gZW5naW5lW0k5MTVfTlVNX1JJTkdTXTsKPj4+Cj4+PiAg ICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKPj4+IGluZGV4IGZmMTQ2YTE1ZDM5NS4uZmZlMDA0ZGUyMmIwIDEwMDY0NAo+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jCj4+PiBAQCAtMjY1LDcgKzI2NSw4IEBAIGludCBpbnRlbF9zYW5p dGl6ZV9lbmFibGVfZXhlY2xpc3RzKHN0cnVjdAo+Pj4gZHJtX2RldmljZSAqZGV2LCBpbnQgZW5h YmxlX2V4ZWNsaXN0cwo+Pj4KPj4+ICAgLyoqCj4+PiAgICAqIGludGVsX2V4ZWNsaXN0c19jdHhf aWQoKSAtIGdldCB0aGUgRXhlY2xpc3RzIENvbnRleHQgSUQKPj4+IC0gKiBAY3R4X29iajogTG9n aWNhbCBSaW5nIENvbnRleHQgYmFja2luZyBvYmplY3QuCj4+PiArICogQGN0eDogQ29udGV4dCB0 byBnZXQgdGhlIElEIGZvcgo+Pj4gKyAqIEByaW5nOiBFbmdpbmUgdG8gZ2V0IHRoZSBJRCBmb3IK Pj4+ICAgICoKPj4+ICAgICogRG8gbm90IGNvbmZ1c2Ugd2l0aCBjdHgtPmlkISBVbmZvcnR1bmF0 ZWx5IHdlIGhhdmUgYSBuYW1lIG92ZXJsb2FkCj4+PiAgICAqIGhlcmU6IHRoZSBvbGQgY29udGV4 dCBJRCB3ZSBwYXNzIHRvIHVzZXJzcGFjZSBhcyBhIGhhbmRsZXIgc28gdGhhdAo+Pj4gQEAgLTI3 NSwxNCArMjc2LDEyIEBAIGludCBpbnRlbF9zYW5pdGl6ZV9lbmFibGVfZXhlY2xpc3RzKHN0cnVj dAo+Pj4gZHJtX2RldmljZSAqZGV2LCBpbnQgZW5hYmxlX2V4ZWNsaXN0cwo+Pj4gICAgKgo+Pj4g ICAgKiBSZXR1cm46IDIwLWJpdHMgZ2xvYmFsbHkgdW5pcXVlIGNvbnRleHQgSUQuCj4+PiAgICAq Lwo+Pj4gLXUzMiBpbnRlbF9leGVjbGlzdHNfY3R4X2lkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpjdHhfb2JqKQo+Pj4gK3UzMiBpbnRlbF9leGVjbGlzdHNfY3R4X2lkKHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjdHgsCj4+PiArICAgICAgICAgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZykKPj4+ICAgewo+Pj4gLSAgICB1MzIgbHJjYSA9IGk5MTVfZ2VtX29ial9nZ3R0X29m ZnNldChjdHhfb2JqKSArCj4+PiAtICAgICAgICAgICAgTFJDX1BQSFdTUF9QTiAqIFBBR0VfU0la RTsKPj4+IC0KPj4+ICAgICAgIC8qIExSQ0EgaXMgcmVxdWlyZWQgdG8gYmUgNEsgYWxpZ25lZCBz byB0aGUgbW9yZSBzaWduaWZpY2FudCAyMAo+Pj4gYml0cwo+Pj4gICAgICAgICogYXJlIGdsb2Jh bGx5IHVuaXF1ZSAqLwo+Pj4gLSAgICByZXR1cm4gbHJjYSA+PiAxMjsKPj4+ICsgICAgcmV0dXJu IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5scmNhID4+IDEyOwo+Pj4gICB9Cj4+Pgo+Pj4gICBzdGF0 aWMgYm9vbCBkaXNhYmxlX2xpdGVfcmVzdG9yZV93YShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKQo+Pj4gQEAgLTI5NywxMyArMjk2LDExIEBAIHN0YXRpYyBib29sIGRpc2FibGVfbGl0ZV9y ZXN0b3JlX3dhKHN0cnVjdAo+Pj4gaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+Pj4gICB1aW50NjRf dCBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwK Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykK Pj4+ICAgewo+Pj4gLSAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0 eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKPj4+ICsgICAgdWludDY0X3QgbHJjYSA9IGN0eC0+ ZW5naW5lW3JpbmctPmlkXS5scmNhOwo+Pj4gICAgICAgdWludDY0X3QgZGVzYyA9IHJpbmctPmN0 eF9kZXNjX3RlbXBsYXRlOwo+Pj4gLSAgICB1aW50NjRfdCBscmNhID0gaTkxNV9nZW1fb2JqX2dn dHRfb2Zmc2V0KGN0eF9vYmopICsKPj4+IC0gICAgICAgICAgICBMUkNfUFBIV1NQX1BOICogUEFH RV9TSVpFOwo+Pj4KPj4+ICAgICAgIGRlc2MgfD0gbHJjYTsKPj4+IC0gICAgZGVzYyB8PSAodTY0 KWludGVsX2V4ZWNsaXN0c19jdHhfaWQoY3R4X29iaikgPDwgR0VOOF9DVFhfSURfU0hJRlQ7Cj4+ PiArICAgIGRlc2MgfD0gKHU2NClpbnRlbF9leGVjbGlzdHNfY3R4X2lkKGN0eCwgcmluZykgPDwK Pj4+IEdFTjhfQ1RYX0lEX1NISUZUOwo+Pj4KPj4+ICAgICAgIHJldHVybiBkZXNjOwo+Pj4gICB9 Cj4+PiBAQCAtNDYxLDkgKzQ1OCw3IEBAIHN0YXRpYyBib29sIGV4ZWNsaXN0c19jaGVja19yZW1v dmVfcmVxdWVzdChzdHJ1Y3QKPj4+IGludGVsX2VuZ2luZV9jcyAqcmluZywKPj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgZXhlY2xpc3RfbGluayk7Cj4+Pgo+Pj4gICAgICAgaWYgKGhlYWRf cmVxICE9IE5VTEwpIHsKPj4+IC0gICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpj dHhfb2JqID0KPj4+IC0gICAgICAgICAgICAgICAgaGVhZF9yZXEtPmN0eC0+ZW5naW5lW3Jpbmct PmlkXS5zdGF0ZTsKPj4+IC0gICAgICAgIGlmIChpbnRlbF9leGVjbGlzdHNfY3R4X2lkKGN0eF9v YmopID09IHJlcXVlc3RfaWQpIHsKPj4+ICsgICAgICAgIGlmIChpbnRlbF9leGVjbGlzdHNfY3R4 X2lkKGhlYWRfcmVxLT5jdHgsIHJpbmcpID09Cj4+PiByZXF1ZXN0X2lkKSB7Cj4+PiAgICAgICAg ICAgICAgIFdBUk4oaGVhZF9yZXEtPmVsc3Bfc3VibWl0dGVkID09IDAsCj4+PiAgICAgICAgICAg ICAgICAgICAgIk5ldmVyIHN1Ym1pdHRlZCBoZWFkIHJlcXVlc3RcbiIpOwo+Pj4KPj4+IEBAIC0x MDIzLDE1ICsxMDE4LDE3IEBAIGludCBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1 Y3QKPj4+IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4+PiAgIH0KPj4+Cj4+PiAgIHN0YXRp YyBpbnQgaW50ZWxfbHJfY29udGV4dF9kb19waW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywKPj4+IC0gICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqLAo+Pj4g LSAgICAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4+PiArICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4+PiAgIHsKPj4+ICAgICAgIHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7Cj4+PiAgICAgICBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4gKyAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0 ZTsKPj4+ICsgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2lu ZVtyaW5nLT5pZF0ucmluZ2J1ZjsKPj4+ICAgICAgIHU2NCBscmNhOwo+Pj4gLSAgICBpbnQgcmV0 ID0gMDsKPj4+ICsgICAgaW50IHJldDsKPj4+Cj4+PiAgICAgICBXQVJOX09OKCFtdXRleF9pc19s b2NrZWQoJnJpbmctPmRldi0+c3RydWN0X211dGV4KSk7Cj4+PiArCj4+PiAgICAgICByZXQgPSBp OTE1X2dlbV9vYmpfZ2d0dF9waW4oY3R4X29iaiwgR0VOOF9MUl9DT05URVhUX0FMSUdOLAo+Pj4g ICAgICAgICAgICAgICBQSU5fT0ZGU0VUX0JJQVMgfCBHVUNfV09QQ01fVE9QKTsKPj4+ICAgICAg IGlmIChyZXQpCj4+PiBAQCAtMTA0Nyw2ICsxMDQ0LDcgQEAgc3RhdGljIGludCBpbnRlbF9scl9j b250ZXh0X2RvX3BpbihzdHJ1Y3QKPj4+IGludGVsX2VuZ2luZV9jcyAqcmluZywKPj4+ICAgICAg IGlmIChyZXQpCj4+PiAgICAgICAgICAgZ290byB1bnBpbl9jdHhfb2JqOwo+Pj4KPj4+ICsgICAg Y3R4LT5lbmdpbmVbcmluZy0+aWRdLmxyY2EgPSBscmNhOwo+Pj4gICAgICAgY3R4X29iai0+ZGly dHkgPSB0cnVlOwo+Pj4KPj4+ICAgICAgIC8qIEludmFsaWRhdGUgR3VDIFRMQi4gKi8KPj4+IEBA IC0xMDY1LDExICsxMDYzLDkgQEAgc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1 Y3QKPj4+IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKPj4+ICAgewo+Pj4gICAgICAgaW50IHJl dCA9IDA7Cj4+PiAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcnEtPnJpbmc7 Cj4+PiAtICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KPj4+IHJxLT5j dHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4+PiAtICAgIHN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nYnVmID0gcnEtPnJpbmdidWY7Cj4+Pgo+Pj4gICAgICAgaWYgKHJxLT5jdHgtPmVu Z2luZVtyaW5nLT5pZF0ucGluX2NvdW50KysgPT0gMCkgewo+Pj4gLSAgICAgICAgcmV0ID0gaW50 ZWxfbHJfY29udGV4dF9kb19waW4ocmluZywgY3R4X29iaiwgcmluZ2J1Zik7Cj4+PiArICAgICAg ICByZXQgPSBpbnRlbF9scl9jb250ZXh0X2RvX3BpbihyaW5nLCBycS0+Y3R4KTsKPj4+ICAgICAg ICAgICBpZiAocmV0KQo+Pj4gICAgICAgICAgICAgICBnb3RvIHJlc2V0X3Bpbl9jb3VudDsKPj4+ ICAgICAgIH0KPj4+IEBAIC0xMDkxLDYgKzEwODcsNyBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRf dW5waW4oc3RydWN0Cj4+PiBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4+PiAgICAgICAgICAg aWYgKC0tcnEtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQgPT0gMCkgewo+Pj4gICAg ICAgICAgICAgICBpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPj4+ICAgICAg ICAgICAgICAgaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4+PiArICAgICAg ICAgICAgcnEtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5scmNhID0gMDsKPj4+ICAgICAgICAgICB9 Cj4+PiAgICAgICB9Cj4+PiAgIH0KPj4+IEBAIC0xOTYwLDEwICsxOTU3LDcgQEAgc3RhdGljIGlu dCBsb2dpY2FsX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZQo+Pj4gKmRldiwgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluCj4+PiAgICAgICAgICAgZ290byBlcnJvcjsKPj4+Cj4+PiAgICAg ICAvKiBBcyB0aGlzIGlzIHRoZSBkZWZhdWx0IGNvbnRleHQsIGFsd2F5cyBwaW4gaXQgKi8KPj4+ IC0gICAgcmV0ID0gaW50ZWxfbHJfY29udGV4dF9kb19waW4oCj4+PiAtICAgICAgICAgICAgcmlu ZywKPj4+IC0gICAgICAgICAgICByaW5nLT5kZWZhdWx0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5p ZF0uc3RhdGUsCj4+PiAtICAgICAgICAgICAgcmluZy0+ZGVmYXVsdF9jb250ZXh0LT5lbmdpbmVb cmluZy0+aWRdLnJpbmdidWYpOwo+Pj4gKyAgICByZXQgPSBpbnRlbF9scl9jb250ZXh0X2RvX3Bp bihyaW5nLCByaW5nLT5kZWZhdWx0X2NvbnRleHQpOwo+Pj4gICAgICAgaWYgKHJldCkgewo+Pj4g ICAgICAgICAgIERSTV9FUlJPUigKPj4+ICAgICAgICAgICAgICAgIkZhaWxlZCB0byBwaW4gYW5k IG1hcCByaW5nYnVmZmVyICVzOiAlZFxuIiwKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuaAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu aAo+Pj4gaW5kZXggZGU0MWFkNmNkNjNkLi5mOWRiNWYxODdkNzcgMTAwNjQ0Cj4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmgKPj4+IEBAIC0xMDYsNiArMTA2LDggQEAgdm9pZCBpbnRlbF9scl9j b250ZXh0X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+PiAgICAgICAgICAgICAgIHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwo+Pj4gICB1aW50NjRfdCBpbnRlbF9scl9jb250ZXh0 X2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPj4+ICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4+PiArdTMyIGludGVsX2V4 ZWNsaXN0c19jdHhfaWQoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPj4+ICsgICAgICAgICAg ICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPj4+Cj4+PiAgIC8qIEV4ZWNsaXN0 cyAqLwo+Pj4gICBpbnQgaW50ZWxfc2FuaXRpemVfZW5hYmxlX2V4ZWNsaXN0cyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBpbnQKPj4+IGVuYWJsZV9leGVjbGlzdHMpOwo+Pj4gQEAgLTExMyw3ICsx MTUsNiBAQCBzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtczsKPj4+ICAgaW50IGludGVsX2V4 ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMs Cj4+PiAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIy ICphcmdzLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqdm1hcyk7 Cj4+PiAtdTMyIGludGVsX2V4ZWNsaXN0c19jdHhfaWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKmN0eF9vYmopOwo+Pj4KPj4+ICAgdm9pZCBpbnRlbF9scmNfaXJxX2hhbmRsZXIoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4+PiAgIHZvaWQgaW50ZWxfZXhlY2xpc3RzX3JldGly ZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPj4+IC0tCj4+PiAxLjku MQo+Pj4KPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCj4+PiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cj4KPiBIb3cgYWJvdXQgY2FjaGluZyB0aGUgV0hPTEUgZGVzY3JpcHRvciBzbyB0 aGF0IHJldHJpZXZhbCBiZWNvbWVzCj4gdHJpdmlhbCwgcmV0cmlldmluZyB0aGUgY29udGV4dCBJ RCBiZWNvbWVzIGFsbW9zdCBhcyB0cml2aWFsLCBhcwo+IGRvZXMgcmV0cmlldmluZyB0aGUgTFJD QSAoYWxsIHRoZXNlIGNvdWxkIGJlIGlubGluZWQpIGFuZCB0aGUgc2luZ2xlCj4gY2FsY3VsYXRl LWFuZC1jYWNoZSBmdW5jdGlvbiBjYW4gYmUgbmljZWx5IGRvY3VtZW50ZWQgYXMgdG8gaG93IGEK PiBkZXNjcmlwdG9yIGVuY29kZXMgTFJDQSBldGMuIFNvbWV0aGluZyBsaWtlIHRoaXMgLi4uCgpT aW1pbGFyIHRvIHYzIG9mIG15IHNlcmllcyBmcm9tIHllc3RlcmRheSBhcyBEYW5pZWwgYWxyZWFk eSBzdWdnZXN0ZWQgCmNhY2hpbmcgaXQgYWxsLiA6KQoKQnV0IEkgdGhpbmsgbW92aW5nIHRvd2Fy ZHMgc3RvcmluZyB0aGUgVk1BIHdpbGwgYmUgdGhlIGFwcHJvYWNoIHVubGVzcyAKd2UgY2FuIGFn cmVlIG9uIHRoYXQgSTkxNV9HVFRfQkFEX0FERFJFU1MgaWRlYS4KCj4gLyoqCj4gICAqIGludGVs X2xyX2NvbnRleHRfZGVzY3JpcHRvcl91cGRhdGUoKSAtIGNhbGN1bGF0ZSAmIGNhY2hlIHRoZQo+ ICAgKiAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yIGZvciBhIHBpbm5lZAo+ICAgKiAg ICAgICAgICAgICAgICAgICAgICAgY29udGV4dAo+ICAgKiBAY3R4OiBDb250ZXh0IHRvIHdvcmsg b24KPiAgICogQHJpbmc6IEVuZ2luZSB0aGUgZGVzY3JpcHRvciB3aWxsIGJlIHVzZWQgd2l0aAo+ ICAgKgo+ICAgKiBUaGUgY29udGV4dCBkZXNjcmlwdG9yIGVuY29kZXMgdmFyaW91cyBhdHRyaWJ1 dGVzIG9mIGEgY29udGV4dCwKPiAgICogaW5jbHVkaW5nIGl0cyBHVFQgYWRkcmVzcyBhbmQgc29t ZSBmbGFncy4gQmVjYXVzZSBpdCdzIGZhaXJseQo+ICAgKiBleHBlbnNpdmUgdG8gY2FsY3VsYXRl LCB3ZSdsbCBqdXN0IGRvIGl0IG9uY2UgYW5kIGNhY2hlIHRoZSByZXN1bHQsCj4gICAqIHdoaWNo IHJlbWFpbnMgdmFsaWQgdW50aWwgdGhlIGNvbnRleHQgaXMgdW5waW5uZWQuCj4gICAqCj4gICAq IFRoaXMgaXMgd2hhdCBhIGRlc2NyaXB0b3IgbG9va3MgbGlrZSwgZnJvbSBMU0IgdG8gTVNCOgo+ ICAgKiAgICBiaXRzIDAtMTE6ICAgIGZsYWdzLCBHRU44X0NUWF8qIChjYWNoZWQgaW4gY3R4X2Rl c2NfdGVtcGxhdGUpCj4gICAqICAgIGJpdHMgMTItMzE6ICAgIExSQ0EsIEdUVCBhZGRyZXNzIG9m ICh0aGUgSFdTUCBvZikgdGhpcyBjb250ZXh0Cj4gICAqICAgIGJpdHMgMzItNTE6ICAgIGN0eCBJ RCwgYSBnbG9iYWxseSB1bmlxdWUgdGFnICh0aGUgTFJDQSBhZ2FpbiEpCj4gICAqICAgIGJpdHMg NTItNjM6ICAgIHJlc2VydmVkLCBtYXkgZW5jb2RlIHRoZSBlbmdpbmUgSUQgKGZvciBHdUMpCj4g ICAqLwo+IHN0YXRpYyB2b2lkCj4gaW50ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9yX3VwZGF0ZShz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZykKPiB7Cj4gICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKmN0eF9vYmo7Cj4gICAgICB1aW50NjRfdCBscmNhLCBkZXNjOwo+Cj4gICAgICBjdHhf b2JqID0gY3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlOwo+ICAgICAgbHJjYSA9IGk5MTVfZ2Vt X29ial9nZ3R0X29mZnNldChjdHhfb2JqKSArIExSQ19QUEhXU1BfUE4gKiBQQUdFX1NJWkU7Cj4K PiAgICAgIGRlc2MgPSByaW5nLT5jdHhfZGVzY190ZW1wbGF0ZTsgICAgICAgICAgICAvKiBiaXRz ICAwLTExICovCj4gICAgICBkZXNjIHw9IGxyY2E7ICAgICAgICAgICAgICAgICAgICAvKiBiaXRz IDEyLTMxICovCj4gICAgICBkZXNjIHw9IChscmNhID4+IFBBR0VfU0hJRlQpIDw8IDMyOyAgICAg ICAgLyogYml0cyAzMi01MSAqLwo+Cj4gICAgICBjdHgtPmVuZ2luZVtyaW5nLT5pZF0uY3R4X2Rl c2MgPSBkZXNjOwo+IH0KPgo+IC8qKgo+ICAgKiBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3Io KSAtIGdldCB0aGUgZGVzY3JpcHRvciBmb3IgdGhlIHNwZWNpZmllZAo+ICAgKiAgICAgICAgICAg ICAgICAgICAgY29udGV4dC9lbmdpbmUgY29tYmluYXRpb24KPiAgICogQGN0eDogQ29udGV4dCB0 byBnZXQgdGhlIElEIGZvcgo+ICAgKiBAcmluZzogRW5naW5lIHRvIGdldCB0aGUgSUQgZm9yCj4g ICAqCj4gICAqIE5vdyBqdXN0IGEgdHJpdmlhbCBhY2Nlc3Nvciwgc2luY2UgdGhlIHZhbHVlIHdh cyBjb21wdXRlZCBhbmQgY2FjaGVkCj4gICAqIGFib3ZlIGF0IHRoZSBwb2ludCB3aGVuIHRoZSBj b250ZXh0IHdhcyBwaW5uZWQuCj4gICAqCj4gICAqIFJldHVybjogNjQtYml0IGNvbnRleHQgZGVz Y3JpcHRvciAoZW5jb2RlcyBMUkNBIGFuZCB2YXJpb3VzIGZsYWdzKQo+ICAgKi8KPiB1aW50NjRf dCBpbmxpbmUKPiBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2NvbnRl eHQgKmN0eCwKPiAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcp Cj4gewo+ICAgICAgcmV0dXJuIGN0eC0+ZW5naW5lW3JpbmctPmlkXS5jdHhfZGVzYzsKPiB9Cj4K PiAvKioKPiAqIGludGVsX2xyX2NvbnRleHRfYWRkcmVzcygpIC0gZ2V0IHRoZSBHVFQgYWRkcmVz cyBvZiAodGhlIEhXU1Agb2YpIHRoZQo+ICogICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkIGNv bnRleHQvZW5naW5lIGNvbWJpbmF0aW9uCj4gKiBAY3R4OiBDb250ZXh0IHRvIGdldCB0aGUgSUQg Zm9yCj4gKiBAcmluZzogRW5naW5lIHRvIGdldCB0aGUgSUQgZm9yCj4gKgo+ICogVGhlIGFkZHJl c3MgKExSQ0EpIGlzIGEgcG9ydGlvbiBvZiB0aGUgY29udGV4dCBkZXNjcmlwdG9yLCBzbyB3ZSBj YW4KPiAqIGp1c3QgZXh0cmFjdCB0aGUgcmVxdWlyZWQgcGFydCBmcm9tIHRoZSBjYWNoZWQgZGVz Y3JpcHRvci4KPiAqCj4gKiBSZXR1cm46IDMyLWJpdCBHVFQgYWRkcmVzcwo+ICovCj4gdWludDMy X3QgaW5saW5lCj4gaW50ZWxfbHJfY29udGV4dF9hZGRyZXNzKHN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjdHgsCj4gICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+IHsK PiAgICAgIHJldHVybiAodTMyKWludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcihjdHgsIHJpbmcp ICYgUEFHRV9NQVNLOwo+IH0KPgo+IC8qKgo+ICAgKiBpbnRlbF9leGVjbGlzdHNfY3R4X2lkKCkg LSBnZXQgdGhlIEV4ZWNsaXN0cyBDb250ZXh0IElECj4gICAqIEBjdHg6IENvbnRleHQgdG8gZ2V0 IHRoZSBJRCBmb3IKPiAgICogQHJpbmc6IEVuZ2luZSB0byBnZXQgdGhlIElEIGZvcgo+ICAgKgo+ ICAgKiBEbyBub3QgY29uZnVzZSB3aXRoIGN0eC0+aWQhIFVuZm9ydHVuYXRlbHkgd2UgaGF2ZSBh IG5hbWUgb3ZlcmxvYWQKPiAgICogaGVyZTogdGhlIG9sZCBjb250ZXh0IElEIHdlIHBhc3MgdG8g dXNlcnNwYWNlIGFzIGEgaGFuZGxlciBzbyB0aGF0Cj4gICAqIHRoZXkgY2FuIHJlZmVyIHRvIGEg Y29udGV4dCwgYW5kIHRoZSBuZXcgY29udGV4dCBJRCB3ZSBwYXNzIHRvIHRoZQo+ICAgKiBFTFNQ IHNvIHRoYXQgdGhlIEdQVSBjYW4gaW5mb3JtIHVzIG9mIHRoZSBjb250ZXh0IHN0YXR1cyB2aWEK PiAgICogaW50ZXJydXB0cy4KPiAgICoKPiAgICogVGhlIGNvbnRleHQgSUQgaXMgYSBwb3J0aW9u IG9mIHRoZSBjb250ZXh0IGRlc2NyaXB0b3IsIHNvIHdlIGNhbgo+ICAgKiBqdXN0IGV4dHJhY3Qg dGhlIHJlcXVpcmVkIHBhcnQgZnJvbSB0aGUgY2FjaGVkIGRlc2NyaXB0b3IuCj4gICAqCj4gICAq IFJldHVybjogMjAtYml0IGdsb2JhbGx5IHVuaXF1ZSBjdHggSUQgKGFjdHVhbGx5LCBhIEdUVCBw YWdlIG51bWJlcikKPiAgICovCj4gdWludDMyX3QgaW5saW5lCj4gaW50ZWxfZXhlY2xpc3RzX2N0 eF9pZChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICAgICAgICAgICAgICAgICBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nKQo+IHsKPiAgICAgIHJldHVybiAodTMyKShpbnRlbF9scl9j b250ZXh0X2Rlc2NyaXB0b3IoY3R4LCByaW5nKSA+PiAzMik7Cj4gfQo+Cj4gLi4uIGFuZCBpbnNl cnQgYSBjYWxsIHRvIGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcl91cGRhdGUoKSBpbnRvIHRo ZQo+IGFwcHJvcHJpYXRlIHNwb3QgaW4gaW50ZWxfbHJfY29udGV4dF9kb19waW4oKS4KClJlZ2Fy ZHMsCgpUdnJ0a28KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==