From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 18/21] drm/i915: Embed signaling node into the GEM request Date: Tue, 7 Jun 2016 13:31:25 +0100 Message-ID: <5756BE9D.8030609@linux.intel.com> References: <1464970133-29859-1-git-send-email-chris@chris-wilson.co.uk> <1464970133-29859-19-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id C125F6E763 for ; Tue, 7 Jun 2016 12:31:27 +0000 (UTC) In-Reply-To: <1464970133-29859-19-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 , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDAzLzA2LzE2IDE3OjA4LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gVW5kZXIgdGhlIGFzc3Vt cHRpb24gdGhhdCBlbmFibGluZyBzaWduYWxpbmcgd2lsbCBiZSBhIGZyZXF1ZW50Cj4gb3BlcmF0 aW9uLCBsZXRzIHByZWFsbG9jYXRlIG91ciBhdHRhY2htZW50cyBmb3Igc2lnbmFsaW5nIGluc2lk ZSB0aGUKPiByZXF1ZXN0IHN0cnVjdCAoYW5kIHNvIGJlbmVmaXRpbmcgZnJvbSB0aGUgc2xhYiBj YWNoZSkuCgpPaCB5b3UgZGlkIHRoaXMgcGFydCB3aGljaCBJIHN1Z2dlc3RlZCBpbiB0aGUgcHJl dmlvdXMgcGF0Y2guIDopCgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCAgICAgICAgICB8ICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1 bWJzLmMgfCA4OSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICB8ICA2ICsrKwo+ICAgMyBmaWxlcyBjaGFu Z2VkLCA1NiBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+IGluZGV4IGIwMjM1MzcyY2ZkZi4uODhkOTI0MjM5OGNlIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIzNjMsNiArMjM2Myw3IEBAIHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7Cj4gICAJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ICAgCXVuc2lnbmVkIHJlc2V0X2NvdW50ZXI7 Cj4gKwlzdHJ1Y3QgaW50ZWxfc2lnbmFsX25vZGUgc2lnbmFsaW5nOwo+Cj4gICAJIC8qKiBHRU0g c2VxdWVuY2UgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJldmlvdXMgcmVxdWVzdCwKPiAg IAkgICogd2hlbiB0aGUgSFdTIGJyZWFkY3J1bWIgaXMgZXF1YWwgdG8gdGhpcyB0aGUgR1BVIGlz IHByb2Nlc3NpbmcKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJl YWRjcnVtYnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKPiBp bmRleCAxNDM4OTFhMmI2OGEuLjhhYjUwOGVkNDI0OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwo+IEBAIC0xMjgsMTYgKzEyOCwxNCBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgX19pbnRlbF9icmVhZGNydW1ic19maW5pc2goc3RydWN0IGludGVsX2JyZWFkY3J1 bWJzICpiLAo+ICAgCXdha2VfdXBfcHJvY2Vzcyh3YWl0LT50YXNrKTsgLyogaW1wbGljaXQgc21w X3dtYigpICovCj4gICB9Cj4KPiAtYm9vbCBpbnRlbF9lbmdpbmVfYWRkX3dhaXQoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+IC0JCQkgICBzdHJ1Y3QgaW50ZWxfd2FpdCAqd2FpdCkK PiArc3RhdGljIGJvb2wgX19pbnRlbF9lbmdpbmVfYWRkX3dhaXQoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLAo+ICsJCQkJICAgIHN0cnVjdCBpbnRlbF93YWl0ICp3YWl0KQo+ICAgewo+ ICAgCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1bWJzOwo+ ICAgCXN0cnVjdCByYl9ub2RlICoqcCwgKnBhcmVudCwgKmNvbXBsZXRlZDsKPiAgIAlib29sIGZp cnN0Owo+ICAgCXUzMiBzZXFubzsKPgo+IC0Jc3Bpbl9sb2NrKCZiLT5sb2NrKTsKPiAtCj4gICAJ LyogSW5zZXJ0IHRoZSByZXF1ZXN0IGludG8gdGhlIHJldGlyZW1lbnQgb3JkZXJlZCBsaXN0Cj4g ICAJICogb2Ygd2FpdGVycyBieSB3YWxraW5nIHRoZSByYnRyZWUuIElmIHdlIGFyZSB0aGUgb2xk ZXN0Cj4gICAJICogc2Vxbm8gaW4gdGhlIHRyZWUgKHRoZSBmaXJzdCB0byBiZSByZXRpcmVkKSwg dGhlbgo+IEBAIC0yMjMsNiArMjIxLDE3IEBAIGJvb2wgaW50ZWxfZW5naW5lX2FkZF93YWl0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgIAlHRU1fQlVHX09OKCFiLT5maXJzdF93 YWl0KTsKPiAgIAlHRU1fQlVHX09OKHJiX2ZpcnN0KCZiLT53YWl0ZXJzKSAhPSAmYi0+Zmlyc3Rf d2FpdC0+bm9kZSk7Cj4KPiArCXJldHVybiBmaXJzdDsKPiArfQo+ICsKPiArYm9vbCBpbnRlbF9l bmdpbmVfYWRkX3dhaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICsJCQkgICBz dHJ1Y3QgaW50ZWxfd2FpdCAqd2FpdCkKPiArewo+ICsJc3RydWN0IGludGVsX2JyZWFkY3J1bWJz ICpiID0gJmVuZ2luZS0+YnJlYWRjcnVtYnM7Cj4gKwlib29sIGZpcnN0Owo+ICsKPiArCXNwaW5f bG9jaygmYi0+bG9jayk7Cj4gKwlmaXJzdCA9IF9faW50ZWxfZW5naW5lX2FkZF93YWl0KGVuZ2lu ZSwgd2FpdCk7Cj4gICAJc3Bpbl91bmxvY2soJmItPmxvY2spOwo+Cj4gICAJcmV0dXJuIGZpcnN0 Owo+IEBAIC0zMjMsMzUgKzMzMiwyOSBAQCBvdXRfdW5sb2NrOgo+ICAgCXNwaW5fdW5sb2NrKCZi LT5sb2NrKTsKPiAgIH0KPgo+IC1zdHJ1Y3Qgc2lnbmFsIHsKPiAtCXN0cnVjdCByYl9ub2RlIG5v ZGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfd2FpdCB3YWl0Owo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXF1ZXN0Owo+IC19Owo+IC0KPiAtc3RhdGljIGJvb2wgc2lnbmFsX2NvbXBsZXRl KHN0cnVjdCBzaWduYWwgKnNpZ25hbCkKPiArc3RhdGljIGJvb2wgc2lnbmFsX2NvbXBsZXRlKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiAgIHsKPiAtCWlmIChzaWduYWwg PT0gTlVMTCkKPiArCWlmIChyZXF1ZXN0ID09IE5VTEwpCj4gICAJCXJldHVybiBmYWxzZTsKPgo+ ICAgCS8qIElmIGFub3RoZXIgcHJvY2VzcyBzZXJ2ZWQgYXMgdGhlIGJvdHRvbS1oYWxmIGl0IG1h eSBoYXZlIGFscmVhZHkKPiAgIAkgKiBzaWduYWxsZWQgdGhhdCB0aGlzIHdhaXQgaXMgYWxyZWFk eSBjb21wbGV0ZWQuCj4gICAJICovCj4gLQlpZiAoaW50ZWxfd2FpdF9jb21wbGV0ZSgmc2lnbmFs LT53YWl0KSkKPiArCWlmIChpbnRlbF93YWl0X2NvbXBsZXRlKCZyZXF1ZXN0LT5zaWduYWxpbmcu d2FpdCkpCj4gICAJCXJldHVybiB0cnVlOwo+Cj4gICAJLyogQ2FyZWZ1bGx5IGNoZWNrIGlmIHRo ZSByZXF1ZXN0IGlzIGNvbXBsZXRlLCBnaXZpbmcgdGltZSBmb3IgdGhlCj4gICAJICogc2Vxbm8g dG8gYmUgdmlzaWJsZSBvciBpZiB0aGUgR1BVIGh1bmcuCj4gICAJICovCj4gLQlpZiAoX19pOTE1 X3JlcXVlc3RfaXJxX2NvbXBsZXRlKHNpZ25hbC0+cmVxdWVzdCkpCj4gKwlpZiAoX19pOTE1X3Jl cXVlc3RfaXJxX2NvbXBsZXRlKHJlcXVlc3QpKQo+ICAgCQlyZXR1cm4gdHJ1ZTsKPgo+ICAgCXJl dHVybiBmYWxzZTsKPiAgIH0KPgo+IC1zdGF0aWMgc3RydWN0IHNpZ25hbCAqdG9fc2lnbmFsKHN0 cnVjdCByYl9ub2RlICpyYikKPiArc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq dG9fc2lnbmFsKHN0cnVjdCByYl9ub2RlICpyYikKCldoeSBpdCBpcyBjYWxsIHRvX3NpZ25hbCB0 aGVuPwoKPiAgIHsKPiAtCXJldHVybiBjb250YWluZXJfb2YocmIsIHN0cnVjdCBzaWduYWwsIG5v ZGUpOwo+ICsJcmV0dXJuIGNvbnRhaW5lcl9vZihyYiwgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0LCBzaWduYWxpbmcubm9kZSk7Cj4gICB9Cj4KPiAgIHN0YXRpYyB2b2lkIHNpZ25hbGVyX3Nl dF9ydHByaW9yaXR5KHZvaWQpCj4gQEAgLTM2NCw3ICszNjcsNyBAQCBzdGF0aWMgaW50IGludGVs X2JyZWFkY3J1bWJzX3NpZ25hbGVyKHZvaWQgKmFyZykKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUgPSBhcmc7Cj4gICAJc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpi ID0gJmVuZ2luZS0+YnJlYWRjcnVtYnM7Cj4gLQlzdHJ1Y3Qgc2lnbmFsICpzaWduYWw7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7Cj4KPiAgIAkvKiBJbnN0YWxsIG91 cnNlbHZlcyB3aXRoIGhpZ2ggcHJpb3JpdHkgdG8gcmVkdWNlIHNpZ25hbGxpbmcgbGF0ZW5jeSAq Lwo+ICAgCXNpZ25hbGVyX3NldF9ydHByaW9yaXR5KCk7Cj4gQEAgLTM4MCwxNCArMzgzLDEzIEBA IHN0YXRpYyBpbnQgaW50ZWxfYnJlYWRjcnVtYnNfc2lnbmFsZXIodm9pZCAqYXJnKQo+ICAgCQkg KiBuZWVkIHRvIHdhaXQgZm9yIGEgbmV3IGludGVycnVwdCBmcm9tIHRoZSBHUFUgb3IgZm9yCj4g ICAJCSAqIGEgbmV3IGNsaWVudC4KPiAgIAkJICovCj4gLQkJc2lnbmFsID0gUkVBRF9PTkNFKGIt PmZpcnN0X3NpZ25hbCk7Cj4gLQkJaWYgKHNpZ25hbF9jb21wbGV0ZShzaWduYWwpKSB7Cj4gKwkJ cmVxdWVzdCA9IFJFQURfT05DRShiLT5maXJzdF9zaWduYWwpOwo+ICsJCWlmIChzaWduYWxfY29t cGxldGUocmVxdWVzdCkpIHsKPiAgIAkJCS8qIFdha2UgdXAgYWxsIG90aGVyIGNvbXBsZXRlZCB3 YWl0ZXJzIGFuZCBzZWxlY3QgdGhlCj4gICAJCQkgKiBuZXh0IGJvdHRvbS1oYWxmIGZvciB0aGUg bmV4dCB1c2VyIGludGVycnVwdC4KPiAgIAkJCSAqLwo+IC0JCQlpbnRlbF9lbmdpbmVfcmVtb3Zl X3dhaXQoZW5naW5lLCAmc2lnbmFsLT53YWl0KTsKPiAtCj4gLQkJCWk5MTVfZ2VtX3JlcXVlc3Rf dW5yZWZlcmVuY2Uoc2lnbmFsLT5yZXF1ZXN0KTsKPiArCQkJaW50ZWxfZW5naW5lX3JlbW92ZV93 YWl0KGVuZ2luZSwKPiArCQkJCQkJICZyZXF1ZXN0LT5zaWduYWxpbmcud2FpdCk7Cj4KPiAgIAkJ CS8qIEZpbmQgdGhlIG5leHQgb2xkZXN0IHNpZ25hbC4gTm90ZSB0aGF0IGFzIHdlIGhhdmUKPiAg IAkJCSAqIG5vdCBiZWVuIGhvbGRpbmcgdGhlIGxvY2ssIGFub3RoZXIgY2xpZW50IG1heQo+IEBA IC0zOTYsMTIgKzM5OCwxNSBAQCBzdGF0aWMgaW50IGludGVsX2JyZWFkY3J1bWJzX3NpZ25hbGVy KHZvaWQgKmFyZykKPiAgIAkJCSAqIHRoZSBvbGRlc3QgYmVmb3JlIHBpY2tpbmcgdGhlIG5leHQg b25lLgo+ICAgCQkJICovCj4gICAJCQlzcGluX2xvY2soJmItPmxvY2spOwo+IC0JCQlpZiAoc2ln bmFsID09IGItPmZpcnN0X3NpZ25hbCkKPiAtCQkJCWItPmZpcnN0X3NpZ25hbCA9IHJiX25leHQo JnNpZ25hbC0+bm9kZSk7Cj4gLQkJCXJiX2VyYXNlKCZzaWduYWwtPm5vZGUsICZiLT5zaWduYWxz KTsKPiArCQkJaWYgKHJlcXVlc3QgPT0gYi0+Zmlyc3Rfc2lnbmFsKSB7Cj4gKwkJCQlzdHJ1Y3Qg cmJfbm9kZSAqcmIgPQo+ICsJCQkJCXJiX25leHQoJnJlcXVlc3QtPnNpZ25hbGluZy5ub2RlKTsK PiArCQkJCWItPmZpcnN0X3NpZ25hbCA9IHJiID8gdG9fc2lnbmFsKHJiKSA6IE5VTEw7CgpNYWRl IG1lIGxvb2sgaW4gdGhlIHByZXZpb3VzIHBhdGNoIG9uIGhvdyB5b3UgZGlkbid0IG5lZWQgdG8g Y2hhbmdlIHRoZSAKdHlwZSBmb3IgZmlyc3Rfc2lnbmFsIGluIHRoaXMgb25lLiB2b2lkKiAhIDop IFBsZWFzZSBmaXggdGhlcmUuIDopCgo+ICsJCQl9Cj4gKwkJCXJiX2VyYXNlKCZyZXF1ZXN0LT5z aWduYWxpbmcubm9kZSwgJmItPnNpZ25hbHMpOwo+ICAgCQkJc3Bpbl91bmxvY2soJmItPmxvY2sp Owo+Cj4gLQkJCWtmcmVlKHNpZ25hbCk7Cj4gKwkJCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVu Y2UocmVxdWVzdCk7Cj4gICAJCX0gZWxzZSB7Cj4gICAJCQlpZiAoa3RocmVhZF9zaG91bGRfc3Rv cCgpKQo+ICAgCQkJCWJyZWFrOwo+IEBAIC00MTgsMjAgKzQyMywyMyBAQCBpbnQgaW50ZWxfZW5n aW5lX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0 KQo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVuZ2luZTsK PiAgIAlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIgPSAmZW5naW5lLT5icmVhZGNydW1iczsK PiAgIAlzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50LCAqKnA7Cj4gLQlzdHJ1Y3Qgc2lnbmFsICpzaWdu YWw7Cj4gICAJYm9vbCBmaXJzdCwgd2FrZXVwOwo+Cj4gICAJaWYgKHVubGlrZWx5KElTX0VSUihi LT5zaWduYWxlcikpKQo+ICAgCQlyZXR1cm4gUFRSX0VSUihiLT5zaWduYWxlcik7Cj4KPiAtCXNp Z25hbCA9IGttYWxsb2Moc2l6ZW9mKCpzaWduYWwpLCBHRlBfQVRPTUlDKTsKPiAtCWlmICh1bmxp a2VseSghc2lnbmFsKSkKPiAtCQlyZXR1cm4gLUVOT01FTTsKPiArCWlmICh1bmxpa2VseShSRUFE X09OQ0UocmVxdWVzdC0+c2lnbmFsaW5nLndhaXQudGFzaykpKQo+ICsJCXJldHVybiAwOwoKSG1t IGl0IHdpbGwgZGVwZW5kIG9uIGZvbGxvd2luZyBwYXRjaGVzIHdoZXRoZXIgdGhpcyBpcyBzYWZl LiBJIGRvbid0IApsaWtlIHRoZSBleHBsb3Npb24gb2YgUkVBRF9PTkNFIGFuZCBzbXBfc3RvcmVf bWIncyBpbiB0aGVzZSBwYXRjaGVzLiAKU29tZXRoaW5nIGlzIGJvdW5kIHRvIGJlIGJyb2tlbi4K CllvdSBldmVuIGNoZWNrIGl0IGJlbG93IHVuZGVyIHRoZSBsb2NrLiBTbyBJIGFtIG5vdCBzdXJl IHRoaXMgCm9wdGltaXNhdGlvbiBpcyB3b3J0aCBpdC4gTWF5YmUgbGVhdmUgaXQgZm9yIGxhdGVy PwoKPgo+IC0Jc2lnbmFsLT53YWl0LnRhc2sgPSBiLT5zaWduYWxlcjsKPiAtCXNpZ25hbC0+d2Fp dC5zZXFubyA9IHJlcXVlc3QtPnNlcW5vOwo+ICsJc3Bpbl9sb2NrKCZiLT5sb2NrKTsKPiArCWlm ICh1bmxpa2VseShyZXF1ZXN0LT5zaWduYWxpbmcud2FpdC50YXNrKSkgewo+ICsJCXdha2V1cCA9 IGZhbHNlOwo+ICsJCWdvdG8gdW5sb2NrOwo+ICsJfQo+Cj4gLQlzaWduYWwtPnJlcXVlc3QgPSBp OTE1X2dlbV9yZXF1ZXN0X3JlZmVyZW5jZShyZXF1ZXN0KTsKPiArCXJlcXVlc3QtPnNpZ25hbGlu Zy53YWl0LnRhc2sgPSBiLT5zaWduYWxlcjsKPiArCXJlcXVlc3QtPnNpZ25hbGluZy53YWl0LnNl cW5vID0gcmVxdWVzdC0+c2Vxbm87Cj4gKwlpOTE1X2dlbV9yZXF1ZXN0X3JlZmVyZW5jZShyZXF1 ZXN0KTsKPgo+ICAgCS8qIEZpcnN0IGFkZCBvdXJzZWx2ZXMgaW50byB0aGUgbGlzdCBvZiB3YWl0 ZXJzLCBidXQgcmVnaXN0ZXIgb3VyCj4gICAJICogYm90dG9tLWhhbGYgYXMgdGhlIHNpZ25hbGxl ciB0aHJlYWQuIEFzIHBlciB1c3VhbCwgb25seSB0aGUgb2xkZXN0Cj4gQEAgLTQ0MSwyOSArNDQ5 LDMwIEBAIGludCBpbnRlbF9lbmdpbmVfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gICAJICogSWYgd2UgYXJlIHRoZSBvbGRlc3Qgd2FpdGVy LCBlbmFibGUgdGhlIGlycSAoYWZ0ZXIgd2hpY2ggd2UKPiAgIAkgKiBtdXN0IGRvdWJsZSBjaGVj ayB0aGF0IHRoZSBzZXFubyBkaWQgbm90IGNvbXBsZXRlKS4KPiAgIAkgKi8KPiAtCXdha2V1cCA9 IGludGVsX2VuZ2luZV9hZGRfd2FpdChlbmdpbmUsICZzaWduYWwtPndhaXQpOwo+ICsJd2FrZXVw ID0gX19pbnRlbF9lbmdpbmVfYWRkX3dhaXQoZW5naW5lLCAmcmVxdWVzdC0+c2lnbmFsaW5nLndh aXQpOwo+Cj4gICAJLyogTm93IGluc2VydCBvdXJzZWx2ZXMgaW50byB0aGUgcmV0aXJlbWVudCBv cmRlcmVkIGxpc3Qgb2Ygc2lnbmFscwo+ICAgCSAqIG9uIHRoaXMgZW5naW5lLiBXZSB0cmFjayB0 aGUgb2xkZXN0IHNlcW5vIGFzIHRoYXQgd2lsbCBiZSB0aGUKPiAgIAkgKiBmaXJzdCBzaWduYWwg dG8gY29tcGxldGUuCj4gICAJICovCj4gLQlzcGluX2xvY2soJmItPmxvY2spOwo+ICAgCXBhcmVu dCA9IE5VTEw7Cj4gICAJZmlyc3QgPSB0cnVlOwo+ICAgCXAgPSAmYi0+c2lnbmFscy5yYl9ub2Rl Owo+ICAgCXdoaWxlICgqcCkgewo+ICAgCQlwYXJlbnQgPSAqcDsKPiAtCQlpZiAoaTkxNV9zZXFu b19wYXNzZWQoc2lnbmFsLT53YWl0LnNlcW5vLAo+IC0JCQkJICAgICAgdG9fc2lnbmFsKHBhcmVu dCktPndhaXQuc2Vxbm8pKSB7Cj4gKwkJaWYgKGk5MTVfc2Vxbm9fcGFzc2VkKHJlcXVlc3QtPnNl cW5vLAo+ICsJCQkJICAgICAgdG9fc2lnbmFsKHBhcmVudCktPnNlcW5vKSkgewo+ICAgCQkJcCA9 ICZwYXJlbnQtPnJiX3JpZ2h0Owo+ICAgCQkJZmlyc3QgPSBmYWxzZTsKPiAgIAkJfSBlbHNlCj4g ICAJCQlwID0gJnBhcmVudC0+cmJfbGVmdDsKPiAgIAl9Cj4gLQlyYl9saW5rX25vZGUoJnNpZ25h bC0+bm9kZSwgcGFyZW50LCBwKTsKPiAtCXJiX2luc2VydF9jb2xvcigmc2lnbmFsLT5ub2RlLCAm Yi0+c2lnbmFscyk7Cj4gKwlyYl9saW5rX25vZGUoJnJlcXVlc3QtPnNpZ25hbGluZy5ub2RlLCBw YXJlbnQsIHApOwo+ICsJcmJfaW5zZXJ0X2NvbG9yKCZyZXF1ZXN0LT5zaWduYWxpbmcubm9kZSwg JmItPnNpZ25hbHMpOwo+ICAgCWlmIChmaXJzdCkKPiAtCQlzbXBfc3RvcmVfbWIoYi0+Zmlyc3Rf c2lnbmFsLCBzaWduYWwpOwo+ICsJCXNtcF9zdG9yZV9tYihiLT5maXJzdF9zaWduYWwsIHJlcXVl c3QpOwo+ICsKPiArdW5sb2NrOgo+ICAgCXNwaW5fdW5sb2NrKCZiLT5sb2NrKTsKPgo+ICAgCWlm ICh3YWtldXApCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4 IGY0YmNhMzhjYWVmMC4uNWY3Y2IzZDBlYTFjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaAo+IEBAIC01MzAsNiArNTMwLDEyIEBAIHN0cnVjdCBpbnRlbF93YWl0 IHsKPiAgIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7Cj4gICAJdTMyIHNlcW5vOwo+ICAgfTsK PiArCj4gK3N0cnVjdCBpbnRlbF9zaWduYWxfbm9kZSB7Cj4gKwlzdHJ1Y3QgcmJfbm9kZSBub2Rl Owo+ICsJc3RydWN0IGludGVsX3dhaXQgd2FpdDsKPiArfTsKPiArCj4gICB2b2lkIGludGVsX2Vu Z2luZV9pbml0X2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4g ICBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfd2FpdF9pbml0KHN0cnVjdCBpbnRlbF93YWl0ICp3 YWl0LCB1MzIgc2Vxbm8pCj4gICB7Cj4KCk90aGVyd2lzZSBsb29rcyBPSy4KClJlZ2FyZHMsCgpU dnJ0a28KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=