From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 04/12] dma-buf: add optional invalidate_mappings callback v5 Date: Wed, 17 Apr 2019 21:13:22 +0200 Message-ID: <03a04d1d-9bc0-8f20-0436-b0f0017f0506@gmail.com> References: <20190416183841.1577-1-christian.koenig@amd.com> <20190416183841.1577-5-christian.koenig@amd.com> <20190417190719.GL13337@phenom.ffwll.local> Reply-To: christian.koenig@amd.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190417190719.GL13337@phenom.ffwll.local> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: sumit.semwal@linaro.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, linux-kernel@vger.kernel.org, amd-gfx@lists.freedesktop.org List-Id: amd-gfx.lists.freedesktop.org QW0gMTcuMDQuMTkgdW0gMjE6MDcgc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+IE9uIFR1ZSwgQXBy IDE2LCAyMDE5IGF0IDA4OjM4OjMzUE0gKzAyMDAsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+ IEVhY2ggaW1wb3J0ZXIgY2FuIG5vdyBwcm92aWRlIGFuIGludmFsaWRhdGVfbWFwcGluZ3MgY2Fs bGJhY2suCj4+Cj4+IFRoaXMgYWxsb3dzIHRoZSBleHBvcnRlciB0byBwcm92aWRlIHRoZSBtYXBw aW5ncyB3aXRob3V0IHRoZSBuZWVkIHRvIHBpbgo+PiB0aGUgYmFja2luZyBzdG9yZS4KPj4KPj4g djI6IGRvbid0IHRyeSB0byBpbnZhbGlkYXRlIG1hcHBpbmdzIHdoZW4gdGhlIGNhbGxiYWNrIGlz IE5VTEwsCj4+ICAgICAgbG9jayB0aGUgcmVzZXJ2YXRpb24gb2JqIHdoaWxlIHVzaW5nIHRoZSBh dHRhY2htZW50cywKPj4gICAgICBhZGQgaGVscGVyIHRvIHNldCB0aGUgY2FsbGJhY2sKPj4gdjM6 IG1vdmUgZmxhZyBmb3IgaW52YWxpZGF0aW9uIHN1cHBvcnQgaW50byB0aGUgRE1BLWJ1ZiwKPj4g ICAgICB1c2UgbmV3IGF0dGFjaF9pbmZvIHN0cnVjdHVyZSB0byBzZXQgdGhlIGNhbGxiYWNrCj4+ IHY0OiB1c2UgaW1wb3J0ZXJfcHJpdiBmaWVsZCBpbnN0ZWFkIG9mIG1hbmdsaW5nIGV4cG9ydGVy IHByaXYuCj4+IHY1OiBkcm9wIGludmFsaWRhdGlvbl9zdXBwb3J0ZWQgZmxhZwo+Pgo+PiBTaWdu ZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4+ IC0tLQo+PiAgIGRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMgfCAzNyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCj4+ICAgaW5jbHVkZS9saW51eC9kbWEtYnVmLmggICB8IDMz ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+PiAgIDIgZmlsZXMgY2hhbmdlZCwg NjggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZG1hLWJ1Zi9kbWEtYnVmLmMgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCj4+IGluZGV4 IDgzYzkyYmZkOTY0Yy4uYTM3MzhmYWIzOTI3IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2RtYS1i dWYvZG1hLWJ1Zi5jCj4+ICsrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKPj4gQEAgLTU2 Myw2ICs1NjMsOCBAQCBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICpkbWFfYnVmX2F0dGFjaChj b25zdCBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2hfaW5mbyAqaW5mbwo+PiAgIAo+PiAgIAlhdHRhY2gt PmRldiA9IGluZm8tPmRldjsKPj4gICAJYXR0YWNoLT5kbWFidWYgPSBkbWFidWY7Cj4+ICsJYXR0 YWNoLT5pbXBvcnRlcl9wcml2ID0gaW5mby0+aW1wb3J0ZXJfcHJpdjsKPj4gKwlhdHRhY2gtPmlu dmFsaWRhdGUgPSBpbmZvLT5pbnZhbGlkYXRlOwo+PiAgIAo+PiAgIAltdXRleF9sb2NrKCZkbWFi dWYtPmxvY2spOwo+PiAgIAo+PiBAQCAtNTcxLDcgKzU3Myw5IEBAIHN0cnVjdCBkbWFfYnVmX2F0 dGFjaG1lbnQgKmRtYV9idWZfYXR0YWNoKGNvbnN0IHN0cnVjdCBkbWFfYnVmX2F0dGFjaF9pbmZv ICppbmZvCj4+ICAgCQlpZiAocmV0KQo+PiAgIAkJCWdvdG8gZXJyX2F0dGFjaDsKPj4gICAJfQo+ PiArCXJlc2VydmF0aW9uX29iamVjdF9sb2NrKGRtYWJ1Zi0+cmVzdiwgTlVMTCk7Cj4+ICAgCWxp c3RfYWRkKCZhdHRhY2gtPm5vZGUsICZkbWFidWYtPmF0dGFjaG1lbnRzKTsKPj4gKwlyZXNlcnZh dGlvbl9vYmplY3RfdW5sb2NrKGRtYWJ1Zi0+cmVzdik7Cj4+ICAgCj4+ICAgCW11dGV4X3VubG9j aygmZG1hYnVmLT5sb2NrKTsKPj4gICAKPj4gQEAgLTYxNSw3ICs2MTksOSBAQCB2b2lkIGRtYV9i dWZfZGV0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1l bnQgKmF0dGFjaCkKPj4gICAJCQkJCSAgIERNQV9CSURJUkVDVElPTkFMKTsKPj4gICAKPj4gICAJ bXV0ZXhfbG9jaygmZG1hYnVmLT5sb2NrKTsKPj4gKwlyZXNlcnZhdGlvbl9vYmplY3RfbG9jayhk bWFidWYtPnJlc3YsIE5VTEwpOwo+PiAgIAlsaXN0X2RlbCgmYXR0YWNoLT5ub2RlKTsKPj4gKwly ZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGRtYWJ1Zi0+cmVzdik7Cj4+ICAgCWlmIChkbWFidWYt Pm9wcy0+ZGV0YWNoKQo+PiAgIAkJZG1hYnVmLT5vcHMtPmRldGFjaChkbWFidWYsIGF0dGFjaCk7 Cj4+ICAgCj4+IEBAIC02NTMsNyArNjU5LDE2IEBAIGRtYV9idWZfbWFwX2F0dGFjaG1lbnRfbG9j a2VkKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCwKPj4gICAJaWYgKGF0dGFjaC0+ c2d0KQo+PiAgIAkJcmV0dXJuIGF0dGFjaC0+c2d0Owo+PiAgIAo+PiArCS8qCj4+ICsJICogTWFw cGluZyBhIERNQS1idWYgY2FuIHRyaWdnZXIgaXRzIGludmFsaWRhdGlvbiwgcHJldmVudCBzZW5k aW5nIHRoaXMKPj4gKwkgKiBldmVudCB0byB0aGUgY2FsbGVyIGJ5IHRlbXBvcmFyeSByZW1vdmlu ZyB0aGlzIGF0dGFjaG1lbnQgZnJvbSB0aGUKPj4gKwkgKiBsaXN0Lgo+PiArCSAqLwo+PiArCWlm IChhdHRhY2gtPmludmFsaWRhdGUpCj4+ICsJCWxpc3RfZGVsKCZhdHRhY2gtPm5vZGUpOwo+IEp1 c3Qgbm90aWNlZCB0aGlzOiBXaHkgZG8gd2UgbmVlZCB0aGlzPyBpbnZhbGlkYXRlIG5lZWRzIHRo ZSByZXNlcnZhdGlvbgo+IGxvY2ssIGFzIGRvZXMgbWFwX2F0dGFjaG1lbnQuIEl0IHNob3VsZCBi ZSBpbXBzc29ibGUgdG8gaGF2ZSBzb21lb25lIGVsc2UKPiBzbmVhayBpbiBoZXJlLgoKSSB3YXMg aGF2aW5nIHByb2JsZW1zIHdpdGggc2VsZiB0cmlnZ2VyZWQgaW52YWxpZGF0aW9ucy4KCkUuZy4g Y2xpZW50IEEgdHJpZXMgdG8gbWFwIGFuIGF0dGFjaG1lbnQsIHRoYXQgaW4gdHVybiBjYXVzZXMg dGhlIGJ1ZmZlciAKdG8gbW92ZSB0byBhIG5ldyBwbGFjZSBhbmQgY2xpZW50IEEgaXMgaW5mb3Jt ZWQgYWJvdXQgdGhhdCBtb3ZlbWVudCB3aXRoIAphbiBpbnZhbGlkYXRpb24uCgpDaHJpc3RpYW4u Cgo+IC1EYW5pZWwKPgo+PiAgIAlzZ190YWJsZSA9IGF0dGFjaC0+ZG1hYnVmLT5vcHMtPm1hcF9k bWFfYnVmKGF0dGFjaCwgZGlyZWN0aW9uKTsKPj4gKwlpZiAoYXR0YWNoLT5pbnZhbGlkYXRlKQo+ PiArCQlsaXN0X2FkZCgmYXR0YWNoLT5ub2RlLCAmYXR0YWNoLT5kbWFidWYtPmF0dGFjaG1lbnRz KTsKPj4gICAJaWYgKCFzZ190YWJsZSkKPj4gICAJCXNnX3RhYmxlID0gRVJSX1BUUigtRU5PTUVN KTsKPj4gICAKPj4gQEAgLTc1MSw2ICs3NjYsMjYgQEAgdm9pZCBkbWFfYnVmX3VubWFwX2F0dGFj aG1lbnQoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAo+PiAgIH0KPj4gICBFWFBP UlRfU1lNQk9MX0dQTChkbWFfYnVmX3VubWFwX2F0dGFjaG1lbnQpOwo+PiAgIAo+PiArLyoqCj4+ ICsgKiBkbWFfYnVmX2ludmFsaWRhdGVfbWFwcGluZ3MgLSBpbnZhbGlkYXRlIGFsbCBtYXBwaW5n cyBvZiB0aGlzIGRtYV9idWYKPj4gKyAqCj4+ICsgKiBAZG1hYnVmOglbaW5dCWJ1ZmZlciB3aGlj aCBtYXBwaW5ncyBzaG91bGQgYmUgaW52YWxpZGF0ZWQKPj4gKyAqCj4+ICsgKiBJbmZvcm1zIGFs bCBhdHRhY2htZW5zdCB0aGF0IHRoZXkgbmVlZCB0byBkZXN0cm95IGFuZCByZWNyZWF0ZWQgYWxs IHRoZWlyCj4+ICsgKiBtYXBwaW5ncy4KPj4gKyAqLwo+PiArdm9pZCBkbWFfYnVmX2ludmFsaWRh dGVfbWFwcGluZ3Moc3RydWN0IGRtYV9idWYgKmRtYWJ1ZikKPj4gK3sKPj4gKwlzdHJ1Y3QgZG1h X2J1Zl9hdHRhY2htZW50ICphdHRhY2g7Cj4+ICsKPj4gKwlyZXNlcnZhdGlvbl9vYmplY3RfYXNz ZXJ0X2hlbGQoZG1hYnVmLT5yZXN2KTsKPj4gKwo+PiArCWxpc3RfZm9yX2VhY2hfZW50cnkoYXR0 YWNoLCAmZG1hYnVmLT5hdHRhY2htZW50cywgbm9kZSkKPj4gKwkJaWYgKGF0dGFjaC0+aW52YWxp ZGF0ZSkKPj4gKwkJCWF0dGFjaC0+aW52YWxpZGF0ZShhdHRhY2gpOwo+PiArfQo+PiArRVhQT1JU X1NZTUJPTF9HUEwoZG1hX2J1Zl9pbnZhbGlkYXRlX21hcHBpbmdzKTsKPj4gKwo+PiAgIC8qKgo+ PiAgICAqIERPQzogY3B1IGFjY2Vzcwo+PiAgICAqCj4+IEBAIC0xMTYzLDEwICsxMTk4LDEyIEBA IHN0YXRpYyBpbnQgZG1hX2J1Zl9kZWJ1Z19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAq dW51c2VkKQo+PiAgIAkJc2VxX3B1dHMocywgIlx0QXR0YWNoZWQgRGV2aWNlczpcbiIpOwo+PiAg IAkJYXR0YWNoX2NvdW50ID0gMDsKPj4gICAKPj4gKwkJcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2so YnVmX29iai0+cmVzdiwgTlVMTCk7Cj4+ICAgCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGF0dGFjaF9v YmosICZidWZfb2JqLT5hdHRhY2htZW50cywgbm9kZSkgewo+PiAgIAkJCXNlcV9wcmludGYocywg Ilx0JXNcbiIsIGRldl9uYW1lKGF0dGFjaF9vYmotPmRldikpOwo+PiAgIAkJCWF0dGFjaF9jb3Vu dCsrOwo+PiAgIAkJfQo+PiArCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJ1Zl9vYmotPnJl c3YpOwo+PiAgIAo+PiAgIAkJc2VxX3ByaW50ZihzLCAiVG90YWwgJWQgZGV2aWNlcyBhdHRhY2hl ZFxuXG4iLAo+PiAgIAkJCQlhdHRhY2hfY291bnQpOwo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9kbWEtYnVmLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaAo+PiBpbmRleCA3ZTIzNzU4 ZGIzYTQuLmVjZTQ2MzgzNTlhOCAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9saW51eC9kbWEtYnVm LmgKPj4gKysrIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKPj4gQEAgLTMyNCw2ICszMjQsNyBA QCBzdHJ1Y3QgZG1hX2J1ZiB7Cj4+ICAgICogQGRldjogZGV2aWNlIGF0dGFjaGVkIHRvIHRoZSBi dWZmZXIuCj4+ICAgICogQG5vZGU6IGxpc3Qgb2YgZG1hX2J1Zl9hdHRhY2htZW50Lgo+PiAgICAq IEBwcml2OiBleHBvcnRlciBzcGVjaWZpYyBhdHRhY2htZW50IGRhdGEuCj4+ICsgKiBAaW1wb3J0 ZXJfcHJpdjogaW1wb3J0ZXIgc3BlY2lmaWMgYXR0YWNobWVudCBkYXRhLgo+PiAgICAqCj4+ICAg ICogVGhpcyBzdHJ1Y3R1cmUgaG9sZHMgdGhlIGF0dGFjaG1lbnQgaW5mb3JtYXRpb24gYmV0d2Vl biB0aGUgZG1hX2J1ZiBidWZmZXIKPj4gICAgKiBhbmQgaXRzIHVzZXIgZGV2aWNlKHMpLiBUaGUg bGlzdCBjb250YWlucyBvbmUgYXR0YWNobWVudCBzdHJ1Y3QgcGVyIGRldmljZQo+PiBAQCAtMzQw LDYgKzM0MSwyOSBAQCBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50IHsKPj4gICAJc3RydWN0IGxp c3RfaGVhZCBub2RlOwo+PiAgIAl2b2lkICpwcml2Owo+PiAgIAlzdHJ1Y3Qgc2dfdGFibGUgKnNn dDsKPj4gKwl2b2lkICppbXBvcnRlcl9wcml2Owo+PiArCj4+ICsJLyoqCj4+ICsJICogQGludmFs aWRhdGU6Cj4+ICsJICoKPj4gKwkgKiBPcHRpb25hbCBjYWxsYmFjayBwcm92aWRlZCBieSB0aGUg aW1wb3J0ZXIgb2YgdGhlIGRtYS1idWYuCj4+ICsJICoKPj4gKwkgKiBJZiBwcm92aWRlZCB0aGUg ZXhwb3J0ZXIgY2FuIGF2b2lkIHBpbm5pbmcgdGhlIGJhY2tpbmcgc3RvcmUgd2hpbGUKPj4gKwkg KiBtYXBwaW5ncyBleGlzdHMuCj4+ICsJICoKPj4gKwkgKiBUaGUgZnVuY3Rpb24gaXMgY2FsbGVk IHdpdGggdGhlIGxvY2sgb2YgdGhlIHJlc2VydmF0aW9uIG9iamVjdAo+PiArCSAqIGFzc29jaWF0 ZWQgd2l0aCB0aGUgZG1hX2J1ZiBoZWxkIGFuZCB0aGUgbWFwcGluZyBmdW5jdGlvbiBtdXN0IGJl Cj4+ICsJICogY2FsbGVkIHdpdGggdGhpcyBsb2NrIGhlbGQgYXMgd2VsbC4gVGhpcyBtYWtlcyBz dXJlIHRoYXQgbm8gbWFwcGluZwo+PiArCSAqIGlzIGNyZWF0ZWQgY29uY3VycmVudGx5IHdpdGgg YW4gb25nb2luZyBpbnZhbGlkYXRpb24uCj4+ICsJICoKPj4gKwkgKiBBZnRlciB0aGUgY2FsbGJh Y2sgYWxsIGV4aXN0aW5nIG1hcHBpbmdzIGFyZSBzdGlsbCB2YWxpZCB1bnRpbCBhbGwKPj4gKwkg KiBmZW5jZXMgaW4gdGhlIGRtYV9idWZzIHJlc2VydmF0aW9uIG9iamVjdCBhcmUgc2lnbmFsZWQs IGJ1dCBzaG91bGQgYmUKPj4gKwkgKiBkZXN0cm95ZWQgYnkgdGhlIGltcG9ydGVyIGFzIHNvb24g YXMgcG9zc2libGUuCj4+ICsJICoKPj4gKwkgKiBOZXcgbWFwcGluZ3MgY2FuIGJlIGNyZWF0ZWQg aW1tZWRpYXRlbHksIGJ1dCBjYW4ndCBiZSB1c2VkIGJlZm9yZSB0aGUKPj4gKwkgKiBleGNsdXNp dmUgZmVuY2UgaW4gdGhlIGRtYV9idWZzIHJlc2VydmF0aW9uIG9iamVjdCBpcyBzaWduYWxlZC4K Pj4gKwkgKi8KPj4gKwl2b2lkICgqaW52YWxpZGF0ZSkoc3RydWN0IGRtYV9idWZfYXR0YWNobWVu dCAqYXR0YWNoKTsKPj4gICB9Owo+PiAgIAo+PiAgIC8qKgo+PiBAQCAtMzc4LDggKzQwMiwxMCBA QCBzdHJ1Y3QgZG1hX2J1Zl9leHBvcnRfaW5mbyB7Cj4+ICAgCj4+ICAgLyoqCj4+ICAgICogc3Ry dWN0IGRtYV9idWZfYXR0YWNoX2luZm8gLSBob2xkcyBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gYXR0 YWNoIHRvIGEgZG1hX2J1Zgo+PiAtICogQGRtYWJ1ZjoJdGhlIGV4cG9ydGVkIGRtYV9idWYKPj4g LSAqIEBkZXY6CXRoZSBkZXZpY2Ugd2hpY2ggd2FudHMgdG8gaW1wb3J0IHRoZSBhdHRhY2htZW50 Cj4+ICsgKiBAZG1hYnVmOgkJdGhlIGV4cG9ydGVkIGRtYV9idWYKPj4gKyAqIEBkZXY6CQl0aGUg ZGV2aWNlIHdoaWNoIHdhbnRzIHRvIGltcG9ydCB0aGUgYXR0YWNobWVudAo+PiArICogQGltcG9y dGVyX3ByaXY6CXByaXZhdGUgZGF0YSBvZiBpbXBvcnRlciB0byB0aGlzIGF0dGFjaG1lbnQKPj4g KyAqIEBpbnZhbGlkYXRlOgkJY2FsbGJhY2sgdG8gdXNlIGZvciBpbnZhbGlkYXRpbmcgbWFwcGlu Z3MKPj4gICAgKgo+PiAgICAqIFRoaXMgc3RydWN0dXJlIGhvbGRzIHRoZSBpbmZvcm1hdGlvbiBy ZXF1aXJlZCB0byBhdHRhY2ggdG8gYSBidWZmZXIuIFVzZWQKPj4gICAgKiB3aXRoIGRtYV9idWZf YXR0YWNoKCkgb25seS4KPj4gQEAgLTM4Nyw2ICs0MTMsOCBAQCBzdHJ1Y3QgZG1hX2J1Zl9leHBv cnRfaW5mbyB7Cj4+ICAgc3RydWN0IGRtYV9idWZfYXR0YWNoX2luZm8gewo+PiAgIAlzdHJ1Y3Qg ZG1hX2J1ZiAqZG1hYnVmOwo+PiAgIAlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4+ICsJdm9pZCAqaW1w b3J0ZXJfcHJpdjsKPj4gKwl2b2lkICgqaW52YWxpZGF0ZSkoc3RydWN0IGRtYV9idWZfYXR0YWNo bWVudCAqYXR0YWNoKTsKPj4gICB9Owo+PiAgIAo+PiAgIC8qKgo+PiBAQCAtNDIzLDYgKzQ1MSw3 IEBAIHZvaWQgZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50X2xvY2tlZChzdHJ1Y3QgZG1hX2J1Zl9h dHRhY2htZW50ICosCj4+ICAgCQkJCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24pOwo+PiAg IHZvaWQgZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50KHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQg Kiwgc3RydWN0IHNnX3RhYmxlICosCj4+ICAgCQkJCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uKTsK Pj4gK3ZvaWQgZG1hX2J1Zl9pbnZhbGlkYXRlX21hcHBpbmdzKHN0cnVjdCBkbWFfYnVmICpkbWFf YnVmKTsKPj4gICBpbnQgZG1hX2J1Zl9iZWdpbl9jcHVfYWNjZXNzKHN0cnVjdCBkbWFfYnVmICpk bWFfYnVmLAo+PiAgIAkJCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKTsKPj4gICBp bnQgZG1hX2J1Zl9lbmRfY3B1X2FjY2VzcyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPj4gLS0g Cj4+IDIuMTcuMQo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbA==