From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/5] dma-buf: add optional invalidate_mappings callback v2 Date: Mon, 19 Mar 2018 15:04:23 +0100 Message-ID: <20180319140423.GN14155@phenom.ffwll.local> References: <20180316132049.1748-1-christian.koenig@amd.com> <20180316132049.1748-2-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180316132049.1748-2-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: linaro-mm-sig@lists.linaro.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org List-Id: amd-gfx.lists.freedesktop.org T24gRnJpLCBNYXIgMTYsIDIwMTggYXQgMDI6MjA6NDVQTSArMDEwMCwgQ2hyaXN0aWFuIEvDtm5p ZyB3cm90ZToKPiBFYWNoIGltcG9ydGVyIGNhbiBub3cgcHJvdmlkZSBhbiBpbnZhbGlkYXRlX21h cHBpbmdzIGNhbGxiYWNrLgo+IAo+IFRoaXMgYWxsb3dzIHRoZSBleHBvcnRlciB0byBwcm92aWRl IHRoZSBtYXBwaW5ncyB3aXRob3V0IHRoZSBuZWVkIHRvIHBpbgo+IHRoZSBiYWNraW5nIHN0b3Jl Lgo+IAo+IHYyOiBkb24ndCB0cnkgdG8gaW52YWxpZGF0ZSBtYXBwaW5ncyB3aGVuIHRoZSBjYWxs YmFjayBpcyBOVUxMLAo+ICAgICBsb2NrIHRoZSByZXNlcnZhdGlvbiBvYmogd2hpbGUgdXNpbmcg dGhlIGF0dGFjaG1lbnRzLAo+ICAgICBhZGQgaGVscGVyIHRvIHNldCB0aGUgY2FsbGJhY2sKPiAK PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5j b20+CgpSZXBseWluZyBoZXJlIHRvIGF2b2lkIHRocmVhZCBzcGxpdCwgYnV0IG5vdCBlbnRpcmVs eSByZWxhdGVkLgoKSSB0aG91Z2h0IHNvbWUgbW9yZSBhYm91dCB0aGUgbG9ja2RlcCBzcGxhdCBk aXNjdXNzaW9uLCBhbmQgc3BlY2lmaWNhbGx5CnRoYXQgYW1kZ3B1IG5lZWRzIHRoZSByZXNlcnZh dGlvbnMgZm9yIHRoZSB2bSBvYmplY3RzIHdoZW4gZG9pbmcgYSBncHUKcmVzZXQuCgpTaW5jZSB0 aGV5J3JlIGluIHRoZSBzYW1lIHd3X2NsYXNzIGFzIGFsbCBvdGhlciBkbWEtYnVmIHJlc2VydmF0 aW9ucyBJJ20KcHJldHR5IHN1cmUgbG9ja2RlcCB3aWxsIGNvbXBsYWluLCBhdCBsZWFzdCB3aGVu IGNyb3NzLXJlbGVhc2UgbG9ja2RlcCBhbmQKY3Jvc3MtcmVsZWFzZSBhbm5vdGF0aW9ucyBmb3Ig ZG1hX2ZlbmNlIGFyZSBtZXJnZWQuCgpBbmQgYXMgbG9uZyBhcyB0aGVyZSdzIHNvbWUgY2FzZSB3 aGVyZSBhbWRncHUgbmVlZHMgYm90aCB0aGUgdm0gb2JqZWN0CnJlc2VydmF0aW9uIGFuZCBvdGhl ciByZXNlcnZhdGlvbnMgKENTPykgdGhlbiB3ZSBtdXN0IGhhdmUgdGhlbSBpbiB0aGUKc2FtZSBj bGFzcywgYW5kIGluIHRoYXQgY2FzZSB0aGUgZGVhZGxvY2sgaXMgcmVhbC4gSXQnbGwgcmVxdWly ZSBhbgppbXByZXNzaXZlIHNldCBvZiBjaXJjdW1zdGFuY2VzIG1vc3QgbGlrZWx5ICh0aGUgbWlu aW1hbCBudW1iZXIgb2YgdGhyZWFkcwp3ZSBnZW5lcmFsbHkgbmVlZGVkIHRvIGFjdHVhbGx5IGhp dCB0aGUgY3Jvc3MtcmVsZWFzZSBzdHVmZiB3YXMgNCsgb3IKc29tZXRoaW5nIG51dHMgbGlrZSB0 aGF0LCBhbGwgZG9pbmcgc29tZXRoaW5nIGVsc2UpLCBidXQgaXQnbGwgYmUgcmVhbC4KCk90b2gg SSB0aGluayB0aGUgaW52YWxpZGF0ZSBzdHVmZiBoZXJlIGRvZXNuJ3QgYWN0dWFsbHkgbWFrZSB0 aGlzIHdvcnNlLApzbyB3ZSBjYW4gYmFuZyBvdXIgaGVhZHMgYWdhaW5zdCB0aGUgZ3B1IHJlc2V0 IHByb2JsZW0gYXQgbGVpc3VyZSA6LSkKClRoaXMgc3R1ZmYgaGVyZSBoYXMgbXVjaCBtb3JlIHBv dGVudGlhbCB0byBpbnRlcmFjdCBiYWRseSB3aXRoIGNvcmUgbW0KcGF0aHMsIGFuZCBhbnl0aGlu ZyByZWxhdGVkIHRvIHRoYXQgKHdoaWNoIGltZSBhbHNvIG1lYW5zIGFsbCB0aGUgY3B1CmhvdHBs dWcgbWFjaGluZXJ5LCB3aGljaCBpbmNsdWRlcyBzdXNwZW5kL3Jlc3VtZSwgYW5kIGFueXRoaW5n IHJlbGF0ZWQgdG8KdGhlIHZmcyBiZWNhdXNlIHNvbWVvbmUgYWx3YXlzIG1hbmFnZXMgdG8gZHJh ZyBzeXNmcyBpbnRvIHRoZSBwaWN0dXJlKS4KCkl0J3MgZ29pbmcgdG8gYmUgZnVuIHRpbWVzLgoK Q2hlZXJzLCBEYW5pZWwKPiAtLS0KPiAgZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyB8IDYwICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUv bGludXgvZG1hLWJ1Zi5oICAgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAg MiBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZG1hLWJ1Zi9kbWEtYnVmLmMgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCj4gaW5kZXgg ZDc4ZDVmYzE3M2RjLi5lZDJiMzU1OWJhMjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9kbWEtYnVm L2RtYS1idWYuYwo+ICsrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKPiBAQCAtNTcyLDcg KzU3Miw5IEBAIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmRtYV9idWZfYXR0YWNoKHN0cnVj dCBkbWFfYnVmICpkbWFidWYsCj4gIAkJaWYgKHJldCkKPiAgCQkJZ290byBlcnJfYXR0YWNoOwo+ ICAJfQo+ICsJcmVzZXJ2YXRpb25fb2JqZWN0X2xvY2soZG1hYnVmLT5yZXN2LCBOVUxMKTsKPiAg CWxpc3RfYWRkKCZhdHRhY2gtPm5vZGUsICZkbWFidWYtPmF0dGFjaG1lbnRzKTsKPiArCXJlc2Vy dmF0aW9uX29iamVjdF91bmxvY2soZG1hYnVmLT5yZXN2KTsKPiAgCj4gIAltdXRleF91bmxvY2so JmRtYWJ1Zi0+bG9jayk7Cj4gIAlyZXR1cm4gYXR0YWNoOwo+IEBAIC01OTgsNyArNjAwLDkgQEAg dm9pZCBkbWFfYnVmX2RldGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBzdHJ1Y3QgZG1hX2J1 Zl9hdHRhY2htZW50ICphdHRhY2gpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCW11dGV4X2xvY2soJmRt YWJ1Zi0+bG9jayk7Cj4gKwlyZXNlcnZhdGlvbl9vYmplY3RfbG9jayhkbWFidWYtPnJlc3YsIE5V TEwpOwo+ICAJbGlzdF9kZWwoJmF0dGFjaC0+bm9kZSk7Cj4gKwlyZXNlcnZhdGlvbl9vYmplY3Rf dW5sb2NrKGRtYWJ1Zi0+cmVzdik7Cj4gIAlpZiAoZG1hYnVmLT5vcHMtPmRldGFjaCkKPiAgCQlk bWFidWYtPm9wcy0+ZGV0YWNoKGRtYWJ1ZiwgYXR0YWNoKTsKPiAgCj4gQEAgLTYzMiwxMCArNjM2 LDIzIEBAIHN0cnVjdCBzZ190YWJsZSAqZG1hX2J1Zl9tYXBfYXR0YWNobWVudChzdHJ1Y3QgZG1h X2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCj4gIAlpZiAoV0FSTl9PTighYXR0YWNoIHx8ICFhdHRh Y2gtPmRtYWJ1ZikpCj4gIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4gIAo+ICsJLyoKPiAr CSAqIE1hcHBpbmcgYSBETUEtYnVmIGNhbiB0cmlnZ2VyIGl0cyBpbnZhbGlkYXRpb24sIHByZXZl bnQgc2VuZGluZyB0aGlzCj4gKwkgKiBldmVudCB0byB0aGUgY2FsbGVyIGJ5IHRlbXBvcmFyeSBy ZW1vdmluZyB0aGlzIGF0dGFjaG1lbnQgZnJvbSB0aGUKPiArCSAqIGxpc3QuCj4gKwkgKi8KPiAr CWlmIChhdHRhY2gtPmludmFsaWRhdGVfbWFwcGluZ3MpIHsKPiArCQlyZXNlcnZhdGlvbl9vYmpl Y3RfYXNzZXJ0X2hlbGQoYXR0YWNoLT5kbWFidWYtPnJlc3YpOwo+ICsJCWxpc3RfZGVsKCZhdHRh Y2gtPm5vZGUpOwo+ICsJfQo+ICsKPiAgCXNnX3RhYmxlID0gYXR0YWNoLT5kbWFidWYtPm9wcy0+ bWFwX2RtYV9idWYoYXR0YWNoLCBkaXJlY3Rpb24pOwo+ICAJaWYgKCFzZ190YWJsZSkKPiAgCQlz Z190YWJsZSA9IEVSUl9QVFIoLUVOT01FTSk7Cj4gIAo+ICsJaWYgKGF0dGFjaC0+aW52YWxpZGF0 ZV9tYXBwaW5ncykKPiArCQlsaXN0X2FkZCgmYXR0YWNoLT5ub2RlLCAmYXR0YWNoLT5kbWFidWYt PmF0dGFjaG1lbnRzKTsKPiArCj4gIAlyZXR1cm4gc2dfdGFibGU7Cj4gIH0KPiAgRVhQT1JUX1NZ TUJPTF9HUEwoZG1hX2J1Zl9tYXBfYXR0YWNobWVudCk7Cj4gQEAgLTY1Niw2ICs2NzMsOSBAQCB2 b2lkIGRtYV9idWZfdW5tYXBfYXR0YWNobWVudChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICph dHRhY2gsCj4gIHsKPiAgCW1pZ2h0X3NsZWVwKCk7Cj4gIAo+ICsJaWYgKGF0dGFjaC0+aW52YWxp ZGF0ZV9tYXBwaW5ncykKPiArCQlyZXNlcnZhdGlvbl9vYmplY3RfYXNzZXJ0X2hlbGQoYXR0YWNo LT5kbWFidWYtPnJlc3YpOwo+ICsKPiAgCWlmIChXQVJOX09OKCFhdHRhY2ggfHwgIWF0dGFjaC0+ ZG1hYnVmIHx8ICFzZ190YWJsZSkpCj4gIAkJcmV0dXJuOwo+ICAKPiBAQCAtNjY0LDYgKzY4NCw0 NCBAQCB2b2lkIGRtYV9idWZfdW5tYXBfYXR0YWNobWVudChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2ht ZW50ICphdHRhY2gsCj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoZG1hX2J1Zl91bm1hcF9hdHRh Y2htZW50KTsKPiAgCj4gKy8qKgo+ICsgKiBkbWFfYnVmX3NldF9pbnZhbGlkYXRlX2NhbGxiYWNr IC0gc2V0IHRoZSBpbnZhbGlkYXRlX21hcHBpbmdzIGNhbGxiYWNrCj4gKyAqCj4gKyAqIEBhdHRh Y2g6CVtpbl0JYXR0YWNobWVudCB3aGVyZSB0byBzZXQgdGhlIGNhbGxiYWNrCj4gKyAqIEBjYjoJ CVtpbl0JdGhlIGNhbGxiYWNrIHRvIHNldAo+ICsgKgo+ICsgKiBNYWtlcyBzdXJlIHRvIHRha2Ug dGhlIGFwcHJvcHJpYXRlIGxvY2tzIHdoZW4gdXBkYXRpbmcgdGhlIGludmFsaWRhdGUKPiArICog bWFwcGluZ3MgY2FsbGJhY2suCj4gKyAqLwo+ICt2b2lkIGRtYV9idWZfc2V0X2ludmFsaWRhdGVf Y2FsbGJhY2soc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAo+ICsJCQkJICAgICB2 b2lkICgqY2IpKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKikpCj4gK3sKPiArCXJlc2VydmF0 aW9uX29iamVjdF9sb2NrKGF0dGFjaC0+ZG1hYnVmLT5yZXN2LCBOVUxMKTsKPiArCWF0dGFjaC0+ aW52YWxpZGF0ZV9tYXBwaW5ncyA9IGNiOwo+ICsJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhh dHRhY2gtPmRtYWJ1Zi0+cmVzdik7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwoZG1hX2J1Zl9z ZXRfaW52YWxpZGF0ZV9jYWxsYmFjayk7Cj4gKwo+ICsvKioKPiArICogZG1hX2J1Zl9pbnZhbGlk YXRlX21hcHBpbmdzIC0gaW52YWxpZGF0ZSBhbGwgbWFwcGluZ3Mgb2YgdGhpcyBkbWFfYnVmCj4g KyAqCj4gKyAqIEBkbWFidWY6CVtpbl0JYnVmZmVyIHdoaWNoIG1hcHBpbmdzIHNob3VsZCBiZSBp bnZhbGlkYXRlZAo+ICsgKgo+ICsgKiBJbmZvcm1zIGFsbCBhdHRhY2htZW5zdCB0aGF0IHRoZXkg bmVlZCB0byBkZXN0cm95IGFuZCByZWNyZWF0ZWQgYWxsIHRoZWlyCj4gKyAqIG1hcHBpbmdzLgo+ ICsgKi8KPiArdm9pZCBkbWFfYnVmX2ludmFsaWRhdGVfbWFwcGluZ3Moc3RydWN0IGRtYV9idWYg KmRtYWJ1ZikKPiArewo+ICsJc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoOwo+ICsK PiArCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChkbWFidWYtPnJlc3YpOwo+ICsKPiAr CWxpc3RfZm9yX2VhY2hfZW50cnkoYXR0YWNoLCAmZG1hYnVmLT5hdHRhY2htZW50cywgbm9kZSkK PiArCQlpZiAoYXR0YWNoLT5pbnZhbGlkYXRlX21hcHBpbmdzKQo+ICsJCQlhdHRhY2gtPmludmFs aWRhdGVfbWFwcGluZ3MoYXR0YWNoKTsKPiArfQo+ICtFWFBPUlRfU1lNQk9MX0dQTChkbWFfYnVm X2ludmFsaWRhdGVfbWFwcGluZ3MpOwo+ICsKPiAgLyoqCj4gICAqIERPQzogY3B1IGFjY2Vzcwo+ ICAgKgo+IEBAIC0xMTIxLDEwICsxMTc5LDEyIEBAIHN0YXRpYyBpbnQgZG1hX2J1Zl9kZWJ1Z19z aG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdW51c2VkKQo+ICAJCXNlcV9wdXRzKHMsICJc dEF0dGFjaGVkIERldmljZXM6XG4iKTsKPiAgCQlhdHRhY2hfY291bnQgPSAwOwo+ICAKPiArCQly ZXNlcnZhdGlvbl9vYmplY3RfbG9jayhidWZfb2JqLT5yZXN2LCBOVUxMKTsKPiAgCQlsaXN0X2Zv cl9lYWNoX2VudHJ5KGF0dGFjaF9vYmosICZidWZfb2JqLT5hdHRhY2htZW50cywgbm9kZSkgewo+ ICAJCQlzZXFfcHJpbnRmKHMsICJcdCVzXG4iLCBkZXZfbmFtZShhdHRhY2hfb2JqLT5kZXYpKTsK PiAgCQkJYXR0YWNoX2NvdW50Kys7Cj4gIAkJfQo+ICsJCXJlc2VydmF0aW9uX29iamVjdF91bmxv Y2soYnVmX29iai0+cmVzdik7Cj4gIAo+ICAJCXNlcV9wcmludGYocywgIlRvdGFsICVkIGRldmlj ZXMgYXR0YWNoZWRcblxuIiwKPiAgCQkJCWF0dGFjaF9jb3VudCk7Cj4gZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbGludXgvZG1hLWJ1Zi5oIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKPiBpbmRleCAw ODVkYjJmZWUyZDcuLjcwYzY1ZmNmZTFlMyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L2Rt YS1idWYuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oCj4gQEAgLTkxLDYgKzkxLDE4 IEBAIHN0cnVjdCBkbWFfYnVmX29wcyB7Cj4gIAkgKi8KPiAgCXZvaWQgKCpkZXRhY2gpKHN0cnVj dCBkbWFfYnVmICosIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKik7Cj4gIAo+ICsJLyoqCj4g KwkgKiBAc3VwcG9ydHNfbWFwcGluZ19pbnZhbGlkYXRpb246Cj4gKwkgKgo+ICsJICogVHJ1ZSBm b3IgZXhwb3J0ZXJzIHdoaWNoIHN1cHBvcnRzIHVucGlubmVkIERNQS1idWYgb3BlcmF0aW9uIHVz aW5nCj4gKwkgKiB0aGUgcmVzZXJ2YXRpb24gbG9jay4KPiArCSAqCj4gKwkgKiBXaGVuIGF0dGFj aG1lbnQtPmludmFsaWRhdGVfbWFwcGluZ3MgaXMgc2V0IHRoZSBAbWFwX2RtYV9idWYgYW5kCj4g KwkgKiBAdW5tYXBfZG1hX2J1ZiBjYWxsYmFja3MgY2FuIGJlIGNhbGxlZCB3aXRoIHRoZSByZXNl cnZhdGlvbiBsb2NrCj4gKwkgKiBoZWxkLgo+ICsJICovCj4gKwlib29sIHN1cHBvcnRzX21hcHBp bmdfaW52YWxpZGF0aW9uOwo+ICsKPiAgCS8qKgo+ICAJICogQG1hcF9kbWFfYnVmOgo+ICAJICoK PiBAQCAtMzI2LDYgKzMzOCwyOSBAQCBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50IHsKPiAgCXN0 cnVjdCBkZXZpY2UgKmRldjsKPiAgCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsKPiAgCXZvaWQgKnBy aXY7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAaW52YWxpZGF0ZV9tYXBwaW5nczoKPiArCSAqCj4gKwkg KiBPcHRpb25hbCBjYWxsYmFjayBwcm92aWRlZCBieSB0aGUgaW1wb3J0ZXIgb2YgdGhlIGF0dGFj aG1lbnQgd2hpY2gKPiArCSAqIG11c3QgYmUgc2V0IGJlZm9yZSBtYXBwaW5ncyBhcmUgY3JlYXRl ZC4KPiArCSAqCj4gKwkgKiBJZiBwcm92aWRlZCB0aGUgZXhwb3J0ZXIgY2FuIGF2b2lkIHBpbm5p bmcgdGhlIGJhY2tpbmcgc3RvcmUgd2hpbGUKPiArCSAqIG1hcHBpbmdzIGV4aXN0cy4KPiArCSAq Cj4gKwkgKiBUaGUgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggdGhlIGxvY2sgb2YgdGhlIHJlc2Vy dmF0aW9uIG9iamVjdAo+ICsJICogYXNzb2NpYXRlZCB3aXRoIHRoZSBkbWFfYnVmIGhlbGQgYW5k IHRoZSBtYXBwaW5nIGZ1bmN0aW9uIG11c3QgYmUKPiArCSAqIGNhbGxlZCB3aXRoIHRoaXMgbG9j ayBoZWxkIGFzIHdlbGwuIFRoaXMgbWFrZXMgc3VyZSB0aGF0IG5vIG1hcHBpbmcKPiArCSAqIGlz IGNyZWF0ZWQgY29uY3VycmVudGx5IHdpdGggYW4gb25nb2luZyBpbnZhbGlkYXRpb24uCj4gKwkg Kgo+ICsJICogQWZ0ZXIgdGhlIGNhbGxiYWNrIGFsbCBleGlzdGluZyBtYXBwaW5ncyBhcmUgc3Rp bGwgdmFsaWQgdW50aWwgYWxsCj4gKwkgKiBmZW5jZXMgaW4gdGhlIGRtYV9idWZzIHJlc2VydmF0 aW9uIG9iamVjdCBhcmUgc2lnbmFsZWQsIGJ1dCBzaG91bGQgYmUKPiArCSAqIGRlc3Ryb3llZCBi eSB0aGUgaW1wb3J0ZXIgYXMgc29vbiBhcyBwb3NzaWJsZS4KPiArCSAqCj4gKwkgKiBOZXcgbWFw cGluZ3MgY2FuIGJlIGNyZWF0ZWQgaW1tZWRpYXRlbHksIGJ1dCBjYW4ndCBiZSB1c2VkIGJlZm9y ZSB0aGUKPiArCSAqIGV4Y2x1c2l2ZSBmZW5jZSBpbiB0aGUgZG1hX2J1ZnMgcmVzZXJ2YXRpb24g b2JqZWN0IGlzIHNpZ25hbGVkLgo+ICsJICovCj4gKwl2b2lkICgqaW52YWxpZGF0ZV9tYXBwaW5n cykoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKTsKPiAgfTsKPiAgCj4gIC8qKgo+ IEBAIC0zOTEsNiArNDI2LDkgQEAgc3RydWN0IHNnX3RhYmxlICpkbWFfYnVmX21hcF9hdHRhY2ht ZW50KHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKiwKPiAgCQkJCQllbnVtIGRtYV9kYXRhX2Rp cmVjdGlvbik7Cj4gIHZvaWQgZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50KHN0cnVjdCBkbWFfYnVm X2F0dGFjaG1lbnQgKiwgc3RydWN0IHNnX3RhYmxlICosCj4gIAkJCQllbnVtIGRtYV9kYXRhX2Rp cmVjdGlvbik7Cj4gK3ZvaWQgZG1hX2J1Zl9zZXRfaW52YWxpZGF0ZV9jYWxsYmFjayhzdHJ1Y3Qg ZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCj4gKwkJCQkgICAgIHZvaWQgKCpjYikoc3RydWN0 IGRtYV9idWZfYXR0YWNobWVudCAqKSk7Cj4gK3ZvaWQgZG1hX2J1Zl9pbnZhbGlkYXRlX21hcHBp bmdzKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKTsKPiAgaW50IGRtYV9idWZfYmVnaW5fY3B1X2Fj Y2VzcyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPiAgCQkJICAgICBlbnVtIGRtYV9kYXRhX2Rp cmVjdGlvbiBkaXIpOwo+ICBpbnQgZG1hX2J1Zl9lbmRfY3B1X2FjY2VzcyhzdHJ1Y3QgZG1hX2J1 ZiAqZG1hX2J1ZiwKPiAtLSAKPiAyLjE0LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVu Z2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK