From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 06/12] dma-buf: add optional invalidate_mappings callback v5 Date: Mon, 29 Apr 2019 10:42:24 +0200 Message-ID: <20190429084224.GM3271@phenom.ffwll.local> References: <20190426123638.40221-1-christian.koenig@amd.com> <20190426123638.40221-6-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id 286A0892B2 for ; Mon, 29 Apr 2019 08:42:28 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id k45so8394961edb.6 for ; Mon, 29 Apr 2019 01:42:28 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190426123638.40221-6-christian.koenig@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Christian =?iso-8859-1?Q?K=F6nig?= Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBBcHIgMjYsIDIwMTkgYXQgMDI6MzY6MzJQTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5p ZyB3cm90ZToKPiBFYWNoIGltcG9ydGVyIGNhbiBub3cgcHJvdmlkZSBhbiBpbnZhbGlkYXRlX21h cHBpbmdzIGNhbGxiYWNrLgo+IAo+IFRoaXMgYWxsb3dzIHRoZSBleHBvcnRlciB0byBwcm92aWRl IHRoZSBtYXBwaW5ncyB3aXRob3V0IHRoZSBuZWVkIHRvIHBpbgo+IHRoZSBiYWNraW5nIHN0b3Jl Lgo+IAo+IHYyOiBkb24ndCB0cnkgdG8gaW52YWxpZGF0ZSBtYXBwaW5ncyB3aGVuIHRoZSBjYWxs YmFjayBpcyBOVUxMLAo+ICAgICBsb2NrIHRoZSByZXNlcnZhdGlvbiBvYmogd2hpbGUgdXNpbmcg dGhlIGF0dGFjaG1lbnRzLAo+ICAgICBhZGQgaGVscGVyIHRvIHNldCB0aGUgY2FsbGJhY2sKPiB2 MzogbW92ZSBmbGFnIGZvciBpbnZhbGlkYXRpb24gc3VwcG9ydCBpbnRvIHRoZSBETUEtYnVmLAo+ ICAgICB1c2UgbmV3IGF0dGFjaF9pbmZvIHN0cnVjdHVyZSB0byBzZXQgdGhlIGNhbGxiYWNrCj4g djQ6IHVzZSBpbXBvcnRlcl9wcml2IGZpZWxkIGluc3RlYWQgb2YgbWFuZ2xpbmcgZXhwb3J0ZXIg cHJpdi4KPiB2NTogZHJvcCBpbnZhbGlkYXRpb25fc3VwcG9ydGVkIGZsYWcKPiAKPiBTaWduZWQt b2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gLS0t Cj4gIGRyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMgfCA1MSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0KPiAgaW5jbHVkZS9saW51eC9kbWEtYnVmLmggICB8IDMwICsrKysr KysrKysrKysrKysrKysrKy0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwg MTAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVm LmMgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCj4gaW5kZXggOTViY2QyZWQ3OTViLi4xYjVj ZGFlNjhjZDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwo+ICsrKyBi L2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKPiBAQCAtNjA3LDcgKzYwNyw5IEBAIGRtYV9idWZf YXR0YWNoKGNvbnN0IHN0cnVjdCBkbWFfYnVmX2F0dGFjaF9pbmZvICppbmZvKQo+ICAJCWlmIChy ZXQpCj4gIAkJCWdvdG8gZXJyX2F0dGFjaDsKPiAgCX0KPiArCXJlc2VydmF0aW9uX29iamVjdF9s b2NrKGRtYWJ1Zi0+cmVzdiwgTlVMTCk7Cj4gIAlsaXN0X2FkZCgmYXR0YWNoLT5ub2RlLCAmZG1h YnVmLT5hdHRhY2htZW50cyk7Cj4gKwlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGRtYWJ1Zi0+ cmVzdik7Cj4gIAo+ICAJbXV0ZXhfdW5sb2NrKCZkbWFidWYtPmxvY2spOwo+ICAKPiBAQCAtNjUx LDcgKzY1Myw5IEBAIHZvaWQgZG1hX2J1Zl9kZXRhY2goc3RydWN0IGRtYV9idWYgKmRtYWJ1Ziwg c3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQo+ICAJCQkJCSAgIERNQV9CSURJUkVD VElPTkFMKTsKPiAgCj4gIAltdXRleF9sb2NrKCZkbWFidWYtPmxvY2spOwo+ICsJcmVzZXJ2YXRp b25fb2JqZWN0X2xvY2soZG1hYnVmLT5yZXN2LCBOVUxMKTsKPiAgCWxpc3RfZGVsKCZhdHRhY2gt Pm5vZGUpOwo+ICsJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhkbWFidWYtPnJlc3YpOwo+ICAJ aWYgKGRtYWJ1Zi0+b3BzLT5kZXRhY2gpCj4gIAkJZG1hYnVmLT5vcHMtPmRldGFjaChkbWFidWYs IGF0dGFjaCk7Cj4gIAo+IEBAIC02NzIsMTAgKzY3Niw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKGRt YV9idWZfZGV0YWNoKTsKPiAgICogUmV0dXJucyBzZ190YWJsZSBjb250YWluaW5nIHRoZSBzY2F0 dGVybGlzdCB0byBiZSByZXR1cm5lZDsgcmV0dXJucyBFUlJfUFRSCj4gICAqIG9uIGVycm9yLiBN YXkgcmV0dXJuIC1FSU5UUiBpZiBpdCBpcyBpbnRlcnJ1cHRlZCBieSBhIHNpZ25hbC4KPiAgICoK PiAtICogQSBtYXBwaW5nIG11c3QgYmUgdW5tYXBwZWQgYnkgdXNpbmcgZG1hX2J1Zl91bm1hcF9h dHRhY2htZW50KCkuIE5vdGUgdGhhdAo+IC0gKiB0aGUgdW5kZXJseWluZyBiYWNraW5nIHN0b3Jh Z2UgaXMgcGlubmVkIGZvciBhcyBsb25nIGFzIGEgbWFwcGluZyBleGlzdHMsCj4gLSAqIHRoZXJl Zm9yZSB1c2Vycy9pbXBvcnRlcnMgc2hvdWxkIG5vdCBob2xkIG9udG8gYSBtYXBwaW5nIGZvciB1 bmR1ZSBhbW91bnRzIG9mCj4gLSAqIHRpbWUuCj4gKyAqIEEgbWFwcGluZyBtdXN0IGJlIHVubWFw cGVkIGJ5IHVzaW5nIGRtYV9idWZfdW5tYXBfYXR0YWNobWVudCgpLgo+ICAgKi8KPiAgc3RydWN0 IHNnX3RhYmxlICoKPiAgZG1hX2J1Zl9tYXBfYXR0YWNobWVudF9sb2NrZWQoc3RydWN0IGRtYV9i dWZfYXR0YWNobWVudCAqYXR0YWNoLAo+IEBAIC02OTAsMTEgKzY5MSwyMiBAQCBkbWFfYnVmX21h cF9hdHRhY2htZW50X2xvY2tlZChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCj4g IAlpZiAoYXR0YWNoLT5zZ3QpCj4gIAkJcmV0dXJuIGF0dGFjaC0+c2d0Owo+ICAKPiAtCXIgPSBk bWFfYnVmX3BpbihhdHRhY2gtPmRtYWJ1Zik7Cj4gLQlpZiAocikKPiAtCQlyZXR1cm4gRVJSX1BU UihyKTsKPiArCWlmIChhdHRhY2gtPmludmFsaWRhdGUpIHsKPiArCQkvKgo+ICsJCSAqIE1hcHBp bmcgYSBETUEtYnVmIGNhbiB0cmlnZ2VyIGl0cyBpbnZhbGlkYXRpb24sIHByZXZlbnQKPiArCQkg KiBzZW5kaW5nIHRoaXMgZXZlbnQgdG8gdGhlIGNhbGxlciBieSB0ZW1wb3JhcnkgcmVtb3ZpbmcK PiArCQkgKiB0aGlzIGF0dGFjaG1lbnQgZnJvbSB0aGUgbGlzdC4KPiArCQkgKi8KPiArCQlsaXN0 X2RlbCgmYXR0YWNoLT5ub2RlKTsKPiArCX0gZWxzZSB7Cj4gKwkJciA9IGRtYV9idWZfcGluKGF0 dGFjaC0+ZG1hYnVmKTsKPiArCQlpZiAocikKPiArCQkJcmV0dXJuIEVSUl9QVFIocik7Cj4gKwl9 Cj4gIAo+ICAJc2dfdGFibGUgPSBhdHRhY2gtPmRtYWJ1Zi0+b3BzLT5tYXBfZG1hX2J1ZihhdHRh Y2gsIGRpcmVjdGlvbik7Cj4gKwlpZiAoYXR0YWNoLT5pbnZhbGlkYXRlKQo+ICsJCWxpc3RfYWRk KCZhdHRhY2gtPm5vZGUsICZhdHRhY2gtPmRtYWJ1Zi0+YXR0YWNobWVudHMpOwo+ICAJaWYgKCFz Z190YWJsZSkKPiAgCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiAgCj4gQEAgLTc2MSw3ICs3 NzMsOCBAQCB2b2lkIGRtYV9idWZfdW5tYXBfYXR0YWNobWVudF9sb2NrZWQoc3RydWN0IGRtYV9i dWZfYXR0YWNobWVudCAqYXR0YWNoLAo+ICAKPiAgCWF0dGFjaC0+ZG1hYnVmLT5vcHMtPnVubWFw X2RtYV9idWYoYXR0YWNoLCBzZ190YWJsZSwKPiAgCQkJCQkJZGlyZWN0aW9uKTsKPiAtCWRtYV9i dWZfdW5waW4oYXR0YWNoLT5kbWFidWYpOwo+ICsJaWYgKCFhdHRhY2gtPmludmFsaWRhdGUpCj4g KwkJZG1hX2J1Zl91bnBpbihhdHRhY2gtPmRtYWJ1Zik7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9H UEwoZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50X2xvY2tlZCk7Cj4gIAo+IEBAIC03OTMsNiArODA2 LDI2IEBAIHZvaWQgZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50KHN0cnVjdCBkbWFfYnVmX2F0dGFj aG1lbnQgKmF0dGFjaCwKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChkbWFfYnVmX3VubWFwX2F0 dGFjaG1lbnQpOwo+ICAKPiArLyoqCj4gKyAqIGRtYV9idWZfaW52YWxpZGF0ZV9tYXBwaW5ncyAt IGludmFsaWRhdGUgYWxsIG1hcHBpbmdzIG9mIHRoaXMgZG1hX2J1Zgo+ICsgKgo+ICsgKiBAZG1h YnVmOglbaW5dCWJ1ZmZlciB3aGljaCBtYXBwaW5ncyBzaG91bGQgYmUgaW52YWxpZGF0ZWQKPiAr ICoKPiArICogSW5mb3JtcyBhbGwgYXR0YWNobWVuc3QgdGhhdCB0aGV5IG5lZWQgdG8gZGVzdHJv eSBhbmQgcmVjcmVhdGVkIGFsbCB0aGVpcgo+ICsgKiBtYXBwaW5ncy4KPiArICovCj4gK3ZvaWQg ZG1hX2J1Zl9pbnZhbGlkYXRlX21hcHBpbmdzKHN0cnVjdCBkbWFfYnVmICpkbWFidWYpCj4gK3sK PiArCXN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaDsKPiArCj4gKwlyZXNlcnZhdGlv bl9vYmplY3RfYXNzZXJ0X2hlbGQoZG1hYnVmLT5yZXN2KTsKPiArCj4gKwlsaXN0X2Zvcl9lYWNo X2VudHJ5KGF0dGFjaCwgJmRtYWJ1Zi0+YXR0YWNobWVudHMsIG5vZGUpCj4gKwkJaWYgKGF0dGFj aC0+aW52YWxpZGF0ZSkKPiArCQkJYXR0YWNoLT5pbnZhbGlkYXRlKGF0dGFjaCk7Cj4gK30KPiAr RVhQT1JUX1NZTUJPTF9HUEwoZG1hX2J1Zl9pbnZhbGlkYXRlX21hcHBpbmdzKTsKPiArCj4gIC8q Kgo+ICAgKiBET0M6IGNwdSBhY2Nlc3MKPiAgICoKPiBAQCAtMTIwNSwxMCArMTIzOCwxMiBAQCBz dGF0aWMgaW50IGRtYV9idWZfZGVidWdfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnVu dXNlZCkKPiAgCQlzZXFfcHV0cyhzLCAiXHRBdHRhY2hlZCBEZXZpY2VzOlxuIik7Cj4gIAkJYXR0 YWNoX2NvdW50ID0gMDsKPiAgCj4gKwkJcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2soYnVmX29iai0+ cmVzdiwgTlVMTCk7Cj4gIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShhdHRhY2hfb2JqLCAmYnVmX29i ai0+YXR0YWNobWVudHMsIG5vZGUpIHsKPiAgCQkJc2VxX3ByaW50ZihzLCAiXHQlc1xuIiwgZGV2 X25hbWUoYXR0YWNoX29iai0+ZGV2KSk7Cj4gIAkJCWF0dGFjaF9jb3VudCsrOwo+ICAJCX0KPiAr CQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJ1Zl9vYmotPnJlc3YpOwo+ICAKPiAgCQlzZXFf cHJpbnRmKHMsICJUb3RhbCAlZCBkZXZpY2VzIGF0dGFjaGVkXG5cbiIsCj4gIAkJCQlhdHRhY2hf Y291bnQpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaCBiL2luY2x1ZGUv bGludXgvZG1hLWJ1Zi5oCj4gaW5kZXggZjdkNmZjMDQ5YjM5Li5kMjdlOTFiYmQ3OTYgMTAwNjQ0 Cj4gLS0tIGEvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L2Rt YS1idWYuaAo+IEBAIC0zMzQsNiArMzM0LDkgQEAgc3RydWN0IGRtYV9idWYgewo+ICAgKiBAZGV2 OiBkZXZpY2UgYXR0YWNoZWQgdG8gdGhlIGJ1ZmZlci4KPiAgICogQG5vZGU6IGxpc3Qgb2YgZG1h X2J1Zl9hdHRhY2htZW50Lgo+ICAgKiBAcHJpdjogZXhwb3J0ZXIgc3BlY2lmaWMgYXR0YWNobWVu dCBkYXRhLgo+ICsgKiBAaW1wb3J0ZXJfcHJpdjogaW1wb3J0ZXIgc3BlY2lmaWMgYXR0YWNobWVu dCBkYXRhLgo+ICsgKiBAaW52YWxpZGF0ZTogaW52YWxpZGF0ZSBjYWxsYmFjaywgc2VlICZkbWFf YnVmX2F0dGFjaF9pbmZvLmludmFsaWRhdGUgZm9yCj4gKyAqCQltb3JlIGluZm9ybWF0aW9uLgo+ ICAgKgo+ICAgKiBUaGlzIHN0cnVjdHVyZSBob2xkcyB0aGUgYXR0YWNobWVudCBpbmZvcm1hdGlv biBiZXR3ZWVuIHRoZSBkbWFfYnVmIGJ1ZmZlcgo+ICAgKiBhbmQgaXRzIHVzZXIgZGV2aWNlKHMp LiBUaGUgbGlzdCBjb250YWlucyBvbmUgYXR0YWNobWVudCBzdHJ1Y3QgcGVyIGRldmljZQo+IEBA IC0zNTAsNiArMzUzLDggQEAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCB7Cj4gIAlzdHJ1Y3Qg bGlzdF9oZWFkIG5vZGU7Cj4gIAlzdHJ1Y3Qgc2dfdGFibGUgKnNndDsKPiAgCXZvaWQgKnByaXY7 Cj4gKwl2b2lkICppbXBvcnRlcl9wcml2Owo+ICsJdm9pZCAoKmludmFsaWRhdGUpKHN0cnVjdCBk bWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCk7Cj4gIH07Cj4gIAo+ICAvKioKPiBAQCAtMzg4LDE1 ICszOTMsMzUgQEAgc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gewo+ICAKPiAgLyoqCj4gICAq IHN0cnVjdCBkbWFfYnVmX2F0dGFjaF9pbmZvIC0gaG9sZHMgaW5mb3JtYXRpb24gbmVlZGVkIHRv IGF0dGFjaCB0byBhIGRtYV9idWYKPiAtICogQGRtYWJ1ZjoJdGhlIGV4cG9ydGVkIGRtYV9idWYK PiAtICogQGRldjoJdGhlIGRldmljZSB3aGljaCB3YW50cyB0byBpbXBvcnQgdGhlIGF0dGFjaG1l bnQKPiArICogQGRtYWJ1ZjoJCXRoZSBleHBvcnRlZCBkbWFfYnVmCj4gKyAqIEBkZXY6CQl0aGUg ZGV2aWNlIHdoaWNoIHdhbnRzIHRvIGltcG9ydCB0aGUgYXR0YWNobWVudAo+ICsgKiBAaW1wb3J0 ZXJfcHJpdjoJcHJpdmF0ZSBkYXRhIG9mIGltcG9ydGVyIHRvIHRoaXMgYXR0YWNobWVudAo+ICsg KiBAaW52YWxpZGF0ZToJCW9wdGlvbmFsIGNhbGxiYWNrIHByb3ZpZGVkIGJ5IHRoZSBpbXBvcnRl cgo+ICAgKgo+ICAgKiBUaGlzIHN0cnVjdHVyZSBob2xkcyB0aGUgaW5mb3JtYXRpb24gcmVxdWly ZWQgdG8gYXR0YWNoIHRvIGEgYnVmZmVyLiBVc2VkCj4gICAqIHdpdGggZG1hX2J1Zl9hdHRhY2go KSBvbmx5Lgo+ICsgKgo+ICsgKiBPbmx5IGlmIHRoZSBpbnZhbGlkYXRlIGNhbGxiYWNrIGlzIHBy b3ZpZGVkIHRoZSBmcmFtZXdvcmsgY2FuIGF2b2lkIHBpbm5pbmcKPiArICogdGhlIGJhY2tpbmcg c3RvcmUgd2hpbGUgbWFwcGluZ3MgZXhpc3RzLgo+ICsgKgo+ICsgKiBUaGlzIGNhbGxiYWNrIGlz IGNhbGxlZCB3aXRoIHRoZSBsb2NrIG9mIHRoZSByZXNlcnZhdGlvbiBvYmplY3QKPiArICogYXNz b2NpYXRlZCB3aXRoIHRoZSBkbWFfYnVmIGhlbGQgYW5kIHRoZSBtYXBwaW5nIGZ1bmN0aW9uIG11 c3QgYmUKPiArICogY2FsbGVkIHdpdGggdGhpcyBsb2NrIGhlbGQgYXMgd2VsbC4gVGhpcyBtYWtl cyBzdXJlIHRoYXQgbm8gbWFwcGluZwo+ICsgKiBpcyBjcmVhdGVkIGNvbmN1cnJlbnRseSB3aXRo IGFuIG9uZ29pbmcgaW52YWxpZGF0aW9uLgo+ICsgKgo+ICsgKiBBZnRlciB0aGUgY2FsbGJhY2sg YWxsIGV4aXN0aW5nIG1hcHBpbmdzIGFyZSBzdGlsbCB2YWxpZCB1bnRpbCBhbGwKPiArICogZmVu Y2VzIGluIHRoZSBkbWFfYnVmcyByZXNlcnZhdGlvbiBvYmplY3QgYXJlIHNpZ25hbGVkLiBBZnRl ciBnZXR0aW5nIGFuCj4gKyAqIGludmFsaWRhdGlvbiBjYWxsYmFjayBhbGwgbWFwcGluZ3Mgc2hv dWxkIGJlIGRlc3Ryb3llZCBieSB0aGUgaW1wb3J0ZXIgdXNpbmcKPiArICogdGhlIG5vcm1hbCBk bWFfYnVmX3VubWFwX2F0dGFjaG1lbnQoKSBmdW5jdGlvbiBhcyBzb29uIGFzIHBvc3NpYmxlLgo+ ICsgKgo+ICsgKiBOZXcgbWFwcGluZ3MgY2FuIGJlIGNyZWF0ZWQgaW1tZWRpYXRlbHksIGJ1dCBj YW4ndCBiZSB1c2VkIGJlZm9yZSB0aGUKPiArICogZXhjbHVzaXZlIGZlbmNlIGluIHRoZSBkbWFf YnVmcyByZXNlcnZhdGlvbiBvYmplY3QgaXMgc2lnbmFsZWQuCgpJbW8gdGhpcyBpcyB3b3JzZSB0 aGFuIHRoZSBvbGQgcGxhY2UsIHNpbmNlIG5vdyB0aGUgaW52YWxpZGF0ZSBzcGVjaWZpYwpzdHVm ZiBpcyBsb3N0IGluIHRoZSBnZW5lcmFsIGhlbHAgdGV4dC4gUGxlYXNlIG1vdmUgdG8gYW4gaW5s aW5lIGNvbW1lbnQKKHllcyB5b3UgY2FuIG1peCB0aGlzIGluIHRoZSBzYW1lIHN0cnVjdCB3aXRo IG5vbi1pbmxpbmUgbWVtYmVyIGNvbW1lbnRzKS4KCkkgdGhpbmsgaW4gdGhlIGVuZCB3ZSBhbHNv IG5lZWQgYSBET0M6IG92ZXJ2aWV3IHNlY3Rpb24gZm9yIGR5bmFtaWMgZG1hCmJ1ZiBtbWFwcywg dGhhdCBleHBsYWlucyB0aGUgb3ZlcmFsbCBmbG93cy4gQnV0IHRoYXQncyBlYXNpZXIgdG8gdHlw ZSB3aXRoCmFsbCB0aGUgZGlmZmVyZW50IGJpdHMgaW4gb25lIHBhdGNoLgotRGFuaWVsCgo+ICAg Ki8KPiAgc3RydWN0IGRtYV9idWZfYXR0YWNoX2luZm8gewo+ICAJc3RydWN0IGRtYV9idWYgKmRt YWJ1ZjsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldjsKPiArCXZvaWQgKmltcG9ydGVyX3ByaXY7Cj4g Kwl2b2lkICgqaW52YWxpZGF0ZSkoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTsK PiAgfTsKPiAgCj4gIC8qKgo+IEBAIC00MzYsNiArNDYxLDcgQEAgdm9pZCBkbWFfYnVmX3VubWFw X2F0dGFjaG1lbnRfbG9ja2VkKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKiwKPiAgCQkJCSAg ICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24pOwo+ICB2b2lkIGRtYV9idWZfdW5tYXBfYXR0YWNo bWVudChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICosIHN0cnVjdCBzZ190YWJsZSAqLAo+ICAJ CQkJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24pOwo+ICt2b2lkIGRtYV9idWZfaW52YWxpZGF0ZV9t YXBwaW5ncyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zik7Cj4gIGludCBkbWFfYnVmX2JlZ2luX2Nw dV9hY2Nlc3Moc3RydWN0IGRtYV9idWYgKmRtYV9idWYsCj4gIAkJCSAgICAgZW51bSBkbWFfZGF0 YV9kaXJlY3Rpb24gZGlyKTsKPiAgaW50IGRtYV9idWZfZW5kX2NwdV9hY2Nlc3Moc3RydWN0IGRt YV9idWYgKmRtYV9idWYsCj4gLS0gCj4gMi4xNy4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs