From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 24/50] drm/i915: Allow userspace to clone contexts on creation Date: Mon, 15 Apr 2019 13:56:10 +0100 Message-ID: <4fcbec56-571d-0655-20aa-75cb3ba0e865@linux.intel.com> References: <20190412085410.10392-1-chris@chris-wilson.co.uk> <20190412085410.10392-25-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 11116895C8 for ; Mon, 15 Apr 2019 12:56:13 +0000 (UTC) In-Reply-To: <20190412085410.10392-25-chris@chris-wilson.co.uk> Content-Language: en-US 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 Ck9uIDEyLzA0LzIwMTkgMDk6NTMsIENocmlzIFdpbHNvbiB3cm90ZToKPiBBIHVzZWNhc2UgYXJv c2Ugb3V0IG9mIGhhbmRsaW5nIGNvbnRleHQgcmVjb3ZlcnkgaW4gbWVzYSwgd2hlcmVieSB0aGV5 Cj4gd2lzaCB0byByZWNyZWF0ZSBhIGNvbnRleHQgd2l0aCBmcmVzaCBsb2dpY2FsIHN0YXRlIGJ1 dCBwcmVzZXJ2aW5nIGFsbAo+IG90aGVyIGRldGFpbHMgb2YgdGhlIG9yaWdpbmFsLiBDdXJyZW50 bHksIHRoZXkgY3JlYXRlIGEgbmV3IGNvbnRleHQgYW5kCj4gaXRlcmF0ZSBvdmVyIHdoaWNoIGJp dHMgdGhleSB3YW50IHRvIGNvcHkgYWNyb3NzLCBidXQgaXQgd291bGQgbXVjaCBtb3JlCj4gY29u dmVuaWVudCBpZiB0aGV5IHdlcmUgYWJsZSB0byBqdXN0IHBhc3MgaW4gYSB0YXJnZXQgY29udGV4 dCB0byBjbG9uZQo+IGR1cmluZyBjcmVhdGlvbi4gVGhpcyBlc3NlbnRpYWxseSBleHRlbmRzIHRo ZSBzZXRwYXJhbSBkdXJpbmcgY3JlYXRpb24KPiB0byBwdWxsIHRoZSBkZXRhaWxzIGZyb20gYSB0 YXJnZXQgY29udGV4dCBpbnN0ZWFkIG9mIHRoZSB1c2VyIHN1cHBsaWVkCj4gcGFyYW1ldGVycy4K PiAKPiBUaGUgaWRlYWwgaGVyZSBpcyB0aGF0IHdlIGRvbid0IGV4cG9zZSBjb250cm9sIG92ZXIg YW55dGhpbmcgbW9yZSB0aGFuCj4gY2FuIGJlIG9idGFpbmVkIHZpYSBDT05URVhUX1BBUkFNLiBU aGF0IGlzIHVzZXJzcGFjZSByZXRhaW5zIGV4cGxpY2l0Cj4gY29udHJvbCBvdmVyIGFsbCBmZWF0 dXJlcywgYW5kIHRoaXMgYXBpIGlzIGp1c3QgY29udmVuaWVuY2UuCj4gCj4gRm9yIGV4YW1wbGUs IHlvdSBjb3VsZCByZXBsYWNlCj4gCj4gCXN0cnVjdCBjb250ZXh0X3BhcmFtIHAgPSB7IC5wYXJh bSA9IENPTlRFWFRfUEFSQU1fVk0gfTsKPiAKPiAJcGFyYW0uY3R4X2lkID0gb2xkX2lkOwo+IAln ZW1fY29udGV4dF9nZXRfcGFyYW0oJnAucGFyYW0pOwo+IAo+IAluZXdfaWQgPSBnZW1fY29udGV4 dF9jcmVhdGUoKTsKPiAKPiAJcGFyYW0uY3R4X2lkID0gbmV3X2lkOwo+IAlnZW1fY29udGV4dF9z ZXRfcGFyYW0oJnAucGFyYW0pOwo+IAo+IAlnZW1fdm1fZGVzdHJveShwYXJhbS52YWx1ZSk7IC8q IGRyb3AgdGhlIHJlZiB0byBWTV9JRCBoYW5kbGUgKi8KPiAKPiB3aXRoCj4gCj4gCXN0cnVjdCBj cmVhdGVfZXh0X3BhcmFtIHAgPSB7Cj4gCSAgeyAubmFtZSA9IENPTlRFWFRfQ1JFQVRFX0NMT05F IH0sCj4gCSAgLmNsb25lX2lkID0gb2xkX2lkLAo+IAkgIC5mbGFncyA9IENMT05FX0ZMQUdTX1ZN Cj4gCX0KPiAJbmV3X2lkID0gZ2VtX2NvbnRleHRfY3JlYXRlX2V4dCgmcCk7Cj4gCj4gYW5kIG5v dCBoYXZlIHRvIHdvcnJ5IGFib3V0IHN0cmF5IG5hbWVzcGFjZSBwb2xsdXRpb24gZXRjLgo+IAo+ IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIHwgMjA3ICsr KysrKysrKysrKysrKysrKysrKysrKwo+ICAgaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAg ICAgICAgICAgIHwgIDE1ICsrCj4gICAyIGZpbGVzIGNoYW5nZWQsIDIyMiBpbnNlcnRpb25zKCsp Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IGluZGV4IGFkOTky MGY3MDNjNi4uMjdjMjJkZjU5NDc1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2NvbnRleHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2NvbnRleHQuYwo+IEBAIC0xNjg1LDggKzE2ODUsMjE1IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3Nl dHBhcmFtKHN0cnVjdCBpOTE1X3VzZXJfZXh0ZW5zaW9uIF9fdXNlciAqZXh0LCB2b2lkICpkYXRh KQo+ICAgCXJldHVybiBjdHhfc2V0cGFyYW0oYXJnLT5mcHJpdiwgYXJnLT5jdHgsICZsb2NhbC5w YXJhbSk7Cj4gICB9Cj4gICAKPiArc3RhdGljIGludCBjbG9uZV9lbmdpbmVzKHN0cnVjdCBpOTE1 X2dlbV9jb250ZXh0ICpkc3QsCj4gKwkJCSBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqc3JjKQo+ ICt7Cj4gKwlzdHJ1Y3QgaTkxNV9nZW1fZW5naW5lcyAqZSwgKmNsb25lOwo+ICsJYm9vbCB1c2Vy X2VuZ2luZXM7Cj4gKwl1bnNpZ25lZCBsb25nIG47Cj4gKwo+ICsJZSA9IGk5MTVfZ2VtX2NvbnRl eHRfZW5naW5lX2xpc3RfbG9jayhzcmMpOwo+ICsKPiArCWNsb25lID0ga21hbGxvYyhzdHJ1Y3Rf c2l6ZShlLCBlbmdpbmVzLCBlLT5udW1fZW5naW5lcyksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFj bG9uZSkKPiArCQlnb3RvIGVycl91bmxvY2s7Cj4gKwo+ICsJY2xvbmUtPmk5MTUgPSBkc3QtPmk5 MTU7Cj4gKwlmb3IgKG4gPSAwOyBuIDwgZS0+bnVtX2VuZ2luZXM7IG4rKykgewo+ICsJCWlmICgh ZS0+ZW5naW5lc1tuXSkgewo+ICsJCQljbG9uZS0+ZW5naW5lc1tuXSA9IE5VTEw7Cj4gKwkJCWNv bnRpbnVlOwo+ICsJCX0KPiArCj4gKwkJY2xvbmUtPmVuZ2luZXNbbl0gPQo+ICsJCQlpbnRlbF9j b250ZXh0X2NyZWF0ZShkc3QsIGUtPmVuZ2luZXNbbl0tPmVuZ2luZSk7Cj4gKwkJaWYgKCFjbG9u ZS0+ZW5naW5lc1tuXSkgewo+ICsJCQlfX2ZyZWVfZW5naW5lcyhjbG9uZSwgbik7Cj4gKwkJCWdv dG8gZXJyX3VubG9jazsKPiArCQl9Cj4gKwl9Cj4gKwljbG9uZS0+bnVtX2VuZ2luZXMgPSBuOwo+ ICsKPiArCXVzZXJfZW5naW5lcyA9IGk5MTVfZ2VtX2NvbnRleHRfdXNlcl9lbmdpbmVzKHNyYyk7 Cj4gKwlpOTE1X2dlbV9jb250ZXh0X2VuZ2luZV9saXN0X3VubG9jayhzcmMpOwo+ICsKPiArCWZy ZWVfZW5naW5lcyhkc3QtPmVuZ2luZXMpOwo+ICsJUkNVX0lOSVRfUE9JTlRFUihkc3QtPmVuZ2lu ZXMsIGNsb25lKTsKPiArCWlmICh1c2VyX2VuZ2luZXMpCj4gKwkJaTkxNV9nZW1fY29udGV4dF9z ZXRfdXNlcl9lbmdpbmVzKGRzdCk7Cj4gKwllbHNlCj4gKwkJaTkxNV9nZW1fY29udGV4dF9jbGVh cl91c2VyX2VuZ2luZXMoZHN0KTsKPiArCXJldHVybiAwOwo+ICsKPiArZXJyX3VubG9jazoKPiAr CWk5MTVfZ2VtX2NvbnRleHRfZW5naW5lX2xpc3RfdW5sb2NrKHNyYyk7Cj4gKwlyZXR1cm4gLUVO T01FTTsKPiArfQo+ICsKPiArc3RhdGljIGludCBjbG9uZV9mbGFncyhzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqZHN0LAo+ICsJCSAgICAgICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqc3JjKQo+ ICt7Cj4gKwlkc3QtPnVzZXJfZmxhZ3MgPSBzcmMtPnVzZXJfZmxhZ3M7Cj4gKwlyZXR1cm4gMDsK PiArfQo+ICsKPiArc3RhdGljIGludCBjbG9uZV9zY2hlZGF0dHIoc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmRzdCwKPiArCQkJICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKnNyYykKPiArewo+ ICsJZHN0LT5zY2hlZCA9IHNyYy0+c2NoZWQ7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIGludCBjbG9uZV9zc2V1KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpkc3QsCj4gKwkJICAg ICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKnNyYykKPiArewo+ICsJc3RydWN0IGk5MTVfZ2Vt X2VuZ2luZXMgKmUsICpjbG9uZTsKPiArCXVuc2lnbmVkIGxvbmcgbjsKPiArCWludCBlcnI7Cj4g Kwo+ICsJY2xvbmUgPSBkc3QtPmVuZ2luZXM7IC8qIG5vIGxvY2tpbmcgcmVxdWlyZWQ7IHNvbGUg YWNjZXNzICovCj4gKwllID0gaTkxNV9nZW1fY29udGV4dF9lbmdpbmVfbGlzdF9sb2NrKHNyYyk7 Cj4gKwlpZiAoZS0+bnVtX2VuZ2luZXMgIT0gY2xvbmUtPm51bV9lbmdpbmVzKSB7Cj4gKwkJZXJy ID0gLUVJTlZBTDsKPiArCQlnb3RvIHVubG9jazsKPiArCX0KPiArCj4gKwlmb3IgKG4gPSAwOyBu IDwgZS0+bnVtX2VuZ2luZXM7IG4rKykgewo+ICsJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9 IGUtPmVuZ2luZXNbbl07Cj4gKwo+ICsJCWlmIChjbG9uZS0+ZW5naW5lc1tuXS0+ZW5naW5lLT5j bGFzcyAhPSBjZS0+ZW5naW5lLT5jbGFzcykgewo+ICsJCQkvKiBNdXN0IGhhdmUgY29tcGF0aWJs ZSBlbmdpbmUgbWFwcyEgKi8KPiArCQkJZXJyID0gLUVJTlZBTDsKPiArCQkJZ290byB1bmxvY2s7 Cj4gKwkJfQo+ICsKPiArCQkvKiBzZXJpYWxpc2VzIHdpdGggc2V0X3NzZXUgKi8KPiArCQllcnIg PSBpbnRlbF9jb250ZXh0X2xvY2tfcGlubmVkKGNlKTsKPiArCQlpZiAoZXJyKQo+ICsJCQlnb3Rv IHVubG9jazsKPiArCj4gKwkJY2xvbmUtPmVuZ2luZXNbbl0tPnNzZXUgPSBjZS0+c3NldTsKPiAr CQlpbnRlbF9jb250ZXh0X3VubG9ja19waW5uZWQoY2UpOwo+ICsJfQo+ICsKPiArCWVyciA9IDA7 Cj4gK3VubG9jazoKPiArCWk5MTVfZ2VtX2NvbnRleHRfZW5naW5lX2xpc3RfdW5sb2NrKHNyYyk7 Cj4gKwlyZXR1cm4gZXJyOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGNsb25lX3RpbWVsaW5lKHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpkc3QsCj4gKwkJCSAgc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKnNyYykKPiArewo+ICsJaWYgKHNyYy0+dGltZWxpbmUpIHsKPiArCQlHRU1fQlVHX09OKHNy Yy0+dGltZWxpbmUgPT0gZHN0LT50aW1lbGluZSk7Cj4gKwo+ICsJCWlmIChkc3QtPnRpbWVsaW5l KQo+ICsJCQlpOTE1X3RpbWVsaW5lX3B1dChkc3QtPnRpbWVsaW5lKTsKPiArCQlkc3QtPnRpbWVs aW5lID0gaTkxNV90aW1lbGluZV9nZXQoc3JjLT50aW1lbGluZSk7Cj4gKwl9Cj4gKwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgY2xvbmVfdm0oc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmRzdCwKPiArCQkgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKnNyYykKPiArewo+ ICsJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0Owo+ICsKPiArCXJjdV9yZWFkX2xvY2soKTsK PiArCWRvIHsKPiArCQlwcGd0dCA9IFJFQURfT05DRShzcmMtPnBwZ3R0KTsKPiArCQlpZiAoIXBw Z3R0KQo+ICsJCQlicmVhazsKPiArCj4gKwkJaWYgKCFrcmVmX2dldF91bmxlc3NfemVybygmcHBn dHQtPnJlZikpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQkvKgo+ICsJCSAqIFRoaXMgcHBndHQg bWF5IGhhdmUgYmUgcmVhbGxvY2F0ZWQgYmV0d2Vlbgo+ICsJCSAqIHRoZSByZWFkIGFuZCB0aGUg a3JlZiwgYW5kIHJlYXNzaWduZWQgdG8gYSB0aGlyZAo+ICsJCSAqIGNvbnRleHQuIEluIG9yZGVy IHRvIGF2b2lkIGluYWR2ZXJ0ZW50IHNoYXJpbmcKPiArCQkgKiBvZiB0aGlzIHBwZ3R0IHdpdGgg dGhhdCB0aGlyZCBjb250ZXh0IChhbmQgbm90Cj4gKwkJICogc3JjKSwgd2UgaGF2ZSB0byBjb25m aXJtIHRoYXQgd2UgaGF2ZSB0aGUgc2FtZQo+ICsJCSAqIHBwZ3R0IGFmdGVyIHBhc3NpbmcgdGhy b3VnaCB0aGUgc3Ryb25nIG1lbW9yeQo+ICsJCSAqIGJhcnJpZXIgaW1wbGllZCBieSBhIHN1Y2Nl c3NmdWwKPiArCQkgKiBrcmVmX2dldF91bmxlc3NfemVybygpLgo+ICsJCSAqCj4gKwkJICogT25j ZSB3ZSBoYXZlIGFjcXVpcmVkIHRoZSBjdXJyZW50IHBwZ3R0IG9mIHNyYywKPiArCQkgKiB3ZSBu byBsb25nZXIgY2FyZSBpZiBpdCBpcyByZWxlYXNlZCBmcm9tIHNyYywgYXMKPiArCQkgKiBpdCBj YW5ub3QgYmUgcmVhbGxvY2F0ZWQgZWxzZXdoZXJlLgo+ICsJCSAqLwo+ICsKPiArCQlpZiAocHBn dHQgPT0gUkVBRF9PTkNFKHNyYy0+cHBndHQpKQo+ICsJCQlicmVhazsKPiArCj4gKwkJaTkxNV9w cGd0dF9wdXQocHBndHQpOwo+ICsJfSB3aGlsZSAoMSk7Cj4gKwlyY3VfcmVhZF91bmxvY2soKTsK PiArCj4gKwlpZiAocHBndHQpIHsKPiArCQlfX2Fzc2lnbl9wcGd0dChkc3QsIHBwZ3R0KTsKPiAr CQlpOTE1X3BwZ3R0X3B1dChwcGd0dCk7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgY3JlYXRlX2Nsb25lKHN0cnVjdCBpOTE1X3VzZXJfZXh0ZW5zaW9uIF9f dXNlciAqZXh0LCB2b2lkICpkYXRhKQo+ICt7Cj4gKwlzdGF0aWMgaW50ICgqIGNvbnN0IGZuW10p KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpkc3QsCj4gKwkJCQkgIHN0cnVjdCBpOTE1X2dlbV9j b250ZXh0ICpzcmMpID0gewo+ICsjZGVmaW5lIE1BUCh4LCB5KSBbaWxvZzIoSTkxNV9DT05URVhU X0NMT05FXyMjeCldID0geQo+ICsJCU1BUChFTkdJTkVTLCBjbG9uZV9lbmdpbmVzKSwKPiArCQlN QVAoRkxBR1MsIGNsb25lX2ZsYWdzKSwKPiArCQlNQVAoU0NIRURBVFRSLCBjbG9uZV9zY2hlZGF0 dHIpLAo+ICsJCU1BUChTU0VVLCBjbG9uZV9zc2V1KSwKPiArCQlNQVAoVElNRUxJTkUsIGNsb25l X3RpbWVsaW5lKSwKPiArCQlNQVAoVk0sIGNsb25lX3ZtKSwKPiArI3VuZGVmIE1BUAo+ICsJfTsK PiArCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9jcmVhdGVfZXh0X2Nsb25lIGxvY2FsOwo+ ICsJY29uc3Qgc3RydWN0IGNyZWF0ZV9leHQgKmFyZyA9IGRhdGE7Cj4gKwlzdHJ1Y3QgaTkxNV9n ZW1fY29udGV4dCAqZHN0ID0gYXJnLT5jdHg7Cj4gKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAq c3JjOwo+ICsJaW50IGVyciwgYml0Owo+ICsKPiArCWlmIChjb3B5X2Zyb21fdXNlcigmbG9jYWws IGV4dCwgc2l6ZW9mKGxvY2FsKSkpCj4gKwkJcmV0dXJuIC1FRkFVTFQ7Cj4gKwo+ICsJQlVJTERf QlVHX09OKEdFTk1BU0soQklUU19QRVJfVFlQRShsb2NhbC5mbGFncykgLSAxLCBBUlJBWV9TSVpF KGZuKSkgIT0KPiArCQkgICAgIEk5MTVfQ09OVEVYVF9DTE9ORV9VTktOT1dOKTsKPiArCj4gKwlp ZiAobG9jYWwuZmxhZ3MgJiBJOTE1X0NPTlRFWFRfQ0xPTkVfVU5LTk9XTikKPiArCQlyZXR1cm4g LUVJTlZBTDsKPiArCj4gKwlpZiAobG9jYWwucnN2ZCkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiAr Cj4gKwlyY3VfcmVhZF9sb2NrKCk7Cj4gKwlzcmMgPSBfX2k5MTVfZ2VtX2NvbnRleHRfbG9va3Vw X3JjdShhcmctPmZwcml2LCBsb2NhbC5jbG9uZV9pZCk7Cj4gKwlyY3VfcmVhZF91bmxvY2soKTsK PiArCWlmICghc3JjKQo+ICsJCXJldHVybiAtRU5PRU5UOwo+ICsKPiArCUdFTV9CVUdfT04oc3Jj ID09IGRzdCk7Cj4gKwo+ICsJZm9yIChiaXQgPSAwOyBiaXQgPCBBUlJBWV9TSVpFKGZuKTsgYml0 KyspIHsKPiArCQlpZiAoIShsb2NhbC5mbGFncyAmIEJJVChiaXQpKSkKPiArCQkJY29udGludWU7 Cj4gKwo+ICsJCWVyciA9IGZuW2JpdF0oZHN0LCBzcmMpOwo+ICsJCWlmIChlcnIpCj4gKwkJCXJl dHVybiBlcnI7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gICBzdGF0aWMgY29u c3QgaTkxNV91c2VyX2V4dGVuc2lvbl9mbiBjcmVhdGVfZXh0ZW5zaW9uc1tdID0gewo+ICAgCVtJ OTE1X0NPTlRFWFRfQ1JFQVRFX0VYVF9TRVRQQVJBTV0gPSBjcmVhdGVfc2V0cGFyYW0sCj4gKwlb STkxNV9DT05URVhUX0NSRUFURV9FWFRfQ0xPTkVdID0gY3JlYXRlX2Nsb25lLAo+ICAgfTsKPiAg IAo+ICAgc3RhdGljIGJvb2wgY2xpZW50X2lzX2Jhbm5lZChzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9w cml2YXRlICpmaWxlX3ByaXYpCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9k cm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+IGluZGV4IDdhZWY2NzJhYjNjNy4u NzY5NDExMzM2MmQ0IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+ ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+IEBAIC0xNjIzLDYgKzE2MjMsMjEg QEAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHRfc2V0cGFyYW0gewo+ICAg CXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSBwYXJhbTsKPiAgIH07Cj4gICAKPiAr c3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHRfY2xvbmUgewo+ICsjZGVmaW5l IEk5MTVfQ09OVEVYVF9DUkVBVEVfRVhUX0NMT05FIDEKPiArCXN0cnVjdCBpOTE1X3VzZXJfZXh0 ZW5zaW9uIGJhc2U7Cj4gKwlfX3UzMiBjbG9uZV9pZDsKPiArCV9fdTMyIGZsYWdzOwo+ICsjZGVm aW5lIEk5MTVfQ09OVEVYVF9DTE9ORV9FTkdJTkVTCSgxdSA8PCAwKQo+ICsjZGVmaW5lIEk5MTVf Q09OVEVYVF9DTE9ORV9GTEFHUwkoMXUgPDwgMSkKPiArI2RlZmluZSBJOTE1X0NPTlRFWFRfQ0xP TkVfU0NIRURBVFRSCSgxdSA8PCAyKQo+ICsjZGVmaW5lIEk5MTVfQ09OVEVYVF9DTE9ORV9TU0VV CQkoMXUgPDwgMykKPiArI2RlZmluZSBJOTE1X0NPTlRFWFRfQ0xPTkVfVElNRUxJTkUJKDF1IDw8 IDQpCj4gKyNkZWZpbmUgSTkxNV9DT05URVhUX0NMT05FX1ZNCQkoMXUgPDwgNSkKPiArI2RlZmlu ZSBJOTE1X0NPTlRFWFRfQ0xPTkVfVU5LTk9XTiAtKEk5MTVfQ09OVEVYVF9DTE9ORV9WTSA8PCAx KQoKSGF2ZSB3ZSB0YWxrZWQgYWJvdXQgd2hldGhlciBDTE9ORV9VTktOT1dOIG1ha2VzIHNlbnNl IG9yIGluc3RlYWQgd2Ugc2F5IAoiLTEiIGlzIENMT05FX0VWRVJZVEhJTkc/IEN1cnJlbnRseSB0 aGUgbGF0dGVyIHNvdW5kcyBtb3JlIHVzYWJsZSBhbmQgCmVhc2llciB0byBtYWludGFpbiBpbiB1 c2Vyc3BhY2UgdG8gbWUuCgpSZWdhcmRzLAoKVHZydGtvCgo+ICsJX191NjQgcnN2ZDsKPiArfTsK PiArCj4gICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfZGVzdHJveSB7Cj4gICAJX191MzIg Y3R4X2lkOwo+ICAgCV9fdTMyIHBhZDsKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4