From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: Re: [PATCH v2] drm/vgem: Attach sw fences to exported vGEM dma-buf (ioctl) Date: Wed, 13 Jul 2016 17:29:21 -0300 Message-ID: <20160713202921.GE2565@joana> References: <1468327581-9579-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1468327581-9579-1-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: Gustavo Padovan , Daniel Vetter , intel-gfx@lists.freedesktop.org, Zach Reizner , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org MjAxNi0wNy0xMiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az46Cgo+IHZH RU0gYnVmZmVycyBhcmUgdXNlZnVsIGZvciBwYXNzaW5nIGRhdGEgYmV0d2VlbiBzb2Z0d2FyZSBj bGllbnRzIGFuZAo+IGhhcmR3YXJlIHJlbmRlcnMuIEJ5IGFsbG93aW5nIHRoZSB1c2VyIHRvIGNy ZWF0ZSBhbmQgYXR0YWNoIGZlbmNlcyB0bwo+IHRoZSBleHBvcnRlZCB2R0VNIGJ1ZmZlcnMgKG9u IHRoZSBkbWEtYnVmKSwgdGhlIHVzZXIgY2FuIGltcGxlbWVudCBhCj4gZGVmZXJyZWQgcmVuZGVy ZXIgYW5kIHF1ZXVlIGhhcmR3YXJlIG9wZXJhdGlvbnMgbGlrZSBmbGlwcGluZyBhbmQgdGhlbgo+ IHNpZ25hbCB0aGUgYnVmZmVyIHJlYWRpbmVzcyAoaS5lLiB0aGlzIGFsbG93cyB0aGUgdXNlciB0 byBzY2hlZHVsZQo+IG9wZXJhdGlvbnMgb3V0LW9mLW9yZGVyLCBidXQgaGF2ZSB0aGVtIGNvbXBs ZXRlIGluLW9yZGVyKS4KPiAKPiBUaGlzIGFsc28gbWFrZXMgaXQgbXVjaCBlYXNpZXIgdG8gd3Jp dGUgdGlnaHRseSBjb250cm9sbGVkIHRlc3RjYXNlcyBmb3IKPiBkbWEtYnVmIGZlbmNpbmcgYW5k IHNpZ25hbGluZyBiZXR3ZWVuIGhhcmR3YXJlIGRyaXZlcnMuCj4gCj4gdjI6IERvbid0IHByZXRl bmQgdGhlIGZlbmNlcyBleGlzdCBpbiBhbiBvcmRlcmVkIHRpbWVsaW5lLCBidXQgYWxsb2NhdGUK PiBhIHNlcGFyYXRlIGZlbmNlLWNvbnRleHQgZm9yIGVhY2ggZmVuY2Ugc28gdGhhdCB0aGUgZmVu Y2VzIGFyZQo+IHVub3JkZXJlZC4KPiAKPiBUZXN0Y2FzZTogaWd0L3ZnZW1fYmFzaWMvZG1hYnVm LWZlbmNlCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+Cj4gQ2M6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+IENjOiBaYWNo IFJlaXpuZXIgPHphY2hyQGdvb2dsZS5jb20+Cj4gQ2M6IEd1c3Rhdm8gUGFkb3ZhbiA8Z3VzdGF2 by5wYWRvdmFuQGNvbGxhYm9yYS5jby51az4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBmZndsbC5jaD4KPiBBY2tlZC1ieTogWmFjaCBSZWl6bmVyIDx6YWNockBnb29nbGUuY29t Pgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmdlbS9NYWtlZmlsZSAgICAgfCAgIDIgKy0KPiAg ZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9kcnYuYyAgIHwgIDM0ICsrKysrKysKPiAgZHJpdmVy cy9ncHUvZHJtL3ZnZW0vdmdlbV9kcnYuaCAgIHwgIDE2ICsrKwo+ICBkcml2ZXJzL2dwdS9kcm0v dmdlbS92Z2VtX2ZlbmNlLmMgfCAyMDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPiAgaW5jbHVkZS91YXBpL2RybS92Z2VtX2RybS5oICAgICAgIHwgIDYyICsrKysrKysr KysrKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDMyMCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2ZlbmNlLmMK PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvdWFwaS9kcm0vdmdlbV9kcm0uaAo+IAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmdlbS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2Ry bS92Z2VtL01ha2VmaWxlCj4gaW5kZXggM2Y0YzdiODQyMDI4Li5iZmNkZWExMzMwZTYgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZnZW0vTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vdmdlbS9NYWtlZmlsZQo+IEBAIC0xLDQgKzEsNCBAQAo+ICBjY2ZsYWdzLXkgOj0gLUlp bmNsdWRlL2RybQo+IC12Z2VtLXkgOj0gdmdlbV9kcnYubwo+ICt2Z2VtLXkgOj0gdmdlbV9kcnYu byB2Z2VtX2ZlbmNlLm8KPiAgCj4gIG9iai0kKENPTkZJR19EUk1fVkdFTSkJKz0gdmdlbS5vCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZHJ2LmMgYi9kcml2ZXJzL2dw dS9kcm0vdmdlbS92Z2VtX2Rydi5jCj4gaW5kZXggMjljMmFhYjNjMWE3Li5jMTViYWZiMDY2NjUg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9kcnYuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZHJ2LmMKPiBAQCAtODMsNiArODMsMzQgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCB2Z2VtX2dlbV92bV9vcHMgPSB7Cj4g IAkuY2xvc2UgPSBkcm1fZ2VtX3ZtX2Nsb3NlLAo+ICB9Owo+ICAKPiArc3RhdGljIGludCB2Z2Vt X29wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQo+ICt7 Cj4gKwlzdHJ1Y3QgdmdlbV9maWxlICp2ZmlsZTsKPiArCWludCByZXQ7Cj4gKwo+ICsJdmZpbGUg PSBremFsbG9jKHNpemVvZigqdmZpbGUpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghdmZpbGUpCj4g KwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJZmlsZS0+ZHJpdmVyX3ByaXYgPSB2ZmlsZTsKPiAr Cj4gKwlyZXQgPSB2Z2VtX2ZlbmNlX29wZW4odmZpbGUpOwo+ICsJaWYgKHJldCkgewo+ICsJCWtm cmVlKHZmaWxlKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCB2Z2VtX3ByZWNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiArewo+ICsJc3RydWN0IHZnZW1fZmlsZSAqdmZpbGUg PSBmaWxlLT5kcml2ZXJfcHJpdjsKPiArCj4gKwl2Z2VtX2ZlbmNlX2Nsb3NlKHZmaWxlKTsKPiAr CWtmcmVlKHZmaWxlKTsKPiArfQo+ICsKPiAgLyogaW9jdGxzICovCj4gIAo+ICBzdGF0aWMgc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICp2Z2VtX2dlbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiBAQCAtMTY0LDYgKzE5Miw4IEBAIHVucmVmOgo+ICB9Cj4gIAo+ICBzdGF0aWMgc3RydWN0 IGRybV9pb2N0bF9kZXNjIHZnZW1faW9jdGxzW10gPSB7Cj4gKwlEUk1fSU9DVExfREVGX0RSVihW R0VNX0ZFTkNFX0FUVEFDSCwgdmdlbV9mZW5jZV9hdHRhY2hfaW9jdGwsIERSTV9BVVRIfERSTV9S RU5ERVJfQUxMT1cpLAo+ICsJRFJNX0lPQ1RMX0RFRl9EUlYoVkdFTV9GRU5DRV9TSUdOQUwsIHZn ZW1fZmVuY2Vfc2lnbmFsX2lvY3RsLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKPiAgfTsK PiAgCj4gIHN0YXRpYyBpbnQgdmdlbV9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSkKPiBAQCAtMjcxLDkgKzMwMSwxMiBAQCBzdGF0aWMgaW50IHZnZW1f cHJpbWVfbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKPiAgCj4gIHN0YXRpYyBzdHJ1 Y3QgZHJtX2RyaXZlciB2Z2VtX2RyaXZlciA9IHsKPiAgCS5kcml2ZXJfZmVhdHVyZXMJCT0gRFJJ VkVSX0dFTSB8IERSSVZFUl9QUklNRSwKPiArCS5vcGVuCQkJCT0gdmdlbV9vcGVuLAo+ICsJLnBy ZWNsb3NlCQkJPSB2Z2VtX3ByZWNsb3NlLAo+ICAJLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZAk9 IHZnZW1fZ2VtX2ZyZWVfb2JqZWN0LAo+ICAJLmdlbV92bV9vcHMJCQk9ICZ2Z2VtX2dlbV92bV9v cHMsCj4gIAkuaW9jdGxzCQkJCT0gdmdlbV9pb2N0bHMsCj4gKwkubnVtX2lvY3RscyAJCQk9IEFS UkFZX1NJWkUodmdlbV9pb2N0bHMpLAo+ICAJLmZvcHMJCQkJPSAmdmdlbV9kcml2ZXJfZm9wcywK PiAgCj4gIAkuZHVtYl9jcmVhdGUJCQk9IHZnZW1fZ2VtX2R1bWJfY3JlYXRlLAo+IEBAIC0zMjgs NSArMzYxLDYgQEAgbW9kdWxlX2luaXQodmdlbV9pbml0KTsKPiAgbW9kdWxlX2V4aXQodmdlbV9l eGl0KTsKPiAgCj4gIE1PRFVMRV9BVVRIT1IoIlJlZCBIYXQsIEluYy4iKTsKPiArTU9EVUxFX0FV VEhPUigiSW50ZWwgQ29ycG9yYXRpb24iKTsKPiAgTU9EVUxFX0RFU0NSSVBUSU9OKERSSVZFUl9E RVNDKTsKPiAgTU9EVUxFX0xJQ0VOU0UoIkdQTCBhbmQgYWRkaXRpb25hbCByaWdodHMiKTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS92Z2VtL3ZnZW1fZHJ2LmgKPiBpbmRleCA5ODhjYmFhZTc1ODguLjFmODc5OGFkMzI5YyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2Rydi5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3ZnZW0vdmdlbV9kcnYuaAo+IEBAIC0zMiw5ICszMiwyNSBAQAo+ICAjaW5j bHVkZSA8ZHJtL2RybVAuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+Cj4gIAo+ICsjaW5j bHVkZSA8dWFwaS9kcm0vdmdlbV9kcm0uaD4KPiArCj4gK3N0cnVjdCB2Z2VtX2ZpbGUgewo+ICsJ c3RydWN0IGlkciBmZW5jZV9pZHI7Cj4gKwlzdHJ1Y3QgbXV0ZXggZmVuY2VfbXV0ZXg7Cj4gK307 Cj4gKwo+ICAjZGVmaW5lIHRvX3ZnZW1fYm8oeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBkcm1f dmdlbV9nZW1fb2JqZWN0LCBiYXNlKQo+ICBzdHJ1Y3QgZHJtX3ZnZW1fZ2VtX29iamVjdCB7Cj4g IAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgYmFzZTsKPiAgfTsKPiAgCj4gK2ludCB2Z2VtX2ZlbmNl X29wZW4oc3RydWN0IHZnZW1fZmlsZSAqZmlsZSk7Cj4gK2ludCB2Z2VtX2ZlbmNlX2F0dGFjaF9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkgICAgdm9pZCAqZGF0YSwKPiArCQkJ ICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7Cj4gK2ludCB2Z2VtX2ZlbmNlX3NpZ25hbF9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkgICAgdm9pZCAqZGF0YSwKPiArCQkJICAg IHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7Cj4gK3ZvaWQgdmdlbV9mZW5jZV9jbG9zZShzdHJ1Y3Qg dmdlbV9maWxlICpmaWxlKTsKPiArCj4gICNlbmRpZgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdmdlbS92Z2VtX2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2ZlbmNl LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNjMwOTUzMzFj NDQ2Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZmVu Y2UuYwo+IEBAIC0wLDAgKzEsMjA3IEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCAyMDE2IEludGVs IENvcnBvcmF0aW9uCj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gKyAqIGNvcHkgb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3 YXJlIikKPiArICogdG8gZGVhbCBpbiB0aGUgc29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ICsgKiBvbiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3ViCj4gKyAqIGxpY2Vu c2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tCj4gKyAqIHRoZW0gU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0 aGUgbmV4dAo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsg KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5USUJJTElUWSwKPiArICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVO VCBTSEFMTAo+ICsgKiBUSEUgQVVUSE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF UywgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSCj4gKyAqIElOIEFOIEFDVElPTiBPRiBDT05U UkFDVCwgVE9SVCwgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgo+ICsg KiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxsaW51eC9kbWEtYnVm Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9yZXNlcnZhdGlvbi5oPgo+ICsKPiArI2luY2x1ZGUgInZn ZW1fZHJ2LmgiCj4gKwo+ICtzdHJ1Y3QgdmdlbV9mZW5jZSB7Cj4gKwlzdHJ1Y3QgZmVuY2UgYmFz ZTsKPiArCXN0cnVjdCBzcGlubG9jayBsb2NrOwo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IGNo YXIgKnZnZW1fZmVuY2VfZ2V0X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCj4gK3sK PiArCXJldHVybiAidmdlbSI7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICp2Z2VtX2Zl bmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCj4gK3sKPiArCXJldHVy biAidW5ib3VuZCI7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIHZnZW1fZmVuY2Vfc2lnbmFsZWQo c3RydWN0IGZlbmNlICpmZW5jZSkKPiArewo+ICsJcmV0dXJuIGZhbHNlOwoKV2l0aCBvbmUgZmVu Y2UgcGVyIGNvbnRleHQgeW91IGNhbiBhY3R1YWxseSByZXR1cm4gaWYgdGhlIGZlbmNlIHdhcwpz aWduYWxsZWQgb3Igbm90LiBNYXkgYmUgdXNlZnVsIGZvciBkZWJ1Zy4KCj4gK30KPiArCj4gK3N0 YXRpYyBib29sIHZnZW1fZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZlbmNl KQo+ICt7Cj4gKwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdmdlbV9mZW5j ZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpmZW5jZSwgY2hhciAqc3RyLCBpbnQgc2l6ZSkKPiAr ewo+ICsJc25wcmludGYoc3RyLCBzaXplLCAiJXUiLCAwKTsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgdmdlbV9mZW5jZV90aW1lbGluZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpmZW5jZSwgY2hh ciAqc3RyLAo+ICsJCQkJCSAgaW50IHNpemUpCj4gK3sKPiArCXNucHJpbnRmKHN0ciwgc2l6ZSwg IiV1IiwgMCk7Cj4gK30KPiArCj4gK2NvbnN0IHN0cnVjdCBmZW5jZV9vcHMgdmdlbV9mZW5jZV9v cHMgPSB7Cj4gKwkuZ2V0X2RyaXZlcl9uYW1lID0gdmdlbV9mZW5jZV9nZXRfZHJpdmVyX25hbWUs Cj4gKwkuZ2V0X3RpbWVsaW5lX25hbWUgPSB2Z2VtX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lLAo+ ICsJLmVuYWJsZV9zaWduYWxpbmcgPSB2Z2VtX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCj4gKwku c2lnbmFsZWQgPSB2Z2VtX2ZlbmNlX3NpZ25hbGVkLAo+ICsJLndhaXQgPSBmZW5jZV9kZWZhdWx0 X3dhaXQsCj4gKwkuZmVuY2VfdmFsdWVfc3RyID0gdmdlbV9mZW5jZV92YWx1ZV9zdHIsCj4gKwku dGltZWxpbmVfdmFsdWVfc3RyID0gdmdlbV9mZW5jZV90aW1lbGluZV92YWx1ZV9zdHIsCj4gK307 Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGZlbmNlICp2Z2VtX2ZlbmNlX2NyZWF0ZShzdHJ1Y3Qgdmdl bV9maWxlICp2ZmlsZSkKPiArewo+ICsJc3RydWN0IHZnZW1fZmVuY2UgKmZlbmNlOwo+ICsKPiAr CWZlbmNlID0ga3phbGxvYyhzaXplb2YoKmZlbmNlKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWZl bmNlKQo+ICsJCXJldHVybiBOVUxMOwo+ICsKPiArCXNwaW5fbG9ja19pbml0KCZmZW5jZS0+bG9j ayk7Cj4gKwlmZW5jZV9pbml0KCZmZW5jZS0+YmFzZSwgJnZnZW1fZmVuY2Vfb3BzLCAmZmVuY2Ut PmxvY2ssCj4gKwkJICAgZmVuY2VfY29udGV4dF9hbGxvYygxKSwgMCk7CgpVc3VhbGx5IDAgd291 bGQgbWVhbiB0aGF0IHRoZSBmZW5jZSBpcyBhbHJlYWR5IHNpZ25hbGxlZCwgc28gSSdkIGJldHRl cgpzZXQgaXQgdG8gMS4KCglHdXN0YXZvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=