From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 02/12] dma-buf: add explicit buffer pinning v2 Date: Tue, 30 Apr 2019 15:42:22 +0200 Message-ID: References: <20190426123638.40221-1-christian.koenig@amd.com> <20190426123638.40221-2-christian.koenig@amd.com> <20190429084048.GL3271@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: Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8AAE889180 for ; Tue, 30 Apr 2019 13:42:25 +0000 (UTC) Received: by mail-wm1-x344.google.com with SMTP id w15so3896397wmc.3 for ; Tue, 30 Apr 2019 06:42:25 -0700 (PDT) In-Reply-To: <20190429084048.GL3271@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: Daniel Vetter Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QW0gMjkuMDQuMTkgdW0gMTA6NDAgc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+IE9uIEZyaSwgQXBy IDI2LCAyMDE5IGF0IDAyOjM2OjI4UE0gKzAyMDAsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+ IEFkZCBvcHRpb25hbCBleHBsaWNpdCBwaW5uaW5nIGNhbGxiYWNrcyBpbnN0ZWFkIG9mIGltcGxp Y2l0bHkgYXNzdW1lIHRoZQo+PiBleHBvcnRlciBwaW5zIHRoZSBidWZmZXIgd2hlbiBhIG1hcHBp bmcgaXMgY3JlYXRlZC4KPj4KPj4gdjI6IG1vdmUgaW4gcGF0Y2hzZXQgYW5kIHBpbiB0aGUgZG1h LWJ1ZiBpbiB0aGUgb2xkIG1hcHBpbmcgY29kZSBwYXRocy4KPj4KPj4gU2lnbmVkLW9mZi1ieTog Q2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+PiAtLS0KPj4gICBk cml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jIHwgNDkgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystCj4+ICAgaW5jbHVkZS9saW51eC9kbWEtYnVmLmggICB8IDM4ICsrKysrKysr KysrKysrKysrKysrKysrKystLS0tLQo+PiAgIDIgZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9u cygrKSwgNyBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9k bWEtYnVmLmMgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCj4+IGluZGV4IDUwYjRjNmFmMDRj Ny4uMDY1NmRjZjI4OWJlIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5j Cj4+ICsrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKPj4gQEAgLTUyOSw2ICs1MjksNDEg QEAgdm9pZCBkbWFfYnVmX3B1dChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmKQo+PiAgIH0KPj4gICBF WFBPUlRfU1lNQk9MX0dQTChkbWFfYnVmX3B1dCk7Cj4+ICAgCj4+ICsvKioKPj4gKyAqIGRtYV9i dWZfcGluIC0gTG9jayBkb3duIHRoZSBETUEtYnVmCj4+ICsgKgo+PiArICogQGRtYWJ1ZjoJW2lu XQlETUEtYnVmIHRvIGxvY2sgZG93bi4KPj4gKyAqCj4+ICsgKiBSZXR1cm5zOgo+PiArICogMCBv biBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4+ICsgKi8KPj4gK2lu dCBkbWFfYnVmX3BpbihzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmKQo+IEkgdGhpbmsgdGhpcyBzaG91 bGQgYmUgb24gdGhlIGF0dGFjaG1lbnQsIG5vdCBvbiB0aGUgYnVmZmVyLiBPciBpcyB0aGUKPiBp ZGVhIHRoYXQgYSBwaW4gaXMgZm9yIHRoZSBlbnRpcmUgYnVmZmVyLCBhbmQgYWxsIHN1YnNlcXVl bnQKPiBkbWFfYnVmX21hcF9hdHRhY2htZW50IG11c3Qgd29yayBmb3IgYWxsIGF0dGFjaG1lbnRz PyBJIHRoaW5rIHRoaXMgbWF0dGVycwo+IGZvciBzdWZmaWNpZW50bHkgY29udHJpdmVkIHAycCBz Y2VuYXJpb3MuCgpUaGlzIGlzIGluZGVlZCBmb3IgdGhlIERNQS1idWYsIGNhdXNlIHdlIGFyZSBw aW5uaW5nIHRoZSB1bmRlcmx5aW5nIApiYWNraW5nIHN0b3JlIGFuZCBub3QganVzdCBvbmUgYXR0 YWNobWVudC4KCktleSBwb2ludCBpcyBJIHdhbnQgdG8gY2FsbCB0aGlzIGluIHRoZSBleHBvcnRl ciBpdHNlbGYgaW4gdGhlIGxvbmcgcnVuLiAKRS5nLiB0aGF0IHRoZSBleHBvcnRlciBzdG9wcyB3 b3JraW5nIHdpdGggaXRzIGludGVybmFsIHNwZWNpYWwgaGFuZGxpbmcgCmZ1bmN0aW9ucyBhbmQg dXNlcyB0aGlzIG9uZSBpbnN0ZWFkLgoKPiBFaXRoZXIgd2F5LCBkb2NzIG5lZWQgdG8gY2xhcmlm eSB0aGlzLgoKR29pbmcgdG8gYWRkIGEgYml0IG1vcmUgaGVyZS4KCj4KPj4gK3sKPj4gKwlpbnQg cmV0ID0gMDsKPj4gKwo+PiArCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChkbWFidWYt PnJlc3YpOwo+PiArCj4+ICsJaWYgKGRtYWJ1Zi0+b3BzLT5waW4pCj4+ICsJCXJldCA9IGRtYWJ1 Zi0+b3BzLT5waW4oZG1hYnVmKTsKPj4gKwo+PiArCXJldHVybiByZXQ7Cj4+ICt9Cj4+ICtFWFBP UlRfU1lNQk9MX0dQTChkbWFfYnVmX3Bpbik7Cj4+ICsKPj4gKy8qKgo+PiArICogZG1hX2J1Zl91 bnBpbiAtIFJlbW92ZSBsb2NrIGZyb20gRE1BLWJ1Zgo+PiArICoKPj4gKyAqIEBkbWFidWY6CVtp bl0JRE1BLWJ1ZiB0byB1bmxvY2suCj4+ICsgKi8KPj4gK3ZvaWQgZG1hX2J1Zl91bnBpbihzdHJ1 Y3QgZG1hX2J1ZiAqZG1hYnVmKQo+PiArewo+PiArCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRf aGVsZChkbWFidWYtPnJlc3YpOwo+PiArCj4+ICsJaWYgKGRtYWJ1Zi0+b3BzLT51bnBpbikKPj4g KwkJZG1hYnVmLT5vcHMtPnVucGluKGRtYWJ1Zik7Cj4+ICt9Cj4+ICtFWFBPUlRfU1lNQk9MX0dQ TChkbWFfYnVmX3VucGluKTsKPj4gKwo+PiAgIC8qKgo+PiAgICAqIGRtYV9idWZfYXR0YWNoIC0g QWRkIHRoZSBkZXZpY2UgdG8gZG1hX2J1ZidzIGF0dGFjaG1lbnRzIGxpc3Q7IG9wdGlvbmFsbHks Cj4+ICAgICogY2FsbHMgYXR0YWNoKCkgb2YgZG1hX2J1Zl9vcHMgdG8gYWxsb3cgZGV2aWNlLXNw ZWNpZmljIGF0dGFjaCBmdW5jdGlvbmFsaXR5Cj4+IEBAIC01NDgsNyArNTgzLDggQEAgRVhQT1JU X1NZTUJPTF9HUEwoZG1hX2J1Zl9wdXQpOwo+PiAgICAqIGFjY2Vzc2libGUgdG8gQGRldiwgYW5k IGNhbm5vdCBiZSBtb3ZlZCB0byBhIG1vcmUgc3VpdGFibGUgcGxhY2UuIFRoaXMgaXMKPj4gICAg KiBpbmRpY2F0ZWQgd2l0aCB0aGUgZXJyb3IgY29kZSAtRUJVU1kuCj4+ICAgICovCj4+IC1zdHJ1 Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICpkbWFfYnVmX2F0dGFjaChjb25zdCBzdHJ1Y3QgZG1hX2J1 Zl9hdHRhY2hfaW5mbyAqaW5mbykKPj4gK3N0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKgo+PiAr ZG1hX2J1Zl9hdHRhY2goY29uc3Qgc3RydWN0IGRtYV9idWZfYXR0YWNoX2luZm8gKmluZm8pCj4+ ICAgewo+PiAgIAlzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmID0gaW5mby0+ZG1hYnVmOwo+PiAgIAlz dHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2g7Cj4+IEBAIC02MjUsMTIgKzY2MSwxOSBA QCBzdHJ1Y3Qgc2dfdGFibGUgKmRtYV9idWZfbWFwX2F0dGFjaG1lbnQoc3RydWN0IGRtYV9idWZf YXR0YWNobWVudCAqYXR0YWNoLAo+PiAgIAkJCQkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGly ZWN0aW9uKQo+PiAgIHsKPj4gICAJc3RydWN0IHNnX3RhYmxlICpzZ190YWJsZTsKPj4gKwlpbnQg cjsKPj4gICAKPj4gICAJbWlnaHRfc2xlZXAoKTsKPj4gICAKPj4gICAJaWYgKFdBUk5fT04oIWF0 dGFjaCB8fCAhYXR0YWNoLT5kbWFidWYpKQo+PiAgIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7 Cj4+ICAgCj4+ICsJcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2soYXR0YWNoLT5kbWFidWYtPnJlc3Ys IE5VTEwpOwo+PiArCXIgPSBkbWFfYnVmX3BpbihhdHRhY2gtPmRtYWJ1Zik7Cj4+ICsJcmVzZXJ2 YXRpb25fb2JqZWN0X3VubG9jayhhdHRhY2gtPmRtYWJ1Zi0+cmVzdik7Cj4gVGhpcyBhZGRzIGFu IHVuY29uZGl0aW9uYWwgcmVzZXJ2YXQgbG9jayB0byBtYXAvdW5tYXAsIHdoaWNoIGlzIHRoaW5r Cj4gcGlzc2VzIG9mZiBkcml2ZXJzLiBUaGlzIGdldHMgZml4ZWQgbGF0ZXIgb24gd2l0aCB0aGUg Y2FjaGluZywgYnV0IG1lYW5zCj4gdGhlIHNlcmllcyBpcyBicm9rZW4gaGVyZS4KPgo+IEFsc28s IHRoYXQgc3VwZXItZmluZSBncmFpbmVkIHNwbGl0LXVwIG1ha2VzIGl0IGhhcmRlciBmb3IgbWUg dG8gcmV2aWV3Cj4gdGhlIGRvY3MsIHNpbmNlIG9ubHkgdW50aWwgdGhlIHZlcnkgZW5kIGFyZSBh bGwgdGhlIGJpdHMgcHJlc2VudCBmb3IgZnVsbAo+IGR5bmFtaWMgZG1hLWJ1ZiBtYXBwaW5ncy4K Pgo+IEkgdGhpbmsgaXQnZCBiZSBiZXN0IHRvIHNxdWFzaCBhbGwgdGhlIHBhdGNoZXMgZnJvbSBw aW4gdXAgdG8gdGhlIG9uZSB0aGF0Cj4gYWRkcyB0aGUgaW52YWxpZGF0ZSBjYWxsYmFjayBpbnRv IG9uZSBwYXRjaC4gSXQncyBhbGwgY2hhbmdlcyB0bwo+IGRtYS1idWYuW2hjXSBvbmx5IGFueXdh eS4gSWYgdGhhdCBpcyB0b28gYmlnIHdlIGNhbiB0aGluayBhYm91dCBob3cgdG8KPiBzcGxpdCBp dCB1cCBhZ2FpbiwgYnV0IGF0IGxlYXN0IGZvciBtZSB0aGUgY3VycmVudCBzcGxpdHRpbmcgZG9l c24ndCBtYWtlCj4gc2Vuc2UgYXQgYWxsLgoKRmluZSB3aXRoIG1lLCBpZiB5b3UgdGhpbmsgdGhh dCBpcyBlYXNpZXIgdG8gcmV2aWV3LiBJdCBqdXN0IGdhdmUgbWUgYSAKYmlnIGhlYWRhY2hlIHRv IGFkZCBhbGwgdGhhdCBsb2dpYyBhdCB0aGUgc2FtZSB0aW1lLgoKPgo+PiArCWlmIChyKQo+PiAr CQlyZXR1cm4gRVJSX1BUUihyKTsKPj4gKwo+PiAgIAlzZ190YWJsZSA9IGF0dGFjaC0+ZG1hYnVm LT5vcHMtPm1hcF9kbWFfYnVmKGF0dGFjaCwgZGlyZWN0aW9uKTsKPj4gICAJaWYgKCFzZ190YWJs ZSkKPj4gICAJCXNnX3RhYmxlID0gRVJSX1BUUigtRU5PTUVNKTsKPiBMZWFrcyB0aGUgcGluIGlm IHdlIGZhaWwgaGVyZS4KCkdvaW5nIHRvIGZpeCB0aGF0LgoKPgo+PiBAQCAtNjYwLDYgKzcwMywx MCBAQCB2b2lkIGRtYV9idWZfdW5tYXBfYXR0YWNobWVudChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2ht ZW50ICphdHRhY2gsCj4+ICAgCj4+ICAgCWF0dGFjaC0+ZG1hYnVmLT5vcHMtPnVubWFwX2RtYV9i dWYoYXR0YWNoLCBzZ190YWJsZSwKPj4gICAJCQkJCQlkaXJlY3Rpb24pOwo+PiArCj4+ICsJcmVz ZXJ2YXRpb25fb2JqZWN0X2xvY2soYXR0YWNoLT5kbWFidWYtPnJlc3YsIE5VTEwpOwo+PiArCWRt YV9idWZfdW5waW4oYXR0YWNoLT5kbWFidWYpOwo+PiArCXJlc2VydmF0aW9uX29iamVjdF91bmxv Y2soYXR0YWNoLT5kbWFidWYtPnJlc3YpOwo+PiAgIH0KPj4gICBFWFBPUlRfU1lNQk9MX0dQTChk bWFfYnVmX3VubWFwX2F0dGFjaG1lbnQpOwo+PiAgIAo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9kbWEtYnVmLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaAo+PiBpbmRleCAyYzMxMmRm ZDMxYTEuLjAzMjE5MzliMWMzZCAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9saW51eC9kbWEtYnVm LmgKPj4gKysrIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKPj4gQEAgLTUxLDYgKzUxLDM0IEBA IHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQ7Cj4+ICAgICogQHZ1bm1hcDogW29wdGlvbmFsXSB1 bm1hcHMgYSB2bWFwIGZyb20gdGhlIGJ1ZmZlcgo+PiAgICAqLwo+PiAgIHN0cnVjdCBkbWFfYnVm X29wcyB7Cj4+ICsJLyoqCj4+ICsJICogQHBpbjoKPj4gKwkgKgo+PiArCSAqIFRoaXMgaXMgY2Fs bGVkIGJ5IGRtYV9idWZfcGluIGFuZCBsZXRzIHRoZSBleHBvcnRlciBrbm93IHRoYXQgdGhlCj4+ ICsJICogRE1BLWJ1ZiBjYW4ndCBiZSBtb3ZlZCBhbnkgbW9yZS4KPj4gKwkgKgo+PiArCSAqIFRo aXMgaXMgY2FsbGVkIHdpdGggdGhlIGRtYWJ1Zi0+cmVzdiBvYmplY3QgbG9ja2VkLgo+PiArCSAq Cj4+ICsJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4KPj4gKwkgKgo+PiArCSAqIFJldHVy bnM6Cj4+ICsJICoKPj4gKwkgKiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24g ZmFpbHVyZS4KPj4gKwkgKi8KPj4gKwlpbnQgKCpwaW4pKHN0cnVjdCBkbWFfYnVmICopOwo+PiAr Cj4+ICsJLyoqCj4+ICsJICogQHVucGluOgo+PiArCSAqCj4+ICsJICogVGhpcyBpcyBjYWxsZWQg YnkgZG1hX2J1Zl91bnBpbiBhbmQgbGV0cyB0aGUgZXhwb3J0ZXIga25vdyB0aGF0IHRoZQo+PiAr CSAqIERNQS1idWYgY2FuIGJlIG1vdmVkIGFnYWluLgo+PiArCSAqCj4+ICsJICogVGhpcyBpcyBj YWxsZWQgd2l0aCB0aGUgZG1hYnVmLT5yZXN2IG9iamVjdCBsb2NrZWQuCj4+ICsJICoKPj4gKwkg KiBUaGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgo+ICJUaGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFs LCBidXQgbXVzdCBiZSBwcm92aWRlZCBpZiBAcGluIGlzLiIgU2FtZSBmb3IKPiBAcGluIEkgdGhp bmssIHBsdXMgd291bGQgYmUgZ29vZCB0byBjaGVjayBpbiBkbWFfYnVmX2V4cG9ydCB0aGF0IHlv dSBoYXZlCj4gYm90aCBvciBuZWl0aGVyIHdpdGgKPgo+IAlXQVJOX09OKCEhZXhwX2luZm8tPm9w cy0+cGluID09ICEhZXhwX2luZm8tPm9wcy0+dW5waW4pOwo+Cj4+ICsJICovCj4+ICsJdm9pZCAo KnVucGluKShzdHJ1Y3QgZG1hX2J1ZiAqKTsKPj4gKwo+PiAgIAkvKioKPj4gICAJICogQGF0dGFj aDoKPj4gICAJICoKPj4gQEAgLTk1LDkgKzEyMyw3IEBAIHN0cnVjdCBkbWFfYnVmX29wcyB7Cj4+ ICAgCSAqCj4+ICAgCSAqIFRoaXMgaXMgY2FsbGVkIGJ5IGRtYV9idWZfbWFwX2F0dGFjaG1lbnQo KSBhbmQgaXMgdXNlZCB0byBtYXAgYQo+PiAgIAkgKiBzaGFyZWQgJmRtYV9idWYgaW50byBkZXZp Y2UgYWRkcmVzcyBzcGFjZSwgYW5kIGl0IGlzIG1hbmRhdG9yeS4gSXQKPj4gLQkgKiBjYW4gb25s eSBiZSBjYWxsZWQgaWYgQGF0dGFjaCBoYXMgYmVlbiBjYWxsZWQgc3VjY2Vzc2Z1bGx5LiBUaGlz Cj4+IC0JICogZXNzZW50aWFsbHkgcGlucyB0aGUgRE1BIGJ1ZmZlciBpbnRvIHBsYWNlLCBhbmQg aXQgY2Fubm90IGJlIG1vdmVkCj4+IC0JICogYW55IG1vcmUKPj4gKwkgKiBjYW4gb25seSBiZSBj YWxsZWQgaWYgQGF0dGFjaCBoYXMgYmVlbiBjYWxsZWQgc3VjY2Vzc2Z1bGx5Lgo+IEkgdGhpbmsg ZHJvcHBpbmcgdGhpcyBvdXRyaWdodCBpc24ndCBjb3JyZWN0LCBzaW5jZSBmb3IgYWxsIGN1cnJl bnQKPiBkbWEtYnVmIGV4cG9ydGVycyBpdCdzIHN0aWxsIHdoYXQgdGhleSBzaG91bGQgYmUgZG9p bmcuIFdlIGp1c3QgbmVlZCB0bwo+IG1ha2UgdGhpcyBjb25kaXRpb25hbCBvbiBAcGluIGFuZCBA dW5waW4gbm90IGJlaW5nIHByZXNlbnQ6Cj4KPiAJIklmIEBwaW4gYW5kIEB1bnBpbiBhcmUgbm90 IHByb3ZpZGVkIHRoaXMgZXNzZW50aWFsbHkgcGlucyB0aGUgRE1BCj4gCWJ1ZmZlciBpbnRvIHBs YWNlLCBhbmQgaXQgY2Fubm90IGJlIG1vdmVkIGFueSBtb3JlLiIKPgo+PiAgIAkgKgo+PiAgIAkg KiBUaGlzIGNhbGwgbWF5IHNsZWVwLCBlLmcuIHdoZW4gdGhlIGJhY2tpbmcgc3RvcmFnZSBmaXJz dCBuZWVkcyB0byBiZQo+PiAgIAkgKiBhbGxvY2F0ZWQsIG9yIG1vdmVkIHRvIGEgbG9jYXRpb24g c3VpdGFibGUgZm9yIGFsbCBjdXJyZW50bHkgYXR0YWNoZWQKPj4gQEAgLTEzNSw5ICsxNjEsNiBA QCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgewo+PiAgIAkgKgo+PiAgIAkgKiBUaGlzIGlzIGNhbGxlZCBi eSBkbWFfYnVmX3VubWFwX2F0dGFjaG1lbnQoKSBhbmQgc2hvdWxkIHVubWFwIGFuZAo+PiAgIAkg KiByZWxlYXNlIHRoZSAmc2dfdGFibGUgYWxsb2NhdGVkIGluIEBtYXBfZG1hX2J1ZiwgYW5kIGl0 IGlzIG1hbmRhdG9yeS4KPiBTYW1lIGhlcmUsIGFkZCBhICJJZiBAcGluIGFuZCBAdW5waW4gYXJl IG5vdCBwcm92aWRlZCB0aGlzIHNob3VsZCAuLi4iCj4gcXVhbGlmaWVyIGluc3RlYWQgb2YgZGVs ZXRpbmcuCj4KPiBDaGVlcnMsIERhbmllbAo+Cj4KPj4gLQkgKiBJdCBzaG91bGQgYWxzbyB1bnBp biB0aGUgYmFja2luZyBzdG9yYWdlIGlmIHRoaXMgaXMgdGhlIGxhc3QgbWFwcGluZwo+PiAtCSAq IG9mIHRoZSBETUEgYnVmZmVyLCBpdCB0aGUgZXhwb3J0ZXIgc3VwcG9ydHMgYmFja2luZyBzdG9y YWdlCj4+IC0JICogbWlncmF0aW9uLgo+PiAgIAkgKi8KPj4gICAJdm9pZCAoKnVubWFwX2RtYV9i dWYpKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKiwKPj4gICAJCQkgICAgICBzdHJ1Y3Qgc2df dGFibGUgKiwKPj4gQEAgLTM4Niw2ICs0MDksOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0X2Rt YV9idWYoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZikKPj4gICAJZ2V0X2ZpbGUoZG1hYnVmLT5maWxl KTsKPj4gICB9Cj4+ICAgCj4+ICtpbnQgZG1hX2J1Zl9waW4oc3RydWN0IGRtYV9idWYgKmRtYWJ1 Zik7Cj4+ICt2b2lkIGRtYV9idWZfdW5waW4oc3RydWN0IGRtYV9idWYgKmRtYWJ1Zik7Cj4+ICsK Pj4gICBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICoKPj4gICBkbWFfYnVmX2F0dGFjaChjb25z dCBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2hfaW5mbyAqaW5mbyk7Cj4+ICAgdm9pZCBkbWFfYnVmX2Rl dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLAo+PiAtLSAKPj4gMi4xNy4xCj4+Cj4+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKPj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs