From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 3/4] drm/i915: expose engine availability through sysfs Date: Tue, 28 Nov 2017 18:17:54 +0000 Message-ID: References: <20171120122316.25830-1-lionel.g.landwerlin@intel.com> <20171120122316.25830-4-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4DB036E6AE for ; Tue, 28 Nov 2017 18:17:57 +0000 (UTC) In-Reply-To: <20171120122316.25830-4-lionel.g.landwerlin@intel.com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lionel Landwerlin , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIwLzExLzIwMTcgMTI6MjMsIExpb25lbCBMYW5kd2VybGluIHdyb3RlOgo+IFRoaXMgZW5h YmxlcyB1c2Vyc3BhY2UgdG8gZGlzY292ZXIgdGhlIGVuZ2luZXMgYXZhaWxhYmxlIG9uIHRoZSBH UFUuCj4gSGVyZSBpcyB0aGUgbGF5b3V0IG9uIGEgU2t5bGFrZSBHVDQ6Cj4gCj4gL3N5cy9kZXZp Y2VzL3BjaTAwMDA6MDAvMDAwMDowMDowMi4wL2RybS9jYXJkMC9ndAoKT24gdGhpcyBvbmUgSSB0 aGluayBKb29uYXMgaGFkIGEgY29uY2VybiB0aGF0IGl0IGlzIGRpZmZpY3VsdCBmb3IKdXNlcnNw YWNlIHRvIGdldCB0byB0aGUgc3lzZnMgcm9vdCBmcm9tIHRoZSBkcm0gZmlsZSBkZXNjcmlwdG9y LgoKTGlvbmVsIHBvaW50ZWQgb3V0IHRoYXQgZm9yIG1hc3RlciBub2RlcyBpdCBpcyBxdWl0ZSBl YXN5OgoKZnN0YXQoZmQsICZzdCk7CnNwcmludGYoc3lzZnNfcm9vdCwgIi9zeXMvZGV2L2NoYXIv JXU6JXUiLCBtYWpvcihzdC5zdF9yZGV2KSwgbWlub3Ioc3Quc3RfcmRldikpOwoKRm9yIHJlbmRl ciBub2RlcyBpdCBpcyB0cmlja2llciBpbiBhIHdheSB0aGF0IHRoZXkgd291bGQgaGF2ZSB0bwph ZGRpdGlvbmFsIHJlc29sdmUgYW4gdW5rbm93biBtYXN0ZXIgZHJtIGNhcmQgbnVtYmVyLiBGb3Ig aW5zdGFuY2U6Cgovc3lzL2Rldi9jaGFyLyV1OiV1L2RldmljZS9kcm0vY2FyZFgKCldoZXJlIHRo ZSAiWCIgaXMgdW5rbm93bi4KCkJ1dCwgaXMgaXQgZXZlbiBhbiB1c2UgY2FzZSBmb3IgcmVuZGVy IG5vZGVzIHRvIHRyeSBhbmQgZ2V0IHRvIHRoZQpzeXNmcyByb290IG9mIHRoZSBtYXN0ZXIgY2Fy ZD8gQXJlIHRoZXkgYWxsb3dlZCB0byBkbyBzbz8KClJlZ2FyZHMsCgpUdnJ0a28KCgo+IOKUnOKU gOKUgCBiY3MKPiDilILCoMKgIOKUlOKUgOKUgCAwCj4g4pSCwqDCoCAgICAg4pSc4pSA4pSAIGNh cGFiaWxpdGllcwo+IOKUgsKgwqAgICAgIOKUnOKUgOKUgCBjbGFzcwo+IOKUgsKgwqAgICAgIOKU lOKUgOKUgCBpZAo+IOKUnOKUgOKUgCByY3MKPiDilILCoMKgIOKUlOKUgOKUgCAwCj4g4pSCwqDC oCAgICAg4pSc4pSA4pSAIGNhcGFiaWxpdGllcwo+IOKUgsKgwqAgICAgIOKUnOKUgOKUgCBjbGFz cwo+IOKUgsKgwqAgICAgIOKUlOKUgOKUgCBpZAo+IOKUnOKUgOKUgCB2Y3MKPiDilILCoMKgIOKU nOKUgOKUgCAwCj4g4pSCwqDCoCDilILCoMKgIOKUnOKUgOKUgCBjYXBhYmlsaXRpZXMKPiDilILC oMKgIOKUgsKgwqAg4pSCwqDCoCDilJTilIDilIAgaGV2Ywo+IOKUgsKgwqAg4pSCwqDCoCDilJzi lIDilIAgY2xhc3MKPiDilILCoMKgIOKUgsKgwqAg4pSU4pSA4pSAIGlkCj4g4pSCwqDCoCDilJTi lIDilIAgMQo+IOKUgsKgwqAgICAgIOKUnOKUgOKUgCBjYXBhYmlsaXRpZXMKPiDilILCoMKgICAg ICDilJzilIDilIAgY2xhc3MKPiDilILCoMKgICAgICDilJTilIDilIAgaWQKPiDilJTilIDilIAg dmVjcwo+ICAgICAg4pSU4pSA4pSAIDAKPiAgICAgICAgICDilJzilIDilIAgY2FwYWJpbGl0aWVz Cj4gICAgICAgICAg4pSc4pSA4pSAIGNsYXNzCj4gICAgICAgICAg4pSU4pSA4pSAIGlkCj4gCj4g RnVydGhlciBjYXBhYmlsaXRpZXMgY2FuIGJlIGFkZGVkIGxhdGVyIGFzIGF0dHJpYnV0ZXMgb2Yg ZWFjaCBlbmdpbmUuCj4gCj4gdjI6IEFkZCBjYXBhYmlsaXRpZXMgc3ViIGRpcmVjdG9yeSAoVHZy dGtvKQo+ICAgICAgTW92ZSBlbmdpbmVzIGRpcmVjdG9yeSB0byBkcm0vY2FyZC9ndCAoQ2hyaXMp Cj4gCj4gU2lnbmVkLW9mZi1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJs aW5AaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgICAgIHwgICA1ICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICAg ICB8ICAgMSArCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMgICAgICAgfCAx NjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2VuZ2luZV9jcy5jICB8ICAxMiArKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaCB8ICAgNCArCj4gICA1IGZpbGVzIGNoYW5nZWQsIDE4MiBpbnNl cnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNzhjNDlkYjQyODBh Li5kYjU1MDMyMjIwN2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjcyOSw2 ICsyNzI5LDExIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiAgIAkJfSBvYTsKPiAgIAl9 IHBlcmY7Cj4gICAKPiArCXN0cnVjdCB7Cj4gKwkJc3RydWN0IGtvYmplY3Qga29iajsKPiArCQlz dHJ1Y3Qga29iamVjdCBjbGFzc2VzX2tvYmpzW01BWF9FTkdJTkVfQ0xBU1NdOwo+ICsJfSBndF90 b3BvbG9neTsKPiArCj4gICAJLyogQWJzdHJhY3QgdGhlIHN1Ym1pc3Npb24gbWVjaGFuaXNtIChs ZWdhY3kgcmluZ2J1ZmZlciBvciBleGVjbGlzdHMpIGF3YXkgKi8KPiAgIAlzdHJ1Y3Qgewo+ICAg CQl2b2lkICgqcmVzdW1lKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPiBpbmRleCA5NmM4MGZhMGZjYWMuLjE3YWVjZDRmYzZhYSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC0xODYsNiArMTg2LDcgQEAgc3RhdGljIGlubGluZSBi b29sIGk5MTVfbW1pb19yZWdfdmFsaWQoaTkxNV9yZWdfdCByZWcpCj4gICAjZGVmaW5lIFZJREVP X0VOSEFOQ0VNRU5UX0NMQVNTCTIKPiAgICNkZWZpbmUgQ09QWV9FTkdJTkVfQ0xBU1MJMwo+ICAg I2RlZmluZSBPVEhFUl9DTEFTUwkJNAo+ICsjZGVmaW5lIE1BWF9FTkdJTkVfQ0xBU1MJNQo+ICAg Cj4gICAvKiBQQ0kgY29uZmlnIHNwYWNlICovCj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNm cy5jCj4gaW5kZXggNzkxNzU5ZjYzMmUxLi5mZDA0ZDBiOTNlYWYgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9zeXNmcy5jCj4gQEAgLTU1OSw2ICs1NTksMTYwIEBAIHN0YXRpYyB2b2lkIGk5MTVf c2V0dXBfZXJyb3JfY2FwdHVyZShzdHJ1Y3QgZGV2aWNlICprZGV2KSB7fQo+ICAgc3RhdGljIHZv aWQgaTkxNV90ZWFyZG93bl9lcnJvcl9jYXB0dXJlKHN0cnVjdCBkZXZpY2UgKmtkZXYpIHt9Cj4g ICAjZW5kaWYKPiAgIAo+ICtzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSBlbmdpbmVfaWRfYXR0ciA9 IHsKPiArCS5uYW1lID0gImlkIiwKPiArCS5tb2RlID0gMDQ0NCwKPiArfTsKPiArCj4gK3N0YXRp YyBzdHJ1Y3QgYXR0cmlidXRlIGVuZ2luZV9jbGFzc19hdHRyID0gewo+ICsJLm5hbWUgPSAiY2xh c3MiLAo+ICsJLm1vZGUgPSAwNDQ0LAo+ICt9Owo+ICsKPiArc3RhdGljIHNzaXplX3QKPiArc2hv d19lbmdpbmVfYXR0cihzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGF0dHJpYnV0ZSAqYXR0 ciwgY2hhciAqYnVmKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPQo+ ICsJCWNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzLCBpbnN0YW5jZV9r b2JqKTsKPiArCj4gKwlpZiAoYXR0ciA9PSAmZW5naW5lX2lkX2F0dHIpCj4gKwkJcmV0dXJuIHNw cmludGYoYnVmLCAiJWhodVxuIiwgZW5naW5lLT51YWJpX2lkKTsKPiArCWlmIChhdHRyID09ICZl bmdpbmVfY2xhc3NfYXR0cikKPiArCQlyZXR1cm4gc3ByaW50ZihidWYsICIlaGh1XG4iLCBlbmdp bmUtPnVhYmlfY2xhc3MpOwo+ICsJcmV0dXJuIHNwcmludGYoYnVmLCAiXG4iKTsKPiArfQo+ICsK PiArc3RhdGljIGNvbnN0IHN0cnVjdCBzeXNmc19vcHMgZW5naW5lX29wcyA9IHsKPiArCS5zaG93 ID0gc2hvd19lbmdpbmVfYXR0ciwKPiArfTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3Qga29ial90eXBl IGVuZ2luZV90eXBlID0gewo+ICsJLnN5c2ZzX29wcyA9ICZlbmdpbmVfb3BzLAo+ICt9Owo+ICsK PiArc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgZW5naW5lX2NhcGFiaWxpdHlfaGV2Y19hdHRyID0g ewo+ICsJLm5hbWUgPSAiaGV2YyIsCj4gKwkubW9kZSA9IDA0NDQsCj4gK307Cj4gKwo+ICtzdGF0 aWMgc3NpemVfdAo+ICtzaG93X2VuZ2luZV9jYXBhYmlsaXRpZXNfYXR0cihzdHJ1Y3Qga29iamVj dCAqa29iaiwgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQo+ICt7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPQo+ICsJCWNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzLCBjYXBhYmlsaXRpZXNfa29iaik7Cj4gKwo+ICsJaWYgKGF0dHIg PT0gJmVuZ2luZV9jYXBhYmlsaXR5X2hldmNfYXR0cikKPiArCQlyZXR1cm4gc3ByaW50ZihidWYs ICIlaVxuIiwgSU5URUxfR0VOKGVuZ2luZS0+aTkxNSkgPj0gOCk7Cj4gKwlyZXR1cm4gc3ByaW50 ZihidWYsICJcbiIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHN5c2ZzX29wcyBl bmdpbmVfY2FwYWJpbGl0aWVzX29wcyA9IHsKPiArCS5zaG93ID0gc2hvd19lbmdpbmVfY2FwYWJp bGl0aWVzX2F0dHIsCj4gK307Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGtvYmpfdHlwZSBlbmdpbmVf Y2FwYWJpbGl0aWVzX3R5cGUgPSB7Cj4gKwkuc3lzZnNfb3BzID0gJmVuZ2luZV9jYXBhYmlsaXRp ZXNfb3BzLAo+ICt9Owo+ICsKPiArc3RhdGljIGludCBpOTE1X3NldHVwX2VuZ2luZXNfc3lzZnMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkJICAgIHN0cnVjdCBrb2Jq ZWN0ICpndF9rb2JqKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmVfZm9y X2NsYXNzLCAqZW5naW5lOwo+ICsJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWRfZm9yX2NsYXNzLCBp ZDsKPiArCWJvb2wgcmVnaXN0cmVkW01BWF9FTkdJTkVfQ0xBU1NdID0geyBmYWxzZSwgfTsKPiAr CWludCByZXQ7Cj4gKwo+ICsJZm9yX2VhY2hfZW5naW5lKGVuZ2luZV9mb3JfY2xhc3MsIGRldl9w cml2LCBpZF9mb3JfY2xhc3MpIHsKPiArCQlzdHJ1Y3Qga29iamVjdCAqZW5naW5lX2NsYXNzX2tv YmogPQo+ICsJCQkmZGV2X3ByaXYtPmd0X3RvcG9sb2d5LmNsYXNzZXNfa29ianNbZW5naW5lX2Zv cl9jbGFzcy0+Y2xhc3NdOwo+ICsKPiArCQlpZiAocmVnaXN0cmVkW2VuZ2luZV9mb3JfY2xhc3Mt PmNsYXNzXSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCXJlZ2lzdHJlZFtlbmdpbmVfZm9yX2Ns YXNzLT5jbGFzc10gPSB0cnVlOwo+ICsKPiArCQlyZXQgPSBrb2JqZWN0X2luaXRfYW5kX2FkZChl bmdpbmVfY2xhc3Nfa29iaiwKPiArCQkJCQkgICBndF9rb2JqLT5rdHlwZSwKPiArCQkJCQkgICBn dF9rb2JqLAo+ICsJCQkJCSAgIGludGVsX2VuZ2luZV9nZXRfY2xhc3NfbmFtZShlbmdpbmVfZm9y X2NsYXNzKSk7Cj4gKwkJaWYgKHJldCkKPiArCQkJcmV0dXJuIHJldDsKPiArCj4gKwkJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7Cj4gKwkJCWlmIChlbmdpbmUtPmNsYXNz ICE9IGVuZ2luZV9mb3JfY2xhc3MtPmNsYXNzKQo+ICsJCQkJY29udGludWU7Cj4gKwo+ICsJCQly ZXQgPSBrb2JqZWN0X2luaXRfYW5kX2FkZCgmZW5naW5lLT5pbnN0YW5jZV9rb2JqLAo+ICsJCQkJ CQkgICAmZW5naW5lX3R5cGUsCj4gKwkJCQkJCSAgIGVuZ2luZV9jbGFzc19rb2JqLAo+ICsJCQkJ CQkgICAiJWQiLCBlbmdpbmUtPmluc3RhbmNlKTsKPiArCQkJaWYgKHJldCkKPiArCQkJCXJldHVy biByZXQ7Cj4gKwo+ICsJCQlyZXQgPSBzeXNmc19jcmVhdGVfZmlsZSgmZW5naW5lLT5pbnN0YW5j ZV9rb2JqLAo+ICsJCQkJCQkmZW5naW5lX2lkX2F0dHIpOwo+ICsJCQlpZiAocmV0KQo+ICsJCQkJ cmV0dXJuIHJldDsKPiArCQkJcmV0ID0gc3lzZnNfY3JlYXRlX2ZpbGUoJmVuZ2luZS0+aW5zdGFu Y2Vfa29iaiwKPiArCQkJCQkJJmVuZ2luZV9jbGFzc19hdHRyKTsKPiArCQkJaWYgKHJldCkKPiAr CQkJCXJldHVybiByZXQ7Cj4gKwo+ICsJCQlyZXQgPSBrb2JqZWN0X2luaXRfYW5kX2FkZCgmZW5n aW5lLT5jYXBhYmlsaXRpZXNfa29iaiwKPiArCQkJCQkJICAgJmVuZ2luZV9jYXBhYmlsaXRpZXNf dHlwZSwKPiArCQkJCQkJICAgJmVuZ2luZS0+aW5zdGFuY2Vfa29iaiwKPiArCQkJCQkJICAgImNh cGFiaWxpdGllcyIpOwo+ICsJCQlpZiAocmV0KQo+ICsJCQkJcmV0dXJuIHJldDsKPiArCj4gKwkJ CWlmIChlbmdpbmUtPmlkID09IFZDUykgewo+ICsJCQkJcmV0ID0gc3lzZnNfY3JlYXRlX2ZpbGUo JmVuZ2luZS0+Y2FwYWJpbGl0aWVzX2tvYmosCj4gKwkJCQkJCQkmZW5naW5lX2NhcGFiaWxpdHlf aGV2Y19hdHRyKTsKPiArCQkJCWlmIChyZXQpCj4gKwkJCQkJcmV0dXJuIHJldDsKPiArCQkJfQo+ ICsJCX0KPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgaTkx NV90ZWFyZG93bl9lbmdpbmVzX3N5c2ZzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiArewo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ICsJZW51bSBpbnRl bF9lbmdpbmVfaWQgaWQ7Cj4gKwo+ICsJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYs IGlkKSB7Cj4gKwkJc3lzZnNfcmVtb3ZlX2ZpbGUoJmVuZ2luZS0+aW5zdGFuY2Vfa29iaiwgJmVu Z2luZV9pZF9hdHRyKTsKPiArCQlzeXNmc19yZW1vdmVfZmlsZSgmZW5naW5lLT5pbnN0YW5jZV9r b2JqLCAmZW5naW5lX2NsYXNzX2F0dHIpOwo+ICsJCXN5c2ZzX3JlbW92ZV9maWxlKCZlbmdpbmUt PmNhcGFiaWxpdGllc19rb2JqLAo+ICsJCQkJICAmZW5naW5lX2NhcGFiaWxpdHlfaGV2Y19hdHRy KTsKPiArCX0KPiArfQo+ICsKPiArc3RhdGljIGludCBpOTE1X3NldHVwX2d0X3N5c2ZzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJICAgICAgIHN0cnVjdCBkZXZpY2Ug KmtkZXYpCj4gK3sKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0ga29iamVjdF9pbml0X2FuZF9h ZGQoJmRldl9wcml2LT5ndF90b3BvbG9neS5rb2JqLAo+ICsJCQkJICAga2Rldi0+a29iai5rdHlw ZSwKPiArCQkJCSAgICZrZGV2LT5rb2JqLAo+ICsJCQkJICAgImd0Iik7Cj4gKwlpZiAocmV0KQo+ ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0dXJuIGk5MTVfc2V0dXBfZW5naW5lc19zeXNmcyhk ZXZfcHJpdiwgJmRldl9wcml2LT5ndF90b3BvbG9neS5rb2JqKTsKPiArfQo+ICsKPiArc3RhdGlj IHZvaWQgaTkxNV90ZWFyZG93bl9ndF9zeXNmcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gK3sKPiArCWk5MTVfdGVhcmRvd25fZW5naW5lc19zeXNmcyhkZXZfcHJpdik7Cj4g Kwo+ICsJa29iamVjdF9nZXQoJmRldl9wcml2LT5ndF90b3BvbG9neS5rb2JqKTsKPiArCWtvYmpl Y3RfZGVsKCZkZXZfcHJpdi0+Z3RfdG9wb2xvZ3kua29iaik7Cj4gK30KPiArCj4gICB2b2lkIGk5 MTVfc2V0dXBfc3lzZnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+ ICAgCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSBkZXZfcHJpdi0+ZHJtLnByaW1hcnktPmtkZXY7Cj4g QEAgLTYwNSw2ICs3NTksMTAgQEAgdm9pZCBpOTE1X3NldHVwX3N5c2ZzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlpZiAocmV0KQo+ICAgCQlEUk1fRVJST1IoIlJQUyBz eXNmcyBzZXR1cCBmYWlsZWRcbiIpOwo+ICAgCj4gKwlyZXQgPSBpOTE1X3NldHVwX2d0X3N5c2Zz KGRldl9wcml2LCBrZGV2KTsKPiArCWlmIChyZXQpCj4gKwkJRFJNX0VSUk9SKCJHVCBzeXNmcyBz ZXR1cCBmYWlsZWRcbiIpOwo+ICsKPiAgIAlpOTE1X3NldHVwX2Vycm9yX2NhcHR1cmUoa2Rldik7 Cj4gICB9Cj4gICAKPiBAQCAtNjE0LDYgKzc3Miw4IEBAIHZvaWQgaTkxNV90ZWFyZG93bl9zeXNm cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAKPiAgIAlpOTE1X3RlYXJk b3duX2Vycm9yX2NhcHR1cmUoa2Rldik7Cj4gICAKPiArCWk5MTVfdGVhcmRvd25fZ3Rfc3lzZnMo ZGV2X3ByaXYpOwo+ICsKPiAgIAlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hF UlJZVklFVyhkZXZfcHJpdikpCj4gICAJCXN5c2ZzX3JlbW92ZV9maWxlcygma2Rldi0+a29iaiwg dmx2X2F0dHJzKTsKPiAgIAllbHNlCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2Nz LmMKPiBpbmRleCA5ODk3YzdmNzhjNTEuLjlkODJkZmJiNDVkYiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gQEAgLTEzMyw2ICsxMzMsMTggQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBlbmdpbmVfaW5mbyBpbnRlbF9lbmdpbmVzW10gPSB7Cj4gICAJfSwKPiAgIH07 Cj4gICAKPiArLyoqCj4gKyAqIGludGVsX2VuZ2luZV9nZXRfY2xhc3NfbmFtZSgpIC0gcmV0dXJu IHRoZSBuYW1lIG9mIHRoZSBjbGFzcyBmb3IgYW4gZW5naW5lCj4gKyAqIEBlbmdpbmU6IGVuZ2lu ZQo+ICsgKgo+ICsgKiBSZXR1cm46IGEgc3RyaW5nIG5hbWluZyB0aGUgY2xhc3Mgb2YgdGhlIGVu Z2luZQo+ICsgKi8KPiArY29uc3QgY2hhciAqCj4gK2ludGVsX2VuZ2luZV9nZXRfY2xhc3NfbmFt ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3sKPiArCXJldHVybiBpbnRlbF9l bmdpbmVfY2xhc3Nlc1tlbmdpbmUtPmNsYXNzXS5uYW1lOwo+ICt9Cj4gKwo+ICAgLyoqCj4gICAg KiBfX19pbnRlbF9lbmdpbmVfY29udGV4dF9zaXplKCkgLSByZXR1cm4gdGhlIHNpemUgb2YgdGhl IGNvbnRleHQgZm9yIGFuIGVuZ2luZQo+ICAgICogQGRldl9wcml2OiBpOTE1IGRldmljZSBwcml2 YXRlCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IDVmOTY1 MzNlNTM0MS4uZWNhNmM4N2ExZTA2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaAo+IEBAIC0yOTAsNiArMjkwLDkgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7 Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7Cj4gICAJY2hhciBuYW1lW0lOVEVM X0VOR0lORV9DU19NQVhfTkFNRV07Cj4gICAKPiArCXN0cnVjdCBrb2JqZWN0IGluc3RhbmNlX2tv Ymo7Cj4gKwlzdHJ1Y3Qga29iamVjdCBjYXBhYmlsaXRpZXNfa29iajsKPiArCj4gICAJZW51bSBp bnRlbF9lbmdpbmVfaWQgaWQ7Cj4gICAJdW5zaWduZWQgaW50IGh3X2lkOwo+ICAgCXVuc2lnbmVk IGludCBndWNfaWQ7Cj4gQEAgLTkyNCw2ICs5MjcsNyBAQCBnZW44X2VtaXRfZ2d0dF93cml0ZSh1 MzIgKmNzLCB1MzIgdmFsdWUsIHUzMiBndHRfb2Zmc2V0KQo+ICAgCXJldHVybiBjczsKPiAgIH0K PiAgIAo+ICtjb25zdCBjaGFyICppbnRlbF9lbmdpbmVfZ2V0X2NsYXNzX25hbWUoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiAgIGJvb2wgaW50ZWxfZW5naW5lX2lzX2lkbGUoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiAgIGJvb2wgaW50ZWxfZW5naW5lc19hcmVf aWRsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAgCj4gCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=