From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [passive aggressive RESEND 1/2] drm/i915: Mark CPU cache as dirty on every transition for CPU writes Date: Fri, 16 Jun 2017 13:05:21 +0100 Message-ID: <2c73fc1c-5d18-ff4c-1033-96f8c98798be@linux.intel.com> References: <20170615123850.26843-1-chris@chris-wilson.co.uk> <149761240214.20055.10161546174567842344@mail.alporthouse.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 ESMTPS id 054366E038 for ; Fri, 16 Jun 2017 12:05:53 +0000 (UTC) In-Reply-To: <149761240214.20055.10161546174567842344@mail.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: Dongwon Kim List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE2LzA2LzIwMTcgMTI6MjYsIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRr byBVcnN1bGluICgyMDE3LTA2LTE1IDE1OjI4OjEwKQo+Pgo+PiBPbiAxNS8wNi8yMDE3IDEzOjM4 LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4+PiBDdXJyZW50bHksIHdlIG9ubHkgbWFyayB0aGUgQ1BV IGNhY2hlIGFzIGRpcnR5IGlmIHdlIHNraXAgYSBjbGZsdXNoLgo+Pj4gVGhpcyBsZWFkcyB0byBz b21lIGNvbmZ1c2lvbiB3aGVyZSB3ZSBoYXZlIHRvIGFzayBpZiB0aGUgb2JqZWN0IGlzIGluCj4+ PiB0aGUgd3JpdGUgZG9tYWluIG9yIG1pc3NlZCBhIGNsZmx1c2guIElmIHdlIGFsd2F5cyBtYXJr IHRoZSBjYWNoZSBhcwo+Pj4gZGlydHksIHRoaXMgYmVjb21lcyBhIG11Y2ggc2ltcGx5IHF1ZXN0 aW9uIHRvIGFuc3dlci4KPj4+Cj4+PiBUaGUgZ29hbCByZW1haW5zIHRvIGRvIGFzIGZldyBjbGZs dXNoZXMgYXMgcmVxdWlyZWQgYW5kIHRvIGRvIHRoZW0gYXMKPj4+IGxhdGUgYXMgcG9zc2libGUs IGluIHRoZSBob3BlIG9mIGRlZmVycmluZyB0aGUgd29yayB0byBhIGt0aHJlYWQgYW5kIG5vdAo+ Pj4gYmxvY2sgdGhlIGNhbGxlciAoZS5nLiBleGVjYnVmLCBmbGlwcykuCj4+Pgo+Pj4gdjI6IEFs d2F5cyBjYWxsIGNsZmx1c2ggYmVmb3JlIEdQVSBleGVjdXRpb24gd2hlbiB0aGUgY2FjaGVfZGly dHkgZmxhZwo+Pj4gaXMgc2V0LiBUaGlzIG1heSBjYXVzZSBzb21lIGV4dHJhIHdvcmsgb24gbGxj IHN5c3RlbXMgdGhhdCBtaWdyYXRlIGRpcnR5Cj4+PiBidWZmZXJzIGJhY2sgYW5kIGZvcnRoIC0g YnV0IHdlIGRvIHRyeSB0byBsaW1pdCB0aGF0IGJ5IG9ubHkgc2V0dGluCj4+Cj4+IHNldHRpbipn Kgo+Pgo+PiBTdWJqZWN0IHNvdW5kZWQgbGlrZSByZXZpZXdlciBpcyB3YW50ZWQgc28gSSB0aG91 Z2h0IHRvIGdpdmUgaXQgYSB0cnkuCj4+Cj4+PiBjYWNoZV9kaXJ0eSBhdCB0aGUgZW5kIG9mIHRo ZSBncHUgc2VxdWVuY2UuCj4+Pgo+Pj4gdjM6IEFsd2F5cyBtYXJrIHRoZSBjYWNoZSBhcyBkaXJ0 eSB1cG9uIGEgbGV2ZWwgY2hhbmdlLCBhcyB3ZSBuZWVkIHRvCj4+PiBpbnZhbGlkYXRlIGFueSBz dGFsZSBjYWNoZWxpbmVzIGR1ZSB0byBleHRlcm5hbCB3cml0ZXMuCj4+Pgo+Pj4gUmVwb3J0ZWQt Ynk6IERvbmd3b24gS2ltIDxkb25nd29uLmtpbUBpbnRlbC5jb20+Cj4+PiBGaXhlczogYTZhN2Nj NGI3ZGI2ICgiZHJtL2k5MTU6IEFsd2F5cyBmbHVzaCB0aGUgZGlydHkgQ1BVIGNhY2hlIHdoZW4g cGlubmluZyB0aGUgc2Nhbm91dCIpCj4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KPj4+IENjOiBEb25nd29uIEtpbSA8ZG9uZ3dvbi5raW1A aW50ZWwuY29tPgo+Pj4gQ2M6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+ Cj4+PiBUZXN0ZWQtYnk6IERvbmd3b24gS2ltIDxkb25nd29uLmtpbUBpbnRlbC5jb20+Cj4+PiAt LS0KPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgICAg ICB8IDc2ICsrKysrKysrKysrKysrLS0tLS0tLS0tLQo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY2xmbHVzaC5jICAgICAgICAgIHwgMTUgKysrLS0KPj4+ICAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyAgICAgICB8IDIxICsrKy0tLS0KPj4+ ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ludGVybmFsLmMgICAgICAgICB8ICAz ICstCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMgICAgICAg ICAgfCAgNSArLQo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfZ2Vt X29iamVjdC5jIHwgIDMgKy0KPj4+ICAgIDYgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygr KSwgNTYgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+PiBpbmRl eCAzMWNiZTc4MTcxYTkuLmIxNTA0YTgyOWM2YSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKPj4+IEBAIC00OSw3ICs0OSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX2ZsdXNoX2Zy ZWVfb2JqZWN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4+PiAgICAKPj4+ICAg IHN0YXRpYyBib29sIGNwdV93cml0ZV9uZWVkc19jbGZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopCj4+PiAgICB7Cj4+PiAtICAgICBpZiAob2JqLT5iYXNlLndyaXRlX2RvbWFp biA9PSBJOTE1X0dFTV9ET01BSU5fQ1BVKQo+Pj4gKyAgICAgaWYgKG9iai0+Y2FjaGVfZGlydHkp Cj4+PiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2UgPgo+Pj4gICAgICAgIGlmICghaTkxNV9n ZW1fb2JqZWN0X2lzX2NvaGVyZW50KG9iaikpCj4+PiBAQCAtMjMzLDYgKzIzMywxNCBAQCBpOTE1 X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX3BoeXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aikKPj4+ICAgICAgICByZXR1cm4gc3Q7Cj4+PiAgICB9Cj4+PiAgICAKPj4+ICtzdGF0aWMgdm9p ZCBfX3N0YXJ0X2NwdV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+Pj4g K3sKPj4+ICsgICAgIG9iai0+YmFzZS5yZWFkX2RvbWFpbnMgPSBJOTE1X0dFTV9ET01BSU5fQ1BV Owo+Pj4gKyAgICAgb2JqLT5iYXNlLndyaXRlX2RvbWFpbiA9IEk5MTVfR0VNX0RPTUFJTl9DUFU7 Cj4+PiArICAgICBpZiAoY3B1X3dyaXRlX25lZWRzX2NsZmx1c2gob2JqKSkKPj4+ICsgICAgICAg ICAgICAgb2JqLT5jYWNoZV9kaXJ0eSA9IHRydWU7Cj4+Cj4+IEkgZmluZCB0aGUgbG9naWMgaGVy ZSBxdWl0ZSBoYXJkIHRvIHVuZGVyc3RhbmQgYmVjYXVzZQo+PiBjcHVfd3JpdGVfbmVlZHNfY2xm bHVzaCBpcyBhY3R1YWxseSBjb25zdWx0aW5nIG9iai0+Y2FjaGVfZGlydHkgc28gaXQncwo+PiBh bGwgYSBiaXQgcmVjdXJzaXZlLgo+Pgo+PiBJZiB3ZSBzdGFydCBhIGNwdSB3cml0ZSBvbiBhbiBv YmplY3Qgd2hpY2ggaGFzIGJlZW4gY2xmbHVzaGVkLCBidXQKPj4gb3RoZXJ3aXNlIG5lZWRzIGNs Zmx1c2hpbmcgbGlrZSBwaW5fZGlzcGxheSAtIHdoYXQgaXMgdGhlIGNvcnJlY3QgdGhpbmcKPj4g dG8gZG8/IE5vdCBzZXQgb2JqLT5jYWNoZV9kaXJ0eSB0byB0cnVlPwo+IAo+IE5vLCB3ZSB3YW50 IGNhY2hlX2RpcnR5IHRvIGJlIHRydWUgYXMgd2Ugd2FudCBhIGNsZmx1c2ggYWZ0ZXIgdGhlIHdy aXRlLgoKUmlnaHQsIGJ1dCBJIHRoaW5rIGl0IHdpbGwgYmUgZmFsc2UuCgowLiBwaW5fZGlzcGxh eT10cnVlCjEuIGNsZmx1c2ggZnJvbSBzb21ld2hlcmU6IGNhY2hlX2RpcnR5PWZhbHNlCjIuIF9f c3RhcnRfd3JpdGU6IGNwdV93cml0ZV9uZWVkc19jbGZsdXNoIHJldHVybnMgZmFsc2UgLT4gCmNh Y2hlX2RpcnR5PWZhbHNlIGFmdGVyIF9fc3RhcnRfd3JpdGUKCj4gUmVhbGx5IHRoYXQgb2JqLT5w aW5fZGlzcGxheSBvbmx5IGV4aXN0cyB0aGVyZSBmb3IgdGhlIHRyYW5zaXRpb24gaW5zaWRlCj4g c2V0LWNhY2hlLWxldmVsIGZvciBpOTE1X2dlbV9vYmplY3RfcGluX3RvX2Rpc3BsYXlfcGxhbmUu IE91dHNpZGUgb2YKPiBzZXQtY2FjaGUtbGV2ZWwgb2JqLT5jYWNoZV9jb2hlcmVudCB3aWxsIGJl IGFjY3VyYXRlLiBJIGNhbiBwZW5jaWwgaW4KPiBtYWtpbmcgeWV0IGFub3RoZXIgY2hhbmdlIHRv IGxpbWl0IHVzZSBvZiBvYmotPnBpbl9kaXNwbGF5IGFnYWluLgoKTGlrZSBtb2RpZnlpbmcgb2Jq LT5jYWNoZV9jb2hlcmVudCBvbiBwaW4vdW5waW4gdG8gZGlzcGxheT8KCj4+PiArfQo+Pj4gKwo+ Pj4gICAgc3RhdGljIHZvaWQKPj4+ICAgIF9faTkxNV9nZW1fb2JqZWN0X3JlbGVhc2Vfc2htZW0o c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzLAo+Pj4gQEAgLTI0OCw4ICsyNTYsNyBA QCBfX2k5MTVfZ2VtX29iamVjdF9yZWxlYXNlX3NobWVtKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosCj4+PiAgICAgICAgICAgICFpOTE1X2dlbV9vYmplY3RfaXNfY29oZXJlbnQob2Jq KSkKPj4+ICAgICAgICAgICAgICAgIGRybV9jbGZsdXNoX3NnKHBhZ2VzKTsKPj4+ICAgIAo+Pj4g LSAgICAgb2JqLT5iYXNlLnJlYWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9DUFU7Cj4+PiAt ICAgICBvYmotPmJhc2Uud3JpdGVfZG9tYWluID0gSTkxNV9HRU1fRE9NQUlOX0NQVTsKPj4+ICsg ICAgIF9fc3RhcnRfY3B1X3dyaXRlKG9iaik7Cj4+PiAgICB9Cj4+PiAgICAKPj4+ICAgIHN0YXRp YyB2b2lkCj4+PiBAQCAtNjg0LDYgKzY5MSwxMiBAQCBpOTE1X2dlbV9kdW1iX2NyZWF0ZShzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGUsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdz LT5zaXplLCAmYXJncy0+aGFuZGxlKTsKPj4+ICAgIH0KPj4+ICAgIAo+Pj4gK3N0YXRpYyBib29s IGdwdV93cml0ZV9uZWVkc19jbGZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmop Cj4+PiArewo+Pj4gKyAgICAgcmV0dXJuICEob2JqLT5jYWNoZV9sZXZlbCA9PSBJOTE1X0NBQ0hF X05PTkUgfHwKPj4+ICsgICAgICAgICAgICAgIG9iai0+Y2FjaGVfbGV2ZWwgPT0gSTkxNV9DQUNI RV9XVCk7Cj4+Cj4+IEhtLCBpcyB0aGlzIHJldmVyc2VkPyBPbiBMTEMgSSB3b3VsZCBhc3N1bWUg d2UgZG9uJ3QgbmVlZCBleHBsaWNpdAo+PiBjbGZsdXNoLCBidXQgcGVyaGFwcyBJIGFtIG1pc3Vu ZGVyc3RhbmRpbmcgc29tZXRoaW5nLgo+IAo+IEl0J3MgYWNjdXJhdGUuIFdlIGFsbCBzaGFyZWQg dGhlIHNhbWUgbWlzdW5kZXJzdGFuZGluZyBmb3Igc2V2ZXJhbAo+IHllYXJzLiBUaGUgZ3B1IHdy aXRlcyB2aWEgdGhlIHJpbmcgKGFuZCB0aGUgc2hhcmVkIGxsYykgc28gaWYgd2UKPiB0cmFuc2l0 aW9uIHRvIGFjY2Vzc2luZyB0aGUgbWVtb3J5IGRpcmVjdGx5IGZyb20gdGhlIGNwdSwgd2UgYnlw YXNzIHRoZQo+IHNoYXJlZCBsbGMgYW5kIG91ciBkYXRhIGlzIHN0YWxlLiBTbyBhZnRlciB1c2lu ZyBMTEMsIGJlIHRoYXQgZWl0aGVyCj4gd2l0aCBDUFUgd3JpdGVzIG9yIEdQVSB3cml0ZXMsIHdl IG5lZWQgdG8gY2xmbHVzaC4KCldoeSBkb2VzIGFjY2Vzc2luZyB0aGUgbWVtb3J5IGZyb20gdGhl IENQVSBieXBhc3NlcyB0aGUgTExDPyBPciB5b3UgbWVhbiAKaWYgd2UgYWNjZXNzIGluIGEgd2F5 IHRoYXQgYnlwYXNzZXMgdGhlIExMQyBhbmQgaWYgc28gd2hpY2ggd2F5cyBhcmUgdGhhdD8KCj4g Cj4+PiArfQo+Pj4gKwo+Pj4gICAgLyoqCj4+PiAgICAgKiBDcmVhdGVzIGEgbmV3IG1tIG9iamVj dCBhbmQgcmV0dXJucyBhIGhhbmRsZSB0byBpdC4KPj4+ICAgICAqIEBkZXY6IGRybSBkZXZpY2Ug cG9pbnRlcgo+Pj4gQEAgLTc1Myw2ICs3NjYsMTEgQEAgZmx1c2hfd3JpdGVfZG9tYWluKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHVuc2lnbmVkIGludCBmbHVzaF9kb21haW5zKQo+ Pj4gICAgICAgIGNhc2UgSTkxNV9HRU1fRE9NQUlOX0NQVToKPj4+ICAgICAgICAgICAgICAgIGk5 MTVfZ2VtX2NsZmx1c2hfb2JqZWN0KG9iaiwgSTkxNV9DTEZMVVNIX1NZTkMpOwo+Pj4gICAgICAg ICAgICAgICAgYnJlYWs7Cj4+PiArCj4+PiArICAgICBjYXNlIEk5MTVfR0VNX0RPTUFJTl9SRU5E RVI6Cj4+PiArICAgICAgICAgICAgIGlmIChncHVfd3JpdGVfbmVlZHNfY2xmbHVzaChvYmopKQo+ Pj4gKyAgICAgICAgICAgICAgICAgICAgIG9iai0+Y2FjaGVfZGlydHkgPSB0cnVlOwo+Pj4gKyAg ICAgICAgICAgICBicmVhazsKPj4+ICAgICAgICB9Cj4+PiAgICAKPj4+ICAgICAgICBvYmotPmJh c2Uud3JpdGVfZG9tYWluID0gMDsKPj4+IEBAIC04NTQsNyArODcyLDggQEAgaW50IGk5MTVfZ2Vt X29ial9wcmVwYXJlX3NobWVtX3JlYWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwK Pj4+ICAgICAgICAgKiBvcHRpbWl6ZXMgZm9yIHRoZSBjYXNlIHdoZW4gdGhlIGdwdSB3aWxsIGRp cnR5IHRoZSBkYXRhCj4+PiAgICAgICAgICogYW55d2F5IGFnYWluIGJlZm9yZSB0aGUgbmV4dCBw cmVhZCBoYXBwZW5zLgo+Pj4gICAgICAgICAqLwo+Pj4gLSAgICAgaWYgKCEob2JqLT5iYXNlLnJl YWRfZG9tYWlucyAmIEk5MTVfR0VNX0RPTUFJTl9DUFUpKQo+Pj4gKyAgICAgaWYgKCFvYmotPmNh Y2hlX2RpcnR5ICYmCj4+PiArICAgICAgICAgIShvYmotPmJhc2UucmVhZF9kb21haW5zICYgSTkx NV9HRU1fRE9NQUlOX0NQVSkpCj4+PiAgICAgICAgICAgICAgICAqbmVlZHNfY2xmbHVzaCA9IENM RkxVU0hfQkVGT1JFOwo+Pgo+PiBPYnZpb3VzbHkgSSBkb24ndCB1bmRlcnN0YW5kIHNvbWV0aGlu ZyBjcml0aWNhbCBoZXJlIHNpbmNlIG9uY2UgbW9yZSBJCj4+IHdhcyBleHBlY3RpbmcgdGhlIHJl dmVyc2UgaGVyZSAtIGlmIHRoZSBjYWNoZSBpcyBub3QgZGlydHkgbm8gbmVlZCB0bwo+PiBmbHVz aCBpdC4KPiAKPiBUaGlzIGlzIGFuIGludmFsaWRhdGUuIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRo YXQgYW55IHN0cmF5IGNhY2hlbGluZSB0aGUKPiBDUFUgcHVsbGVkIGluIGFyZSBpbnZhbGlkYXRl ZCBwcmlvciB0byBhY2Nlc3NpbmcgdGhlIHBoeXNpY2FsIGFkZHJlc3MKPiB3aGljaCB3YXMgd3Jp dHRlbiB0byBieSB0aGUgR1BVIG91dCBvZiBzaWdodCBvZiB0aGUgY3B1LgoKV2h5IHdlIGRvbid0 IG5lZWQgdG8gZG8gdGhhdCBpZiBDUFUgY2FjaGUgaXMgZGlydHk/Cgo+Pj4gKyAgICAgICovCj4+ PiArICAgICBmbHVzaF93cml0ZV9kb21haW4ob2JqLCB+STkxNV9HRU1fRE9NQUlOX0NQVSk7Cj4+ PiArICAgICBpZiAob2JqLT5jYWNoZV9kaXJ0eSkKPj4+ICsgICAgICAgICAgICAgaTkxNV9nZW1f Y2xmbHVzaF9vYmplY3Qob2JqLCBJOTE1X0NMRkxVU0hfRk9SQ0UpOwo+Pj4gICAgICAgIG9iai0+ YmFzZS53cml0ZV9kb21haW4gPSAwOwo+Pj4gICAgfQo+Pj4gICAgCj4+PiBAQCAtMzY1NywxMyAr MzY4MSwxMCBAQCBpbnQgaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+Pj4gICAgICAgICAgICAgICAgfQo+Pj4gICAgICAgIH0K Pj4+ICAgIAo+Pj4gLSAgICAgaWYgKG9iai0+YmFzZS53cml0ZV9kb21haW4gPT0gSTkxNV9HRU1f RE9NQUlOX0NQVSAmJgo+Pj4gLSAgICAgICAgIGk5MTVfZ2VtX29iamVjdF9pc19jb2hlcmVudChv YmopKQo+Pj4gLSAgICAgICAgICAgICBvYmotPmNhY2hlX2RpcnR5ID0gdHJ1ZTsKPj4+IC0KPj4+ ICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9iai0+dm1hX2xpc3QsIG9ial9saW5r KQo+Pj4gICAgICAgICAgICAgICAgdm1hLT5ub2RlLmNvbG9yID0gY2FjaGVfbGV2ZWw7Cj4+PiAg ICAgICAgb2JqLT5jYWNoZV9sZXZlbCA9IGNhY2hlX2xldmVsOwo+Pj4gKyAgICAgb2JqLT5jYWNo ZV9kaXJ0eSA9IHRydWU7IC8qIEFsd2F5cyBpbnZhbGlkYXRlIHN0YWxlIGNhY2hlbGluZXMgKi8K Pj4+ICAgIAo+Pj4gICAgICAgIHJldHVybiAwOwo+Pj4gICAgfQo+Pj4gQEAgLTM4ODUsOSArMzkw Niw2IEBAIGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fY3B1X2RvbWFpbihzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqLCBib29sIHdyaXRlKQo+Pj4gICAgICAgIGlmIChyZXQpCj4+PiAgICAg ICAgICAgICAgICByZXR1cm4gcmV0Owo+Pj4gICAgCj4+PiAtICAgICBpZiAob2JqLT5iYXNlLndy aXRlX2RvbWFpbiA9PSBJOTE1X0dFTV9ET01BSU5fQ1BVKQo+Pj4gLSAgICAgICAgICAgICByZXR1 cm4gMDsKPj4+IC0KPj4+ICAgICAgICBmbHVzaF93cml0ZV9kb21haW4ob2JqLCB+STkxNV9HRU1f RE9NQUlOX0NQVSk7Cj4+PiAgICAKPj4+ICAgICAgICAvKiBGbHVzaCB0aGUgQ1BVIGNhY2hlIGlm IGl0J3Mgc3RpbGwgaW52YWxpZC4gKi8KPj4+IEBAIC0zODk5LDE1ICszOTE3LDEzIEBAIGk5MTVf Z2VtX29iamVjdF9zZXRfdG9fY3B1X2RvbWFpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLCBib29sIHdyaXRlKQo+Pj4gICAgICAgIC8qIEl0IHNob3VsZCBub3cgYmUgb3V0IG9mIGFu eSBvdGhlciB3cml0ZSBkb21haW5zLCBhbmQgd2UgY2FuIHVwZGF0ZQo+Pj4gICAgICAgICAqIHRo ZSBkb21haW4gdmFsdWVzIGZvciBvdXIgY2hhbmdlcy4KPj4+ICAgICAgICAgKi8KPj4+IC0gICAg IEdFTV9CVUdfT04oKG9iai0+YmFzZS53cml0ZV9kb21haW4gJiB+STkxNV9HRU1fRE9NQUlOX0NQ VSkgIT0gMCk7Cj4+PiArICAgICBHRU1fQlVHX09OKG9iai0+YmFzZS53cml0ZV9kb21haW4gJiB+ STkxNV9HRU1fRE9NQUlOX0NQVSk7Cj4+PiAgICAKPj4+ICAgICAgICAvKiBJZiB3ZSdyZSB3cml0 aW5nIHRocm91Z2ggdGhlIENQVSwgdGhlbiB0aGUgR1BVIHJlYWQgZG9tYWlucyB3aWxsCj4+PiAg ICAgICAgICogbmVlZCB0byBiZSBpbnZhbGlkYXRlZCBhdCBuZXh0IHVzZS4KPj4+ICAgICAgICAg Ki8KPj4+IC0gICAgIGlmICh3cml0ZSkgewo+Pj4gLSAgICAgICAgICAgICBvYmotPmJhc2UucmVh ZF9kb21haW5zID0gSTkxNV9HRU1fRE9NQUlOX0NQVTsKPj4+IC0gICAgICAgICAgICAgb2JqLT5i YXNlLndyaXRlX2RvbWFpbiA9IEk5MTVfR0VNX0RPTUFJTl9DUFU7Cj4+PiAtICAgICB9Cj4+PiAr ICAgICBpZiAod3JpdGUpCj4+PiArICAgICAgICAgICAgIF9fc3RhcnRfY3B1X3dyaXRlKG9iaik7 Cj4+PiAgICAKPj4+ICAgICAgICByZXR1cm4gMDsKPj4+ICAgIH0KPj4+IEBAIC00MzI4LDYgKzQz NDQsOCBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgdTY0IHNpemUpCj4+PiAgICAgICAgfSBlbHNlCj4+PiAgICAgICAgICAgICAgICBv YmotPmNhY2hlX2xldmVsID0gSTkxNV9DQUNIRV9OT05FOwo+Pj4gICAgCj4+PiArICAgICBvYmot PmNhY2hlX2RpcnR5ID0gIWk5MTVfZ2VtX29iamVjdF9pc19jb2hlcmVudChvYmopOwo+Pgo+PiBD b3VsZCB0aGlzLCBoZXJlIGFuZCBlbHNld2hlcmUsIHRvZ2V0aGVyIHdpdGggc2V0dGluZyBvZiBy ZWFkIGFuZCB3cml0ZQo+PiBjcHUgZG9tYWlucywgYmUgY29uc29saWRhdGVkIHRvIGk5MTVfZ2Vt X29iamVjdF9pbml0Pwo+IAo+IFBvc3NpYmx5LCBJIGRpZCBjb25zaWRlciBpdCwgYnV0IHRoZSBm cmVlZG9tIGluIHdoaWNoIGNhbGxlcnMgbWl4ZWQgdGhlCj4gZG9tYWlucyByZWR1Y2VkIHRoZSBk ZXNpcmUgdG8gcmVmYWN0b3IuCgpPay4KClJlZ2FyZHMsCgpUdnJ0a28KCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK