From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH 1/3] drm/i915/guc: keep GuC objects mapped in kernel Date: Fri, 15 Apr 2016 12:12:17 +0100 Message-ID: <5710CC91.2030109@intel.com> References: <1460654342-6071-1-git-send-email-david.s.gordon@intel.com> <5710BC9E.9050202@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id CBBB16EC15 for ; Fri, 15 Apr 2016 11:12:19 +0000 (UTC) In-Reply-To: <5710BC9E.9050202@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMTUvMDQvMjAxNiAxMTowNCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4KPiBPbiAxNC8wNC8x NiAxODoxOSwgRGF2ZSBHb3Jkb24gd3JvdGU6Cj4+IFdpdGggdGhlIG5ldyBpOTE1X2dlbV9vYmpf cGluX21hcCgpIGludGVyZmFjZSwgaXQgbWFrZXMgc2Vuc2UgdG8ga2VlcAo+PiBHdUMgb2JqZWN0 cyAod2hpY2ggYXJlIGFsd2F5cyBwaW5uZWQgaW4gbWVtb3J5IGFuZCBpbiB0aGUgR0dUVCBhbnl3 YXkpCj4+IG1hcHBlZCBpbnRvIGtlcm5lbCBhZGRyZXNzIHNwYWNlLCByYXRoZXIgdGhhbiBtYXBw aW5nIGFuZCB1bm1hcHBpbmcgdGhlbQo+PiBvbiBlYWNoIGFjY2Vzcy4KPj4KPj4gVGhpcyBwcmVs aW1pbmFyeSBwYXRjaCBzZXRzIHVwIHRoZSBwaW4tYW5kLW1hcCBmb3IgYWxsIEd1Qy1zcGVjaWZp Ywo+PiBvYmplY3RzLCBhbmQgdXBkYXRlcyB0aGUgdmFyaW91cyBzZXR1cC9zaHV0ZG93biBmdW5j dGlvbnMgdG8gdXNlIHRoZXNlCj4+IGxvbmctdGVybSBtYXBwaW5ncyByYXRoZXIgdGhhbiBkb2lu ZyB0aGVpciBvd24ga21hcF9hdG9taWMoKSBjYWxscy4KPj4KPj4gQ2M6IDx0dnJ0a28udXJzdWxp bkBpbnRlbC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29t Pgo+PiBTaWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29t Pgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMg fCAzNyAKPj4gKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjLmggICAgICAgICAgIHwgIDEgKwo+PiAgIDIgZmlsZXMgY2hhbmdl ZCwgMTQgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgCj4+IGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4+IGluZGV4IGRhODZiZGIuLmY4MGY1 NzcgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Np b24uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMK Pj4gQEAgLTE3OSwxNSArMTc5LDExIEBAIHN0YXRpYyB2b2lkIGd1Y19pbml0X2Rvb3JiZWxsKHN0 cnVjdCBpbnRlbF9ndWMgCj4+ICpndWMsCj4+ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGk5 MTVfZ3VjX2NsaWVudCAqY2xpZW50KQo+PiAgIHsKPj4gICAgICAgc3RydWN0IGd1Y19kb29yYmVs bF9pbmZvICpkb29yYmVsbDsKPj4gLSAgICB2b2lkICpiYXNlOwo+Pgo+PiAtICAgIGJhc2UgPSBr bWFwX2F0b21pYyhpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoY2xpZW50LT5jbGllbnRfb2JqLCAK Pj4gMCkpOwo+PiAtICAgIGRvb3JiZWxsID0gYmFzZSArIGNsaWVudC0+ZG9vcmJlbGxfb2Zmc2V0 Owo+PiArICAgIGRvb3JiZWxsID0gY2xpZW50LT5jbGllbnRfYmFzZSArIGNsaWVudC0+ZG9vcmJl bGxfb2Zmc2V0Owo+Pgo+PiAtICAgIGRvb3JiZWxsLT5kYl9zdGF0dXMgPSAxOwo+PiArICAgIGRv b3JiZWxsLT5kYl9zdGF0dXMgPSBHVUNfRE9PUkJFTExfRU5BQkxFRDsKPj4gICAgICAgZG9vcmJl bGwtPmNvb2tpZSA9IDA7Cj4+IC0KPj4gLSAgICBrdW5tYXBfYXRvbWljKGJhc2UpOwo+PiAgIH0K Pj4KPj4gICBzdGF0aWMgaW50IGd1Y19yaW5nX2Rvb3JiZWxsKHN0cnVjdCBpOTE1X2d1Y19jbGll bnQgKmdjKQo+PiBAQCAtMjU2LDE2ICsyNTIsMTIgQEAgc3RhdGljIHZvaWQgZ3VjX2Rpc2FibGVf ZG9vcmJlbGwoc3RydWN0IAo+PiBpbnRlbF9ndWMgKmd1YywKPj4gICB7Cj4+ICAgICAgIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7Cj4+ICAgICAg IHN0cnVjdCBndWNfZG9vcmJlbGxfaW5mbyAqZG9vcmJlbGw7Cj4+IC0gICAgdm9pZCAqYmFzZTsK Pj4gICAgICAgaTkxNV9yZWdfdCBkcmJyZWcgPSBHRU44X0RSQlJFR0woY2xpZW50LT5kb29yYmVs bF9pZCk7Cj4+ICAgICAgIGludCB2YWx1ZTsKPj4KPj4gLSAgICBiYXNlID0ga21hcF9hdG9taWMo aTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGNsaWVudC0+Y2xpZW50X29iaiwgCj4+IDApKTsKPj4g LSAgICBkb29yYmVsbCA9IGJhc2UgKyBjbGllbnQtPmRvb3JiZWxsX29mZnNldDsKPj4gLQo+PiAt ICAgIGRvb3JiZWxsLT5kYl9zdGF0dXMgPSAwOwo+PiArICAgIGRvb3JiZWxsID0gY2xpZW50LT5j bGllbnRfYmFzZSArIGNsaWVudC0+ZG9vcmJlbGxfb2Zmc2V0Owo+Cj4gTm90IDEwMCUgc3VyZSBv ZiB0aGUgb2JqZWN0IGxpZmV0aW1lcyBpbiBHdUMsIGJ1dCB3b3VsZCBpdCBiZSBldmVuIAo+IHNp bXBsZXIgdG8gc3RvcmUgYSBwb2ludGVyIHRvIHN0cnVjdCBzdHJ1Y3QgZ3VjX2Rvb3JiZWxsX2lu Zm8gYXMgCj4gZ3VjLT5kb29yYmVsbCA/IFRoZXJlIGFyZW4ndCB0aGF0IG1hbnkgY2FsbCBzaXRl cyB0cnVlLCBidXQga2luZCBvZiAKPiBsb29rcyBsb2dpY2FsIGF0IGxlYXN0IGZyb20gdGhlIG91 dHNpZGUuCgpXZWxsIHByb2JhYmx5LCBidXQgdGhhdCB3b3VsZCBiZSBhIHNlcGFyYXRlIHBhdGNo LiBUaGlzIGlzIGp1c3QgZGVhbGluZyAKd2l0aCBlbGltaW5hdGluZyB0aGUgcmVwZWF0ZWQga21h cC91bm1hcCBjYWxscy4KCkFsc28sIG1heWJlIHRoaXMgaGVscHMgcmVtaW5kIHBlb3BsZSB0aGF0 IHRoZXNlIGFyZSBhY3R1YWxseSBwYXJ0cyBvZiAKdGhlIHNhbWUgb2JqZWN0LiBUaGVyZSdzIGp1 c3Qgb25lIGFsbG9jYXRlZCwgYnV0IGl0IGVuY29tcGFzc2VzIHRoZSAKcHJvY2VzcyBkZXNjcmlw dG9yIGFuZCB0aGUgZG9vcmJlbGwgaW4gdGhlIGZpcnN0IHBhZ2UsIGFuZCB0aGUgd29ya3F1ZXVl IAppbiB0aGUgc2Vjb25kIGFuZCB0aGlyZC4KPj4gLSAgICBrdW5tYXBfYXRvbWljKGJhc2UpOwo+ PiArICAgIGRvb3JiZWxsLT5kYl9zdGF0dXMgPSBHVUNfRE9PUkJFTExfRElTQUJMRUQ7Cj4+Cj4+ ICAgICAgIEk5MTVfV1JJVEUoZHJicmVnLCBJOTE1X1JFQUQoZHJicmVnKSAmIH5HRU44X0RSQl9W QUxJRCk7Cj4+Cj4+IEBAIC0zNDEsMTAgKzMzMyw4IEBAIHN0YXRpYyB2b2lkIGd1Y19pbml0X3By b2NfZGVzYyhzdHJ1Y3QgaW50ZWxfZ3VjIAo+PiAqZ3VjLAo+PiAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpjbGllbnQpCj4+ICAgewo+PiAgICAgICBzdHJ1Y3Qg Z3VjX3Byb2Nlc3NfZGVzYyAqZGVzYzsKPj4gLSAgICB2b2lkICpiYXNlOwo+Pgo+PiAtICAgIGJh c2UgPSBrbWFwX2F0b21pYyhpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoY2xpZW50LT5jbGllbnRf b2JqLCAKPj4gMCkpOwo+PiAtICAgIGRlc2MgPSBiYXNlICsgY2xpZW50LT5wcm9jX2Rlc2Nfb2Zm c2V0Owo+PiArICAgIGRlc2MgPSBjbGllbnQtPmNsaWVudF9iYXNlICsgY2xpZW50LT5wcm9jX2Rl c2Nfb2Zmc2V0Owo+Cj4gQW5kIHRoZSBzYW1lIG1heWJlIGZvciB0aGlzPwo+Cj4+ICAgICAgIG1l bXNldChkZXNjLCAwLCBzaXplb2YoKmRlc2MpKTsKPj4KPj4gQEAgLTM2MSw4ICszNTEsNiBAQCBz dGF0aWMgdm9pZCBndWNfaW5pdF9wcm9jX2Rlc2Moc3RydWN0IGludGVsX2d1YyAKPj4gKmd1YywK Pj4gICAgICAgZGVzYy0+d3Ffc2l6ZV9ieXRlcyA9IGNsaWVudC0+d3Ffc2l6ZTsKPj4gICAgICAg ZGVzYy0+d3Ffc3RhdHVzID0gV1FfU1RBVFVTX0FDVElWRTsKPj4gICAgICAgZGVzYy0+cHJpb3Jp dHkgPSBjbGllbnQtPnByaW9yaXR5Owo+PiAtCj4+IC0gICAga3VubWFwX2F0b21pYyhiYXNlKTsK Pj4gICB9Cj4+Cj4+ICAgLyoKPj4gQEAgLTYwNyw2ICs1OTUsNyBAQCBpbnQgaTkxNV9ndWNfc3Vi bWl0KHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCwKPj4gICAgKiBUaGlzIGlzIGEgd3Jh cHBlciB0byBjcmVhdGUgYSBnZW0gb2JqLiBJbiBvcmRlciB0byB1c2UgaXQgaW5zaWRlIAo+PiBH dUMsIHRoZQo+PiAgICAqIG9iamVjdCBuZWVkcyB0byBiZSBwaW5uZWQgbGlmZXRpbWUuIEFsc28g d2UgbXVzdCBwaW4gaXQgdG8gZ3R0IAo+PiBzcGFjZSBvdGhlcgo+PiAgICAqIHRoYW4gWzAsIEdV Q19XT1BDTV9UT1ApIGJlY2F1c2UgdGhpcyByYW5nZSBpcyByZXNlcnZlZCBpbnNpZGUgR3VDLgo+ PiArICogVGhlIG9iamVjdCBpcyBhbHNvIHBpbm5lZCAmIG1hcHBlZCBpbnRvIGtlcm5lbCBhZGRy ZXNzIHNwYWNlLgo+PiAgICAqCj4+ICAgICogUmV0dXJuOiAgICBBIGRybV9pOTE1X2dlbV9vYmpl Y3QgaWYgc3VjY2Vzc2Z1bCwgb3RoZXJ3aXNlIE5VTEwuCj4+ICAgICovCj4+IEBAIC02MjAsMTMg KzYwOSwxNCBAQCBzdGF0aWMgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgCj4+ICpnZW1fYWxs b2NhdGVfZ3VjX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgICAgICBpZiAoIW9iaikK Pj4gICAgICAgICAgIHJldHVybiBOVUxMOwo+Pgo+PiAtICAgIGlmIChpOTE1X2dlbV9vYmplY3Rf Z2V0X3BhZ2VzKG9iaikpIHsKPj4gKyAgICBpZiAoaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAob2Jq KSA9PSBOVUxMKSB7Cj4KPiBUaGlzIHNob3VsZCBiZSBJU19FUlIgY2hlY2suCgpPSywgd2lsbCB1 cGRhdGUuCgo+PiBkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsKPj4gICAg ICAgICAgIHJldHVybiBOVUxMOwo+PiAgICAgICB9Cj4+Cj4+ICAgICAgIGlmIChpOTE1X2dlbV9v YmpfZ2d0dF9waW4ob2JqLCBQQUdFX1NJWkUsCj4+ICAgICAgICAgICAgICAgUElOX09GRlNFVF9C SUFTIHwgR1VDX1dPUENNX1RPUCkpIHsKPj4gKyAgICAgICAgaTkxNV9nZW1fb2JqZWN0X3VucGlu X21hcChvYmopOwo+PiAgICAgICAgICAgZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+ YmFzZSk7Cj4+ICAgICAgICAgICByZXR1cm4gTlVMTDsKPj4gICAgICAgfQo+PiBAQCAtNjQ5LDYg KzYzOSw4IEBAIHN0YXRpYyB2b2lkIGdlbV9yZWxlYXNlX2d1Y19vYmooc3RydWN0IAo+PiBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopCj4+ICAgICAgIGlmIChpOTE1X2dlbV9vYmpfaXNfcGlubmVk KG9iaikpCj4+ICAgICAgICAgICBpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihvYmopOwo+Pgo+ PiArICAgIGk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAob2JqKTsKPj4gKwo+PiAgICAgICBkcm1f Z2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsKPj4gICB9Cj4+Cj4+IEBAIC03Mjks NiArNzIxLDggQEAgc3RhdGljIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgCj4+ICpndWNfY2xpZW50 X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICAgICAgICAgICBnb3RvIGVycjsKPj4K Pj4gICAgICAgY2xpZW50LT5jbGllbnRfb2JqID0gb2JqOwo+PiArICAgIGNsaWVudC0+Y2xpZW50 X2Jhc2UgPSBvYmotPm1hcHBpbmc7Cj4KPiBJdCB0aGluayBvdXRzaWRlIGNvZGUgc2hvdWxkIG5v dCBhY2Nlc3Mgb2JqLT5tYXBwaW5nIGRpcmVjdGx5IGJ1dCB1c2UgCj4gd2hhdCBpOTE1X2dlbV9v YmplY3RfcGluX21hcCBoYXMgcmV0dXJuZWQuCgpObywgdGhhdCB3b3VsZCBiZSBxdWl0ZSBpbmNv bnZlbmllbnQuIFlvdSBzaG91bGRuJ3QgbmVlZCB0byBob2xkIAphdXhpbGlhcnkgaW5mb3JtYXRp b24gYWJvdXQgYW4gYWxsb2NhdGVkIG9iamVjdCB3aGVuIHlvdSBjYW4gZ2V0IHRoYXQgCmluZm9y bWF0aW9uIGRpcmVjdGx5IGZyb20gdGhlIG9iamVjdCBpdHNlbGYuCgpBbHNvLCB0aGUgZnVuY3Rp b24gdGhhdCBkb2VzIHRoZSBwaW4tYW5kLW1hcCBkb2Vzbid0IGhhdmUgYWNjZXNzIHRvIHRoZSAK c3RydWN0dXJlIHdoZXJlIHRoZSBhZGRyZXNzIGlzIGdvaW5nIHRvIGJlIGNhY2hlZCwgaXQganVz dCByZXR1cm5zIHRoZSAKYWxsb2NhdGVkLXBpbm5lZC1hbmQtbWFwcGVkIG9iamVjdC4KCk9UT0gg SSBoYXZlIG5vIG9iamVjdGlvbiB0byB3cmFwcGluZyBpdCBhbiBhY2Nlc3NvciBmdW5jdGlvbi9t YWNyby4KCnZvaWQgKmk5MTRfZ2VtX29iamVjdF9tYXBwZWRfYWRkcihvYmplY3QpID8KCnJldHVy bmluZyBOVUxMIGlmIG9iamVjdCBpcyBub3QgbWFwcGVkPwoKPj4gKyAgICBXQVJOX09OKCFjbGll bnQtPmNsaWVudF9iYXNlKTsKPgo+IEFuZCB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gaGFuZGxlZCBh dCB0aGUgaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAgY2FsbCAKPiBzaXRlIHNvIEkgZG9uJ3QgdGhp bmsgaXQgc2VydmVzIGFueSBwdXJwb3NlLgoKSW4gY2FzZSB0aGUgb2JqLT5tYXBwaW5nICp3YXNu J3QqIHRoZSBzYW1lIHZhbHVlIHRoYXQgd2FzIHJldHVybmVkIGZyb20gCnBpbi1hbmQtbWFwIGFu ZCBjaGVja2VkLgoKPj4gICAgICAgY2xpZW50LT53cV9vZmZzZXQgPSBHVUNfREJfU0laRTsKPj4g ICAgICAgY2xpZW50LT53cV9zaXplID0gR1VDX1dRX1NJWkU7Cj4+Cj4+IEBAIC04NDEsNyArODM1 LDYgQEAgc3RhdGljIHZvaWQgZ3VjX2NyZWF0ZV9hZHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+ PiAgICAgICBzdHJ1Y3QgZ3VjX3BvbGljaWVzICpwb2xpY2llczsKPj4gICAgICAgc3RydWN0IGd1 Y19tbWlvX3JlZ19zdGF0ZSAqcmVnX3N0YXRlOwo+PiAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmU7Cj4+IC0gICAgc3RydWN0IHBhZ2UgKnBhZ2U7Cj4+ICAgICAgIHUzMiBzaXpl Owo+Pgo+PiAgICAgICAvKiBUaGUgYWRzIG9iaiBpbmNsdWRlcyB0aGUgc3RydWN0IGl0c2VsZiBh bmQgYnVmZmVycyBwYXNzZWQgdG8gCj4+IEd1QyAqLwo+PiBAQCAtODU3LDkgKzg1MCw3IEBAIHN0 YXRpYyB2b2lkIGd1Y19jcmVhdGVfYWRzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPj4KPj4gICAg ICAgICAgIGd1Yy0+YWRzX29iaiA9IG9iajsKPj4gICAgICAgfQo+PiAtCj4+IC0gICAgcGFnZSA9 IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShvYmosIDApOwo+PiAtICAgIGFkcyA9IGttYXAocGFn ZSk7Cj4+ICsgICAgYWRzID0gb2JqLT5tYXBwaW5nOwo+Cj4gU2FtZSBhcyBhYm92ZS4gSSBzdWdn ZXN0IHN0b3JpbmcgdGhlIGJhc2UgYWRkcmVzcyBpbiB0aGUgZ3VjIGNsaWVudCBvciAKPiBzb21l d2hlcmUgYXBwcm9wcmlhdGUuCj4KPiBPciBpZiBvYmplY3RzIGhhdmUgc2VwYXJhdGUgZXhwbGlj aXQgbGlmZXRpbWVzLCBldmVuIGlmIHRoZXkgZG9uJ3QgCj4gb3ZlcmxhcCwgeW91IGNvdWxkIGV2 ZW4gbmVzdCBpOTE1X2dlbV9vYmplY3RfcGluX21hcCBhbmQgdW5waW4uIAo+IERlcGVuZHMgd2hh dCBtYWtlcyB0aGUgY29kZSBzaW1wbGVyLgpBbGwgR3VDIG9iamVjdHMgaGF2ZSB0byBzdGF5IG1l bW9yeS1yZXNpZGVudCBhbmQgcGlubmVkIGF0IHBlcm1hbmVudCAKYWRkcmVzc2VzIGluIHRoZSBH R1RULgpGb3Igc29tZSBvZiB0aGVtIHdlIG1pZ2h0IG5vdCBuZWVkIHRoZSBrZXJuZWwgbWFwcGlu ZyBhbGwgdGhlIHRpbWUsIGJ1dCAKaXQncyBwcm9iYWJseSBzaW1wbGVyIHRvIGtlZXAgaXQuCklm IHdlIGRpZG4ndCwgSSB3b3VsZCBoYXZlIHRvIGNoYW5nZSB0aGUgJ3JlbGVhc2UnIGNvZGUgdG8g ZG8gdGhlIHVubWFwIAppZmYgaXQgd2FzIHN0aWxsIG1hcHBlZCBhdCB0aGF0IHBvaW50LgoKLkRh dmUuCj4+ICAgICAgIC8qCj4+ICAgICAgICAqIFRoZSBHdUMgcmVxdWlyZXMgYSAiR29sZGVuIENv bnRleHQiIHdoZW4gaXQgcmVpbml0aWFsaXNlcwo+PiBAQCAtODk3LDggKzg4OCw2IEBAIHN0YXRp YyB2b2lkIGd1Y19jcmVhdGVfYWRzKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPj4KPj4gICAgICAg YWRzLT5yZWdfc3RhdGVfYnVmZmVyID0gYWRzLT5yZWdfc3RhdGVfYWRkciArCj4+ICAgICAgICAg ICAgICAgc2l6ZW9mKHN0cnVjdCBndWNfbW1pb19yZWdfc3RhdGUpOwo+PiAtCj4+IC0gICAga3Vu bWFwKHBhZ2UpOwo+PiAgIH0KPj4KPj4gICAvKgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjLmggCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj LmgKPj4gaW5kZXggM2JiODViMS4uOWFiMzU2NCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjLmgKPj4gQEAgLTMxLDYgKzMxLDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0Owo+ Pgo+PiAgIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgewo+PiAgICAgICBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqY2xpZW50X29iajsKPj4gKyAgICB2b2lkICpjbGllbnRfYmFzZTsgICAgICAg IC8qIE1hcHBlZCBhZGRyZXNzIG9mIGFib3ZlICAgICovCj4+ICAgICAgIHN0cnVjdCBpbnRlbF9j b250ZXh0ICpvd25lcjsKPj4gICAgICAgc3RydWN0IGludGVsX2d1YyAqZ3VjOwo+PiAgICAgICB1 aW50MzJfdCBwcmlvcml0eTsKPj4KPgo+IFJlZ2FyZHMsCj4KPiBUdnJ0a28KCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=