From mboxrd@z Thu Jan 1 00:00:00 1970 From: Seung-Woo Kim Subject: Re: [Linaro-mm-sig] [PATCH] dma-buf: add meta data attachment Date: Tue, 25 Mar 2014 18:21:34 +0900 Message-ID: <53314A9E.908@samsung.com> References: <1395378261-17408-1-git-send-email-binw@marvell.com> <477F20668A386D41ADCC57781B1F70430F53F33F7D@SC-VEXCH1.marvell.com> Reply-To: sw0312.kim@samsung.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) by gabe.freedesktop.org (Postfix) with ESMTP id 112056E0A9 for ; Tue, 25 Mar 2014 02:21:51 -0700 (PDT) Received: from epcpsbgr2.samsung.com (u142.gpu120.samsung.co.kr [203.254.230.142]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N2Z00K27JBRDB10@mailout4.samsung.com> for dri-devel@lists.freedesktop.org; Tue, 25 Mar 2014 18:21:27 +0900 (KST) 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: Daniel Vetter Cc: Seung-Woo Kim , dri-devel , Linaro MM SIG , Bin Wang , "linux-media@vger.kernel.org" List-Id: dri-devel@lists.freedesktop.org SGkgYWxsLAoKT24gMjAxNOuFhCAwM+yblCAyNOydvCAxNjozNSwgRGFuaWVsIFZldHRlciB3cm90 ZToKPiBIaSBhbGwsCj4gCj4gQWRkaW5nIHBpbGVzIG1vcmUgcGVvcGxlLgo+IAo+IEZvciB0aGUg Zmlyc3QgY2FzZSBvZiBjYWNoaW5nIHRoZSBpb21tdSBtYXBwaW5nIHRoZXJlJ3MgZGlmZmVyZW50 Cj4gYW5zd2VycywgZGVwZW5pbmcgdXBvbiB0aGUgZXhhY3QgY2FzZToKPiAKPiAxKSBZb3UgbmVl ZCB0byBmaXggeW91ciB1c2Vyc3BhY2UgdG8gbm90IGNvbnN0YW50bHkgcmUtZXN0YWJsaXNoIHRo ZSBzaGFyaW5nLgo+IAo+IDIpIFdlIG5lZWQgdG8gYWRkIHN0cmVhbWluZyBkbWEgc3VwcG9ydCBm b3IgcmVhbCB0byBkbWEtYnVmcyBzbyB0aGF0Cj4gdGhlIG1hcHBpbmcgY2FuIGJlIGtlcHQgd2hp bGUgd2UgdHJhbnNmZXIgb3duZXJzaGlwIGFyb3VuZC4gVGh1cyBmYXIKPiBubyBvbmUgcmVhbGx5 IG5lZWRlZCB0aGlzIHRob3VnaCBzaW5jZSB1c3VhbGx5IHlvdSBkb24ndCBhY3R1YWxseSBkbwo+ IGNwdSBhY2Nlc3MuCj4gCj4gMykgWW91IG5lZWQgb3Bwb3J0dW5pc3RpYyBjYWNoaW5nIG9mIGlt cG9ydGVkL2V4cG9ydGVkIGJ1ZmZlciBvYmplY3RzCj4gYW5kIHRoZWlyIG1hcHBpbmdzLiBGb3Ig dGhpcyB5b3UgbmVlZCBhKSBzdWJzeXN0ZW0gaW1wb3J0L2V4cG9ydAo+IHN1cHBvcnQgd2hpY2gg Z3VhcmFudGVlcyB5b3UgdG8gaGFuZCBvdXQgdGhlIHNhbWUgZG1hLWJ1Zi9uYXRpdmUKPiBvYmpl Y3QgYWdhaW4gdXBvbiByZS1leHBvcnQgb3IgcmUtaW1wb3J0IChkcm0gaGFzIGl0KSBiKSBzb21l Cj4gb3Bwb3J0dW5pc3RpYyBjYWNoaW5nIG9mIGJ1ZmZlciBvYmplY3RzIChwcmV0dHkgbXVjaCBh cmUgcmVhbCBncHUgZHJtCj4gZHJpdmVycyBoYXZlIGl0KS4gTm8gbmVlZCBvZiBhbnkgbWV0YWRh dGEgc2NoZW1lLCBhbmQgZ2l2ZW4gaG93IG11Y2gKPiBmdW4gSSd2ZSBoYWQgaW1wbGVtZW50ZWQg dGhpcyBmb3IgZHJtIEkgZG9uJ3QgeW91IGNhbiBtYWtlIHlvdXIKPiBtZXRhZGF0YSBzY2hlbWUg d29yayBpbiBhIHNhbmUgb3IgY29ycmVjdCB3YXkgd3J0IGxpZmV0aW1lcy4KPiAKPiBGb3IgY2Fj aGluZyB0aGUgaW9tbXUgbWFwcGluZyBpZiB0aGUgaW9tbXUgaXMgdGhlIHNhbWUgZm9yIG11bHRp cGxlIGRldmljZXM6Cj4gCj4gMSkgV2UgbmVlZCBzb21lIHdheSB0byBmaWd1cmUgb3V0IHdoaWNo IGlvbW11IHNlcnZlcyB3aGljaCBkZXZpY2VzLgo+IAo+IDIpIFRoZSBleHBvcnRlciBuZWVkcyB0 byBjb25zdWx0IHRoaXMgYW5kIG1pZ2h0IGp1c3QgaGFuZCBvdXQgdGhlIHNhbWUKPiBzZyBtYXBw aW5nIG91dCBhZ2FpbiBpZiBpdCB3YW50cyB0by4KPiAKPiBObyBuZWVkIGZvciBpbXBvcnRlcnMg dG8gZG8gZmFuY3kgc3R1ZmYsIG9yIGF0dGFjaCBhbnkKPiBpbXBvcnRlci12aXNpYmxlIG1ldGFk YXRhIHRvIGRtYS1idWZzLiBPZiBjb3Vyc2UgZHVwbGljYXRpbmcgdGhpcyBjb2RlCj4gYWxsIG92 ZXIgdGhlIHBsYWNlIGlzIGEgYnV0IHVuY29vbCwgc28gSSBleHBlY3QgdGhhdCBldmVudHVhbGx5 IHdlJ2xsCj4gaGF2ZSBhIGdlbmVyaWMgZXhwb3J0ZXIgaW1wbGVtZW50YXRpb24sIGF0IGxlYXN0 IGZvciBub24tc3dhcHBhYmxlCj4gYnVmZmVycy4gZHJtL2dlbSBpcyBhIGJpdCBzcGVjaWFsIGhl cmUgLi4uCj4gCj4gSW4gZ2VuZXJhbCBJIGRvbid0IGxpa2UgdGhlIGlkZWEgb2YgYXJiaXRyYXJ5 IG1ldGFkYXRhIGF0IGFsbCwgc291bmRzCj4gcHJvbmUgdG8gYWJ1c2Ugd2l0aCBjcmF6eSBsaWZl dGltZS9yZWZjb3VudGluZyBydWxlcyBmb3IgdGhlIG9iamVjdHMKPiBpbnZvbHZlZC4gQWxzbyBJ IHRoaW5rIGZvciBhIGxvdCBvZiB5b3VyIGV4YW1wbGVzIChsaWtlIGRlYnVnZ2luZykgaXQKPiB3 b3VsZCBiZSBtdWNoIGJldHRlciBpZiB3ZSBoYXZlIGEgc3RhbmRhcmRpemVkIHBpZWNlIG9mIG1l dGFkYXRhIHNvCj4gdGhhdCBhbGwgZHJpdmVycy9wbGF0Zm9ybXMgY2FuIHVzZSB0aGUgc2FtZSB0 b29saW5nLgo+IAo+IEFuZCBpdCBmZWVscyBsaWtlIEknbSB3cml0aW5nIHN1Y2ggYSBtYWlsIGV2 ZXJ5IGZldyBtb250aHMgLi4uCgpJIHBvc3RlZCBjb25jZXB0IGFib3V0IGltcG9ydGVyIHByaXYg b2YgZG1hLWJ1ZiwgYW5kIGl0IHNlZW1zIHRoYXQgdGhpcwpwYXRjaCBpcyBwYXJ0bHkgZnJvbSBz aW1pbGFyIHJlcXVpcmVtZW50IC0gaW9tbXUgbWFwL3VubWFwLgoKQW5kIGF0IHRoYXQgdGltZSwg RGFuaWVsIGFncmVlZCBhdCBsZWFzdCB0aGUgaXNzdWUsIHRoYXQgdW5uZWNlc3NhcnkKbWFwL3Vu bWFwIGNhbiByZXBlYXRlZGx5IGNhbGxlZCwgaXMgYWxzbyBpbiB0aGUgZHJtIGdlbS4KaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxMy1KdW5lLzAzOTQ2 OS5odG1sCgpTbyBJIGFncmVlIGFib3V0IHRoZSBuZWNlc3Nhcnkgb2Ygc29tZSBkYXRhIG9mIGRt YS1idWYgZm9yIGdlbmVyYWwKaW1wb3J0ZXIgZXZlbiB0aG91Z2ggdGhlIGRhdGEgY2FuIGJlIHNo YXJlZCBiZXR3ZWVuIGRpZmZlcmVudCBzdWJzeXN0ZW1zLgoKPiAKPiBDaGVlcnMsIERhbmllbAo+ IAo+IE9uIE1vbiwgTWFyIDI0LCAyMDE0IGF0IDc6MjAgQU0sIEJpbiBXYW5nIDxiaW53QG1hcnZl bGwuY29tPiB3cm90ZToKPj4gSGkgU3VtaXQsCj4+Cj4+IE9uIDAzLzIxLzIwMTQgMDc6MjYgUE0s IFN1bWl0IFNlbXdhbCB3cm90ZToKPj4+IEhpIEJpbiBXYW5nLAo+Pj4KPj4+IE9uIDIxIE1hcmNo IDIwMTQgMTA6MzQsIEJpbiBXYW5nIDxiaW53QG1hcnZlbGwuY29tPiB3cm90ZToKPj4+PiB3ZSBm b3VuZCB0aGVyZSdkIGJlIHZhcmllZCBzcGVjaWZpYyBkYXRhIGNvbm5lY3RlZCB0byBhIGRtYWJ1 ZiwgbGlrZQo+Pj4+IHRoZSBpb21tdSBtYXBwaW5nIG9mIGJ1ZmZlciwgdGhlIGRtYSBkZXNjcmlw dG9ycyAodGhhdCBjYW4gYmUgc2hhcmVkCj4+Pj4gYmV0d2VlbiBzZXZlcmFsIGNvbXBvbmVudHMp LiBUaG91Z2ggdGhlc2UgaW5mbyBtaWdodCBiZSBhYmxlIHRvIGJlCj4+Pj4gZ2VuZXJhdGVkIGV2 ZXJ5IHRpbWUgYmVmb3JlIGRtYSBvcGVyYXRpb25zLCBmb3IgcGVyZm9ybWFuY2Ugc2FrZSwKPj4+ PiBpdCdzIGJldHRlciB0byBiZSBrZXB0IGJlZm9yZSByZWFsbHkgaW52YWxpZC4KPj4+IFRoYW5r cyBmb3IgeW91ciBwYXRjaCEKPj4+IEkgdGhpbmsgd2UnZCBuZWVkIHRvIGhhdmUgbW9yZSBzcGVj aWZpYyBkZXRhaWxzIG9uIHdoYXQgZG9lcyAnbWV0YQo+Pj4gZGF0YScgbWVhbiBoZXJlOyBtb3Jl IHNwZWNpZmljIGNvbW1lbnRzIGlubGluZS4KPj4+PiBDaGFuZ2UtSWQ6IEk4OWQ0M2RjM2ZlMWVl M2RhOTFjNDIwNzRkYTVkZjcxYjk2OGU2ZDNjCj4+Pj4gU2lnbmVkLW9mZi1ieTogQmluIFdhbmcg PGJpbndAbWFydmVsbC5jb20+Cj4+Pj4gLS0tCj4+Pj4gICBkcml2ZXJzL2Jhc2UvZG1hLWJ1Zi5j ICB8ICAxMDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK Pj4+PiAgIGluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oIHwgICAyMiArKysrKysrKysrCj4+Pj4gICAy IGZpbGVzIGNoYW5nZWQsIDEyMiBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQo+Pj4+Cj4+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9kbWEtYnVmLmMgYi9kcml2ZXJzL2Jhc2UvZG1h LWJ1Zi5jCj4+Pj4gaW5kZXggMDhmZTg5Ny4uNWM4MmU2MCAxMDA2NDQKPj4+PiAtLS0gYS9kcml2 ZXJzL2Jhc2UvZG1hLWJ1Zi5jCj4+Pj4gKysrIGIvZHJpdmVycy9iYXNlL2RtYS1idWYuYwo+Pj4+ IEBAIC01MCw2ICs1MCw3IEBAIHN0YXRpYyBpbnQgZG1hX2J1Zl9yZWxlYXNlKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQo+Pj4+Cj4+Pj4gICAgICAgICAgQlVHX09OKGRt YWJ1Zi0+dm1hcHBpbmdfY291bnRlcik7Cj4+Pj4KPj4+PiArICAgICAgIGRtYV9idWZfbWV0YV9y ZWxlYXNlKGRtYWJ1Zik7Cj4+Pj4gICAgICAgICAgZG1hYnVmLT5vcHMtPnJlbGVhc2UoZG1hYnVm KTsKPj4+Pgo+Pj4+ICAgICAgICAgIG11dGV4X2xvY2soJmRiX2xpc3QubG9jayk7Cj4+Pj4gQEAg LTEzOCw2ICsxMzksNyBAQCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zl9leHBvcnRfbmFtZWQodm9p ZCAqcHJpdiwgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzICpvcHMsCj4+Pj4KPj4+PiAgICAgICAg ICBtdXRleF9pbml0KCZkbWFidWYtPmxvY2spOwo+Pj4+ICAgICAgICAgIElOSVRfTElTVF9IRUFE KCZkbWFidWYtPmF0dGFjaG1lbnRzKTsKPj4+PiArICAgICAgIElOSVRfTElTVF9IRUFEKCZkbWFi dWYtPm1ldGFzKTsKPj4+Pgo+Pj4gSSBhbSBub3Qgc3VyZSBJIHVuZGVyc3RhbmQgdGhlIHJlbGF0 aW9uc2hpcCBvZiAnbWV0YSBkYXRhJyB3aXRoCj4+PiAnZG1hLWJ1ZicsIG9yICdhdHRhY2htZW50 cycgLSBkbyB5b3UgbWVhbiB0byBoYXZlIGEgbGlzdCBvZiBzb21lCj4+PiBtZXRhLWRhdGEgdGhh dCBpcyB1bnJlbGF0ZWQgdG8gdGhlIGF0dGFjaG1lbnRzIHRvIHRoZSBkbWEtYnVmPyBJIHRoaW5r Cj4+PiBpdCdkIGhlbHAgdG8gZXhwbGFpbiB3aGV0aGVyIG1ldGEtZGF0YSBpcyBzcGVjaWZpYyB0 byBlYWNoIGRtYS1idWYsCj4+PiBhbmQgdGhlcmUncyBhIGxpc3Qgb2YgdGhlbSwgb3IgdGhpcyBt ZXRhLWRhdGEgaXMgcmVsYXRlZCB0byBlYWNoCj4+PiBpbXBvcnRlciBkZXZpY2UgYXR0YWNobWVu dD8KPj4+IElmIGl0J3MgcmVsYXRlZCB0byBlYWNoIGltcG9ydGVyLCBpdCBzaG91bGQgcmVhbGx5 IGJlIGFkZGVkIGFzIHBhcnQgb2YKPj4+IHRoZSBkbWFfYnVmX2F0dGFjaG1lbnQsIGFuZCBub3Qg c2VwYXJhdGVseS4KClRoaXMgaXMgYmFzaWMgY29uY2VwdCBvZiBteSBSRkMgcGF0Y2guCmh0dHA6 Ly93d3cua2VybmVsaHViLm9yZy8/cD0yJm1zZz0yNjgwNTYKCkJlc3QgUmVnYXJkcywKLSBTZXVu Zy1Xb28gS2ltCgo+PiBUaGUgIm1ldGEtZGF0YSIgaGVyZSBjYW4gYmUgYW55IGtpbmQgb2YgZGF0 YSByZWxhdGVkIHRvIHRoZSBkbWFidWYsICwgaXQncyBzcGVjaWZpYwo+PiBmb3IgZWFjaCBkbWFi dWYuCj4+Cj4+IEZvciBleGFtcGxlLCB3ZSBoYXZlIGlvbW11IGZvciBhIFZQVSBkZXZpY2UsIFZQ VSBkcml2ZXIgaGFzCj4+IHRvIG1hcCB0aGUgZG1hYnVmIHRvIGdldCBhbiBJT1ZBIGFkZHJlc3Mg YmVmb3JlIGl0IGNhbiBhY2Nlc3MgdGhlIGJ1ZmZlci4gVGhpcwo+PiBkbWFidWYgd291bGQgYmUg cmV1c2VkIG1hbnkgdGltZXMgZHVyaW5nIHRoZSB2aWRlbyBwbGF5YmFjaywgZm9yIHBlcmZvcm1h bmNlCj4+IGNvbmNlcm4gd2UgZG9uJ3Qgd2FudCB0aGlzIGRtYWJ1ZiBiZSBtYXAvdW5tYXBlZCBi eSBpb21tdSBkcml2ZXIgZXZlcnkgdGltZQo+PiBvZiBWUFUgSFcgZGF0YSB0cmFuc2Zlciwgc2lu Y2UgdGhlIHBoeXNpY2FsIHBhZ2VzIG5vdCBjaGFuZ2VkIGFuZCBpb21tdSBJT1ZBCj4+IHBsZW50 eS4KPj4KPj4gQW5vdGhlciBleGFtcGxlLCBpbiBvdXIgU29DLCBkZXZpY2UgQSBhbmQgZGV2aWNl IEIgdXNlIHRoZSBzYW1lIGRtYSBjaGFpbiBmb3JtYXQsCj4+IGFuZCB0aGVzZSBkcml2ZXJzIHNo YXJlIGRtYWJ1ZiBiZXR3ZWVuIGVhY2ggb3RoZXIsIHRodXMgdGhlICJkbWEgY2hhaW4iCj4+IGFy cmF5IGRvZXNuJ3QgbmVlZCB0byBiZSBnZW5lcmF0ZWQgZXZlcnkgdGltZXIgZm9yIGVhY2ggZGV2 aWNlLgo+Pgo+PiBTbyBoZXJlLCB3aXRoIHRoZSBoZWxwIGZyb20gdGhlICJtZXRhLWRhdGEiLCBv bmx5IHRoZSAiZmlyc3QgdGltZSIgd2UgbmVlZCB0byBnZW5lcmF0ZQo+PiB0aGUgIm1ldGEtZGF0 YSIgZnJvbSBzY3JhdGNoLCBhbmQgbGF0ZXIgd2UgY2FuIGp1c3QgcmV1c2UgaXQgdW50aWwgdGhl IGJ1ZmZlciBmcmVlZC4KPj4KPj4gVGhlICJtZXRhLWRhdGEiIGlzIHJlbGF0ZWQgdG8gdGhlIGlt cG9ydGVyLCBvciBpbXBvcnRlcnMuIEhvd2V2ZXIsIHRoZSAiZG1hX2J1Zl9hdHRhY2htZW50Igo+ PiBpcyBwZXIgImRldmljZXMiLCBob2xkaW5nIGRldmljZSBzcGVjaWZpYyBhdHRyaWJ1dGVzLCB3 aGlsZSAibWV0YS1kYXRhIiBpcyBwZXIgImRtYWJ1ZicsCj4+IGhvbGRpbmcgYnVmZmVyIHNwZWNp ZmljIGF0dHJpYnV0ZXMsIGxpa2UgdGhlIGV4YW1wbGUgYWJvdmUuCj4+Pj4gICAgICAgICAgbXV0 ZXhfbG9jaygmZGJfbGlzdC5sb2NrKTsKPj4+PiAgICAgICAgICBsaXN0X2FkZCgmZG1hYnVmLT5s aXN0X25vZGUsICZkYl9saXN0LmhlYWQpOwo+Pj4+IEBAIC01NzAsNiArNTcyLDEwNCBAQCB2b2lk IGRtYV9idWZfdnVubWFwKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIHZvaWQgKnZhZGRyKQo+Pj4+ ICAgfQo+Pj4+ICAgRVhQT1JUX1NZTUJPTF9HUEwoZG1hX2J1Zl92dW5tYXApOwo+Pj4+Cj4+Pj4g Ky8qKgo+Pj4+ICsgKiBkbWFfYnVmX21ldGFfYXR0YWNoIC0gQXR0YWNoIGFkZGl0aW9uYWwgbWV0 YSBkYXRhIHRvIHRoZSBkbWFidWYKPj4+PiArICogQGRtYWJ1ZjogICAgW2luXSAgICB0aGUgZG1h YnVmIHRvIGF0dGFjaCB0bwo+Pj4+ICsgKiBAaWQ6ICAgICAgICAgICAgICAgIFtpbl0gICAgdGhl IGlkIG9mIHRoZSBtZXRhIGRhdGEKPj4+PiArICogQHBkYXRhOiAgICAgW2luXSAgICB0aGUgcmF3 IGRhdGEgdG8gYmUgYXR0YWNoZWQKPj4+PiArICogQHJlbGVhc2U6ICAgW2luXSAgICB0aGUgY2Fs bGJhY2sgdG8gcmVsZWFzZSB0aGUgbWV0YSBkYXRhCj4+Pj4gKyAqLwo+Pj4+ICtpbnQgZG1hX2J1 Zl9tZXRhX2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBpbnQgaWQsIHZvaWQgKnBkYXRh LAo+Pj4+ICsgICAgICAgaW50ICgqcmVsZWFzZSkodm9pZCAqKSkKPj4+PiArewo+Pj4+ICsgICAg ICAgc3RydWN0IGRtYV9idWZfbWV0YSAqcG1ldGE7Cj4+Pj4gKwo+Pj4+ICsgICAgICAgcG1ldGEg PSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgZG1hX2J1Zl9tZXRhKSwgR0ZQX0tFUk5FTCk7Cj4+Pj4g KyAgICAgICBpZiAocG1ldGEgPT0gTlVMTCkKPj4+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1F Tk9NRU07Cj4+Pj4gKwo+Pj4+ICsgICAgICAgcG1ldGEtPmlkID0gaWQ7Cj4+PiBXaGF0IGRvZXMg J2lkJyBtZWFuIGhlcmU/IEFsc28gdGhlcmUgaXMgbm8gY2hlY2sgb24gYW55IGR1cGxpY2l0eSBv bgo+Pj4gdGhlICdpZCcsIHNvIGlmIGFueSBkZXZpY2UgYWRkcyBtb3JlIG1ldGEgZGF0YSB3aXRo IHRoZSBzYW1lIElELCB5b3UKPj4+IHdvdWxkIGFsd2F5cyB3b3JrIG9ubHkgb24gdGhlIGZpcnN0 IG9uZT8gSXQgd291bGQgYWxzbyBoZWxwIGlmIHlvdQo+Pj4gY291bGQgZXhwbGFpbiB0aGUgcmVs ZXZhbmNlIG9mIGlkLgo+PiBUaGUgImlkIiBoZXJlIG1lYW5zIGEga2luZCBvZiBzcGVjaWZpYyAi bWV0YS1kYXRhIiwgZm9yIGV4YW1wbGUgd2UgdXNlCj4+ICIjZGVmaW5lIFZQVV9ETUFCVUZfTUVU QV9JRCAgICAweDEwMDAwIiBmb3IgdGhlIFZQVSBpb21tdSByZWxhdGVkCj4+IGRhdGEuCj4+Cj4+ IEVhY2ggaW1wb3J0ZXIgd291bGQgdHJ5IHRvICJkbWFfYnVmX21ldGFfZmV0Y2goKSIgdGhlICJt ZXRhLWRhdGEiIGZpcnN0LCBpZgo+PiBub3QgZm91bmQsIGl0IHdvdWxkIGdlbmVyYXRlIGFuZCBh dHRhY2ggaXQuIElmIGZvdW5kLCBpdCB3b3VsZCBqdXN0IHJldXNlIGl0Lgo+Pgo+PiBJIGFncmVl IHdpdGggeW91IHRoYXQgaXQncyBiZXR0ZXIgdG8gYWRkIHRoZSBjaGVjayBvZiBpZCBpbiB0aGlz IGZ1bmN0aW9uIGFzIHdlbGwuCj4+Pj4gKyAgICAgICBwbWV0YS0+cGRhdGEgPSBwZGF0YTsKPj4+ PiArICAgICAgIHBtZXRhLT5yZWxlYXNlID0gcmVsZWFzZTsKPj4+PiArCj4+Pj4gKyAgICAgICBt dXRleF9sb2NrKCZkbWFidWYtPmxvY2spOwo+Pj4+ICsgICAgICAgbGlzdF9hZGQoJnBtZXRhLT5u b2RlLCAmZG1hYnVmLT5tZXRhcyk7Cj4+Pj4gKyAgICAgICBtdXRleF91bmxvY2soJmRtYWJ1Zi0+ bG9jayk7Cj4+Pj4gKwo+Pj4+ICsgICAgICAgcmV0dXJuIDA7Cj4+Pj4gK30KPj4+PiArRVhQT1JU X1NZTUJPTF9HUEwoZG1hX2J1Zl9tZXRhX2F0dGFjaCk7Cj4+Pj4gKwo+Pj4+ICsvKioKPj4+PiAr ICogZG1hX2J1Zl9tZXRhX2RldHRhY2ggLSBEZXR0YWNoIHRoZSBtZXRhIGRhdGEgZnJvbSBkbWFi dWYgYnkgaWQKPj4+PiArICogQGRtYWJ1ZjogICAgW2luXSAgICB0aGUgZG1hYnVmIGluY2x1ZGlu ZyB0aGUgbWV0YSBkYXRhCj4+Pj4gKyAqIEBpZDogICAgICAgICAgICAgICAgW2luXSAgICB0aGUg aWQgb2YgdGhlIG1ldGEgZGF0YQo+Pj4+ICsgKi8KPj4+PiAraW50IGRtYV9idWZfbWV0YV9kZXR0 YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGludCBpZCkKPj4+PiArewo+Pj4+ICsgICAgICAg c3RydWN0IGRtYV9idWZfbWV0YSAqcG1ldGEsICp0bXA7Cj4+Pj4gKyAgICAgICBpbnQgcmV0ID0g LUVOT0VOVDsKPj4+PiArCj4+Pj4gKyAgICAgICBtdXRleF9sb2NrKCZkbWFidWYtPmxvY2spOwo+ Pj4+ICsgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBtZXRhLCB0bXAsICZkbWFidWYt Pm1ldGFzLCBub2RlKSB7Cj4+Pj4gKyAgICAgICAgICAgICAgIGlmIChwbWV0YS0+aWQgPT0gaWQp IHsKPj4+PiArICAgICAgICAgICAgICAgICAgICAgICBpZiAocG1ldGEtPnJlbGVhc2UpCj4+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbWV0YS0+cmVsZWFzZShwbWV0YS0+cGRh dGEpOwo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGxpc3RfZGVsKCZwbWV0YS0+bm9kZSk7 Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAga2ZyZWUocG1ldGEpOwo+Pj4+ICsgICAgICAg ICAgICAgICAgICAgICAgIHJldCA9IDA7Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7Cj4+Pj4gKyAgICAgICAgICAgICAgIH0KPj4+PiArICAgICAgIH0KPj4+PiArICAgICAgIG11 dGV4X3VubG9jaygmZG1hYnVmLT5sb2NrKTsKPj4+PiArCj4+Pj4gKyAgICAgICByZXR1cm4gcmV0 Owo+Pj4+ICt9Cj4+Pj4gK0VYUE9SVF9TWU1CT0xfR1BMKGRtYV9idWZfbWV0YV9kZXR0YWNoKTsK Pj4+PiArCj4+Pj4gKy8qKgo+Pj4+ICsgKiBkbWFfYnVmX21ldGFfZmV0Y2ggLSBHZXQgdGhlIG1l dGEgZGF0YSBmcm9tIGRtYWJ1ZiBieSBpZAo+Pj4+ICsgKiBAZG1hYnVmOiAgICBbaW5dICAgIHRo ZSBkbWFidWYgaW5jbHVkaW5nIHRoZSBtZXRhIGRhdGEKPj4+PiArICogQGlkOiAgICAgICAgICAg ICAgICBbaW5dICAgIHRoZSBpZCBvZiB0aGUgbWV0YSBkYXRhCj4+Pj4gKyAqLwo+Pj4+ICt2b2lk ICpkbWFfYnVmX21ldGFfZmV0Y2goc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgaW50IGlkKQo+Pj4+ ICt7Cj4+Pj4gKyAgICAgICBzdHJ1Y3QgZG1hX2J1Zl9tZXRhICpwbWV0YTsKPj4+PiArICAgICAg IHZvaWQgKnBkYXRhID0gTlVMTDsKPj4+PiArCj4+Pj4gKyAgICAgICBtdXRleF9sb2NrKCZkbWFi dWYtPmxvY2spOwo+Pj4+ICsgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShwbWV0YSwgJmRtYWJ1 Zi0+bWV0YXMsIG5vZGUpIHsKPj4+PiArICAgICAgICAgICAgICAgaWYgKHBtZXRhLT5pZCA9PSBp ZCkgewo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHBkYXRhID0gcG1ldGEtPnBkYXRhOwo+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4+ICsgICAgICAgICAgICAgICB9 Cj4+Pj4gKyAgICAgICB9Cj4+Pj4gKyAgICAgICBtdXRleF91bmxvY2soJmRtYWJ1Zi0+bG9jayk7 Cj4+Pj4gKwo+Pj4+ICsgICAgICAgcmV0dXJuIHBkYXRhOwo+Pj4+ICt9Cj4+Pj4gK0VYUE9SVF9T WU1CT0xfR1BMKGRtYV9idWZfbWV0YV9mZXRjaCk7Cj4+Pj4gKwo+Pj4+ICsvKioKPj4+PiArICog ZG1hX2J1Zl9tZXRhX3JlbGVhc2UgLSBSZWxlYXNlIGFsbCB0aGUgbWV0YSBkYXRhIGF0dGFjaGVk IHRvIHRoZSBkbWFidWYKPj4+PiArICogQGRtYWJ1ZjogICAgW2luXSAgICB0aGUgZG1hYnVmIGlu Y2x1ZGluZyB0aGUgbWV0YSBkYXRhCj4+Pj4gKyAqLwo+Pj4+ICt2b2lkIGRtYV9idWZfbWV0YV9y ZWxlYXNlKHN0cnVjdCBkbWFfYnVmICpkbWFidWYpCj4+Pj4gK3sKPj4+PiArICAgICAgIHN0cnVj dCBkbWFfYnVmX21ldGEgKnBtZXRhLCAqdG1wOwo+Pj4+ICsKPj4+PiArICAgICAgIG11dGV4X2xv Y2soJmRtYWJ1Zi0+bG9jayk7Cj4+Pj4gKyAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUo cG1ldGEsIHRtcCwgJmRtYWJ1Zi0+bWV0YXMsIG5vZGUpIHsKPj4+PiArICAgICAgICAgICAgICAg aWYgKHBtZXRhLT5yZWxlYXNlKQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHBtZXRhLT5y ZWxlYXNlKHBtZXRhLT5wZGF0YSk7Cj4+Pj4gKyAgICAgICAgICAgICAgIGxpc3RfZGVsKCZwbWV0 YS0+bm9kZSk7Cj4+Pj4gKyAgICAgICAgICAgICAgIGtmcmVlKHBtZXRhKTsKPj4+PiArICAgICAg IH0KPj4+PiArICAgICAgIG11dGV4X3VubG9jaygmZG1hYnVmLT5sb2NrKTsKPj4+PiArCj4+Pj4g KyAgICAgICByZXR1cm47Cj4+Pj4gK30KPj4+PiArCj4+Pj4gICAjaWZkZWYgQ09ORklHX0RFQlVH X0ZTCj4+Pj4gICBzdGF0aWMgaW50IGRtYV9idWZfZGVzY3JpYmUoc3RydWN0IHNlcV9maWxlICpz KQo+Pj4+ICAgewo+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaCBiL2lu Y2x1ZGUvbGludXgvZG1hLWJ1Zi5oCj4+Pj4gaW5kZXggZGZhYzVlZC4uMzY5ZDAzMiAxMDA2NDQK Pj4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaAo+Pj4+ICsrKyBiL2luY2x1ZGUvbGlu dXgvZG1hLWJ1Zi5oCj4+Pj4gQEAgLTEyMCw2ICsxMjAsNyBAQCBzdHJ1Y3QgZG1hX2J1ZiB7Cj4+ Pj4gICAgICAgICAgc2l6ZV90IHNpemU7Cj4+Pj4gICAgICAgICAgc3RydWN0IGZpbGUgKmZpbGU7 Cj4+Pj4gICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBhdHRhY2htZW50czsKPj4+PiArICAgICAg IHN0cnVjdCBsaXN0X2hlYWQgbWV0YXM7Cj4+Pj4gICAgICAgICAgY29uc3Qgc3RydWN0IGRtYV9i dWZfb3BzICpvcHM7Cj4+Pj4gICAgICAgICAgLyogbXV0ZXggdG8gc2VyaWFsaXplIGxpc3QgbWFu aXB1bGF0aW9uLCBhdHRhY2gvZGV0YWNoIGFuZCB2bWFwL3VubWFwICovCj4+Pj4gICAgICAgICAg c3RydWN0IG11dGV4IGxvY2s7Cj4+Pj4gQEAgLTE0OSw2ICsxNTAsMjAgQEAgc3RydWN0IGRtYV9i dWZfYXR0YWNobWVudCB7Cj4+Pj4gICB9Owo+Pj4+Cj4+PiBMaWtlIEkgc2FpZCBhYm92ZSwgSSBk b24ndCB0aGluayBJIGNvbXBsZXRlbHkgdW5kZXJzdGFuZCB0aGUgbmVlZCBvZgo+Pj4gJ2EgbGlz dCBvZiBtZXRhcycgLSBhIHNhbXBsZSB1c2FnZSB3b3VsZCBiZSBtb3N0IGhlbHBmdWwgdG8gcmVh bGlzZQo+Pj4gdGhlIHJlbGV2YW5jZSBoZXJlLgo+PiBBcyB0aGUgZXhhbXBsZXMgYWJvdmUsIGlu IHRoZSBsaXN0IG9mICJtZXRhcyIsIHRoZXJlIGNhbiBiZSwgVlBVIGlvbW11IG1hcHBpbmcgaW5m bywKPj4gY2FtZXJhL2Rpc3BsYXkgZG1hIGNoYWluIGluZm8sIG9yIG90aGVyIGRlYnVnZ2luZy90 cmFja2luZyBpbmZvIGV0Yy4KPj4+PiAgIC8qKgo+Pj4+ICsgKiBzdHJ1Y3QgZG1hX2J1Zl9tZXRh IC0gaG9sZHMgdmFyaWVkIG1ldGEgZGF0YSBhdHRhY2hlZCB0byB0aGUgYnVmZmVyCj4+Pj4gKyAq IEBpZDogdGhlIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBtZXRhIGRhdGEKPj4+PiArICogQGRtYWJ1 ZjogYnVmZmVyIGZvciB0aGlzIGF0dGFjaG1lbnQuCj4+Pj4gKyAqIEBub2RlOiBsaXN0IG9mIGRt YV9idWZfbWV0YS4KPj4+PiArICogQHBkYXRhOiBzcGVjaWZpYyBtZXRhIGRhdGEuCj4+Pj4gKyAq Lwo+Pj4+ICtzdHJ1Y3QgZG1hX2J1Zl9tZXRhIHsKPj4+PiArICAgICAgIGludCBpZDsKPj4+PiAr ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgbm9kZTsKPj4+PiArICAgICAgIGludCAoKnJlbGVhc2Up KHZvaWQgKnBkYXRhKTsKPj4+PiArICAgICAgIHZvaWQgKnBkYXRhOwo+Pj4+ICt9Owo+Pj4+ICsK Pj4+PiArLyoqCj4+Pj4gICAgKiBnZXRfZG1hX2J1ZiAtIGNvbnZlbmllbmNlIHdyYXBwZXIgZm9y IGdldF9maWxlLgo+Pj4+ICAgICogQGRtYWJ1ZjogICAgW2luXSAgICBwb2ludGVyIHRvIGRtYV9i dWYKPj4+PiAgICAqCj4+Pj4gQEAgLTE5NCw2ICsyMDksMTMgQEAgaW50IGRtYV9idWZfbW1hcChz dHJ1Y3QgZG1hX2J1ZiAqLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKiwKPj4+PiAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nKTsKPj4+PiAgIHZvaWQgKmRtYV9idWZfdm1hcChzdHJ1Y3Qg ZG1hX2J1ZiAqKTsKPj4+PiAgIHZvaWQgZG1hX2J1Zl92dW5tYXAoc3RydWN0IGRtYV9idWYgKiwg dm9pZCAqdmFkZHIpOwo+Pj4+ICsKPj4+PiAraW50IGRtYV9idWZfbWV0YV9hdHRhY2goc3RydWN0 IGRtYV9idWYgKmRtYWJ1ZiwgaW50IGlkLCB2b2lkICpwZGF0YSwKPj4+PiArICAgICAgIGludCAo KnJlbGVhc2UpKHZvaWQgKikpOwo+Pj4+ICtpbnQgZG1hX2J1Zl9tZXRhX2RldHRhY2goc3RydWN0 IGRtYV9idWYgKmRtYWJ1ZiwgaW50IGlkKTsKPj4+PiArdm9pZCAqZG1hX2J1Zl9tZXRhX2ZldGNo KHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIGludCBpZCk7Cj4+Pj4gK3ZvaWQgZG1hX2J1Zl9tZXRh X3JlbGVhc2Uoc3RydWN0IGRtYV9idWYgKmRtYWJ1Zik7Cj4+Pj4gKwo+Pj4+ICAgaW50IGRtYV9i dWZfZGVidWdmc19jcmVhdGVfZmlsZShjb25zdCBjaGFyICpuYW1lLAo+Pj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCAoKndyaXRlKShzdHJ1Y3Qgc2VxX2ZpbGUgKikpOwo+ Pj4+ICAgI2VuZGlmIC8qIF9fRE1BX0JVRl9IX18gKi8KPj4+PiAtLQo+Pj4+IDEuNy4wLjQKPj4+ Pgo+Pj4+Cj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPj4+PiBMaW5hcm8tbW0tc2lnIG1haWxpbmcgbGlzdAo+Pj4+IExpbmFyby1tbS1zaWdAbGlz dHMubGluYXJvLm9yZwo+Pj4+IGh0dHA6Ly9saXN0cy5saW5hcm8ub3JnL21haWxtYW4vbGlzdGlu Zm8vbGluYXJvLW1tLXNpZwo+Pj4KPj4+Cj4+IFRoZSBwdXJwb3NlIG9mIHRoaXMgZXh0ZW5zaW9u IG1haW5seSBpczoKPj4gMS4gVHJ5IHRvIHJldXNlIHRoZSBmaXJzdCBnZW5lcmF0ZWQgc3BlY2lm aWMgZGF0YSBpbiB0aGUgYnVmZmVyJ3MgbGlmZSB0aW1lLCB0byBhdm9pZCByZWR1bmRhbnQgbWFw L3VubWFwLCBvciBnZW5lcmF0ZS9mcmVlLgo+PiAyLiBUcnkgdG8gc2hhcmUgdGhlICJyZXVzYWJs ZSIgZGF0YSBiZXR3ZWVuIGRldmljZXMsIGlmIHRoZSBkZXZpY2VzIHN1cHBvcnQgY29tcGF0aWJs ZSBmb3JtYXRzLgo+Pgo+PiBSZWdhcmRzLAo+PiBCaW4gV2FuZwo+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBMaW5hcm8tbW0tc2lnIG1haWxpbmcg bGlzdAo+PiBMaW5hcm8tbW0tc2lnQGxpc3RzLmxpbmFyby5vcmcKPj4gaHR0cDovL2xpc3RzLmxp bmFyby5vcmcvbWFpbG1hbi9saXN0aW5mby9saW5hcm8tbW0tc2lnCj4gCj4gCj4gCgotLSAKU2V1 bmctV29vIEtpbQpTYW1zdW5nIFNvZnR3YXJlIFImRCBDZW50ZXIKLS0KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==