From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v2 1/2] drm/i915: Add i915_gem_object_vmap to map GEM object to virtual space Date: Fri, 19 Feb 2016 11:07:46 +0000 Message-ID: <56C6F782.1090102@linux.intel.com> References: <1455820298-5463-1-git-send-email-yu.dai@intel.com> <1455820298-5463-2-git-send-email-yu.dai@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 14E526EEBA for ; Fri, 19 Feb 2016 11:07:57 +0000 (UTC) In-Reply-To: <1455820298-5463-2-git-send-email-yu.dai@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: yu.dai@intel.com, intel-gfx@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE4LzAyLzE2IDE4OjMxLCB5dS5kYWlAaW50ZWwuY29tIHdyb3RlOgo+IEZyb206IEFsZXgg RGFpIDx5dS5kYWlAaW50ZWwuY29tPgo+Cj4gVGhlcmUgYXJlIHNldmVyYWwgcGxhY2VzIGluc2lk ZSBkcml2ZXIgd2hlcmUgYSBHRU0gb2JqZWN0IGlzIG1hcHBlZCB0bwo+IGtlcm5lbCB2aXJ0dWFs IHNwYWNlLiBUaGUgbWFwcGluZyBpcyBlaXRoZXIgZG9uZSBmb3IgdGhlIHdob2xlIG9iamVjdAo+ IG9yIGNlcnRhaW4gcGFnZSByYW5nZSBvZiBpdC4KPgo+IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBh IGZ1bmN0aW9uIGk5MTVfZ2VtX29iamVjdF92bWFwIHRvIGRvIHN1Y2ggam9iLgo+Cj4gdjI6IFVz ZSBvYmotPnBhZ2VzLT5uZW50cyBmb3IgaXRlcmF0aW9uIHdpdGhpbiBpOTE1X2dlbV9vYmplY3Rf dm1hcDsKPiAgICAgIGJyZWFrIHdoZW4gaXQgZmluaXNoZXMgYWxsIGRlc2lyZWQgcGFnZXMuIFRo ZSBjYWxsZXIgbmVlZCB0byBwYXNzCj4gICAgICBpbiBhY3R1YWwgcGFnZSBudW1iZXIuIChUdnJ0 a28gVXJzdWxpbikKCkxvb2sgT0sgdG8gbWUuIEp1c3Qgb25lIG1vcmUgdGhpbmcsIGl0IHdvdWxk IGJlIGdvb2QgdG8gYWRkIGEgV0FSTl9PTiAKYW5kIGJhaWwgb3V0IGlmIHBhZ2VzIGFyZSBub3Qg cGlubmVkLiBKdXN0IGJlY2F1c2UgdGhlIGZ1bmN0aW9uIGlzIG5vdyAKcHVibGljIGFuZCB0aGF0 IGlzIGEgYml0IHN0cm9uZ2VyIHRoYW4ga2VybmVsZG9jLgoKV2l0aCB0aGF0IGFkZGVkOgoKUmV2 aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CgpSZWdh cmRzLAoKVHZydGtvCgoKPiBTaWduZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNv bT4KPiBDYzogRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPiBDYzogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiBDYzogVHZydGtvIFVyc3VsaW4g PHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+Cj4gU2lnbmVkLW9mZi1ieTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5j b20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYyAgfCAy OCArLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCAgICAgICAgIHwgIDMgKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAg ICAgICAgfCA0NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jICB8IDE2ICsrKy0tLS0tLS0tCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCAyNCArKy0tLS0tLS0tLS0tLS0t LQo+ICAgNSBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMoLSkK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jCj4gaW5kZXggODE0ZDg5NC4u OTE1ZThjMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJz ZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jCj4gQEAg LTg2MywzNyArODYzLDExIEBAIGZpbmRfcmVnKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9yZWdfZGVz Y3JpcHRvciAqdGFibGUsCj4gICBzdGF0aWMgdTMyICp2bWFwX2JhdGNoKHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCj4gICAJCSAgICAgICB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQg bGVuKQo+ICAgewo+IC0JaW50IGk7Cj4gLQl2b2lkICphZGRyID0gTlVMTDsKPiAtCXN0cnVjdCBz Z19wYWdlX2l0ZXIgc2dfaXRlcjsKPiAgIAlpbnQgZmlyc3RfcGFnZSA9IHN0YXJ0ID4+IFBBR0Vf U0hJRlQ7Cj4gICAJaW50IGxhc3RfcGFnZSA9IChsZW4gKyBzdGFydCArIDQwOTUpID4+IFBBR0Vf U0hJRlQ7Cj4gICAJaW50IG5wYWdlcyA9IGxhc3RfcGFnZSAtIGZpcnN0X3BhZ2U7Cj4gLQlzdHJ1 Y3QgcGFnZSAqKnBhZ2VzOwo+IC0KPiAtCXBhZ2VzID0gZHJtX21hbGxvY19hYihucGFnZXMsIHNp emVvZigqcGFnZXMpKTsKPiAtCWlmIChwYWdlcyA9PSBOVUxMKSB7Cj4gLQkJRFJNX0RFQlVHX0RS SVZFUigiRmFpbGVkIHRvIGdldCBzcGFjZSBmb3IgcGFnZXNcbiIpOwo+IC0JCWdvdG8gZmluaXNo Owo+IC0JfQo+IC0KPiAtCWkgPSAwOwo+IC0JZm9yX2VhY2hfc2dfcGFnZShvYmotPnBhZ2VzLT5z Z2wsICZzZ19pdGVyLCBvYmotPnBhZ2VzLT5uZW50cywgZmlyc3RfcGFnZSkgewo+IC0JCXBhZ2Vz W2krK10gPSBzZ19wYWdlX2l0ZXJfcGFnZSgmc2dfaXRlcik7Cj4gLQkJaWYgKGkgPT0gbnBhZ2Vz KQo+IC0JCQlicmVhazsKPiAtCX0KPiAtCj4gLQlhZGRyID0gdm1hcChwYWdlcywgaSwgMCwgUEFH RV9LRVJORUwpOwo+IC0JaWYgKGFkZHIgPT0gTlVMTCkgewo+IC0JCURSTV9ERUJVR19EUklWRVIo IkZhaWxlZCB0byB2bWFwIHBhZ2VzXG4iKTsKPiAtCQlnb3RvIGZpbmlzaDsKPiAtCX0KPgo+IC1m aW5pc2g6Cj4gLQlpZiAocGFnZXMpCj4gLQkJZHJtX2ZyZWVfbGFyZ2UocGFnZXMpOwo+IC0JcmV0 dXJuICh1MzIqKWFkZHI7Cj4gKwlyZXR1cm4gKHUzMiopaTkxNV9nZW1fb2JqZWN0X3ZtYXAob2Jq LCBmaXJzdF9wYWdlLCBucGFnZXMpOwo+ICAgfQo+Cj4gICAvKiBSZXR1cm5zIGEgdm1hcCdkIHBv aW50ZXIgdG8gZGVzdF9vYmosIHdoaWNoIHRoZSBjYWxsZXIgbXVzdCB1bm1hcCAqLwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDY2NDRjMmUuLjViMDBhNmEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjg5OSw2ICsyODk5LDkgQEAgc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmk5MTVfZ2VtX29iamVjdF9jcmVhdGVfZnJvbV9kYXRhKAo+ICAgCQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSk7Cj4gICB2b2lk IGk5MTVfZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiAgIHZv aWQgaTkxNV9nZW1fdm1hX2Rlc3Ryb3koc3RydWN0IGk5MTVfdm1hICp2bWEpOwo+ICt2b2lkICpp OTE1X2dlbV9vYmplY3Rfdm1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICsJ CQkgICB1bnNpZ25lZCBpbnQgZmlyc3QsCj4gKwkJCSAgIHVuc2lnbmVkIGludCBucGFnZXMpOwo+ Cj4gICAvKiBGbGFncyB1c2VkIGJ5IHBpbi9iaW5kJmZyaWVuZHMuICovCj4gICAjZGVmaW5lIFBJ Tl9NQVBQQUJMRQkoMTw8MCkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBmNjhmMzQ2 Li40YmMwY2U3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTUzNTYsMyArNTM1 Niw1MCBAQCBmYWlsOgo+ICAgCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2Up Owo+ICAgCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gICB9Cj4gKwo+ICsvKioKPiArICogaTkxNV9n ZW1fb2JqZWN0X3ZtYXAgLSBtYXAgYSBHRU0gb2JqIGludG8ga2VybmVsIHZpcnR1YWwgc3BhY2UK PiArICogQG9iajogdGhlIEdFTSBvYmogdG8gYmUgbWFwcGVkCj4gKyAqIEBmaXJzdDogaW5kZXgg b2YgdGhlIGZpcnN0IHBhZ2Ugd2hlcmUgbWFwcGluZyBzdGFydHMKPiArICogQG5wYWdlczogaG93 IG1hbnkgcGFnZXMgdG8gYmUgbWFwcGVkLCBzdGFydGluZyBmcm9tIGZpcnN0IHBhZ2UKPiArICoK PiArICogTWFwIGEgZ2l2ZW4gcGFnZSByYW5nZSBvZiBHRU0gb2JqIGludG8ga2VybmVsIHZpcnR1 YWwgc3BhY2UuIFRoZSBjYWxsZXIgbXVzdAo+ICsgKiBtYWtlIHN1cmUgdGhlIGFzc29jaWF0ZWQg cGFnZXMgYXJlIGdhdGhlcmVkIGFuZCBwaW5uZWQgYmVmb3JlIGNhbGxpbmcgdGhpcwo+ICsgKiBm dW5jdGlvbi4gdnVubWFwIHNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgdXNlLgo+ICsgKgo+ICsgKiBO VUxMIHdpbGwgYmUgcmV0dXJuZWQgaWYgZmFpbHMuCj4gKyAqLwo+ICt2b2lkICppOTE1X2dlbV9v YmplY3Rfdm1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICsJCQkgICB1bnNp Z25lZCBpbnQgZmlyc3QsCj4gKwkJCSAgIHVuc2lnbmVkIGludCBucGFnZXMpCj4gK3sKPiArCXN0 cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsKPiArCXN0cnVjdCBwYWdlICoqcGFnZXM7Cj4gKwl2 b2lkICphZGRyOwo+ICsJaW50IGk7Cj4gKwo+ICsJaWYgKGZpcnN0ICsgbnBhZ2VzID4gb2JqLT5w YWdlcy0+bmVudHMpIHsKPiArCQlEUk1fREVCVUdfRFJJVkVSKCJJbnZhbGlkIHBhZ2UgY291bnRc biIpOwo+ICsJCXJldHVybiBOVUxMOwo+ICsJfQo+ICsKPiArCXBhZ2VzID0gZHJtX21hbGxvY19h YihucGFnZXMsIHNpemVvZigqcGFnZXMpKTsKPiArCWlmIChwYWdlcyA9PSBOVUxMKSB7Cj4gKwkJ RFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIGdldCBzcGFjZSBmb3IgcGFnZXNcbiIpOwo+ICsJ CXJldHVybiBOVUxMOwo+ICsJfQo+ICsKPiArCWkgPSAwOwo+ICsJZm9yX2VhY2hfc2dfcGFnZShv YmotPnBhZ2VzLT5zZ2wsICZzZ19pdGVyLCBvYmotPnBhZ2VzLT5uZW50cywgZmlyc3QpIHsKPiAr CQlwYWdlc1tpKytdID0gc2dfcGFnZV9pdGVyX3BhZ2UoJnNnX2l0ZXIpOwo+ICsJCWlmIChpID09 IG5wYWdlcykKPiArCQkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJYWRkciA9IHZtYXAocGFnZXMsIG5w YWdlcywgMCwgUEFHRV9LRVJORUwpOwo+ICsJaWYgKGFkZHIgPT0gTlVMTCkKPiArCQlEUk1fREVC VUdfRFJJVkVSKCJGYWlsZWQgdG8gdm1hcCBwYWdlc1xuIik7Cj4gKwlkcm1fZnJlZV9sYXJnZShw YWdlcyk7Cj4gKwo+ICsJcmV0dXJuIGFkZHI7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9kbWFidWYuYwo+IGluZGV4IDFmM2VlZjYuLjYxMzMwMzYgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYwo+IEBAIC0xMTAsOSArMTEwLDcgQEAgc3RhdGljIHZv aWQgKmk5MTVfZ2VtX2RtYWJ1Zl92bWFwKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQo+ICAgewo+ ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVmX3RvX29iaihkbWFf YnVmKTsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKPiAtCXN0 cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsKPiAtCXN0cnVjdCBwYWdlICoqcGFnZXM7Cj4gLQlp bnQgcmV0LCBpOwo+ICsJaW50IHJldDsKPgo+ICAgCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRl cnJ1cHRpYmxlKGRldik7Cj4gICAJaWYgKHJldCkKPiBAQCAtMTMxLDE2ICsxMjksOCBAQCBzdGF0 aWMgdm9pZCAqaTkxNV9nZW1fZG1hYnVmX3ZtYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYpCj4K PiAgIAlyZXQgPSAtRU5PTUVNOwo+Cj4gLQlwYWdlcyA9IGRybV9tYWxsb2NfYWIob2JqLT5iYXNl LnNpemUgPj4gUEFHRV9TSElGVCwgc2l6ZW9mKCpwYWdlcykpOwo+IC0JaWYgKHBhZ2VzID09IE5V TEwpCj4gLQkJZ290byBlcnJfdW5waW47Cj4gLQo+IC0JaSA9IDA7Cj4gLQlmb3JfZWFjaF9zZ19w YWdlKG9iai0+cGFnZXMtPnNnbCwgJnNnX2l0ZXIsIG9iai0+cGFnZXMtPm5lbnRzLCAwKQo+IC0J CXBhZ2VzW2krK10gPSBzZ19wYWdlX2l0ZXJfcGFnZSgmc2dfaXRlcik7Cj4gLQo+IC0Jb2JqLT5k bWFfYnVmX3ZtYXBwaW5nID0gdm1hcChwYWdlcywgaSwgMCwgUEFHRV9LRVJORUwpOwo+IC0JZHJt X2ZyZWVfbGFyZ2UocGFnZXMpOwo+ICsJb2JqLT5kbWFfYnVmX3ZtYXBwaW5nID0gaTkxNV9nZW1f b2JqZWN0X3ZtYXAob2JqLCAwLAo+ICsJCQlkbWFfYnVmLT5zaXplID4+IFBBR0VfU0hJRlQpOwo+ Cj4gICAJaWYgKCFvYmotPmRtYV9idWZfdm1hcHBpbmcpCj4gICAJCWdvdG8gZXJyX3VucGluOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRleCA0NWNlNDVhLi45 MzY2NmU5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IEBA IC0yMDY0LDI3ICsyMDY0LDYgQEAgdm9pZCBpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiAgIAlpOTE1X2dlbV9vYmplY3RfZ2d0dF91 bnBpbihyaW5nYnVmLT5vYmopOwo+ICAgfQo+Cj4gLXN0YXRpYyB1MzIgKnZtYXBfb2JqKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gLXsKPiAtCXN0cnVjdCBzZ19wYWdlX2l0ZXIg c2dfaXRlcjsKPiAtCXN0cnVjdCBwYWdlICoqcGFnZXM7Cj4gLQl2b2lkICphZGRyOwo+IC0JaW50 IGk7Cj4gLQo+IC0JcGFnZXMgPSBkcm1fbWFsbG9jX2FiKG9iai0+YmFzZS5zaXplID4+IFBBR0Vf U0hJRlQsIHNpemVvZigqcGFnZXMpKTsKPiAtCWlmIChwYWdlcyA9PSBOVUxMKQo+IC0JCXJldHVy biBOVUxMOwo+IC0KPiAtCWkgPSAwOwo+IC0JZm9yX2VhY2hfc2dfcGFnZShvYmotPnBhZ2VzLT5z Z2wsICZzZ19pdGVyLCBvYmotPnBhZ2VzLT5uZW50cywgMCkKPiAtCQlwYWdlc1tpKytdID0gc2df cGFnZV9pdGVyX3BhZ2UoJnNnX2l0ZXIpOwo+IC0KPiAtCWFkZHIgPSB2bWFwKHBhZ2VzLCBpLCAw LCBQQUdFX0tFUk5FTCk7Cj4gLQlkcm1fZnJlZV9sYXJnZShwYWdlcyk7Cj4gLQo+IC0JcmV0dXJu IGFkZHI7Cj4gLX0KPiAtCj4gICBpbnQgaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmoo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nYnVmKQo+ICAgewo+IEBAIC0yMTAzLDcgKzIwODIsOCBAQCBpbnQgaW50ZWxfcGlu X2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJCXJl dHVybiByZXQ7Cj4gICAJCX0KPgo+IC0JCXJpbmdidWYtPnZpcnR1YWxfc3RhcnQgPSB2bWFwX29i aihvYmopOwo+ICsJCXJpbmdidWYtPnZpcnR1YWxfc3RhcnQgPSBpOTE1X2dlbV9vYmplY3Rfdm1h cChvYmosIDAsCj4gKwkJCQlyaW5nYnVmLT5zaXplID4+IFBBR0VfU0hJRlQpOwo+ICAgCQlpZiAo cmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9PSBOVUxMKSB7Cj4gICAJCQlpOTE1X2dlbV9vYmplY3Rf Z2d0dF91bnBpbihvYmopOwo+ICAgCQkJcmV0dXJuIC1FTk9NRU07Cj4KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==