From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 37/40] drm/i915: Allow a context to define its set of engines Date: Thu, 27 Sep 2018 12:28:47 +0100 Message-ID: References: <20180919195544.1511-1-chris@chris-wilson.co.uk> <20180919195544.1511-37-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id BFA196E592 for ; Thu, 27 Sep 2018 11:29:01 +0000 (UTC) In-Reply-To: <20180919195544.1511-37-chris@chris-wilson.co.uk> 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 List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE5LzA5LzIwMTggMjA6NTUsIENocmlzIFdpbHNvbiB3cm90ZToKPiBPdmVyIHRoZSBsYXN0 IGZldyB5ZWFycywgd2UgaGF2ZSBkZWJhdGVkIGhvdyB0byBleHRlbmQgdGhlIHVzZXIgQVBJIHRv Cj4gc3VwcG9ydCBhbiBpbmNyZWFzZSBpbiB0aGUgbnVtYmVyIG9mIGVuZ2luZXMsIHRoYXQgbWF5 IGJlIHNwYXJzZSBhbmQKPiBldmVuIGJlIGhldGVyb2dlbmVvdXMgd2l0aGluIGEgY2xhc3MgKG5v dCBhbGwgdmlkZW8gZGVjb2RlcnMgY3JlYXRlZAo+IGVxdWFsKS4gV2Ugc2V0dGxlZCBvbiB1c2lu ZyAoY2xhc3MsIGluc3RhbmNlKSB0dXBsZXMgdG8gaWRlbnRpZnkgYQo+IHNwZWNpZmljIGVuZ2lu ZSwgd2l0aCBhbiBBUEkgZm9yIHRoZSB1c2VyIHRvIGNvbnN0cnVjdCBhIG1hcCBvZiBlbmdpbmVz Cj4gdG8gY2FwYWJpbGl0aWVzLiBJbnRvIHRoaXMgcGljdHVyZSwgd2UgdGhlbiBhZGQgYSBjaGFs bGVuZ2Ugb2YgdmlydHVhbAo+IGVuZ2luZXM7IG9uZSB1c2VyIGVuZ2luZSB0aGF0IG1hcHMgYmVo aW5kIHRoZSBzY2VuZXMgdG8gYW55IG51bWJlciBvZgo+IHBoeXNpY2FsIGVuZ2luZXMuIFRvIGtl ZXAgaXQgZ2VuZXJhbCwgd2Ugd2FudCB0aGUgdXNlciB0byBoYXZlIGZ1bGwKPiBjb250cm9sIG92 ZXIgdGhhdCBtYXBwaW5nLiBUbyB0aGF0IGVuZCwgd2UgYWxsb3cgdGhlIHVzZXIgdG8gY29uc3Ry YWluIGEKPiBjb250ZXh0IHRvIGRlZmluZSB0aGUgc2V0IG9mIGVuZ2luZXMgdGhhdCBpdCBjYW4g YWNjZXNzLCBvcmRlciBmdWxseQo+IGNvbnRyb2xsZWQgYnkgdGhlIHVzZXIgdmlhIChjbGFzcywg aW5zdGFuY2UpLiBXaXRoIHN1Y2ggcHJlY2lzZSBjb250cm9sCj4gaW4gY29udGV4dCBzZXR1cCwg d2UgY2FuIGNvbnRpbnVlIHRvIHVzZSB0aGUgZXhpc3RpbmcgZXhlY2J1ZiB1QUJJIG9mCj4gc3Bl Y2lmeWluZyBhIHNpbmdsZSBpbmRleDsgb25seSBub3cgaXQgZG9lc24ndCBhdXRvbWFnaWNhbGx5 IG1hcCBvbnRvCj4gdGhlIGVuZ2luZXMsIGl0IHVzZXMgdGhlIHVzZXIgZGVmaW5lZCBlbmdpbmUg bWFwIGZyb20gdGhlIGNvbnRleHQuCj4gCj4gVGhlIEk5MTVfRVhFQ19ERUZBVUxUIHNsb3QgaXMg bGVmdCBlbXB0eSwgYW5kIGludmFsaWQgZm9yIHVzZSBieQo+IGV4ZWNidWYuIEl0J3MgdXNlIHdp bGwgYmUgcmV2ZWFsZWQgaW4gdGhlIG5leHQgcGF0Y2guCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgfCA4OCArKysrKysrKysrKysrKysrKysr KysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmggICAgfCAgNCAr Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAyMiArKysr LS0KPiAgIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAgICAgICB8IDI3ICsr KysrKysKPiAgIDQgZmlsZXMgY2hhbmdlZCwgMTM1IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRl eHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IGluZGV4IGE4 NTcwYTA3YjNiNy4uMzEzNDcxMjUzZjUxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2NvbnRleHQuYwo+IEBAIC05MCw2ICs5MCw3IEBACj4gICAjaW5jbHVkZSA8ZHJtL2k5MTVf ZHJtLmg+Cj4gICAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiAgICNpbmNsdWRlICJpOTE1X3RyYWNl LmgiCj4gKyNpbmNsdWRlICJpOTE1X3VzZXJfZXh0ZW5zaW9ucy5oIgo+ICAgI2luY2x1ZGUgImlu dGVsX3dvcmthcm91bmRzLmgiCj4gICAKPiAgICNkZWZpbmUgQUxMX0wzX1NMSUNFUyhkZXYpICgx IDw8IE5VTV9MM19TTElDRVMoZGV2KSkgLSAxCj4gQEAgLTIyMyw2ICsyMjQsOCBAQCBzdGF0aWMg dm9pZCBpOTE1X2dlbV9jb250ZXh0X2ZyZWUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkK PiAgIAkJCWNlLT5vcHMtPmRlc3Ryb3koY2UpOwo+ICAgCX0KPiAgIAo+ICsJa2ZyZWUoY3R4LT5l bmdpbmVzKTsKPiArCj4gICAJaWYgKGN0eC0+dGltZWxpbmUpCj4gICAJCWk5MTVfdGltZWxpbmVf cHV0KGN0eC0+dGltZWxpbmUpOwo+ICAgCj4gQEAgLTk0OCw2ICs5NTEsODcgQEAgaW50IGk5MTVf Z2VtX2NvbnRleHRfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSwKPiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+ICAgCj4gK3N0cnVjdCBzZXRfZW5naW5lcyB7 Cj4gKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Owo+ICsJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqKmVuZ2luZXM7Cj4gKwl1bnNpZ25lZCBpbnQgbmVuZ2luZTsKPiArfTsKPiArCj4gK3N0 YXRpYyBjb25zdCBpOTE1X3VzZXJfZXh0ZW5zaW9uX2ZuIHNldF9lbmdpbmVzX19leHRlbnNpb25z W10gPSB7Cj4gK307CgpUaGlzIGlzIE9LIHVubGVzcyBzb21lb25lIG9uZSBkYXkgZ2V0cyB0aGUg ZGVzaXJlIHRvIG1ha2UgdGhlIGV4dGVuc2lvbiAKbmFtZXNwYWNlIHNwYXJzZS4gSSB3YXMgdGhp bmtpbmcgb24gaG93IHRvIHB1dCBzb21lIHdhcm5pbmdzIGluIHRoZSBjb2RlIAp0byB3YXJuIGFi b3V0IGl0LCBidXQgSSB0aGluayB0aGF0J3MgZm9yIGxhdGVyLiBOYW1lc3BhY2UgaXMgYWxzbyBw ZXIgCnBhcmVudCBpb2N0bCwgYW5vdGhlciB0aGluZyB3aGljaCB3b3VsZCBwZXJoYXBzIG5lZWQg ZW5mb3JjaW5nLgoKPiArCj4gK3N0YXRpYyBpbnQgc2V0X2VuZ2luZXMoc3RydWN0IGk5MTVfZ2Vt X2NvbnRleHQgKmN0eCwKPiArCQkgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3Bh cmFtICphcmdzKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMgX191 c2VyICp1c2VyOwo+ICsJc3RydWN0IHNldF9lbmdpbmVzIHNldCA9IHsKPiArCQkuY3R4ID0gY3R4 LAo+ICsJCS5lbmdpbmVzID0gTlVMTCwKPiArCQkubmVuZ2luZSA9IC0xLAo+ICsJfTsKPiArCXVu c2lnbmVkIGludCBuOwo+ICsJdTY0IHNpemUsIGV4dGVuc2lvbnM7CgpTaXplIGlzIHUzMiBpbiB0 aGUgdUFQSSwgc28gZWl0aGVyIHRoYXQgb3IgdW5zaWduZWQgaW50IHdvdWxkIGRvIGhlcmUuCgo+ ICsJaW50IGVycjsKPiArCj4gKwl1c2VyID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnZhbHVlKTsK PiArCXNpemUgPSBhcmdzLT5zaXplOwo+ICsJaWYgKCFzaXplKQoKYXJncy0+c2l6ZXMgPSBzaXpl b2YoKnVzZXIpOwoKLi4uIGlmIHlvdSB3YW50IHRvIGFsbG93IHNpemUgcHJvYmluZyB2aWEgc2V0 IHBhcmFtLCBvciB3ZSBhZGQgYSAKZ2V0X3BhcmFtICh0b28gbXVjaCB3b3JrIGZvciBub3RoaW5n PykgYW5kIG9ubHkgYWxsb3cgcHJvYmluZyBmcm9tIHRoZXJlPwoKPiArCQlnb3RvIG91dDsKPiAr Cj4gKwlpZiAoc2l6ZSA8IHNpemVvZihzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMp KQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCXNpemUgLT0gc2l6ZW9mKHN0cnVjdCBpOTE1 X2NvbnRleHRfcGFyYW1fZW5naW5lcyk7Cj4gKwlpZiAoc2l6ZSAlIHNpemVvZigqdXNlci0+Y2xh c3NfaW5zdGFuY2UpKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCXNldC5uZW5naW5lID0g c2l6ZSAvIHNpemVvZigqdXNlci0+Y2xhc3NfaW5zdGFuY2UpOwo+ICsJaWYgKHNldC5uZW5naW5l ID09IDAgfHwgc2V0Lm5lbmdpbmUgPj0gSTkxNV9FWEVDX1JJTkdfTUFTSykKPiArCQlyZXR1cm4g LUVJTlZBTDsKPiArCj4gKwlzZXQuZW5naW5lcyA9IGttYWxsb2NfYXJyYXkoc2V0Lm5lbmdpbmUg KyAxLAo+ICsJCQkJICAgIHNpemVvZigqc2V0LmVuZ2luZXMpLAo+ICsJCQkJICAgIEdGUF9LRVJO RUwpOwo+ICsJaWYgKCFzZXQuZW5naW5lcykKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlz ZXQuZW5naW5lc1swXSA9IE5VTEw7CgovKiBSZXNlcnZlIHRoZSBJOTE1X0VYRUNfREVGQVVMVCBz bG90LiAqLwoKPiArCWZvciAobiA9IDA7IG4gPCBzZXQubmVuZ2luZTsgbisrKSB7Cj4gKwkJdTMy IGNsYXNzLCBpbnN0YW5jZTsKCkkgd2lsbCBsYXRlciByZWNvbW1lbmQgd2UgdXNlIHUxNiBmb3Ig Y2xhc3MvaW5zdGFuY2UuIEkgdGhpbmsgd2Ugc2V0dGxlZCAKZm9yIHRoYXQgaW4gdGhlIG1lYW50 aW1lLgoKPiArCj4gKwkJaWYgKGdldF91c2VyKGNsYXNzLCAmdXNlci0+Y2xhc3NfaW5zdGFuY2Vb bl0uY2xhc3MpIHx8Cj4gKwkJICAgIGdldF91c2VyKGluc3RhbmNlLCAmdXNlci0+Y2xhc3NfaW5z dGFuY2Vbbl0uaW5zdGFuY2UpKSB7Cj4gKwkJCWtmcmVlKHNldC5lbmdpbmVzKTsKPiArCQkJcmV0 dXJuIC1FRkFVTFQ7Cj4gKwkJfQo+ICsKPiArCQlzZXQuZW5naW5lc1tuICsgMV0gPQo+ICsJCQlp bnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoY3R4LT5pOTE1LCBjbGFzcywgaW5zdGFuY2UpOwo+ICsJ CWlmICghc2V0LmVuZ2luZXNbbiArIDFdKSB7Cj4gKwkJCWtmcmVlKHNldC5lbmdpbmVzKTsKPiAr CQkJcmV0dXJuIC1FTk9FTlQ7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCWVyciA9IC1FRkFVTFQ7Cj4g KwlpZiAoIWdldF91c2VyKGV4dGVuc2lvbnMsICZ1c2VyLT5leHRlbnNpb25zKSkKPiArCQllcnIg PSBpOTE1X3VzZXJfZXh0ZW5zaW9ucyh1NjRfdG9fdXNlcl9wdHIoZXh0ZW5zaW9ucyksCj4gKwkJ CQkJICAgc2V0X2VuZ2luZXNfX2V4dGVuc2lvbnMsCj4gKwkJCQkJICAgQVJSQVlfU0laRShzZXRf ZW5naW5lc19fZXh0ZW5zaW9ucyksCj4gKwkJCQkJICAgJnNldCk7Cj4gKwlpZiAoZXJyKSB7CgpE byB3ZSBuZWVkIGFuIHVzZXIgZXh0ZW5zaW9ucyBkZXN0cnVjdG9yIHRhYmxlIGZvciBhIG1vcmUg CmNvbXBhcnRtZW50YWxpemVkIGRlc2lnbj8gVGhpcyBhY3R1YWxseSBhcHBsaWVzIHRvIHRoZSAK aTkxNV91c2VyX2V4dGVuc2lvbnMoKSBpbXBsZW1lbnRhdGlvbi4uIGl0IHdvdWxkIG5lZWQgdG8g dGFrZSB0d28gCmZ1bmN0aW9uIHRhYmxlcyBJIHRoaW5rIGFuZCB1bndpbmQgdW50aWwgdGhlIG9u ZSB0aGF0IGZhaWxlZC4KCj4gKwkJa2ZyZWUoc2V0LmVuZ2luZXMpOwo+ICsJCXJldHVybiBlcnI7 Cj4gKwl9Cj4gKwo+ICtvdXQ6Cj4gKwlrZnJlZShjdHgtPmVuZ2luZXMpOwo+ICsJY3R4LT5lbmdp bmVzID0gc2V0LmVuZ2luZXM7Cj4gKwljdHgtPm5lbmdpbmUgPSBzZXQubmVuZ2luZSArIDE7Cj4g Kwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gICBpbnQgaTkxNV9nZW1fY29udGV4dF9zZXRwYXJh bV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCQkJCSAgICBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCj4gICB7Cj4gQEAgLTEwMTEsNiArMTA5NSwxMCBAQCBpbnQg aTkxNV9nZW1fY29udGV4dF9zZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAo+ICAgCQl9Cj4gICAJCWJyZWFrOwo+ICAgCj4gKwljYXNlIEk5MTVfQ09OVEVY VF9QQVJBTV9FTkdJTkVTOgo+ICsJCXJldCA9IHNldF9lbmdpbmVzKGN0eCwgYXJncyk7Cj4gKwkJ YnJlYWs7Cj4gKwo+ICAgCWRlZmF1bHQ6Cj4gICAJCXJldCA9IC1FSU5WQUw7Cj4gICAJCWJyZWFr Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKPiBpbmRleCA3NzAwNDM0 NDliYTYuLjlmODkxMTlhNjU2NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9jb250ZXh0LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmgKPiBAQCAtNjcsNiArNjcsOCBAQCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCB7Cj4g ICAJLyoqIGZpbGVfcHJpdjogb3duaW5nIGZpbGUgZGVzY3JpcHRvciAqLwo+ICAgCXN0cnVjdCBk cm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdjsKPiAgIAo+ICsJc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqKmVuZ2luZXM7Cj4gKwo+ICAgCXN0cnVjdCBpOTE1X3RpbWVsaW5lICp0aW1lbGlu ZTsKPiAgIAo+ICAgCS8qKgo+IEBAIC0xMzUsNiArMTM3LDggQEAgc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgewo+ICAgI2RlZmluZSBDT05URVhUX0NMT1NFRAkJCTEKPiAgICNkZWZpbmUgQ09OVEVY VF9GT1JDRV9TSU5HTEVfU1VCTUlTU0lPTgkyCj4gICAKPiArCXVuc2lnbmVkIGludCBuZW5naW5l OwoKV2h5IHB1dCByZWxhdGVkIGZpZWxkcyBhcGFydD8KCj4gKwo+ICAgCS8qKgo+ICAgCSAqIEBo d19pZDogLSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGNvbnRleHQKPiAgIAkgKgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBpbmRleCAxMDk0ODZhNmVm MDcuLmZhZWRmZGNhODc1ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9leGVjYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9l eGVjYnVmZmVyLmMKPiBAQCAtMjAxNCwxMyArMjAxNCwyMyBAQCBzdGF0aWMgY29uc3QgZW51bSBp bnRlbF9lbmdpbmVfaWQgdXNlcl9yaW5nX21hcFtJOTE1X1VTRVJfUklOR1MgKyAxXSA9IHsKPiAg IH07Cj4gICAKPiAgIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoKPiAtZWJfc2VsZWN0 X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gK2ViX3NlbGVjdF9l bmdpbmUoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsCj4gICAJCSBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGUsCj4gICAJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzKQo+ICAg ewo+ICAgCXVuc2lnbmVkIGludCB1c2VyX3JpbmdfaWQgPSBhcmdzLT5mbGFncyAmIEk5MTVfRVhF Q19SSU5HX01BU0s7Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ICAgCj4g KwlpZiAoZWItPmN0eC0+ZW5naW5lcykgewo+ICsJCWlmICh1c2VyX3JpbmdfaWQgPj0gZWItPmN0 eC0+bmVuZ2luZSkgewo+ICsJCQlEUk1fREVCVUcoImV4ZWNidWYgd2l0aCB1bmtub3duIHJpbmc6 ICV1XG4iLAo+ICsJCQkJICB1c2VyX3JpbmdfaWQpOwo+ICsJCQlyZXR1cm4gTlVMTDsKPiArCQl9 Cj4gKwo+ICsJCXJldHVybiBlYi0+Y3R4LT5lbmdpbmVzW3VzZXJfcmluZ19pZF07Cj4gKwl9Cj4g Kwo+ICAgCWlmICh1c2VyX3JpbmdfaWQgPiBJOTE1X1VTRVJfUklOR1MpIHsKPiAgIAkJRFJNX0RF QlVHKCJleGVjYnVmIHdpdGggdW5rbm93biByaW5nOiAldVxuIiwgdXNlcl9yaW5nX2lkKTsKPiAg IAkJcmV0dXJuIE5VTEw7Cj4gQEAgLTIwMzMsMTEgKzIwNDMsMTEgQEAgZWJfc2VsZWN0X2VuZ2lu ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCXJldHVybiBOVUxMOwo+ ICAgCX0KPiAgIAo+IC0JaWYgKHVzZXJfcmluZ19pZCA9PSBJOTE1X0VYRUNfQlNEICYmIEhBU19C U0QyKGRldl9wcml2KSkgewo+ICsJaWYgKHVzZXJfcmluZ19pZCA9PSBJOTE1X0VYRUNfQlNEICYm IEhBU19CU0QyKGViLT5pOTE1KSkgewo+ICAgCQl1bnNpZ25lZCBpbnQgYnNkX2lkeCA9IGFyZ3Mt PmZsYWdzICYgSTkxNV9FWEVDX0JTRF9NQVNLOwo+ICAgCj4gICAJCWlmIChic2RfaWR4ID09IEk5 MTVfRVhFQ19CU0RfREVGQVVMVCkgewo+IC0JCQlic2RfaWR4ID0gZ2VuOF9kaXNwYXRjaF9ic2Rf ZW5naW5lKGRldl9wcml2LCBmaWxlKTsKPiArCQkJYnNkX2lkeCA9IGdlbjhfZGlzcGF0Y2hfYnNk X2VuZ2luZShlYi0+aTkxNSwgZmlsZSk7Cj4gICAJCX0gZWxzZSBpZiAoYnNkX2lkeCA+PSBJOTE1 X0VYRUNfQlNEX1JJTkcxICYmCj4gICAJCQkgICBic2RfaWR4IDw9IEk5MTVfRVhFQ19CU0RfUklO RzIpIHsKPiAgIAkJCWJzZF9pZHggPj49IEk5MTVfRVhFQ19CU0RfU0hJRlQ7Cj4gQEAgLTIwNDgs OSArMjA1OCw5IEBAIGViX3NlbGVjdF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ICAgCQkJcmV0dXJuIE5VTEw7Cj4gICAJCX0KPiAgIAo+IC0JCWVuZ2luZSA9IGRl dl9wcml2LT5lbmdpbmVbX1ZDUyhic2RfaWR4KV07Cj4gKwkJZW5naW5lID0gZWItPmk5MTUtPmVu Z2luZVtfVkNTKGJzZF9pZHgpXTsKPiAgIAl9IGVsc2Ugewo+IC0JCWVuZ2luZSA9IGRldl9wcml2 LT5lbmdpbmVbdXNlcl9yaW5nX21hcFt1c2VyX3JpbmdfaWRdXTsKPiArCQllbmdpbmUgPSBlYi0+ aTkxNS0+ZW5naW5lW3VzZXJfcmluZ19tYXBbdXNlcl9yaW5nX2lkXV07Cj4gICAJfQo+ICAgCj4g ICAJaWYgKCFlbmdpbmUpIHsKPiBAQCAtMjI2MCw3ICsyMjcwLDcgQEAgaTkxNV9nZW1fZG9fZXhl Y2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCWlmICh1bmxpa2VseShlcnIpKQo+ ICAgCQlnb3RvIGVycl9kZXN0cm95Owo+ICAgCj4gLQllYi5lbmdpbmUgPSBlYl9zZWxlY3RfZW5n aW5lKGViLmk5MTUsIGZpbGUsIGFyZ3MpOwo+ICsJZWIuZW5naW5lID0gZWJfc2VsZWN0X2VuZ2lu ZSgmZWIsIGZpbGUsIGFyZ3MpOwo+ICAgCWlmICghZWIuZW5naW5lKSB7Cj4gICAJCWVyciA9IC1F SU5WQUw7Cj4gICAJCWdvdG8gZXJyX2VuZ2luZTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBp L2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gaW5kZXggNjVi MGI4NDQxOWYzLi5kNDFiNGM2NzNhZjQgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9p OTE1X2RybS5oCj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gQEAgLTE1MDgs OSArMTUwOCwzNiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gewo+ICAgI2Rl ZmluZSAgIEk5MTVfQ09OVEVYVF9NQVhfVVNFUl9QUklPUklUWQkxMDIzIC8qIGluY2x1c2l2ZSAq Lwo+ICAgI2RlZmluZSAgIEk5MTVfQ09OVEVYVF9ERUZBVUxUX1BSSU9SSVRZCQkwCj4gICAjZGVm aW5lICAgSTkxNV9DT05URVhUX01JTl9VU0VSX1BSSU9SSVRZCS0xMDIzIC8qIGluY2x1c2l2ZSAq Lwo+ICsKPiArLyoKPiArICogSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVM6Cj4gKyAqCj4gKyAq IEJpbmQgdGhpcyBjb250ZXh0IHRvIG9wZXJhdGUgb24gdGhpcyBzdWJzZXQgb2YgYXZhaWxhYmxl IGVuZ2luZXMuIEhlbmNlZm9ydGgsCj4gKyAqIHRoZSBJOTE1X0VYRUNfUklORyBzZWxlY3RvciBm b3IgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZGRVIyIG9wZXJhdGVzIGFzCj4gKyAqIGFuIGlu ZGV4IGludG8gdGhpcyBhcnJheSBvZiBlbmdpbmVzOyBJOTE1X0VYRUNfREVGQVVMVCBzZWxlY3Rp bmcgZW5naW5lWzBdCj4gKyAqIGFuZCB1cHdhcmRzLiBUaGUgYXJyYXkgY3JlYXRlZCBpcyBvZmZz ZXQgYnkgMSwgc3VjaCB0aGF0IGJ5IGRlZmF1bHQKPiArICogSTkxNV9FWEVDX0RFRkFVTFQgaXMg bGVmdCBlbXB0eSwgdG8gYmUgZmlsbGVkIGluIGFzIGRpcmVjdGVkLiBTbG90cyAxLi4uTgo+ICsg KiBhcmUgdGhlbiBmaWxsZWQgaW4gdXNpbmcgdGhlIHNwZWNpZmllZCAoY2xhc3MsIGluc3RhbmNl KS4KClNob3VsZCB3ZSBhbGxvdyBzcGVjaWZ5aW5nIHRoZSBkZWZhdWx0IGluZGV4PyBJIGFtIHdv bmRlcmluZyBpZiB0aGF0IAp3b3VsZCBtYWtlIGxpZmUgZWFzaWVyIHRvIGFueSB1c2Vyc3BhY2Uu Cgo+ICsgKgo+ICsgKiBTZXR0aW5nIHRoZSBudW1iZXIgb2YgZW5naW5lcyBib3VuZCB0byB0aGUg Y29udGV4dCB3aWxsIHJldmVydCBiYWNrIHRvCj4gKyAqIGRlZmF1bHQgc2V0dGluZ3MuCj4gKyAq Cj4gKyAqIFNlZSBzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMuCj4gKyAqLwo+ICsj ZGVmaW5lIEk5MTVfQ09OVEVYVF9QQVJBTV9FTkdJTkVTCTB4Nwo+ICsKPiAgIAlfX3U2NCB2YWx1 ZTsKPiAgIH07Cj4gICAKPiArc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzIHsKPiAr CV9fdTY0IGV4dGVuc2lvbnM7Cj4gKwo+ICsJc3RydWN0IHsKPiArCQlfX3UzMiBjbGFzczsgLyog c2VlIGVudW0gZHJtX2k5MTVfZ2VtX2VuZ2luZV9jbGFzcyAqLwo+ICsJCV9fdTMyIGluc3RhbmNl OwoKdTE2IGhlcmUgYXMgbWVudGlvbmVkIGVhcmxpZXIuCgo+ICsJfSBjbGFzc19pbnN0YW5jZVsw XTsKPiArfTsKPiArCj4gICBlbnVtIGRybV9pOTE1X29hX2Zvcm1hdCB7Cj4gICAJSTkxNV9PQV9G T1JNQVRfQTEzID0gMSwJICAgIC8qIEhTVyBvbmx5ICovCj4gICAJSTkxNV9PQV9GT1JNQVRfQTI5 LAkgICAgLyogSFNXIG9ubHkgKi8KPiAKClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==