From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915: Reduce context HW ID lifetime Date: Mon, 3 Sep 2018 10:59:01 +0100 Message-ID: <87b2cd78-8a82-4530-8552-add809fe5d0b@linux.intel.com> References: <20180830102454.26956-1-chris@chris-wilson.co.uk> <153571901687.20986.6449971785579224771@skylake-alporthouse-com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 270066E1CB for ; Mon, 3 Sep 2018 09:59:32 +0000 (UTC) In-Reply-To: <153571901687.20986.6449971785579224771@skylake-alporthouse-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: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: Oscar Mateo , Mika Kuoppala List-Id: intel-gfx@lists.freedesktop.org Ck9uIDMxLzA4LzIwMTggMTM6MzYsIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRr byBVcnN1bGluICgyMDE4LTA4LTMwIDE3OjIzOjQzKQo+Pgo+PiBPbiAzMC8wOC8yMDE4IDExOjI0 LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4+PiArc3RhdGljIGludCBzdGVhbF9od19pZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPj4+ICt7Cj4+PiArICAgICBzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqY3R4LCAqY247Cj4+PiArICAgICBMSVNUX0hFQUQocGlubmVkKTsKPj4+ICsgICAg IGludCBpZCA9IC1FTk9TUEM7Cj4+PiArCj4+PiArICAgICBsb2NrZGVwX2Fzc2VydF9oZWxkKCZp OTE1LT5jb250ZXh0cy5tdXRleCk7Cj4+PiArCj4+PiArICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5 X3NhZmUoY3R4LCBjbiwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaTkxNS0+ Y29udGV4dHMuaHdfaWRfbGlzdCwgaHdfaWRfbGluaykgewo+Pj4gKyAgICAgICAgICAgICBpZiAo YXRvbWljX3JlYWQoJmN0eC0+cGluX2h3X2lkKSkgewo+Pj4gKyAgICAgICAgICAgICAgICAgICAg IGxpc3RfbW92ZV90YWlsKCZjdHgtPmh3X2lkX2xpbmssICZwaW5uZWQpOwo+Pj4gKyAgICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlOwo+Pj4gKyAgICAgICAgICAgICB9Cj4+PiArCj4+PiArICAg ICAgICAgICAgIEdFTV9CVUdfT04oIWN0eC0+aHdfaWQpOyAvKiBwZXJtYS1waW5uZWQga2VybmVs IGNvbnRleHQgKi8KPj4+ICsgICAgICAgICAgICAgbGlzdF9kZWxfaW5pdCgmY3R4LT5od19pZF9s aW5rKTsKPj4+ICsgICAgICAgICAgICAgaWQgPSBjdHgtPmh3X2lkOwo+Pj4gKyAgICAgICAgICAg ICBicmVhazsKPj4+ICsgICAgIH0KPj4+ICsKPj4+ICsgICAgIGxpc3Rfc3BsaWNlX3RhaWwoJnBp bm5lZCwgJmk5MTUtPmNvbnRleHRzLmh3X2lkX2xpc3QpOwo+Pgo+PiBQdXQgYSBjb21tZW50IHdo YXQgaXMgdGhpcyBjb2RlIGRvaW5nIHBsZWFzZS4gVHJ5aW5nIHRvIGNyZWF0ZSBzb21lIHNvcnQK Pj4gb2YgTFJVIG9yZGVyPwo+IAo+IExSU2VhcmNoZWQuIFNhbWUgYXMgdGhlIHNocmlua2VyLCBh bmQgZXZpY3Rpb24gY29kZSBpZiB5b3Ugd291bGQgYWxzbwo+IHJldmlldyB0aGF0IDspCgpUd28g dGhpbmdzIGFyZSBpbmZpbml0ZSwgdGhlIHVuaXZlcnNlIGFuZCB5b3VyIHN0cmVhbSBvZiBwYXRj aGVzISA6KQoKPj4KPj4+ICsgICAgIHJldHVybiBpZDsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGlj IGludCBhc3NpZ25faHdfaWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHVuc2lnbmVk IGludCAqb3V0KQo+Pj4gK3sKPj4+ICsgICAgIGludCByZXQ7Cj4+PiArCj4+PiArICAgICBsb2Nr ZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5jb250ZXh0cy5tdXRleCk7Cj4+PiArCj4+PiArICAgICBy ZXQgPSBuZXdfaHdfaWQoaTkxNSwgR0ZQX0tFUk5FTCB8IF9fR0ZQX1JFVFJZX01BWUZBSUwgfCBf X0dGUF9OT1dBUk4pOwo+Pj4gKyAgICAgaWYgKHVubGlrZWx5KHJldCA8IDApKSB7Cj4+PiArICAg ICAgICAgICAgIHJldCA9IHN0ZWFsX2h3X2lkKGk5MTUpOwo+Pj4gKyAgICAgICAgICAgICBpZiAo cmV0IDwgMCkgLyogb25jZSBhZ2FpbiBmb3IgdGhlIGNvcnJlY3QgZXJybyBjb2RlICovCj4+Cj4+ IGVycm5vCj4+Cj4+PiArICAgICAgICAgICAgICAgICAgICAgcmV0ID0gbmV3X2h3X2lkKGk5MTUs IEdGUF9LRVJORUwpOwo+Pgo+PiBIbW0uLiBzaG91bGRuJ3QgeW91IHRyeSBHRlBfS0VSTkVMIGJl Zm9yZSBhdHRlbXB0aW5nIHRvIHN0ZWFsPyBBY3R1YWxseQo+PiBJIHRoaW5rIHlvdSBzaG91bGQg YnJhbmNoIGJhc2VkIG9uIC1FTk9TUEMgKHN0ZWFsKSB2cyAtRU5PTUVNIChyZXRyeQo+PiB3aXRo IEdGUF9LRVJORUwpLiBXaGljaCB3b3VsZCBhY3R1YWxseSBtZWFuIHNvbWV0aGluZyBsaWtlOgo+ IAo+IEkgd2FzIGFwcGx5aW5nIHRoZSBzYW1lIHN0cmF0ZWd5IGFzIHdlIHVzZSBlbHNld2hlcmUu IFBlbmFsaXNlIGFueQo+IGRyaXZlciBjYWNoZSBiZWZvcmUgaGl0dGluZyByZWNsYWltLgo+IAo+ IEkgdGhpbmsgdGhhdCBpcyBmYWlyIGZyb20gYW4gYXBwbGljYXRpb24gb2Ygc29mdCBiYWNrcHJl c3N1cmUgcG9pbnQgb2YKPiB2aWV3LiAoTGFjayBvZiBiYWNrcHJlc3N1cmUgaXMgcHJvYmFibHkg YSBzb3JlIHBvaW50IGZvciBtYW55LikKCk15IGNvbmNlcm4gd2FzIGxhY2sgb2YgYSBwaGFzZSB3 aGljaCBhdm9pZHMgaHcgaWQgc3RlYWxpbmcgZm9yIGxvYWRzIAp3aXRoIGZldyBjb250ZXh0cyBi dXQgaGVhdnkgbWVtb3J5IHByZXNzdXJlLiBTb3VuZGVkIGxpa2UgYSB0aGluZyB3b3J0aCAKInJv YnVzdGlmeWluZyIgYWdhaW5zdCAtIHlvdSBkb24ndCB0aGluayBzbz8KCj4gCj4+PiAtICAgICBy ZXQgPSBpZGFfc2ltcGxlX2dldCgmZGV2X3ByaXYtPmNvbnRleHRzLmh3X2lkYSwKPj4+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgIDAsIG1heCwgR0ZQX0tFUk5FTCk7Cj4+Cj4+IEFsdGhvdWdo IG5vdyB0aGF0IEkgc2VlIHRoaXMgSSBhbSBzdHJ1Z2dsaW5nIG5vdCB0byBzYXkgdGhlIGNoYW5n ZSB0bwo+PiB0cnkgYSBsaWdodGVyIHdlaWdodCBhbGxvY2F0aW9uIHN0cmF0ZWd5IGZpcnN0IChn ZnAgbWF5IGZhaWwpIG5lZWRzIHRvCj4+IGJlIHNwbGl0IG91dCB0byBhIHNlcGFyYXRlIHBhdGNo Lgo+IAo+IFBhcmRvbj8gSSBhcHBlYXIgdG8gc3VkZGVubHkgYmUgaGFyZCBvZiBoZWFyaW5nLgo+ IAo+IFRoZSBwYXRjaCB3YXMgYWxsIGFib3V0IHRoZSBzdGVhbF9od19pZCgpLgoKWWVzLCBidXQg eW91IGNvdWxkJ3QgaGF2ZSBrZXB0IHRoZSBHRlBfS0VSTkVMIGlkYV9zaW1wbGVfZ2V0IGFuZCBv bmx5IAp0aGVuIGZhbGwgYmFjayB0byBzdGVhbGluZy4gT3IgYXMgSSBzYWlkLCBHRlBfTUFZRkFJ TCwgdGhlbiBHRlBfS0VSTkVMLCAKdGhlbiBzdGVhbC4KCj4gCj4+PiAtICAgICBpZiAocmV0IDwg MCkgewo+Pj4gLSAgICAgICAgICAgICAvKiBDb250ZXh0cyBhcmUgb25seSByZWxlYXNlZCB3aGVu IG5vIGxvbmdlciBhY3RpdmUuCj4+PiAtICAgICAgICAgICAgICAqIEZsdXNoIGFueSBwZW5kaW5n IHJldGlyZXMgdG8gaG9wZWZ1bGx5IHJlbGVhc2Ugc29tZQo+Pj4gLSAgICAgICAgICAgICAgKiBz dGFsZSBjb250ZXh0cyBhbmQgdHJ5IGFnYWluLgo+Pj4gLSAgICAgICAgICAgICAgKi8KPj4+IC0g ICAgICAgICAgICAgaTkxNV9yZXRpcmVfcmVxdWVzdHMoZGV2X3ByaXYpOwo+Pj4gLSAgICAgICAg ICAgICByZXQgPSBpZGFfc2ltcGxlX2dldCgmZGV2X3ByaXYtPmNvbnRleHRzLmh3X2lkYSwKPj4+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgbWF4LCBHRlBfS0VSTkVMKTsK Pj4+IC0gICAgICAgICAgICAgaWYgKHJldCA8IDApCj4+PiAtICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIHJldDsKPj4+IC0gICAgIH0KPj4+IC0KPj4+IC0gICAgICpvdXQgPSByZXQ7Cj4+PiAt ICAgICByZXR1cm4gMDsKPj4+IC19Cj4+PiAtCj4+PiAgICBzdGF0aWMgdTMyIGRlZmF1bHRfZGVz Y190ZW1wbGF0ZShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGk5MTVfaHdfcHBndHQgKnBw Z3R0KQo+Pj4gICAgewo+Pj4gQEAgLTI3NiwxMiArMzI0LDYgQEAgX19jcmVhdGVfaHdfY29udGV4 dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+PiAgICAgICAgaWYgKGN0eCA9 PSBOVUxMKQo+Pj4gICAgICAgICAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4+PiAg ICAKPj4+IC0gICAgIHJldCA9IGFzc2lnbl9od19pZChkZXZfcHJpdiwgJmN0eC0+aHdfaWQpOwo+ Pj4gLSAgICAgaWYgKHJldCkgewo+Pj4gLSAgICAgICAgICAgICBrZnJlZShjdHgpOwo+Pj4gLSAg ICAgICAgICAgICByZXR1cm4gRVJSX1BUUihyZXQpOwo+Pj4gLSAgICAgfQo+Pj4gLQo+Pj4gICAg ICAgIGtyZWZfaW5pdCgmY3R4LT5yZWYpOwo+Pj4gICAgICAgIGxpc3RfYWRkX3RhaWwoJmN0eC0+ bGluaywgJmRldl9wcml2LT5jb250ZXh0cy5saXN0KTsKPj4+ICAgICAgICBjdHgtPmk5MTUgPSBk ZXZfcHJpdjsKPj4+IEBAIC0yOTUsNiArMzM3LDcgQEAgX19jcmVhdGVfaHdfY29udGV4dChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+PiAgICAKPj4+ICAgICAgICBJTklUX1JB RElYX1RSRUUoJmN0eC0+aGFuZGxlc192bWEsIEdGUF9LRVJORUwpOwo+Pj4gICAgICAgIElOSVRf TElTVF9IRUFEKCZjdHgtPmhhbmRsZXNfbGlzdCk7Cj4+PiArICAgICBJTklUX0xJU1RfSEVBRCgm Y3R4LT5od19pZF9saW5rKTsKPj4+ICAgIAo+Pj4gICAgICAgIC8qIERlZmF1bHQgY29udGV4dCB3 aWxsIG5ldmVyIGhhdmUgYSBmaWxlX3ByaXYgKi8KPj4+ICAgICAgICByZXQgPSBERUZBVUxUX0NP TlRFWFRfSEFORExFOwo+Pj4gQEAgLTQyMSwxNSArNDY0LDM1IEBAIGk5MTVfZ2VtX2NvbnRleHRf Y3JlYXRlX2d2dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+Pj4gICAgICAgIHJldHVybiBjdHg7 Cj4+PiAgICB9Cj4+PiAgICAKPj4+ICtzdGF0aWMgdm9pZAo+Pj4gK2Rlc3Ryb3lfa2VybmVsX2Nv bnRleHQoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKipjdHhwKQo+Pj4gK3sKPj4+ICsgICAgIHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4+PiArCj4+PiArICAgICAvKiBLZWVwIHRoZSBj b250ZXh0IHJlZiBzbyB0aGF0IHdlIGNhbiBmcmVlIGl0IGltbWVkaWF0ZWx5IG91cnNlbHZlcyAq Lwo+Pj4gKyAgICAgY3R4ID0gaTkxNV9nZW1fY29udGV4dF9nZXQoZmV0Y2hfYW5kX3plcm8oY3R4 cCkpOwo+Pj4gKyAgICAgR0VNX0JVR19PTighaTkxNV9nZW1fY29udGV4dF9pc19rZXJuZWwoY3R4 KSk7Cj4+PiArCj4+PiArICAgICBjb250ZXh0X2Nsb3NlKGN0eCk7Cj4+PiArICAgICBpOTE1X2dl bV9jb250ZXh0X2ZyZWUoY3R4KTsKPj4+ICt9Cj4+PiArCj4+PiAgICBzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqCj4+PiAgICBpOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9rZXJuZWwoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludCBwcmlvKQo+Pj4gICAgewo+Pj4gICAgICAgIHN0cnVj dCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4+PiArICAgICBpbnQgZXJyOwo+Pj4gICAgCj4+PiAg ICAgICAgY3R4ID0gaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoaTkxNSwgTlVMTCk7Cj4+PiAgICAg ICAgaWYgKElTX0VSUihjdHgpKQo+Pj4gICAgICAgICAgICAgICAgcmV0dXJuIGN0eDsKPj4+ICAg IAo+Pj4gKyAgICAgZXJyID0gaTkxNV9nZW1fY29udGV4dF9waW5faHdfaWQoY3R4KTsKPj4+ICsg ICAgIGlmIChlcnIpIHsKPj4+ICsgICAgICAgICAgICAgZGVzdHJveV9rZXJuZWxfY29udGV4dCgm Y3R4KTsKPj4+ICsgICAgICAgICAgICAgcmV0dXJuIEVSUl9QVFIoZXJyKTsKPj4+ICsgICAgIH0K Pj4+ICsKPj4+ICAgICAgICBpOTE1X2dlbV9jb250ZXh0X2NsZWFyX2Jhbm5hYmxlKGN0eCk7Cj4+ PiAgICAgICAgY3R4LT5zY2hlZC5wcmlvcml0eSA9IHByaW87Cj4+PiAgICAgICAgY3R4LT5yaW5n X3NpemUgPSBQQUdFX1NJWkU7Cj4+PiBAQCAtNDM5LDE3ICs1MDIsMTkgQEAgaTkxNV9nZW1fY29u dGV4dF9jcmVhdGVfa2VybmVsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBpbnQgcHJp bykKPj4+ICAgICAgICByZXR1cm4gY3R4Owo+Pj4gICAgfQo+Pj4gICAgCj4+PiAtc3RhdGljIHZv aWQKPj4+IC1kZXN0cm95X2tlcm5lbF9jb250ZXh0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICoq Y3R4cCkKPj4+ICtzdGF0aWMgdm9pZCBpbml0X2NvbnRleHRzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KQo+Pj4gICAgewo+Pj4gLSAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0 eDsKPj4+ICsgICAgIG11dGV4X2luaXQoJmk5MTUtPmNvbnRleHRzLm11dGV4KTsKPj4+ICsgICAg IElOSVRfTElTVF9IRUFEKCZpOTE1LT5jb250ZXh0cy5saXN0KTsKPj4+ICAgIAo+Pj4gLSAgICAg LyogS2VlcCB0aGUgY29udGV4dCByZWYgc28gdGhhdCB3ZSBjYW4gZnJlZSBpdCBpbW1lZGlhdGVs eSBvdXJzZWx2ZXMgKi8KPj4+IC0gICAgIGN0eCA9IGk5MTVfZ2VtX2NvbnRleHRfZ2V0KGZldGNo X2FuZF96ZXJvKGN0eHApKTsKPj4+IC0gICAgIEdFTV9CVUdfT04oIWk5MTVfZ2VtX2NvbnRleHRf aXNfa2VybmVsKGN0eCkpOwo+Pj4gKyAgICAgLyogVXNpbmcgdGhlIHNpbXBsZSBpZGEgaW50ZXJm YWNlLCB0aGUgbWF4IGlzIGxpbWl0ZWQgYnkgc2l6ZW9mKGludCkgKi8KPj4+ICsgICAgIEJVSUxE X0JVR19PTihNQVhfQ09OVEVYVF9IV19JRCA+IElOVF9NQVgpOwo+Pj4gKyAgICAgQlVJTERfQlVH X09OKEdFTjExX01BWF9DT05URVhUX0hXX0lEID4gSU5UX01BWCk7Cj4+PiArICAgICBpZGFfaW5p dCgmaTkxNS0+Y29udGV4dHMuaHdfaWRhKTsKPj4+ICsgICAgIElOSVRfTElTVF9IRUFEKCZpOTE1 LT5jb250ZXh0cy5od19pZF9saXN0KTsKPj4+ICAgIAo+Pj4gLSAgICAgY29udGV4dF9jbG9zZShj dHgpOwo+Pj4gLSAgICAgaTkxNV9nZW1fY29udGV4dF9mcmVlKGN0eCk7Cj4+PiArICAgICBJTklU X1dPUksoJmk5MTUtPmNvbnRleHRzLmZyZWVfd29yaywgY29udGV4dHNfZnJlZV93b3JrZXIpOwo+ Pj4gKyAgICAgaW5pdF9sbGlzdF9oZWFkKCZpOTE1LT5jb250ZXh0cy5mcmVlX2xpc3QpOwo+Pgo+ PiB1Z2ggZGlmZi4uIDopIGxvb2tzIGxpa2UgcHVyZSBtb3ZlbWVudCBmcm9tIHBlcnNwZWN0aXZl IG9mCj4+IGRlc3Ryb3lfa2VybmVsX2NvbnRleHQuCj4+Cj4+PiAgICB9Cj4+PiAgICAKPj4+ICAg IHN0YXRpYyBib29sIG5lZWRzX3ByZWVtcHRfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKPj4+IEBAIC00NzAsMTQgKzUzNSw3IEBAIGludCBpOTE1X2dlbV9jb250ZXh0c19p bml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4+ICAgICAgICBpZiAocmV0 KQo+Pj4gICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+ICAgIAo+Pj4gLSAgICAgSU5JVF9M SVNUX0hFQUQoJmRldl9wcml2LT5jb250ZXh0cy5saXN0KTsKPj4+IC0gICAgIElOSVRfV09SSygm ZGV2X3ByaXYtPmNvbnRleHRzLmZyZWVfd29yaywgY29udGV4dHNfZnJlZV93b3JrZXIpOwo+Pj4g LSAgICAgaW5pdF9sbGlzdF9oZWFkKCZkZXZfcHJpdi0+Y29udGV4dHMuZnJlZV9saXN0KTsKPj4+ IC0KPj4+IC0gICAgIC8qIFVzaW5nIHRoZSBzaW1wbGUgaWRhIGludGVyZmFjZSwgdGhlIG1heCBp cyBsaW1pdGVkIGJ5IHNpemVvZihpbnQpICovCj4+PiAtICAgICBCVUlMRF9CVUdfT04oTUFYX0NP TlRFWFRfSFdfSUQgPiBJTlRfTUFYKTsKPj4+IC0gICAgIEJVSUxEX0JVR19PTihHRU4xMV9NQVhf Q09OVEVYVF9IV19JRCA+IElOVF9NQVgpOwo+Pj4gLSAgICAgaWRhX2luaXQoJmRldl9wcml2LT5j b250ZXh0cy5od19pZGEpOwo+Pj4gKyAgICAgaW5pdF9jb250ZXh0cyhkZXZfcHJpdik7Cj4+PiAg ICAKPj4+ICAgICAgICAvKiBsb3dlc3QgcHJpb3JpdHk7IGlkbGUgdGFzayAqLwo+Pj4gICAgICAg IGN0eCA9IGk5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2tlcm5lbChkZXZfcHJpdiwgSTkxNV9QUklP UklUWV9NSU4pOwo+Pj4gQEAgLTQ5MCw2ICs1NDgsNyBAQCBpbnQgaTkxNV9nZW1fY29udGV4dHNf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+PiAgICAgICAgICogYWxs IHVzZXIgY29udGV4dHMgd2lsbCBoYXZlIG5vbi16ZXJvIGh3X2lkLgo+Pj4gICAgICAgICAqLwo+ Pj4gICAgICAgIEdFTV9CVUdfT04oY3R4LT5od19pZCk7Cj4+PiArICAgICBHRU1fQlVHX09OKCFh dG9taWNfcmVhZCgmY3R4LT5waW5faHdfaWQpKTsKPj4KPj4gLyogS2VybmVsIGNvbnRleHQgaXMg cGVybWEtcGlubmVkICovCj4+Cj4+PiAgICAgICAgZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0ID0g Y3R4Owo+Pj4gICAgCj4+PiAgICAgICAgLyogaGlnaGVzdCBwcmlvcml0eTsgcHJlZW1wdGluZyB0 YXNrICovCj4+PiBAQCAtNTI3LDYgKzU4Niw3IEBAIHZvaWQgaTkxNV9nZW1fY29udGV4dHNfZmlu aShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPj4+ICAgICAgICBkZXN0cm95X2tlcm5l bF9jb250ZXh0KCZpOTE1LT5rZXJuZWxfY29udGV4dCk7Cj4+PiAgICAKPj4+ICAgICAgICAvKiBN dXN0IGZyZWUgYWxsIGRlZmVycmVkIGNvbnRleHRzICh2aWEgZmx1c2hfd29ya3F1ZXVlKSBmaXJz dCAqLwo+Pj4gKyAgICAgR0VNX0JVR19PTighbGlzdF9lbXB0eSgmaTkxNS0+Y29udGV4dHMuaHdf aWRfbGlzdCkpOwo+Pj4gICAgICAgIGlkYV9kZXN0cm95KCZpOTE1LT5jb250ZXh0cy5od19pZGEp Owo+Pj4gICAgfQo+Pj4gICAgCj4+PiBAQCAtOTMyLDYgKzk5MiwzMyBAQCBpbnQgaTkxNV9nZW1f Y29udGV4dF9yZXNldF9zdGF0c19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+Pj4gICAg ICAgIHJldHVybiByZXQ7Cj4+PiAgICB9Cj4+PiAgICAKPj4+ICtpbnQgX19pOTE1X2dlbV9jb250 ZXh0X3Bpbl9od19pZChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQo+Pj4gK3sKPj4+ICsg ICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gY3R4LT5pOTE1Owo+Pj4gKyAgICAg aW50IGVyciA9IDA7Cj4+PiArCj4+PiArICAgICBtdXRleF9sb2NrKCZpOTE1LT5jb250ZXh0cy5t dXRleCk7Cj4+PiArCj4+PiArICAgICBHRU1fQlVHX09OKGk5MTVfZ2VtX2NvbnRleHRfaXNfY2xv c2VkKGN0eCkpOwo+Pj4gKwo+Pj4gKyAgICAgaWYgKGxpc3RfZW1wdHkoJmN0eC0+aHdfaWRfbGlu aykpIHsKPj4+ICsgICAgICAgICAgICAgR0VNX0JVR19PTihhdG9taWNfcmVhZCgmY3R4LT5waW5f aHdfaWQpKTsKPj4+ICsKPj4+ICsgICAgICAgICAgICAgZXJyID0gYXNzaWduX2h3X2lkKGk5MTUs ICZjdHgtPmh3X2lkKTsKPj4+ICsgICAgICAgICAgICAgaWYgKGVycikKPj4+ICsgICAgICAgICAg ICAgICAgICAgICBnb3RvIG91dF91bmxvY2s7Cj4+PiArCj4+PiArICAgICAgICAgICAgIGxpc3Rf YWRkX3RhaWwoJmN0eC0+aHdfaWRfbGluaywgJmk5MTUtPmNvbnRleHRzLmh3X2lkX2xpc3QpOwo+ Pj4gKyAgICAgfQo+Pj4gKwo+Pj4gKyAgICAgR0VNX0JVR19PTihhdG9taWNfcmVhZCgmY3R4LT5w aW5faHdfaWQpID09IH4wdSk7Cj4+PiArICAgICBhdG9taWNfaW5jKCZjdHgtPnBpbl9od19pZCk7 Cj4+PiArCj4+PiArb3V0X3VubG9jazoKPj4+ICsgICAgIG11dGV4X3VubG9jaygmaTkxNS0+Y29u dGV4dHMubXV0ZXgpOwo+Pj4gKyAgICAgcmV0dXJuIGVycjsKPj4+ICt9Cj4+PiArCj4+PiAgICAj aWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCj4+PiAgICAjaW5jbHVkZSAi c2VsZnRlc3RzL21vY2tfY29udGV4dC5jIgo+Pj4gICAgI2luY2x1ZGUgInNlbGZ0ZXN0cy9pOTE1 X2dlbV9jb250ZXh0LmMiCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5o Cj4+PiBpbmRleCA4NTFkYWQ2ZGVjZDcuLmM3M2FjNjE0ZjU4YyAxMDA2NDQKPj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAo+Pj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oCj4+PiBAQCAtMTM2LDYgKzEzNiw4IEBAIHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0IHsKPj4+ICAgICAgICAgKiBpZCBmb3IgdGhlIGxpZmV0aW1l IG9mIHRoZSBjb250ZXh0Lgo+Pj4gICAgICAgICAqLwo+Pj4gICAgICAgIHVuc2lnbmVkIGludCBo d19pZDsKPj4+ICsgICAgIGF0b21pY190IHBpbl9od19pZDsKPj4KPj4gSSB0aGluayBub3cgd2Ug bmVlZCBzaG9ydCBjb21tZW50cyBkZXNjcmliaW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhl Cj4+IHR3by4KPiAKPiBPbmUgaXMgMzJiaXRzIHVuc2lnbmVkLCB1bnNlcmlhbGlzZWQuIFRoZSBv dGhlciBpcyAzMmJpdHMgc2lnbmVkLCBhbmQKPiB2ZXJ5IGxvb3NlbHkgc2VyaWFsaXNlZCA6KQoK QW5kIHBpbl9od19pZCBpcyByZWFsbHkgaHdfaWRfcGluX2NvdW50LCBubz8gOikKCj4gCj4+PiAr ICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGh3X2lkX2xpbms7Cj4+Cj4+IEFuZCBmb3IgdGhpcyBvbmUu Cj4gCj4gW3NuaXBdCj4gCj4+IFNvIGluIGVzc2VuY2UgdGhlcmUgd2lsbCBiZSBhIGxpdHRsZSBi aXQgbW9yZSBjb3N0IHdoZW4gcGlubmluZyBpbiB0aGUKPj4gbm9ybWFsIGNhc2UsIG9yIGEgYml0 IGJpdCBtb3JlIGluIHRoZSBzdGVhbGluZy9wYXRob2xvZ2ljYWwgY2FzZSwgYnV0IGFzCj4+IGxv bmcgYXMgd2Ugc3RheSBiZWxvdyBvdmVyLXN1YnNjcmlwdGlvbiB0aGUgY29zdCBpcyBvbmx5IG9u IGZpcnN0IHBpbi4KPj4gTm8gY29tcGxhaW50cyB0aGVyZS4gRGVidWcgYWxzbyB3b24ndCBiZSBj b25mdXNpbmcgaW4gdGhlIG5vcm1hbCBjYXNlCj4+IHNpbmNlIG51bWJlcnMgd2lsbCBiZSBzdGFi bGUuCj4gCj4gWXVwLiBOaWNlIGFkZGl0aW9uIHRvIHRoZSBjaGFuZ2Vsb2csIHRoYW5rcy4KPiAg IAo+PiBEb2VzIGl0IGhhdmUgYW55IG5lZ2F0aXZlIGNvbm5vdGF0aW9ucyBpbiB0aGUgd29ybGQg b2YgT0EgaXMgdGhlCj4+IHF1ZXN0aW9uIGZvciBMaW9uZWw/Cj4gCj4gTGlvbmVsIGtlcHQgcHJv bWlzaW5nIG1lIHRoaXMgd2FzIG9rLCB0aGF0IGhlL2dwdXRvcCB3YXMgcXVpdGUgcmVhZHkgZm9y Cj4gc2hvcnRlciBsaXZlZCBjdHggaWQsIGFuZCByZXVzZS4KCkNvb2wuCgpSZWdhcmRzLAoKVHZy dGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=