From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 1/1] drm: add kernel doc for exported gem dmabuf_ops Date: Tue, 20 Feb 2018 16:12:39 +0100 Message-ID: <20180220151239.GV22199@phenom.ffwll.local> References: <1516311860-24949-1-git-send-email-Samuel.Li@amd.com> <20180130093245.GF25930@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Li, Samuel" Cc: "dri-devel@lists.freedesktop.org" , "amd-gfx@lists.freedesktop.org" , "Koenig, Christian" List-Id: amd-gfx.lists.freedesktop.org T24gVHVlLCBKYW4gMzAsIDIwMTggYXQgMDQ6MDE6MjNQTSArMDAwMCwgTGksIFNhbXVlbCB3cm90 ZToKPiAKPiBBbGV4IGhlbHBlZCBwdXNoIHRoaXMgaW50byBkcm0tdGlwLAo+IGh0dHBzOi8vY2dp dC5mcmVlZGVza3RvcC5vcmcvZHJtL2RybS10aXAvY29tbWl0L2RyaXZlcnMvZ3B1L2RybT9pZD1m N2E3MWIwY2Y5ZTM2YzFiMGVkYmZlODljZTAyOGEwMTE2NGI4NjRkCj4gCj4gVGhhbmtzLAo+IFNh bXVlbCBMaQo+IAo+IAo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+IEZyb206IERh bmllbCBWZXR0ZXIgW21haWx0bzpkYW5pZWwudmV0dGVyQGZmd2xsLmNoXSBPbiBCZWhhbGYgT2Yg RGFuaWVsCj4gPiBWZXR0ZXIKPiA+IFNlbnQ6IFR1ZXNkYXksIEphbnVhcnkgMzAsIDIwMTggNDoz MyBBTQo+ID4gVG86IEtvZW5pZywgQ2hyaXN0aWFuIDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+ Cj4gPiBDYzogTGksIFNhbXVlbCA8U2FtdWVsLkxpQGFtZC5jb20+OyBhbWQtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZzsgZHJpLQo+ID4gZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBT dWJqZWN0OiBSZTogW1BBVENIIHYyIDEvMV0gZHJtOiBhZGQga2VybmVsIGRvYyBmb3IgZXhwb3J0 ZWQgZ2VtCj4gPiBkbWFidWZfb3BzCj4gPiAKPiA+IE9uIEZyaSwgSmFuIDE5LCAyMDE4IGF0IDA5 OjUxOjIwQU0gKzAxMDAsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4gPiA+IEFtIDE4LjAxLjIw MTggdW0gMjI6NDQgc2NocmllYiBTYW11ZWwgTGk6Cj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogU2Ft dWVsIExpIDxTYW11ZWwuTGlAYW1kLmNvbT4KPiA+ID4gPiBSZXZpZXdlZC1ieTogRGFuaWVsIFZl dHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+IAo+ID4gVGhhbmtzIGZvciB1cGRhdGlu ZyB0aGUgZG9jcy4KPiA+ID4KPiA+ID4gUmV2aWV3ZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNo cmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPiA+IAo+ID4gSSdtIGFzc3VtaW5nIHlvdSdsbCBhbHMg cHVzaCB0aGlzIG9uZS4KCkkganVzdCBub3RpY2VkIHRoYXQgZmFpcmx5IG9idmlvdXNseSB0aGlz IHdhc24ndCB0ZXN0ZWQgd2hlbiB3cml0aW5nOgoKLi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1l LmM6MzQyOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdhdHRhY2gnIG5v dCBkZXNjcmliZWQgaW4gJ2RybV9nZW1fdW5tYXBfZG1hX2J1ZicgICAgICAgICAgICAgCi4vZHJp dmVycy9ncHUvZHJtL2RybV9wcmltZS5jOjM0Mjogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVy IG9yIG1lbWJlciAnc2d0JyBub3QgZGVzY3JpYmVkIGluICdkcm1fZ2VtX3VubWFwX2RtYV9idWYn Ci4vZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jOjM0Mjogd2FybmluZzogRnVuY3Rpb24gcGFy YW1ldGVyIG9yIG1lbWJlciAnZGlyJyBub3QgZGVzY3JpYmVkIGluICdkcm1fZ2VtX3VubWFwX2Rt YV9idWYnCi4vZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jOjQzODogd2FybmluZzogRnVuY3Rp b24gcGFyYW1ldGVyIG9yIG1lbWJlciAnZG1hX2J1Zicgbm90IGRlc2NyaWJlZCBpbiAnZHJtX2dl bV9kbWFidWZfa21hcF9hdG9taWMnCi4vZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jOjQzODog d2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAncGFnZV9udW0nIG5vdCBkZXNj cmliZWQgaW4gJ2RybV9nZW1fZG1hYnVmX2ttYXBfYXRvbWljJwouL2RyaXZlcnMvZ3B1L2RybS9k cm1fcHJpbWUuYzo0NTA6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2Rt YV9idWYnIG5vdCBkZXNjcmliZWQgaW4gJ2RybV9nZW1fZG1hYnVmX2t1bm1hcF9hdG9taWMnCi4v ZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jOjQ1MDogd2FybmluZzogRnVuY3Rpb24gcGFyYW1l dGVyIG9yIG1lbWJlciAncGFnZV9udW0nIG5vdCBkZXNjcmliZWQgaW4gJ2RybV9nZW1fZG1hYnVm X2t1bm1hcF9hdG9taWMnCi4vZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jOjQ1MDogd2Fybmlu ZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnYWRkcicgbm90IGRlc2NyaWJlZCBpbiAn ZHJtX2dlbV9kbWFidWZfa3VubWFwX2F0b21pYycKLi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1l LmM6NDYxOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyICdkbWFfYnVmJyBu b3QgZGVzY3JpYmVkIGluICdkcm1fZ2VtX2RtYWJ1Zl9rbWFwJwouL2RyaXZlcnMvZ3B1L2RybS9k cm1fcHJpbWUuYzo0NjE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ3Bh Z2VfbnVtJyBub3QgZGVzY3JpYmVkIGluICdkcm1fZ2VtX2RtYWJ1Zl9rbWFwJwouL2RyaXZlcnMv Z3B1L2RybS9kcm1fcHJpbWUuYzo0NzM6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBt ZW1iZXIgJ2RtYV9idWYnIG5vdCBkZXNjcmliZWQgaW4gJ2RybV9nZW1fZG1hYnVmX2t1bm1hcCcK Li9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmM6NDczOiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJh bWV0ZXIgb3IgbWVtYmVyICdwYWdlX251bScgbm90IGRlc2NyaWJlZCBpbiAnZHJtX2dlbV9kbWFi dWZfa3VubWFwJwouL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYzo0NzM6IHdhcm5pbmc6IEZ1 bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2FkZHInIG5vdCBkZXNjcmliZWQgaW4gJ2RybV9n ZW1fZG1hYnVmX2t1bm1hcCcKClNhbXVlbCwgY2FuIHlvdSBwbHMgYnVpbGQgZG9jcyB1c2luZwoK JCBtYWtlIGh0bWxkb2NzCgphbmQgZml4IHVwIHRoZSBmYWxsb3V0IGFuZCBzdWJtaXQgYSBwYXRj aD8KClRoYW5rcywgRGFuaWVsCgo+ID4gLURhbmllbAo+ID4gCj4gPiA+Cj4gPiA+ID4gLS0tCj4g PiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMgfCA4OAo+ID4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ID4gICAxIGZpbGUgY2hhbmdl ZCwgODggaW5zZXJ0aW9ucygrKQo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fcHJpbWUuYwo+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5j IGluZGV4IGNhMDljZTcuLmU4MmE5NzYgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9wcmltZS5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5j Cj4gPiA+ID4gQEAgLTczLDYgKzczLDkgQEAKPiA+ID4gPiAgICAqIERyaXZlcnMgc2hvdWxkIGRl dGVjdCB0aGlzIHNpdHVhdGlvbiBhbmQgcmV0dXJuIGJhY2sgdGhlIGdlbSBvYmplY3QKPiA+ID4g PiAgICAqIGZyb20gdGhlIGRtYS1idWYgcHJpdmF0ZS4gIFByaW1lIHdpbGwgZG8gdGhpcyBhdXRv bWF0aWNhbGx5IGZvciBkcml2ZXJzCj4gPiB0aGF0Cj4gPiA+ID4gICAgKiB1c2UgdGhlIGRybV9n ZW1fcHJpbWVfe2ltcG9ydCxleHBvcnR9IGhlbHBlcnMuCj4gPiA+ID4gKyAqCj4gPiA+ID4gKyAq IEdFTSBzdHJ1Y3QgJmRtYV9idWZfb3BzIHN5bWJvbHMgYXJlIG5vdyBleHBvcnRlZC4gVGhleSBj YW4gYmUKPiA+ID4gPiArIHJlc3VlZCBieQo+ID4gPiA+ICsgKiBkcml2ZXJzIHdoaWNoIGltcGxl bWVudCBHRU0gaW50ZXJmYWNlLgo+ID4gPiA+ICAgICovCj4gPiA+ID4gICBzdHJ1Y3QgZHJtX3By aW1lX21lbWJlciB7Cj4gPiA+ID4gQEAgLTE4MCw2ICsxODMsMTggQEAgc3RhdGljIGludCBkcm1f cHJpbWVfbG9va3VwX2J1Zl9oYW5kbGUoc3RydWN0Cj4gPiBkcm1fcHJpbWVfZmlsZV9wcml2YXRl ICpwcmltZV9mcHJpCj4gPiA+ID4gICAJcmV0dXJuIC1FTk9FTlQ7Cj4gPiA+ID4gICB9Cj4gPiA+ ID4gKy8qKgo+ID4gPiA+ICsgKiBkcm1fZ2VtX21hcF9hdHRhY2ggLSBkbWFfYnVmIGF0dGFjaCBp bXBsZW1lbnRhdGlvbiBmb3IgR0VNCj4gPiA+ID4gKyAqIEBkbWFfYnVmOiBidWZmZXIgdG8gYXR0 YWNoIGRldmljZSB0bwo+ID4gPiA+ICsgKiBAdGFyZ2V0X2Rldjogbm90IHVzZWQKPiA+ID4gPiAr ICogQGF0dGFjaDogYnVmZmVyIGF0dGFjaG1lbnQgZGF0YQo+ID4gPiA+ICsgKgo+ID4gPiA+ICsg KiBBbGxvY2F0ZXMgJmRybV9wcmltZV9hdHRhY2htZW50IGFuZCBjYWxscwo+ID4gPiA+ICsmZHJt X2RyaXZlci5nZW1fcHJpbWVfcGluIGZvcgo+ID4gPiA+ICsgKiBkZXZpY2Ugc3BlY2lmaWMgYXR0 YWNobWVudC4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUKPiA+ID4gPiArJmRtYV9idWZfb3BzLmF0 dGFjaAo+ID4gPiA+ICsgKiBjYWxsYmFjay4KPiA+ID4gPiArICoKPiA+ID4gPiArICogUmV0dXJu cyAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiA+ID4gPiAr ICovCj4gPiA+ID4gICBpbnQgZHJtX2dlbV9tYXBfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFf YnVmLCBzdHJ1Y3QgZGV2aWNlCj4gPiAqdGFyZ2V0X2RldiwKPiA+ID4gPiAgIAkJICAgICAgIHN0 cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCkKPiA+ID4gPiAgIHsKPiA+ID4gPiBAQCAt MjAxLDYgKzIxNiwxNCBAQCBpbnQgZHJtX2dlbV9tYXBfYXR0YWNoKHN0cnVjdCBkbWFfYnVmCj4g PiAqZG1hX2J1Ziwgc3RydWN0IGRldmljZSAqdGFyZ2V0X2RldiwKPiA+ID4gPiAgIH0KPiA+ID4g PiAgIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9tYXBfYXR0YWNoKTsKPiA+ID4gPiArLyoqCj4gPiA+ ID4gKyAqIGRybV9nZW1fbWFwX2RldGFjaCAtIGRtYV9idWYgZGV0YWNoIGltcGxlbWVudGF0aW9u IGZvciBHRU0KPiA+ID4gPiArICogQGRtYV9idWY6IGJ1ZmZlciB0byBkZXRhY2ggZnJvbQo+ID4g PiA+ICsgKiBAYXR0YWNoOiBhdHRhY2htZW50IHRvIGJlIGRldGFjaGVkCj4gPiA+ID4gKyAqCj4g PiA+ID4gKyAqIENsZWFucyB1cCAmZG1hX2J1Zl9hdHRhY2htZW50LiBUaGlzIGNhbiBiZSB1c2Vk IGFzIHRoZQo+ID4gPiA+ICsmZG1hX2J1Zl9vcHMuZGV0YWNoCj4gPiA+ID4gKyAqIGNhbGxiYWNr Lgo+ID4gPiA+ICsgKi8KPiA+ID4gPiAgIHZvaWQgZHJtX2dlbV9tYXBfZGV0YWNoKHN0cnVjdCBk bWFfYnVmICpkbWFfYnVmLAo+ID4gPiA+ICAgCQkJc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAq YXR0YWNoKQo+ID4gPiA+ICAgewo+ID4gPiA+IEBAIC0yNTUsNiArMjc4LDE4IEBAIHZvaWQKPiA+ IGRybV9wcmltZV9yZW1vdmVfYnVmX2hhbmRsZV9sb2NrZWQoc3RydWN0IGRybV9wcmltZV9maWxl X3ByaXZhdGUKPiA+ICpwcmltZV9mcHIKPiA+ID4gPiAgIAl9Cj4gPiA+ID4gICB9Cj4gPiA+ID4g Ky8qKgo+ID4gPiA+ICsgKiBkcm1fZ2VtX21hcF9kbWFfYnVmIC0gbWFwX2RtYV9idWYgaW1wbGVt ZW50YXRpb24gZm9yIEdFTQo+ID4gPiA+ICsgKiBAYXR0YWNoOiBhdHRhY2htZW50IHdob3NlIHNj YXR0ZXJsaXN0IGlzIHRvIGJlIHJldHVybmVkCj4gPiA+ID4gKyAqIEBkaXI6IGRpcmVjdGlvbiBv ZiBETUEgdHJhbnNmZXIKPiA+ID4gPiArICoKPiA+ID4gPiArICogQ2FsbHMgJmRybV9kcml2ZXIu Z2VtX3ByaW1lX2dldF9zZ190YWJsZSBhbmQgdGhlbiBtYXBzIHRoZQo+ID4gPiA+ICtzY2F0dGVy bGlzdC4gVGhpcwo+ID4gPiA+ICsgKiBjYW4gYmUgdXNlZCBhcyB0aGUgJmRtYV9idWZfb3BzLm1h cF9kbWFfYnVmIGNhbGxiYWNrLgo+ID4gPiA+ICsgKgo+ID4gPiA+ICsgKiBSZXR1cm5zIHNnX3Rh YmxlIGNvbnRhaW5pbmcgdGhlIHNjYXR0ZXJsaXN0IHRvIGJlIHJldHVybmVkOwo+ID4gPiA+ICty ZXR1cm5zIEVSUl9QVFIKPiA+ID4gPiArICogb24gZXJyb3IuIE1heSByZXR1cm4gLUVJTlRSIGlm IGl0IGlzIGludGVycnVwdGVkIGJ5IGEgc2lnbmFsLgo+ID4gPiA+ICsgKi8KPiA+ID4gPiArCj4g PiA+ID4gICBzdHJ1Y3Qgc2dfdGFibGUgKmRybV9nZW1fbWFwX2RtYV9idWYoc3RydWN0IGRtYV9i dWZfYXR0YWNobWVudAo+ID4gKmF0dGFjaCwKPiA+ID4gPiAgIAkJCQkgICAgIGVudW0gZG1hX2Rh dGFfZGlyZWN0aW9uIGRpcikKPiA+ID4gPiAgIHsKPiA+ID4gPiBAQCAtMjk0LDYgKzMyOSwxMiBA QCBzdHJ1Y3Qgc2dfdGFibGUgKmRybV9nZW1fbWFwX2RtYV9idWYoc3RydWN0Cj4gPiBkbWFfYnVm X2F0dGFjaG1lbnQgKmF0dGFjaCwKPiA+ID4gPiAgIH0KPiA+ID4gPiAgIEVYUE9SVF9TWU1CT0wo ZHJtX2dlbV9tYXBfZG1hX2J1Zik7Cj4gPiA+ID4gKy8qKgo+ID4gPiA+ICsgKiBkcm1fZ2VtX3Vu bWFwX2RtYV9idWYgLSB1bm1hcF9kbWFfYnVmIGltcGxlbWVudGF0aW9uIGZvcgo+ID4gR0VNCj4g PiA+ID4gKyAqCj4gPiA+ID4gKyAqIE5vdCBpbXBsZW1lbnRlZC4gVGhlIHVubWFwIGlzIGRvbmUg YXQgZHJtX2dlbV9tYXBfZGV0YWNoKCkuCj4gPiA+ID4gK1RoaXMgY2FuIGJlCj4gPiA+ID4gKyAq IHVzZWQgYXMgdGhlICZkbWFfYnVmX29wcy51bm1hcF9kbWFfYnVmIGNhbGxiYWNrLgo+ID4gPiA+ ICsgKi8KPiA+ID4gPiAgIHZvaWQgZHJtX2dlbV91bm1hcF9kbWFfYnVmKHN0cnVjdCBkbWFfYnVm X2F0dGFjaG1lbnQgKmF0dGFjaCwKPiA+ID4gPiAgIAkJCSAgIHN0cnVjdCBzZ190YWJsZSAqc2d0 LAo+ID4gPiA+ICAgCQkJICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKSBAQCAtMzUxLDYg KzM5MiwxNQo+ID4gQEAgdm9pZAo+ID4gPiA+IGRybV9nZW1fZG1hYnVmX3JlbGVhc2Uoc3RydWN0 IGRtYV9idWYgKmRtYV9idWYpCj4gPiA+ID4gICB9Cj4gPiA+ID4gICBFWFBPUlRfU1lNQk9MKGRy bV9nZW1fZG1hYnVmX3JlbGVhc2UpOwo+ID4gPiA+ICsvKioKPiA+ID4gPiArICogZHJtX2dlbV9k bWFidWZfdm1hcCAtIGRtYV9idWYgdm1hcCBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCj4gPiA+ID4g KyAqIEBkbWFfYnVmOiBidWZmZXIgdG8gYmUgbWFwcGVkCj4gPiA+ID4gKyAqCj4gPiA+ID4gKyAq IFNldHMgdXAgYSBrZXJuZWwgdmlydHVhbCBtYXBwaW5nLiBUaGlzIGNhbiBiZSB1c2VkIGFzIHRo ZQo+ID4gPiA+ICsmZG1hX2J1Zl9vcHMudm1hcAo+ID4gPiA+ICsgKiBjYWxsYmFjay4KPiA+ID4g PiArICoKPiA+ID4gPiArICogUmV0dXJucyB0aGUga2VybmVsIHZpcnR1YWwgYWRkcmVzcy4KPiA+ ID4gPiArICovCj4gPiA+ID4gICB2b2lkICpkcm1fZ2VtX2RtYWJ1Zl92bWFwKHN0cnVjdCBkbWFf YnVmICpkbWFfYnVmKQo+ID4gPiA+ICAgewo+ID4gPiA+ICAgCXN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqID0gZG1hX2J1Zi0+cHJpdjsgQEAgLTM2MCw2ICs0MTAsMTQKPiA+IEBACj4gPiA+ID4g dm9pZCAqZHJtX2dlbV9kbWFidWZfdm1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZikKPiA+ID4g PiAgIH0KPiA+ID4gPiAgIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9kbWFidWZfdm1hcCk7Cj4gPiA+ ID4gKy8qKgo+ID4gPiA+ICsgKiBkcm1fZ2VtX2RtYWJ1Zl92dW5tYXAgLSBkbWFfYnVmIHZ1bm1h cCBpbXBsZW1lbnRhdGlvbiBmb3IKPiA+IEdFTQo+ID4gPiA+ICsgKiBAZG1hX2J1ZjogYnVmZmVy IHRvIGJlIHVubWFwcGVkCj4gPiA+ID4gKyAqIEB2YWRkcjogdGhlIHZpcnR1YWwgYWRkcmVzcyBv ZiB0aGUgYnVmZmVyCj4gPiA+ID4gKyAqCj4gPiA+ID4gKyAqIFJlbGVhc2VzIGEga2VybmVsIHZp cnR1YWwgbWFwcGluZy4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUKPiA+ID4gPiArICogJmRtYV9i dWZfb3BzLnZ1bm1hcCBjYWxsYmFjay4KPiA+ID4gPiArICovCj4gPiA+ID4gICB2b2lkIGRybV9n ZW1fZG1hYnVmX3Z1bm1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Ziwgdm9pZAo+ID4gKnZhZGRy KQo+ID4gPiA+ICAgewo+ID4gPiA+ICAgCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqID0gZG1h X2J1Zi0+cHJpdjsgQEAgLTM2OSw2ICs0MjcsMTEKPiA+IEBACj4gPiA+ID4gdm9pZCBkcm1fZ2Vt X2RtYWJ1Zl92dW5tYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYsIHZvaWQgKnZhZGRyKQo+ID4g PiA+ICAgfQo+ID4gPiA+ICAgRVhQT1JUX1NZTUJPTChkcm1fZ2VtX2RtYWJ1Zl92dW5tYXApOwo+ ID4gPiA+ICsvKioKPiA+ID4gPiArICogZHJtX2dlbV9kbWFidWZfa21hcF9hdG9taWMgLSBtYXBf YXRvbWljIGltcGxlbWVudGF0aW9uIGZvcgo+ID4gR0VNCj4gPiA+ID4gKyAqCj4gPiA+ID4gKyAq IE5vdCBpbXBsZW1lbnRlZC4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUKPiA+ICZkbWFfYnVmX29w cy5tYXBfYXRvbWljIGNhbGxiYWNrLgo+ID4gPiA+ICsgKi8KPiA+ID4gPiAgIHZvaWQgKmRybV9n ZW1fZG1hYnVmX2ttYXBfYXRvbWljKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLAo+ID4gPiA+ICAg CQkJCSB1bnNpZ25lZCBsb25nIHBhZ2VfbnVtKQo+ID4gPiA+ICAgewo+ID4gPiA+IEBAIC0zNzYs NiArNDM5LDExIEBAIHZvaWQgKmRybV9nZW1fZG1hYnVmX2ttYXBfYXRvbWljKHN0cnVjdAo+ID4g ZG1hX2J1ZiAqZG1hX2J1ZiwKPiA+ID4gPiAgIH0KPiA+ID4gPiAgIEVYUE9SVF9TWU1CT0woZHJt X2dlbV9kbWFidWZfa21hcF9hdG9taWMpOwo+ID4gPiA+ICsvKioKPiA+ID4gPiArICogZHJtX2dl bV9kbWFidWZfa3VubWFwX2F0b21pYyAtIHVubWFwX2F0b21pYwo+ID4gaW1wbGVtZW50YXRpb24g Zm9yCj4gPiA+ID4gK0dFTQo+ID4gPiA+ICsgKgo+ID4gPiA+ICsgKiBOb3QgaW1wbGVtZW50ZWQu IFRoaXMgY2FuIGJlIHVzZWQgYXMgdGhlCj4gPiAmZG1hX2J1Zl9vcHMudW5tYXBfYXRvbWljIGNh bGxiYWNrLgo+ID4gPiA+ICsgKi8KPiA+ID4gPiAgIHZvaWQgZHJtX2dlbV9kbWFidWZfa3VubWFw X2F0b21pYyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPiA+ID4gPiAgIAkJCQkgIHVuc2lnbmVk IGxvbmcgcGFnZV9udW0sIHZvaWQgKmFkZHIpCj4gPiA+ID4gICB7Cj4gPiA+ID4gQEAgLTM4Mywx MiArNDUxLDIyIEBAIHZvaWQgZHJtX2dlbV9kbWFidWZfa3VubWFwX2F0b21pYyhzdHJ1Y3QKPiA+ IGRtYV9idWYgKmRtYV9idWYsCj4gPiA+ID4gICB9Cj4gPiA+ID4gICBFWFBPUlRfU1lNQk9MKGRy bV9nZW1fZG1hYnVmX2t1bm1hcF9hdG9taWMpOwo+ID4gPiA+ICsvKioKPiA+ID4gPiArICogZHJt X2dlbV9kbWFidWZfa21hcCAtIG1hcCBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCj4gPiA+ID4gKyAq Cj4gPiA+ID4gKyAqIE5vdCBpbXBsZW1lbnRlZC4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUgJmRt YV9idWZfb3BzLm1hcAo+ID4gY2FsbGJhY2suCj4gPiA+ID4gKyAqLwo+ID4gPiA+ICAgdm9pZCAq ZHJtX2dlbV9kbWFidWZfa21hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwgdW5zaWduZWQKPiA+ IGxvbmcgcGFnZV9udW0pCj4gPiA+ID4gICB7Cj4gPiA+ID4gICAJcmV0dXJuIE5VTEw7Cj4gPiA+ ID4gICB9Cj4gPiA+ID4gICBFWFBPUlRfU1lNQk9MKGRybV9nZW1fZG1hYnVmX2ttYXApOwo+ID4g PiA+ICsvKioKPiA+ID4gPiArICogZHJtX2dlbV9kbWFidWZfa3VubWFwIC0gdW5tYXAgaW1wbGVt ZW50YXRpb24gZm9yIEdFTQo+ID4gPiA+ICsgKgo+ID4gPiA+ICsgKiBOb3QgaW1wbGVtZW50ZWQu IFRoaXMgY2FuIGJlIHVzZWQgYXMgdGhlICZkbWFfYnVmX29wcy51bm1hcAo+ID4gY2FsbGJhY2su Cj4gPiA+ID4gKyAqLwo+ID4gPiA+ICAgdm9pZCBkcm1fZ2VtX2RtYWJ1Zl9rdW5tYXAoc3RydWN0 IGRtYV9idWYgKmRtYV9idWYsIHVuc2lnbmVkCj4gPiBsb25nIHBhZ2VfbnVtLAo+ID4gPiA+ICAg CQkJICAgdm9pZCAqYWRkcikKPiA+ID4gPiAgIHsKPiA+ID4gPiBAQCAtMzk2LDYgKzQ3NCwxNiBA QCB2b2lkIGRybV9nZW1fZG1hYnVmX2t1bm1hcChzdHJ1Y3QKPiA+IGRtYV9idWYgKmRtYV9idWYs IHVuc2lnbmVkIGxvbmcgcGFnZV9udW0sCj4gPiA+ID4gICB9Cj4gPiA+ID4gICBFWFBPUlRfU1lN Qk9MKGRybV9nZW1fZG1hYnVmX2t1bm1hcCk7Cj4gPiA+ID4gKy8qKgo+ID4gPiA+ICsgKiBkcm1f Z2VtX2RtYWJ1Zl9tbWFwIC0gZG1hX2J1ZiBtbWFwIGltcGxlbWVudGF0aW9uIGZvcgo+ID4gR0VN Cj4gPiA+ID4gKyAqIEBkbWFfYnVmOiBidWZmZXIgdG8gYmUgbWFwcGVkCj4gPiA+ID4gKyAqIEB2 bWE6IHZpcnR1YWwgYWRkcmVzcyByYW5nZQo+ID4gPiA+ICsgKgo+ID4gPiA+ICsgKiBQcm92aWRl cyBtZW1vcnkgbWFwcGluZyBmb3IgdGhlIGJ1ZmZlci4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUK PiA+ID4gPiArICogJmRtYV9idWZfb3BzLm1tYXAgY2FsbGJhY2suCj4gPiA+ID4gKyAqCj4gPiA+ ID4gKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBm YWlsdXJlLgo+ID4gPiA+ICsgKi8KPiA+ID4gPiAgIGludCBkcm1fZ2VtX2RtYWJ1Zl9tbWFwKHN0 cnVjdCBkbWFfYnVmICpkbWFfYnVmLCBzdHJ1Y3QKPiA+IHZtX2FyZWFfc3RydWN0ICp2bWEpCj4g PiA+ID4gICB7Cj4gPiA+ID4gICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVm LT5wcml2Owo+ID4gPgo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+ID4gPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiA+IGRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPiA+IAo+ID4gLS0KPiA+IERhbmllbCBWZXR0ZXIK PiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gaHR0cDovL2Jsb2cu ZmZ3bGwuY2gKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jw b3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK