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: Mon, 20 Nov 2017 15:57:49 +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"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 84A4589B01 for ; Mon, 20 Nov 2017 15:57:52 +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 Y2VzL3BjaTAwMDA6MDAvMDAwMDowMDowMi4wL2RybS9jYXJkMC9ndAo+IOKUnOKUgOKUgCBiY3MK Ckl0IG5pZ2dsZXMgbWUgYSBiaXQgdGhhdCBlbmdpbmUgY2xhc3MgbmFtZXMgYXJlIGRpcmVjdGx5 IHVuZGVyIGd0LiBJZiB3ZSAKZW5kIHVwIGhhdmluZyB0byBhZGQgc29tZXRoaW5nIGVsc2UgdW5k ZXIgZ3QgdGhlbiBpdCB3aWxsIGJlIGEgbGl0dGxlIApiaXQgb2YgYW4gZW51bWVyYXRpb24gdHJv dWJsZSBmb3IgdXNlcnNwYWNlLgoKU28gSSB3YW50ZWQgdG8gc3VnZ2VzdCBndC9lbmdpbmVzL3Jj cyBpZiB0aGF0IG1ha2VzIHNlbnNlIHRvIHBlb3BsZT8KClJlZ2FyZHMsCgpUdnJ0a28KCj4g4pSC wqDCoCDilJTilIDilIAgMAo+IOKUgsKgwqAgICAgIOKUnOKUgOKUgCBjYXBhYmlsaXRpZXMKPiDi lILCoMKgICAgICDilJzilIDilIAgY2xhc3MKPiDilILCoMKgICAgICDilJTilIDilIAgaWQKPiDi lJzilIDilIAgcmNzCj4g4pSCwqDCoCDilJTilIDilIAgMAo+IOKUgsKgwqAgICAgIOKUnOKUgOKU gCBjYXBhYmlsaXRpZXMKPiDilILCoMKgICAgICDilJzilIDilIAgY2xhc3MKPiDilILCoMKgICAg ICDilJTilIDilIAgaWQKPiDilJzilIDilIAgdmNzCj4g4pSCwqDCoCDilJzilIDilIAgMAo+IOKU gsKgwqAg4pSCwqDCoCDilJzilIDilIAgY2FwYWJpbGl0aWVzCj4g4pSCwqDCoCDilILCoMKgIOKU gsKgwqAg4pSU4pSA4pSAIGhldmMKPiDilILCoMKgIOKUgsKgwqAg4pSc4pSA4pSAIGNsYXNzCj4g 4pSCwqDCoCDilILCoMKgIOKUlOKUgOKUgCBpZAo+IOKUgsKgwqAg4pSU4pSA4pSAIDEKPiDilILC oMKgICAgICDilJzilIDilIAgY2FwYWJpbGl0aWVzCj4g4pSCwqDCoCAgICAg4pSc4pSA4pSAIGNs YXNzCj4g4pSCwqDCoCAgICAg4pSU4pSA4pSAIGlkCj4g4pSU4pSA4pSAIHZlY3MKPiAgICAgIOKU lOKUgOKUgCAwCj4gICAgICAgICAg4pSc4pSA4pSAIGNhcGFiaWxpdGllcwo+ICAgICAgICAgIOKU nOKUgOKUgCBjbGFzcwo+ICAgICAgICAgIOKUlOKUgOKUgCBpZAo+IAo+IEZ1cnRoZXIgY2FwYWJp bGl0aWVzIGNhbiBiZSBhZGRlZCBsYXRlciBhcyBhdHRyaWJ1dGVzIG9mIGVhY2ggZW5naW5lLgo+ IAo+IHYyOiBBZGQgY2FwYWJpbGl0aWVzIHN1YiBkaXJlY3RvcnkgKFR2cnRrbykKPiAgICAgIE1v dmUgZW5naW5lcyBkaXJlY3RvcnkgdG8gZHJtL2NhcmQvZ3QgKENocmlzKQo+IAo+IFNpZ25lZC1v ZmYtYnk6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4K PiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAgNSAr Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgfCAgIDEgKwo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jICAgICAgIHwgMTYwICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdp bmVfY3MuYyAgfCAgMTIgKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmggfCAgIDQgKwo+ICAgNSBmaWxlcyBjaGFuZ2VkLCAxODIgaW5zZXJ0aW9ucygrKQo+IAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDc4YzQ5ZGI0MjgwYS4uZGI1NTAzMjIyMDdj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTI3MjksNiArMjcyOSwxMSBAQCBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gICAJCX0gb2E7Cj4gICAJfSBwZXJmOwo+ICAgCj4g KwlzdHJ1Y3Qgewo+ICsJCXN0cnVjdCBrb2JqZWN0IGtvYmo7Cj4gKwkJc3RydWN0IGtvYmplY3Qg Y2xhc3Nlc19rb2Jqc1tNQVhfRU5HSU5FX0NMQVNTXTsKPiArCX0gZ3RfdG9wb2xvZ3k7Cj4gKwo+ ICAgCS8qIEFic3RyYWN0IHRoZSBzdWJtaXNzaW9uIG1lY2hhbmlzbSAobGVnYWN5IHJpbmdidWZm ZXIgb3IgZXhlY2xpc3RzKSBhd2F5ICovCj4gICAJc3RydWN0IHsKPiAgIAkJdm9pZCAoKnJlc3Vt ZSkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4g aW5kZXggOTZjODBmYTBmY2FjLi4xN2FlY2Q0ZmM2YWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKPiBAQCAtMTg2LDYgKzE4Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X21taW9f cmVnX3ZhbGlkKGk5MTVfcmVnX3QgcmVnKQo+ICAgI2RlZmluZSBWSURFT19FTkhBTkNFTUVOVF9D TEFTUwkyCj4gICAjZGVmaW5lIENPUFlfRU5HSU5FX0NMQVNTCTMKPiAgICNkZWZpbmUgT1RIRVJf Q0xBU1MJCTQKPiArI2RlZmluZSBNQVhfRU5HSU5FX0NMQVNTCTUKPiAgIAo+ICAgLyogUENJIGNv bmZpZyBzcGFjZSAqLwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfc3lzZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwo+IGluZGV4IDc5 MTc1OWY2MzJlMS4uZmQwNGQwYjkzZWFmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfc3lzZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMu Ywo+IEBAIC01NTksNiArNTU5LDE2MCBAQCBzdGF0aWMgdm9pZCBpOTE1X3NldHVwX2Vycm9yX2Nh cHR1cmUoc3RydWN0IGRldmljZSAqa2Rldikge30KPiAgIHN0YXRpYyB2b2lkIGk5MTVfdGVhcmRv d25fZXJyb3JfY2FwdHVyZShzdHJ1Y3QgZGV2aWNlICprZGV2KSB7fQo+ICAgI2VuZGlmCj4gICAK PiArc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgZW5naW5lX2lkX2F0dHIgPSB7Cj4gKwkubmFtZSA9 ICJpZCIsCj4gKwkubW9kZSA9IDA0NDQsCj4gK307Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGF0dHJp YnV0ZSBlbmdpbmVfY2xhc3NfYXR0ciA9IHsKPiArCS5uYW1lID0gImNsYXNzIiwKPiArCS5tb2Rl ID0gMDQ0NCwKPiArfTsKPiArCj4gK3N0YXRpYyBzc2l6ZV90Cj4gK3Nob3dfZW5naW5lX2F0dHIo c3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikK PiArewo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0KPiArCQljb250YWluZXJf b2Yoa29iaiwgc3RydWN0IGludGVsX2VuZ2luZV9jcywgaW5zdGFuY2Vfa29iaik7Cj4gKwo+ICsJ aWYgKGF0dHIgPT0gJmVuZ2luZV9pZF9hdHRyKQo+ICsJCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVo aHVcbiIsIGVuZ2luZS0+dWFiaV9pZCk7Cj4gKwlpZiAoYXR0ciA9PSAmZW5naW5lX2NsYXNzX2F0 dHIpCj4gKwkJcmV0dXJuIHNwcmludGYoYnVmLCAiJWhodVxuIiwgZW5naW5lLT51YWJpX2NsYXNz KTsKPiArCXJldHVybiBzcHJpbnRmKGJ1ZiwgIlxuIik7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgc3lzZnNfb3BzIGVuZ2luZV9vcHMgPSB7Cj4gKwkuc2hvdyA9IHNob3dfZW5naW5l X2F0dHIsCj4gK307Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGtvYmpfdHlwZSBlbmdpbmVfdHlwZSA9 IHsKPiArCS5zeXNmc19vcHMgPSAmZW5naW5lX29wcywKPiArfTsKPiArCj4gK3N0YXRpYyBzdHJ1 Y3QgYXR0cmlidXRlIGVuZ2luZV9jYXBhYmlsaXR5X2hldmNfYXR0ciA9IHsKPiArCS5uYW1lID0g ImhldmMiLAo+ICsJLm1vZGUgPSAwNDQ0LAo+ICt9Owo+ICsKPiArc3RhdGljIHNzaXplX3QKPiAr c2hvd19lbmdpbmVfY2FwYWJpbGl0aWVzX2F0dHIoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVj dCBhdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKPiArewo+ICsJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lID0KPiArCQljb250YWluZXJfb2Yoa29iaiwgc3RydWN0IGludGVsX2VuZ2lu ZV9jcywgY2FwYWJpbGl0aWVzX2tvYmopOwo+ICsKPiArCWlmIChhdHRyID09ICZlbmdpbmVfY2Fw YWJpbGl0eV9oZXZjX2F0dHIpCj4gKwkJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIElOVEVM X0dFTihlbmdpbmUtPmk5MTUpID49IDgpOwo+ICsJcmV0dXJuIHNwcmludGYoYnVmLCAiXG4iKTsK PiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBzeXNmc19vcHMgZW5naW5lX2NhcGFiaWxp dGllc19vcHMgPSB7Cj4gKwkuc2hvdyA9IHNob3dfZW5naW5lX2NhcGFiaWxpdGllc19hdHRyLAo+ ICt9Owo+ICsKPiArc3RhdGljIHN0cnVjdCBrb2JqX3R5cGUgZW5naW5lX2NhcGFiaWxpdGllc190 eXBlID0gewo+ICsJLnN5c2ZzX29wcyA9ICZlbmdpbmVfY2FwYWJpbGl0aWVzX29wcywKPiArfTsK PiArCj4gK3N0YXRpYyBpbnQgaTkxNV9zZXR1cF9lbmdpbmVzX3N5c2ZzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCSAgICBzdHJ1Y3Qga29iamVjdCAqZ3Rfa29iaikK PiArewo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lX2Zvcl9jbGFzcywgKmVuZ2lu ZTsKPiArCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkX2Zvcl9jbGFzcywgaWQ7Cj4gKwlib29sIHJl Z2lzdHJlZFtNQVhfRU5HSU5FX0NMQVNTXSA9IHsgZmFsc2UsIH07Cj4gKwlpbnQgcmV0Owo+ICsK PiArCWZvcl9lYWNoX2VuZ2luZShlbmdpbmVfZm9yX2NsYXNzLCBkZXZfcHJpdiwgaWRfZm9yX2Ns YXNzKSB7Cj4gKwkJc3RydWN0IGtvYmplY3QgKmVuZ2luZV9jbGFzc19rb2JqID0KPiArCQkJJmRl dl9wcml2LT5ndF90b3BvbG9neS5jbGFzc2VzX2tvYmpzW2VuZ2luZV9mb3JfY2xhc3MtPmNsYXNz XTsKPiArCj4gKwkJaWYgKHJlZ2lzdHJlZFtlbmdpbmVfZm9yX2NsYXNzLT5jbGFzc10pCj4gKwkJ CWNvbnRpbnVlOwo+ICsKPiArCQlyZWdpc3RyZWRbZW5naW5lX2Zvcl9jbGFzcy0+Y2xhc3NdID0g dHJ1ZTsKPiArCj4gKwkJcmV0ID0ga29iamVjdF9pbml0X2FuZF9hZGQoZW5naW5lX2NsYXNzX2tv YmosCj4gKwkJCQkJICAgZ3Rfa29iai0+a3R5cGUsCj4gKwkJCQkJICAgZ3Rfa29iaiwKPiArCQkJ CQkgICBpbnRlbF9lbmdpbmVfZ2V0X2NsYXNzX25hbWUoZW5naW5lX2Zvcl9jbGFzcykpOwo+ICsJ CWlmIChyZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwo+ICsJCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2LCBpZCkgewo+ICsJCQlpZiAoZW5naW5lLT5jbGFzcyAhPSBlbmdpbmVfZm9y X2NsYXNzLT5jbGFzcykKPiArCQkJCWNvbnRpbnVlOwo+ICsKPiArCQkJcmV0ID0ga29iamVjdF9p bml0X2FuZF9hZGQoJmVuZ2luZS0+aW5zdGFuY2Vfa29iaiwKPiArCQkJCQkJICAgJmVuZ2luZV90 eXBlLAo+ICsJCQkJCQkgICBlbmdpbmVfY2xhc3Nfa29iaiwKPiArCQkJCQkJICAgIiVkIiwgZW5n aW5lLT5pbnN0YW5jZSk7Cj4gKwkJCWlmIChyZXQpCj4gKwkJCQlyZXR1cm4gcmV0Owo+ICsKPiAr CQkJcmV0ID0gc3lzZnNfY3JlYXRlX2ZpbGUoJmVuZ2luZS0+aW5zdGFuY2Vfa29iaiwKPiArCQkJ CQkJJmVuZ2luZV9pZF9hdHRyKTsKPiArCQkJaWYgKHJldCkKPiArCQkJCXJldHVybiByZXQ7Cj4g KwkJCXJldCA9IHN5c2ZzX2NyZWF0ZV9maWxlKCZlbmdpbmUtPmluc3RhbmNlX2tvYmosCj4gKwkJ CQkJCSZlbmdpbmVfY2xhc3NfYXR0cik7Cj4gKwkJCWlmIChyZXQpCj4gKwkJCQlyZXR1cm4gcmV0 Owo+ICsKPiArCQkJcmV0ID0ga29iamVjdF9pbml0X2FuZF9hZGQoJmVuZ2luZS0+Y2FwYWJpbGl0 aWVzX2tvYmosCj4gKwkJCQkJCSAgICZlbmdpbmVfY2FwYWJpbGl0aWVzX3R5cGUsCj4gKwkJCQkJ CSAgICZlbmdpbmUtPmluc3RhbmNlX2tvYmosCj4gKwkJCQkJCSAgICJjYXBhYmlsaXRpZXMiKTsK PiArCQkJaWYgKHJldCkKPiArCQkJCXJldHVybiByZXQ7Cj4gKwo+ICsJCQlpZiAoZW5naW5lLT5p ZCA9PSBWQ1MpIHsKPiArCQkJCXJldCA9IHN5c2ZzX2NyZWF0ZV9maWxlKCZlbmdpbmUtPmNhcGFi aWxpdGllc19rb2JqLAo+ICsJCQkJCQkJJmVuZ2luZV9jYXBhYmlsaXR5X2hldmNfYXR0cik7Cj4g KwkJCQlpZiAocmV0KQo+ICsJCQkJCXJldHVybiByZXQ7Cj4gKwkJCX0KPiArCQl9Cj4gKwl9Cj4g Kwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGk5MTVfdGVhcmRvd25fZW5n aW5lc19zeXNmcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCXN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiArCWVudW0gaW50ZWxfZW5naW5lX2lkIGlk Owo+ICsKPiArCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgewo+ICsJCXN5 c2ZzX3JlbW92ZV9maWxlKCZlbmdpbmUtPmluc3RhbmNlX2tvYmosICZlbmdpbmVfaWRfYXR0cik7 Cj4gKwkJc3lzZnNfcmVtb3ZlX2ZpbGUoJmVuZ2luZS0+aW5zdGFuY2Vfa29iaiwgJmVuZ2luZV9j bGFzc19hdHRyKTsKPiArCQlzeXNmc19yZW1vdmVfZmlsZSgmZW5naW5lLT5jYXBhYmlsaXRpZXNf a29iaiwKPiArCQkJCSAgJmVuZ2luZV9jYXBhYmlsaXR5X2hldmNfYXR0cik7Cj4gKwl9Cj4gK30K PiArCj4gK3N0YXRpYyBpbnQgaTkxNV9zZXR1cF9ndF9zeXNmcyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgICAgICBzdHJ1Y3QgZGV2aWNlICprZGV2KQo+ICt7Cj4g KwlpbnQgcmV0Owo+ICsKPiArCXJldCA9IGtvYmplY3RfaW5pdF9hbmRfYWRkKCZkZXZfcHJpdi0+ Z3RfdG9wb2xvZ3kua29iaiwKPiArCQkJCSAgIGtkZXYtPmtvYmoua3R5cGUsCj4gKwkJCQkgICAm a2Rldi0+a29iaiwKPiArCQkJCSAgICJndCIpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0 Owo+ICsKPiArCXJldHVybiBpOTE1X3NldHVwX2VuZ2luZXNfc3lzZnMoZGV2X3ByaXYsICZkZXZf cHJpdi0+Z3RfdG9wb2xvZ3kua29iaik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGk5MTVfdGVh cmRvd25fZ3Rfc3lzZnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4g KwlpOTE1X3RlYXJkb3duX2VuZ2luZXNfc3lzZnMoZGV2X3ByaXYpOwo+ICsKPiArCWtvYmplY3Rf Z2V0KCZkZXZfcHJpdi0+Z3RfdG9wb2xvZ3kua29iaik7Cj4gKwlrb2JqZWN0X2RlbCgmZGV2X3By aXYtPmd0X3RvcG9sb2d5LmtvYmopOwo+ICt9Cj4gKwo+ICAgdm9pZCBpOTE1X3NldHVwX3N5c2Zz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIHsKPiAgIAlzdHJ1Y3QgZGV2 aWNlICprZGV2ID0gZGV2X3ByaXYtPmRybS5wcmltYXJ5LT5rZGV2Owo+IEBAIC02MDUsNiArNzU5 LDEwIEBAIHZvaWQgaTkxNV9zZXR1cF9zeXNmcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gICAJaWYgKHJldCkKPiAgIAkJRFJNX0VSUk9SKCJSUFMgc3lzZnMgc2V0dXAgZmFp bGVkXG4iKTsKPiAgIAo+ICsJcmV0ID0gaTkxNV9zZXR1cF9ndF9zeXNmcyhkZXZfcHJpdiwga2Rl dik7Cj4gKwlpZiAocmV0KQo+ICsJCURSTV9FUlJPUigiR1Qgc3lzZnMgc2V0dXAgZmFpbGVkXG4i KTsKPiArCj4gICAJaTkxNV9zZXR1cF9lcnJvcl9jYXB0dXJlKGtkZXYpOwo+ICAgfQo+ICAgCj4g QEAgLTYxNCw2ICs3NzIsOCBAQCB2b2lkIGk5MTVfdGVhcmRvd25fc3lzZnMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCj4gICAJaTkxNV90ZWFyZG93bl9lcnJvcl9jYXB0 dXJlKGtkZXYpOwo+ICAgCj4gKwlpOTE1X3RlYXJkb3duX2d0X3N5c2ZzKGRldl9wcml2KTsKPiAr Cj4gICAJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3By aXYpKQo+ICAgCQlzeXNmc19yZW1vdmVfZmlsZXMoJmtkZXYtPmtvYmosIHZsdl9hdHRycyk7Cj4g ICAJZWxzZQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVf Y3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gaW5kZXggOTg5 N2M3Zjc4YzUxLi45ZDgyZGZiYjQ1ZGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZW5naW5lX2NzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9l bmdpbmVfY3MuYwo+IEBAIC0xMzMsNiArMTMzLDE4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZW5n aW5lX2luZm8gaW50ZWxfZW5naW5lc1tdID0gewo+ICAgCX0sCj4gICB9Owo+ICAgCj4gKy8qKgo+ ICsgKiBpbnRlbF9lbmdpbmVfZ2V0X2NsYXNzX25hbWUoKSAtIHJldHVybiB0aGUgbmFtZSBvZiB0 aGUgY2xhc3MgZm9yIGFuIGVuZ2luZQo+ICsgKiBAZW5naW5lOiBlbmdpbmUKPiArICoKPiArICog UmV0dXJuOiBhIHN0cmluZyBuYW1pbmcgdGhlIGNsYXNzIG9mIHRoZSBlbmdpbmUKPiArICovCj4g K2NvbnN0IGNoYXIgKgo+ICtpbnRlbF9lbmdpbmVfZ2V0X2NsYXNzX25hbWUoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQo+ICt7Cj4gKwlyZXR1cm4gaW50ZWxfZW5naW5lX2NsYXNzZXNb ZW5naW5lLT5jbGFzc10ubmFtZTsKPiArfQo+ICsKPiAgIC8qKgo+ICAgICogX19faW50ZWxfZW5n aW5lX2NvbnRleHRfc2l6ZSgpIC0gcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBjb250ZXh0IGZvciBh biBlbmdpbmUKPiAgICAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UgcHJpdmF0ZQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCA1Zjk2NTMzZTUzNDEuLmVjYTZj ODdhMWUwNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBA QCAtMjkwLDYgKzI5MCw5IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mgewo+ICAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1Owo+ICAgCWNoYXIgbmFtZVtJTlRFTF9FTkdJTkVfQ1NfTUFY X05BTUVdOwo+ICAgCj4gKwlzdHJ1Y3Qga29iamVjdCBpbnN0YW5jZV9rb2JqOwo+ICsJc3RydWN0 IGtvYmplY3QgY2FwYWJpbGl0aWVzX2tvYmo7Cj4gKwo+ICAgCWVudW0gaW50ZWxfZW5naW5lX2lk IGlkOwo+ICAgCXVuc2lnbmVkIGludCBod19pZDsKPiAgIAl1bnNpZ25lZCBpbnQgZ3VjX2lkOwo+ IEBAIC05MjQsNiArOTI3LDcgQEAgZ2VuOF9lbWl0X2dndHRfd3JpdGUodTMyICpjcywgdTMyIHZh bHVlLCB1MzIgZ3R0X29mZnNldCkKPiAgIAlyZXR1cm4gY3M7Cj4gICB9Cj4gICAKPiArY29uc3Qg Y2hhciAqaW50ZWxfZW5naW5lX2dldF9jbGFzc19uYW1lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSk7Cj4gICBib29sIGludGVsX2VuZ2luZV9pc19pZGxlKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSk7Cj4gICBib29sIGludGVsX2VuZ2luZXNfYXJlX2lkbGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgIAo+IApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK