From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 17/21] drm/i915: Convert trace-irq to the breadcrumb waiter Date: Tue, 7 Jun 2016 13:04:22 +0100 Message-ID: <5756B846.3060102@linux.intel.com> References: <1464970133-29859-1-git-send-email-chris@chris-wilson.co.uk> <1464970133-29859-18-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 7805B6E73E for ; Tue, 7 Jun 2016 12:04:24 +0000 (UTC) In-Reply-To: <1464970133-29859-18-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 Ck9uIDAzLzA2LzE2IDE3OjA4LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gSWYgd2UgY29udmVydCB0 aGUgdHJhY2luZyBvdmVyIGZyb20gZGlyZWN0IHVzZSBvZiByaW5nLT5pcnFfZ2V0KCkgYW5kCj4g b3ZlciB0byB0aGUgYnJlYWRjcnVtYiBpbmZyYXN0cnVjdHVyZSwgd2Ugb25seSBoYXZlIGEgc2lu Z2xlIHVzZXIgb2YgdGhlCj4gcmluZy0+aXJxX2dldCBhbmQgc28gd2Ugd2lsbCBiZSBhYmxlIHRv IHNpbXBsaWZ5IHRoZSBkcml2ZXIgcm91dGluZXMKPiAoZWxpbWluYXRpbmcgdGhlIHJlZHVuZGFu dCB2YWxpZGF0aW9uIGFuZCBpcnEgcmVmY291bnRpbmcpLgoKVGhlcmUgaXMgYSBiaXQgbW9yZSB0 byB0aGlzIHRoYW4gdXNpbmcgdGhlIGJyZWFkY3J1bWJzIGluZnJhc3RydWN0dXJlLiAKU28gbmVl ZHMgbW9yZSB0ZXh0IC0gYSBsaXR0bGUgYml0IG9mIGRlc2lnbiBkb2N1bWVudGF0aW9uIGluIHRo ZSBjb21taXQuCgo+IHYyOiBNb3ZlIHRvIGEgc2lnbmFsaW5nIGZyYW1ld29yayBiYXNlZCB1cG9u IHRoZSB3YWl0ZXIuCj4gdjM6IFRyYWNrIHRoZSBmaXJzdC1zaWduYWwgdG8gYXZvaWQgaGF2aW5n IHRvIHdhbGsgdGhlIHJidHJlZSBldmVyeXRpbWUuCj4gdjQ6IE1hcmsgdGhlIHNpZ25hbGVyIHRo cmVhZCBhcyBSVCBwcmlvcml0eSB0byByZWR1Y2UgbGF0ZW5jeSBpbiB0aGUKPiBpbmRpcmVjdCB3 YWtldXBzLgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxz b24uY28udWs+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAg ICAgIHwgICA4IC0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAg IHwgICA5ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmggICAgICAgIHwg ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jIHwgMTc4 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaCAgfCAgIDggKy0KPiAgIDUgZmlsZXMgY2hhbmdlZCwgMTg4IGlu c2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g aW5kZXggYTcxZDA4MTk5ZDU3Li5iMDIzNTM3MmNmZGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiBAQCAtMzkwNiwxNCArMzkwNiw2IEBAIHdhaXRfcmVtYWluaW5nX21zX2Zyb21famlm Zmllcyh1bnNpZ25lZCBsb25nIHRpbWVzdGFtcF9qaWZmaWVzLCBpbnQgdG9fd2FpdF9tcykKPiAg IAkJCSAgICBzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZShyZW1haW5pbmdfamlmZmll cyk7Cj4gICAJfQo+ICAgfQo+IC0KPiAtc3RhdGljIGlubGluZSB2b2lkIGk5MTVfdHJhY2VfaXJx X2dldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gLQkJCQkgICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAtewo+IC0JaWYgKGVuZ2luZS0+dHJhY2VfaXJx X3JlcSA9PSBOVUxMICYmIGVuZ2luZS0+aXJxX2dldChlbmdpbmUpKQo+IC0JCWk5MTVfZ2VtX3Jl cXVlc3RfYXNzaWduKCZlbmdpbmUtPnRyYWNlX2lycV9yZXEsIHJlcSk7Cj4gLX0KPiAtCj4gICBz dGF0aWMgaW5saW5lIGJvb2wgX19pOTE1X3JlcXVlc3RfaXJxX2NvbXBsZXRlKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSA9IHJlcS0+ZW5naW5lOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IGZk YmFkMDdiNWY0Mi4uZjRlNTUwZGRhYTVkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4g QEAgLTI1MDAsNyArMjUwMCw4IEBAIGk5MTVfZ2VtX2luaXRfc2Vxbm8oc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgc2Vxbm8pCj4KPiAgIAkvKiBJZiB0aGUgc2Vxbm8gd3Jh cHMgYXJvdW5kLCB3ZSBuZWVkIHRvIGNsZWFyIHRoZSBicmVhZGNydW1iIHJidHJlZSAqLwo+ICAg CWlmICghaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIGRldl9wcml2LT5uZXh0X3NlcW5vKSkgewo+ IC0JCXdoaWxlIChpbnRlbF9raWNrX3dhaXRlcnMoZGV2X3ByaXYpKQo+ICsJCXdoaWxlIChpbnRl bF9raWNrX3dhaXRlcnMoZGV2X3ByaXYpIHx8Cj4gKwkJICAgICAgIGludGVsX2tpY2tfc2lnbmFs ZXJzKGRldl9wcml2KSkKPiAgIAkJCXlpZWxkKCk7Cj4gICAJfQo+Cj4gQEAgLTI5NjQsMTIgKzI5 NjUsNiBAQCBpOTE1X2dlbV9yZXRpcmVfcmVxdWVzdHNfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCj4gICAJCWk5MTVfZ2VtX29iamVjdF9yZXRpcmVfX3JlYWQob2JqLCBlbmdp bmUtPmlkKTsKPiAgIAl9Cj4KPiAtCWlmICh1bmxpa2VseShlbmdpbmUtPnRyYWNlX2lycV9yZXEg JiYKPiAtCQkgICAgIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKGVuZ2luZS0+dHJhY2VfaXJx X3JlcSkpKSB7Cj4gLQkJZW5naW5lLT5pcnFfcHV0KGVuZ2luZSk7Cj4gLQkJaTkxNV9nZW1fcmVx dWVzdF9hc3NpZ24oJmVuZ2luZS0+dHJhY2VfaXJxX3JlcSwgTlVMTCk7Cj4gLQl9Cj4gLQo+ICAg CVdBUk5fT04oaTkxNV92ZXJpZnlfbGlzdHMoZW5naW5lLT5kZXYpKTsKPiAgIH0KPgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3RyYWNlLmgKPiBpbmRleCAzZDEzZmRlOTVmZGYuLmY1OWNmMDcxODRhZSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmgKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmgKPiBAQCAtNDkwLDcgKzQ5MCw3IEBAIFRS QUNFX0VWRU5UKGk5MTVfZ2VtX3JpbmdfZGlzcGF0Y2gsCj4gICAJCQkgICBfX2VudHJ5LT5yaW5n ID0gcmVxLT5lbmdpbmUtPmlkOwo+ICAgCQkJICAgX19lbnRyeS0+c2Vxbm8gPSByZXEtPnNlcW5v Owo+ICAgCQkJICAgX19lbnRyeS0+ZmxhZ3MgPSBmbGFnczsKPiAtCQkJICAgaTkxNV90cmFjZV9p cnFfZ2V0KHJlcS0+ZW5naW5lLCByZXEpOwo+ICsJCQkgICBpbnRlbF9lbmdpbmVfZW5hYmxlX3Np Z25hbGluZyhyZXEpOwo+ICAgCQkJICAgKSwKPgo+ICAgCSAgICBUUF9wcmludGsoImRldj0ldSwg cmluZz0ldSwgc2Vxbm89JXUsIGZsYWdzPSV4IiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2JyZWFkY3J1bWJzLmMKPiBpbmRleCAwZjVmZTExNGMyMDQuLjE0Mzg5MWEyYjY4YSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwo+IEBAIC0yMiw2ICsyMiw4 IEBACj4gICAgKgo+ICAgICovCj4KPiArI2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4KPiArCj4g ICAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPgo+ICAgc3RhdGljIHZvaWQgaW50ZWxfYnJlYWRjcnVt YnNfZmFrZV9pcnEodW5zaWduZWQgbG9uZyBkYXRhKQo+IEBAIC0zMjEsNiArMzIzLDE1NSBAQCBv dXRfdW5sb2NrOgo+ICAgCXNwaW5fdW5sb2NrKCZiLT5sb2NrKTsKPiAgIH0KPgo+ICtzdHJ1Y3Qg c2lnbmFsIHsKPiArCXN0cnVjdCByYl9ub2RlIG5vZGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfd2FpdCB3 YWl0Owo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0Owo+ICt9Owo+ICsK PiArc3RhdGljIGJvb2wgc2lnbmFsX2NvbXBsZXRlKHN0cnVjdCBzaWduYWwgKnNpZ25hbCkKPiAr ewo+ICsJaWYgKHNpZ25hbCA9PSBOVUxMKQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwkvKiBJ ZiBhbm90aGVyIHByb2Nlc3Mgc2VydmVkIGFzIHRoZSBib3R0b20taGFsZiBpdCBtYXkgaGF2ZSBh bHJlYWR5Cj4gKwkgKiBzaWduYWxsZWQgdGhhdCB0aGlzIHdhaXQgaXMgYWxyZWFkeSBjb21wbGV0 ZWQuCj4gKwkgKi8KPiArCWlmIChpbnRlbF93YWl0X2NvbXBsZXRlKCZzaWduYWwtPndhaXQpKQo+ ICsJCXJldHVybiB0cnVlOwo+ICsKPiArCS8qIENhcmVmdWxseSBjaGVjayBpZiB0aGUgcmVxdWVz dCBpcyBjb21wbGV0ZSwgZ2l2aW5nIHRpbWUgZm9yIHRoZQo+ICsJICogc2Vxbm8gdG8gYmUgdmlz aWJsZSBvciBpZiB0aGUgR1BVIGh1bmcuCj4gKwkgKi8KPiArCWlmIChfX2k5MTVfcmVxdWVzdF9p cnFfY29tcGxldGUoc2lnbmFsLT5yZXF1ZXN0KSkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gKwly ZXR1cm4gZmFsc2U7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3Qgc2lnbmFsICp0b19zaWduYWwo c3RydWN0IHJiX25vZGUgKnJiKQo+ICt7Cj4gKwlyZXR1cm4gY29udGFpbmVyX29mKHJiLCBzdHJ1 Y3Qgc2lnbmFsLCBub2RlKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgc2lnbmFsZXJfc2V0X3J0 cHJpb3JpdHkodm9pZCkKPiArewo+ICsJIHN0cnVjdCBzY2hlZF9wYXJhbSBwYXJhbSA9IHsgLnNj aGVkX3ByaW9yaXR5ID0gMSB9Owo+ICsJIHNjaGVkX3NldHNjaGVkdWxlcl9ub2NoZWNrKGN1cnJl bnQsIFNDSEVEX0ZJRk8sICZwYXJhbSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgaW50ZWxfYnJl YWRjcnVtYnNfc2lnbmFsZXIodm9pZCAqYXJnKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUgPSBhcmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIgPSAmZW5n aW5lLT5icmVhZGNydW1iczsKPiArCXN0cnVjdCBzaWduYWwgKnNpZ25hbDsKPiArCj4gKwkvKiBJ bnN0YWxsIG91cnNlbHZlcyB3aXRoIGhpZ2ggcHJpb3JpdHkgdG8gcmVkdWNlIHNpZ25hbGxpbmcg bGF0ZW5jeSAqLwo+ICsJc2lnbmFsZXJfc2V0X3J0cHJpb3JpdHkoKTsKPiArCj4gKwlkbyB7Cj4g KwkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19JTlRFUlJVUFRJQkxFKTsKPiArCj4gKwkJLyogV2Ug YXJlIGVpdGhlciB3b2tlbiB1cCBieSB0aGUgaW50ZXJydXB0IGJvdHRvbS1oYWxmLAo+ICsJCSAq IG9yIGJ5IGEgY2xpZW50IGFkZGluZyBhIG5ldyBzaWduYWxsZXIuIEluIGJvdGggY2FzZXMsCj4g KwkJICogdGhlIEdQVSBzZXFubyBtYXkgaGF2ZSBhZHZhbmNlZCBiZXlvbmQgb3VyIG9sZGVzdCBz aWduYWwuCj4gKwkJICogSWYgaXQgaGFzLCBwcm9wYWdhdGUgdGhlIHNpZ25hbCwgcmVtb3ZlIHRo ZSB3YWl0ZXIgYW5kCj4gKwkJICogY2hlY2sgYWdhaW4gd2l0aCB0aGUgbmV4dCBvbGRlc3Qgc2ln bmFsLiBPdGhlcndpc2Ugd2UKPiArCQkgKiBuZWVkIHRvIHdhaXQgZm9yIGEgbmV3IGludGVycnVw dCBmcm9tIHRoZSBHUFUgb3IgZm9yCj4gKwkJICogYSBuZXcgY2xpZW50Lgo+ICsJCSAqLwo+ICsJ CXNpZ25hbCA9IFJFQURfT05DRShiLT5maXJzdF9zaWduYWwpOwo+ICsJCWlmIChzaWduYWxfY29t cGxldGUoc2lnbmFsKSkgewo+ICsJCQkvKiBXYWtlIHVwIGFsbCBvdGhlciBjb21wbGV0ZWQgd2Fp dGVycyBhbmQgc2VsZWN0IHRoZQo+ICsJCQkgKiBuZXh0IGJvdHRvbS1oYWxmIGZvciB0aGUgbmV4 dCB1c2VyIGludGVycnVwdC4KPiArCQkJICovCj4gKwkJCWludGVsX2VuZ2luZV9yZW1vdmVfd2Fp dChlbmdpbmUsICZzaWduYWwtPndhaXQpOwo+ICsKPiArCQkJaTkxNV9nZW1fcmVxdWVzdF91bnJl ZmVyZW5jZShzaWduYWwtPnJlcXVlc3QpOwo+ICsKPiArCQkJLyogRmluZCB0aGUgbmV4dCBvbGRl c3Qgc2lnbmFsLiBOb3RlIHRoYXQgYXMgd2UgaGF2ZQo+ICsJCQkgKiBub3QgYmVlbiBob2xkaW5n IHRoZSBsb2NrLCBhbm90aGVyIGNsaWVudCBtYXkKPiArCQkJICogaGF2ZSBpbnN0YWxsZWQgYW4g ZXZlbiBvbGRlciBzaWduYWwgdGhhbiB0aGUgb25lCj4gKwkJCSAqIHdlIGp1c3QgY29tcGxldGVk IC0gc28gZG91YmxlIGNoZWNrIHdlIGFyZSBzdGlsbAo+ICsJCQkgKiB0aGUgb2xkZXN0IGJlZm9y ZSBwaWNraW5nIHRoZSBuZXh0IG9uZS4KPiArCQkJICovCj4gKwkJCXNwaW5fbG9jaygmYi0+bG9j ayk7Cj4gKwkJCWlmIChzaWduYWwgPT0gYi0+Zmlyc3Rfc2lnbmFsKQo+ICsJCQkJYi0+Zmlyc3Rf c2lnbmFsID0gcmJfbmV4dCgmc2lnbmFsLT5ub2RlKTsKPiArCQkJcmJfZXJhc2UoJnNpZ25hbC0+ bm9kZSwgJmItPnNpZ25hbHMpOwo+ICsJCQlzcGluX3VubG9jaygmYi0+bG9jayk7Cj4gKwo+ICsJ CQlrZnJlZShzaWduYWwpOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCWlmIChrdGhyZWFkX3Nob3VsZF9z dG9wKCkpCj4gKwkJCQlicmVhazsKPiArCj4gKwkJCXNjaGVkdWxlKCk7Cj4gKwkJfQo+ICsJfSB3 aGlsZSAoMSk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KClNvIHRoZSB0aHJlYWQgaXMgb25seSBi ZWNhdXNlIGl0IGlzIGNvbnZlbmllbnQgdG8gcGx1ZyBpdCBpbiB0aGUgCmJyZWFkY3J1bWJzIGlu ZnJhc3RydWN0dXJlLiBPdGhlcndpc2UgdGhlIHByb2Nlc3NpbmcgYWJvdmUgY291bGQgYmUgZG9u ZSAKZnJvbSBhIGxpZ2h0ZXIgd2VpZ2h0IGNvbnRleHQgYXMgd2VsbCBzaW5jZSBub3RoaW5nIHNl ZW1zIHRvIG5lZWQgdGhlIApwcm9jZXNzIGNvbnRleHQuCgpPbmUgYWx0ZXJuYXRpdmUgY291bGQg cGVyaGFwcyBiZSB0byBhZGQgYSB3YWl0ZXItPndha2VfdXAgdmZ1bmMgYW5kIApzaWduYWxlcnMg Y291bGQgdGhlbiBwb3RlbnRpYWxseSB1c2UgYSB0YXNrbGV0PwoKPiArCj4gK2ludCBpbnRlbF9l bmdpbmVfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVl c3QpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVu Z2luZTsKPiArCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1 bWJzOwo+ICsJc3RydWN0IHJiX25vZGUgKnBhcmVudCwgKipwOwo+ICsJc3RydWN0IHNpZ25hbCAq c2lnbmFsOwo+ICsJYm9vbCBmaXJzdCwgd2FrZXVwOwo+ICsKPiArCWlmICh1bmxpa2VseShJU19F UlIoYi0+c2lnbmFsZXIpKSkKPiArCQlyZXR1cm4gUFRSX0VSUihiLT5zaWduYWxlcik7CgpJIGRv bid0IHNlZSB0aGF0IHRoZXJlIGlzIGEgZmFsbGJhY2sgaXMga3RocmVhZCBjcmVhdGlvbiBmYWls ZWQuIEl0IApzaG91bGQganVzdCBmYWlsIGluIGludGVsX2VuZ2luZV9pbml0X2JyZWFkY3J1bWJz IGlmIHRoYXQgaGFwcGVucy4KCj4gKwo+ICsJc2lnbmFsID0ga21hbGxvYyhzaXplb2YoKnNpZ25h bCksIEdGUF9BVE9NSUMpOwoKVWdoIEdGUF9BVE9NSUMgLSB3aHk/CgpBbmQgZXZlbiBzaG91bGQg eW91IGluc3RlYWQganVzdCBlbWJlZCBpbiBpbnRvIHJlcXVlc3RzPwoKPiArCWlmICh1bmxpa2Vs eSghc2lnbmFsKSkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlzaWduYWwtPndhaXQudGFz ayA9IGItPnNpZ25hbGVyOwo+ICsJc2lnbmFsLT53YWl0LnNlcW5vID0gcmVxdWVzdC0+c2Vxbm87 Cj4gKwo+ICsJc2lnbmFsLT5yZXF1ZXN0ID0gaTkxNV9nZW1fcmVxdWVzdF9yZWZlcmVuY2UocmVx dWVzdCk7Cj4gKwo+ICsJLyogRmlyc3QgYWRkIG91cnNlbHZlcyBpbnRvIHRoZSBsaXN0IG9mIHdh aXRlcnMsIGJ1dCByZWdpc3RlciBvdXIKPiArCSAqIGJvdHRvbS1oYWxmIGFzIHRoZSBzaWduYWxs ZXIgdGhyZWFkLiBBcyBwZXIgdXN1YWwsIG9ubHkgdGhlIG9sZGVzdAo+ICsJICogd2FpdGVyIChu b3QganVzdCBzaWduYWxsZXIpIGlzIHRhc2tlZCBhcyB0aGUgYm90dG9tLWhhbGYgd2FraW5nCj4g KwkgKiB1cCBhbGwgY29tcGxldGVkIHdhaXRlcnMgYWZ0ZXIgdGhlIHVzZXIgaW50ZXJydXB0Lgo+ ICsJICoKPiArCSAqIElmIHdlIGFyZSB0aGUgb2xkZXN0IHdhaXRlciwgZW5hYmxlIHRoZSBpcnEg KGFmdGVyIHdoaWNoIHdlCj4gKwkgKiBtdXN0IGRvdWJsZSBjaGVjayB0aGF0IHRoZSBzZXFubyBk aWQgbm90IGNvbXBsZXRlKS4KPiArCSAqLwo+ICsJd2FrZXVwID0gaW50ZWxfZW5naW5lX2FkZF93 YWl0KGVuZ2luZSwgJnNpZ25hbC0+d2FpdCk7Cj4gKwo+ICsJLyogTm93IGluc2VydCBvdXJzZWx2 ZXMgaW50byB0aGUgcmV0aXJlbWVudCBvcmRlcmVkIGxpc3Qgb2Ygc2lnbmFscwo+ICsJICogb24g dGhpcyBlbmdpbmUuIFdlIHRyYWNrIHRoZSBvbGRlc3Qgc2Vxbm8gYXMgdGhhdCB3aWxsIGJlIHRo ZQo+ICsJICogZmlyc3Qgc2lnbmFsIHRvIGNvbXBsZXRlLgo+ICsJICovCj4gKwlzcGluX2xvY2so JmItPmxvY2spOwo+ICsJcGFyZW50ID0gTlVMTDsKPiArCWZpcnN0ID0gdHJ1ZTsKPiArCXAgPSAm Yi0+c2lnbmFscy5yYl9ub2RlOwo+ICsJd2hpbGUgKCpwKSB7Cj4gKwkJcGFyZW50ID0gKnA7Cj4g KwkJaWYgKGk5MTVfc2Vxbm9fcGFzc2VkKHNpZ25hbC0+d2FpdC5zZXFubywKPiArCQkJCSAgICAg IHRvX3NpZ25hbChwYXJlbnQpLT53YWl0LnNlcW5vKSkgewo+ICsJCQlwID0gJnBhcmVudC0+cmJf cmlnaHQ7Cj4gKwkJCWZpcnN0ID0gZmFsc2U7Cj4gKwkJfSBlbHNlCj4gKwkJCXAgPSAmcGFyZW50 LT5yYl9sZWZ0Owo+ICsJfQo+ICsJcmJfbGlua19ub2RlKCZzaWduYWwtPm5vZGUsIHBhcmVudCwg cCk7Cj4gKwlyYl9pbnNlcnRfY29sb3IoJnNpZ25hbC0+bm9kZSwgJmItPnNpZ25hbHMpOwo+ICsJ aWYgKGZpcnN0KQo+ICsJCXNtcF9zdG9yZV9tYihiLT5maXJzdF9zaWduYWwsIHNpZ25hbCk7Cj4g KwlzcGluX3VubG9jaygmYi0+bG9jayk7Cj4gKwo+ICsJaWYgKHdha2V1cCkKPiArCQl3YWtlX3Vw X3Byb2Nlc3MoYi0+c2lnbmFsZXIpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICAgdm9p ZCBpbnRlbF9lbmdpbmVfaW5pdF9icmVhZGNydW1icyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gICB7Cj4gICAJc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiID0gJmVuZ2luZS0+ YnJlYWRjcnVtYnM7Cj4gQEAgLTMyOSwxMiArNDgwLDI0IEBAIHZvaWQgaW50ZWxfZW5naW5lX2lu aXRfYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCXNldHVw X3RpbWVyKCZiLT5mYWtlX2lycSwKPiAgIAkJICAgIGludGVsX2JyZWFkY3J1bWJzX2Zha2VfaXJx LAo+ICAgCQkgICAgKHVuc2lnbmVkIGxvbmcpZW5naW5lKTsKPiArCj4gKwkvKiBTcGF3biBhIHRo cmVhZCB0byBwcm92aWRlIGEgY29tbW9uIGJvdHRvbS1oYWxmIGZvciBhbGwgc2lnbmFscy4KPiAr CSAqIEFzIHRoaXMgaXMgYW4gYXN5bmNocm9ub3VzIGludGVyZmFjZSB3ZSBjYW5ub3Qgc3RlYWwg dGhlIGN1cnJlbnQKPiArCSAqIHRhc2sgZm9yIGhhbmRsaW5nIHRoZSBib3R0b20taGFsZiB0byB0 aGUgdXNlciBpbnRlcnJ1cHQsIHRoZXJlZm9yZQo+ICsJICogd2UgY3JlYXRlIGEgdGhyZWFkIHRv IGRvIHRoZSBjb2hlcmVudCBzZXFubyBkYW5jZSBhZnRlciB0aGUKPiArCSAqIGludGVycnVwdCBh bmQgdGhlbiBzaWduYWwgdGhlIHdhaXRxdWV1ZSAodmlhIHRoZSBkbWEtYnVmL2ZlbmNlKS4KPiAr CSAqLwo+ICsJYi0+c2lnbmFsZXIgPSBrdGhyZWFkX3J1bihpbnRlbF9icmVhZGNydW1ic19zaWdu YWxlciwKPiArCQkJCSAgZW5naW5lLCAiaXJxL2k5MTU6JWQiLCBlbmdpbmUtPmlkKTsKCkFzIGNv bW1lbnRlZCBhYm92ZSwgaW5pdCBzaG91bGQgZmFpbCBoZXJlIGJlY2F1c2UgaXQgY2Fubm90IHJ1 biB3aXRob3V0IAp0aGUgdGhyZWFkLgoKPiAgIH0KPgo+ICAgdm9pZCBpbnRlbF9lbmdpbmVfZmlu aV9icmVhZGNydW1icyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICB7Cj4gICAJ c3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiID0gJmVuZ2luZS0+YnJlYWRjcnVtYnM7Cj4KPiAr CWlmICghSVNfRVJSX09SX05VTEwoYi0+c2lnbmFsZXIpKQo+ICsJCWt0aHJlYWRfc3RvcChiLT5z aWduYWxlcik7Cj4gKwo+ICAgCWRlbF90aW1lcl9zeW5jKCZiLT5mYWtlX2lycSk7Cj4gICB9Cj4K PiBAQCAtMzU2LDMgKzUxOSwxOCBAQCB1bnNpZ25lZCBpbnRlbF9raWNrX3dhaXRlcnMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4KPiAgIAlyZXR1cm4gbWFzazsKPiAgIH0KPiArCj4g K3Vuc2lnbmVkIGludGVsX2tpY2tfc2lnbmFsZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gKwl1bnNpZ25l ZCBtYXNrID0gMDsKPiArCj4gKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1KSB7Cj4gKwkJ aWYgKHVubGlrZWx5KFJFQURfT05DRShlbmdpbmUtPmJyZWFkY3J1bWJzLmZpcnN0X3NpZ25hbCkp KSB7Cj4gKwkJCXdha2VfdXBfcHJvY2VzcyhlbmdpbmUtPmJyZWFkY3J1bWJzLnNpZ25hbGVyKTsK PiArCQkJbWFzayB8PSBpbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpOwo+ICsJCX0KPiArCX0KPiAr Cj4gKwlyZXR1cm4gbWFzazsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgKPiBpbmRleCAzMjRmODVlOGQ1NDAuLmY0YmNhMzhjYWVmMCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtMTQxLDYgKzE0MSw4IEBAIHN0cnVj dCAgaTkxNV9jdHhfd29ya2Fyb3VuZHMgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmo7Cj4gICB9Owo+Cj4gK3N0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdDsKPiArCj4gICBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NTsKPiAgIAljb25zdCBjaGFyCSpuYW1lOwo+IEBAIC0xNzksOCArMTgxLDExIEBAIHN0cnVjdCBp bnRlbF9lbmdpbmVfY3Mgewo+ICAgCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyB7Cj4gICAJCXNw aW5sb2NrX3QgbG9jazsgLyogcHJvdGVjdHMgdGhlIGxpc3RzIG9mIHJlcXVlc3RzICovCj4gICAJ CXN0cnVjdCByYl9yb290IHdhaXRlcnM7IC8qIHNvcnRlZCBieSByZXRpcmVtZW50LCBwcmlvcml0 eSAqLwo+ICsJCXN0cnVjdCByYl9yb290IHNpZ25hbHM7IC8qIHNvcnRlZCBieSByZXRpcmVtZW50 ICovCj4gICAJCXN0cnVjdCBpbnRlbF93YWl0ICpmaXJzdF93YWl0OyAvKiBvbGRlc3Qgd2FpdGVy IGJ5IHJldGlyZW1lbnQgKi8KPiAgIAkJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrbGV0OyAvKiBi aCBmb3IgdXNlciBpbnRlcnJ1cHRzICovCj4gKwkJc3RydWN0IHRhc2tfc3RydWN0ICpzaWduYWxl cjsgLyogdXNlZCBmb3IgZmVuY2Ugc2lnbmFsbGluZyAqLwo+ICsJCXZvaWQgKmZpcnN0X3NpZ25h bDsKPiAgIAkJc3RydWN0IHRpbWVyX2xpc3QgZmFrZV9pcnE7IC8qIHVzZWQgYWZ0ZXIgYSBtaXNz ZWQgaW50ZXJydXB0ICovCj4gICAJCWJvb2wgaXJxX2VuYWJsZWQ7Cj4gICAJCWJvb2wgcnBtX3dh a2Vsb2NrOwo+IEBAIC0xOTksNyArMjA0LDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7Cj4g ICAJdW5zaWduZWQgaXJxX3JlZmNvdW50OyAvKiBwcm90ZWN0ZWQgYnkgZGV2X3ByaXYtPmlycV9s b2NrICovCj4gICAJYm9vbAkJaXJxX3Bvc3RlZDsKPiAgIAl1MzIJCWlycV9lbmFibGVfbWFzazsJ LyogYml0bWFzayB0byBlbmFibGUgcmluZyBpbnRlcnJ1cHQgKi8KPiAtCXN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqdHJhY2VfaXJxX3JlcTsKPiAgIAlib29sIF9fbXVzdF9jaGVjayAoKmly cV9nZXQpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ICAgCXZvaWQJCSgqaXJxX3B1 dCkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4KPiBAQCAtNTQwLDYgKzU0NCw3IEBA IGJvb2wgaW50ZWxfZW5naW5lX2FkZF93YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwKPiAgIAkJCSAgIHN0cnVjdCBpbnRlbF93YWl0ICp3YWl0KTsKPiAgIHZvaWQgaW50ZWxfZW5n aW5lX3JlbW92ZV93YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgIAkJCSAg ICAgIHN0cnVjdCBpbnRlbF93YWl0ICp3YWl0KTsKPiAraW50IGludGVsX2VuZ2luZV9lbmFibGVf c2lnbmFsaW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCk7Cj4gICBzdGF0 aWMgaW5saW5lIGJvb2wgaW50ZWxfZW5naW5lX2hhc193YWl0ZXIoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+ICAgewo+ICAgCXJldHVybiBSRUFEX09OQ0UoZW5naW5lLT5icmVhZGNy dW1icy50YXNrbGV0KTsKPiBAQCAtNTU5LDUgKzU2NCw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp bnRlbF9lbmdpbmVfd2FrZXVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHZv aWQgaW50ZWxfZW5naW5lX2VuYWJsZV9mYWtlX2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpOwo+ICAgdm9pZCBpbnRlbF9lbmdpbmVfZmluaV9icmVhZGNydW1icyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpOwo+ICAgdW5zaWduZWQgaW50ZWxfa2lja193YWl0ZXJzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKPiArdW5zaWduZWQgaW50ZWxfa2lja19zaWdu YWxlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwo+Cj4gICAjZW5kaWYgLyogX0lO VEVMX1JJTkdCVUZGRVJfSF8gKi8KPgoKUmVnYXJkcywKClR2cnRrbwoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==