From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kuehling, Felix" Subject: Re: [PATCH 4/6] drm/amdkfd: Use array to probe kfd2kgd_calls Date: Mon, 30 Sep 2019 15:42:29 +0000 Message-ID: <39dcbd3e-1bb9-8729-6368-0e87fdfcdbd3@amd.com> References: <20190928034132.28340-1-Yong.Zhao@amd.com> <20190928034132.28340-4-Yong.Zhao@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190928034132.28340-4-Yong.Zhao-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US Content-ID: <04E3B0CC6B06C640842134C718AF7CE8-asWib9pRmPqcE4WynfumptQqCkab/8FMAL8bYrjMMd8@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Zhao, Yong" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" T24gMjAxOS0wOS0yNyAxMTo0MSBwLm0uLCBaaGFvLCBZb25nIHdyb3RlOg0KPiBUaGlzIGlzIHRo ZSBzYW1lIGlkZWEgYXMgdGhlIGtmZCBkZXZpY2UgaW5mbyBwcm9iZSBhbmQgbW92ZSBhbGwgdGhl DQo+IHByb2JlIGNvbnRyb2wgdG9nZXRoZXIgZm9yIGVhc3kgbWFpbnRlbmFuY2UuDQo+DQo+IENo YW5nZS1JZDogSTg1Yzk4YmIwOGViMmE0YTFhODBjM2I5MTNjMzI2OTFjYzc0NjAyZDENCj4gU2ln bmVkLW9mZi1ieTogWW9uZyBaaGFvIDxZb25nLlpoYW9AYW1kLmNvbT4NCg0KTmljZSBjbGVhbi11 cC4gU2VlIG9uZSBjb21tZW50IGlubGluZS4NCg0KQWxzbywgcGxlYXNlIGNoZWNrIHRoYXQgdGhp cyBkb2Vzbid0IGJyZWFrIHRoZSBidWlsZCBpZiBDT05GSUdfSFNBX0FNRCANCmlzIHVuZGVmaW5l ZC4NCg0KV2l0aCB0aGF0IGZpeGVkIGFuZCBjaGVja2VkLCB0aGlzIHBhdGNoIGlzDQoNClJldmll d2VkLWJ5OiBGZWxpeCBLdWVobGluZyA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4NCg0KDQo+IC0t LQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYyAgICB8IDY1 ICstLS0tLS0tLS0tLS0tLS0tLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfYW1ka2ZkLmggICAgfCAgNyAtLQ0KPiAgIC4uLi9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1k a2ZkX2FyY3R1cnVzLmMgICB8ICA4ICstLQ0KPiAgIC4uLi9kcm0vYW1kL2FtZGdwdS9hbWRncHVf YW1ka2ZkX2dmeF92MTAuYyAgICB8ICA3ICstDQo+ICAgLi4uL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfYW1ka2ZkX2dmeF92Ny5jIHwgIDcgKy0NCj4gICAuLi4vZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y4LmMgfCAgNyArLQ0KPiAgIC4uLi9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuYyB8ICA3ICstDQo+ICAgZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRrZmQva2ZkX2RldmljZS5jICAgICAgIHwgMzkgKysrKysrKysrLS0NCj4gICA4IGZpbGVz IGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKyksIDEwNiBkZWxldGlvbnMoLSkNCj4NCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYw0KPiBpbmRleCA5MjY2NmIxOTdm NmMuLjhjNTMxNzkzZmUxNyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2FtZGtmZC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9hbWRrZmQuYw0KPiBAQCAtNjMsNDcgKzYzLDEwIEBAIHZvaWQgYW1kZ3B1X2FtZGtmZF9m aW5pKHZvaWQpDQo+ICAgDQo+ICAgdm9pZCBhbWRncHVfYW1ka2ZkX2RldmljZV9wcm9iZShzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikNCj4gICB7DQo+IC0JY29uc3Qgc3RydWN0IGtmZDJrZ2Rf Y2FsbHMgKmtmZDJrZ2Q7DQo+ICAgCWJvb2wgdmYgPSBhbWRncHVfc3Jpb3ZfdmYoYWRldik7DQo+ ICAgDQo+IC0Jc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsNCj4gLSNpZmRlZiBDT05GSUdfRFJN X0FNREdQVV9DSUsNCj4gLQljYXNlIENISVBfS0FWRVJJOg0KPiAtCWNhc2UgQ0hJUF9IQVdBSUk6 DQo+IC0JCWtmZDJrZ2QgPSBhbWRncHVfYW1ka2ZkX2dmeF83X2dldF9mdW5jdGlvbnMoKTsNCj4g LQkJYnJlYWs7DQo+IC0jZW5kaWYNCj4gLQljYXNlIENISVBfQ0FSUklaTzoNCj4gLQljYXNlIENI SVBfVE9OR0E6DQo+IC0JY2FzZSBDSElQX0ZJSkk6DQo+IC0JY2FzZSBDSElQX1BPTEFSSVMxMDoN Cj4gLQljYXNlIENISVBfUE9MQVJJUzExOg0KPiAtCWNhc2UgQ0hJUF9QT0xBUklTMTI6DQo+IC0J Y2FzZSBDSElQX1ZFR0FNOg0KPiAtCQlrZmQya2dkID0gYW1kZ3B1X2FtZGtmZF9nZnhfOF8wX2dl dF9mdW5jdGlvbnMoKTsNCj4gLQkJYnJlYWs7DQo+IC0JY2FzZSBDSElQX1ZFR0ExMDoNCj4gLQlj YXNlIENISVBfVkVHQTEyOg0KPiAtCWNhc2UgQ0hJUF9WRUdBMjA6DQo+IC0JY2FzZSBDSElQX1JB VkVOOg0KPiAtCWNhc2UgQ0hJUF9SRU5PSVI6DQo+IC0JCWtmZDJrZ2QgPSBhbWRncHVfYW1ka2Zk X2dmeF85XzBfZ2V0X2Z1bmN0aW9ucygpOw0KPiAtCQlicmVhazsNCj4gLQljYXNlIENISVBfQVJD VFVSVVM6DQo+IC0JCWtmZDJrZ2QgPSBhbWRncHVfYW1ka2ZkX2FyY3R1cnVzX2dldF9mdW5jdGlv bnMoKTsNCj4gLQkJYnJlYWs7DQo+IC0JY2FzZSBDSElQX05BVkkxMDoNCj4gLQljYXNlIENISVBf TkFWSTE0Og0KPiAtCWNhc2UgQ0hJUF9OQVZJMTI6DQo+IC0JCWtmZDJrZ2QgPSBhbWRncHVfYW1k a2ZkX2dmeF8xMF8wX2dldF9mdW5jdGlvbnMoKTsNCj4gLQkJYnJlYWs7DQo+IC0JZGVmYXVsdDoN Cj4gLQkJZGV2X2luZm8oYWRldi0+ZGV2LCAia2ZkIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBBU0lD XG4iKTsNCj4gLQkJcmV0dXJuOw0KPiAtCX0NCj4gLQ0KPiAgIAlhZGV2LT5rZmQuZGV2ID0ga2dk MmtmZF9wcm9iZSgoc3RydWN0IGtnZF9kZXYgKilhZGV2LA0KPiAtCQkJCSAgICAgIGFkZXYtPnBk ZXYsIGtmZDJrZ2QsIGFkZXYtPmFzaWNfdHlwZSwgdmYpOw0KPiArCQkJCSAgICAgIGFkZXYtPnBk ZXYsIGFkZXYtPmFzaWNfdHlwZSwgdmYpOw0KPiAgIA0KPiAgIAlpZiAoYWRldi0+a2ZkLmRldikN Cj4gICAJCWFtZGdwdV9hbWRrZmRfdG90YWxfbWVtX3NpemUgKz0gYWRldi0+Z21jLnJlYWxfdnJh bV9zaXplOw0KPiBAQCAtNzExLDMzICs2NzQsNyBAQCBpbnQgYW1kZ3B1X2FtZGtmZF9ldmljdF91 c2VycHRyKHN0cnVjdCBrZ2RfbWVtICptZW0sIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQ0KPiAgIAly ZXR1cm4gMDsNCj4gICB9DQo+ICAgDQo+IC1zdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2Ft ZGtmZF9nZnhfN19nZXRfZnVuY3Rpb25zKHZvaWQpDQo+IC17DQo+IC0JcmV0dXJuIE5VTEw7DQo+ IC19DQo+IC0NCj4gLXN0cnVjdCBrZmQya2dkX2NhbGxzICphbWRncHVfYW1ka2ZkX2dmeF84XzBf Z2V0X2Z1bmN0aW9ucyh2b2lkKQ0KPiAtew0KPiAtCXJldHVybiBOVUxMOw0KPiAtfQ0KPiAtDQo+ IC1zdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2FtZGtmZF9nZnhfOV8wX2dldF9mdW5jdGlv bnModm9pZCkNCj4gLXsNCj4gLQlyZXR1cm4gTlVMTDsNCj4gLX0NCj4gLQ0KPiAtc3RydWN0IGtm ZDJrZ2RfY2FsbHMgKmFtZGdwdV9hbWRrZmRfYXJjdHVydXNfZ2V0X2Z1bmN0aW9ucyh2b2lkKQ0K PiAtew0KPiAtCXJldHVybiBOVUxMOw0KPiAtfQ0KPiAtDQo+IC1zdHJ1Y3Qga2ZkMmtnZF9jYWxs cyAqYW1kZ3B1X2FtZGtmZF9nZnhfMTBfMF9nZXRfZnVuY3Rpb25zKHZvaWQpDQo+IC17DQo+IC0J cmV0dXJuIE5VTEw7DQo+IC19DQo+IC0NCj4gICBzdHJ1Y3Qga2ZkX2RldiAqa2dkMmtmZF9wcm9i ZShzdHJ1Y3Qga2dkX2RldiAqa2dkLCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4gLQkJCSAgICAg IGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzICpmMmcsDQo+ICAgCQkJICAgICAgdW5zaWduZWQg aW50IGFzaWNfdHlwZSwgYm9vbCB2ZikNCj4gICB7DQo+ICAgCXJldHVybiBOVUxMOw0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5oIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5oDQo+IGluZGV4IDRlYjJmYjg1 ZGUyNi4uMDY5ZDVkMjMwODEwIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfYW1ka2ZkLmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2FtZGtmZC5oDQo+IEBAIC0xMzcsMTIgKzEzNyw2IEBAIGludCBhbWRncHVfYW1ka2Zk X3N1Ym1pdF9pYihzdHJ1Y3Qga2dkX2RldiAqa2dkLCBlbnVtIGtnZF9lbmdpbmVfdHlwZSBlbmdp bmUsDQo+ICAgdm9pZCBhbWRncHVfYW1ka2ZkX3NldF9jb21wdXRlX2lkbGUoc3RydWN0IGtnZF9k ZXYgKmtnZCwgYm9vbCBpZGxlKTsNCj4gICBib29sIGFtZGdwdV9hbWRrZmRfaGF2ZV9hdG9taWNz X3N1cHBvcnQoc3RydWN0IGtnZF9kZXYgKmtnZCk7DQo+ICAgDQo+IC1zdHJ1Y3Qga2ZkMmtnZF9j YWxscyAqYW1kZ3B1X2FtZGtmZF9nZnhfN19nZXRfZnVuY3Rpb25zKHZvaWQpOw0KPiAtc3RydWN0 IGtmZDJrZ2RfY2FsbHMgKmFtZGdwdV9hbWRrZmRfZ2Z4XzhfMF9nZXRfZnVuY3Rpb25zKHZvaWQp Ow0KPiAtc3RydWN0IGtmZDJrZ2RfY2FsbHMgKmFtZGdwdV9hbWRrZmRfZ2Z4XzlfMF9nZXRfZnVu Y3Rpb25zKHZvaWQpOw0KPiAtc3RydWN0IGtmZDJrZ2RfY2FsbHMgKmFtZGdwdV9hbWRrZmRfYXJj dHVydXNfZ2V0X2Z1bmN0aW9ucyh2b2lkKTsNCj4gLXN0cnVjdCBrZmQya2dkX2NhbGxzICphbWRn cHVfYW1ka2ZkX2dmeF8xMF8wX2dldF9mdW5jdGlvbnModm9pZCk7DQo+IC0NCj4gICBib29sIGFt ZGdwdV9hbWRrZmRfaXNfa2ZkX3ZtaWQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUzMiB2 bWlkKTsNCj4gICANCj4gICBpbnQgYW1kZ3B1X2FtZGtmZF9wcmVfcmVzZXQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpOw0KPiBAQCAtMjQ4LDcgKzI0Miw2IEBAIHZvaWQgYW1kZ3B1X2FtZGtm ZF91bnJlc2VydmVfbWVtb3J5X2xpbWl0KHN0cnVjdCBhbWRncHVfYm8gKmJvKTsNCj4gICBpbnQg a2dkMmtmZF9pbml0KHZvaWQpOw0KPiAgIHZvaWQga2dkMmtmZF9leGl0KHZvaWQpOw0KPiAgIHN0 cnVjdCBrZmRfZGV2ICprZ2Qya2ZkX3Byb2JlKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHN0cnVjdCBw Y2lfZGV2ICpwZGV2LA0KPiAtCQkJICAgICAgY29uc3Qgc3RydWN0IGtmZDJrZ2RfY2FsbHMgKmYy ZywNCj4gICAJCQkgICAgICB1bnNpZ25lZCBpbnQgYXNpY190eXBlLCBib29sIHZmKTsNCj4gICBi b29sIGtnZDJrZmRfZGV2aWNlX2luaXQoc3RydWN0IGtmZF9kZXYgKmtmZCwNCj4gICAJCQkgc3Ry dWN0IGRybV9kZXZpY2UgKmRkZXYsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfYW1ka2ZkX2FyY3R1cnVzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfYW1ka2ZkX2FyY3R1cnVzLmMNCj4gaW5kZXggNGE0OWRiZWUyNmExLi5lMWZi YmViY2U0ZmQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9hbWRrZmRfYXJjdHVydXMuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfYW1ka2ZkX2FyY3R1cnVzLmMNCj4gQEAgLTI2Miw3ICsyNjIsNyBAQCBzdGF0aWMgaW50 IGtnZF9ocWRfc2RtYV9kZXN0cm95KHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHZvaWQgKm1xZCwNCj4g ICAJcmV0dXJuIDA7DQo+ICAgfQ0KPiAgIA0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBrZmQya2dk X2NhbGxzIGtmZDJrZ2QgPSB7DQo+ICtjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyBhcmN0dXJ1 c19rZmQya2dkID0gew0KPiAgIAkucHJvZ3JhbV9zaF9tZW1fc2V0dGluZ3MgPSBrZ2RfZ2Z4X3Y5 X3Byb2dyYW1fc2hfbWVtX3NldHRpbmdzLA0KPiAgIAkuc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZyA9 IGtnZF9nZnhfdjlfc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZywNCj4gICAJLmluaXRfaW50ZXJydXB0 cyA9IGtnZF9nZnhfdjlfaW5pdF9pbnRlcnJ1cHRzLA0KPiBAQCAtMjg2LDkgKzI4NiwzIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyBrZmQya2dkID0gew0KPiAgIAkuaW52YWxp ZGF0ZV90bGJzX3ZtaWQgPSBrZ2RfZ2Z4X3Y5X2ludmFsaWRhdGVfdGxic192bWlkLA0KPiAgIAku Z2V0X2hpdmVfaWQgPSBhbWRncHVfYW1ka2ZkX2dldF9oaXZlX2lkLA0KPiAgIH07DQo+IC0NCj4g LXN0cnVjdCBrZmQya2dkX2NhbGxzICphbWRncHVfYW1ka2ZkX2FyY3R1cnVzX2dldF9mdW5jdGlv bnModm9pZCkNCj4gLXsNCj4gLQlyZXR1cm4gKHN0cnVjdCBrZmQya2dkX2NhbGxzICopJmtmZDJr Z2Q7DQo+IC19DQo+IC0NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9hbWRrZmRfZ2Z4X3YxMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2FtZGtmZF9nZnhfdjEwLmMNCj4gaW5kZXggYmU5Yjg3M2VjNjgzLi5hMDE3MDRiYzkxY2Qg MTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRf Z2Z4X3YxMC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRr ZmRfZ2Z4X3YxMC5jDQo+IEBAIC04MTUsNyArODE1LDcgQEAgc3RhdGljIHZvaWQgc2V0X3ZtX2Nv bnRleHRfcGFnZV90YWJsZV9iYXNlKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQzMl90IHZtaWQs DQo+ICAgCWdmeGh1Yl92Ml8wX3NldHVwX3ZtX3B0X3JlZ3MoYWRldiwgdm1pZCwgcGFnZV90YWJs ZV9iYXNlKTsNCj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGtmZDJrZ2RfY2Fs bHMga2ZkMmtnZCA9IHsNCj4gK3N0cnVjdCBrZmQya2dkX2NhbGxzIGdmeF92MTBfa2ZkMmtnZCA9 IHsNCg0KVGhpcyBzaG91bGQgYmUgY29uc3QuIENhbiB5b3UgZml4IHRoYXQgdG9vIHdoaWxlIHlv dSdyZSBoZXJlPw0KDQoNCj4gICAJLnByb2dyYW1fc2hfbWVtX3NldHRpbmdzID0ga2dkX3Byb2dy YW1fc2hfbWVtX3NldHRpbmdzLA0KPiAgIAkuc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZyA9IGtnZF9z ZXRfcGFzaWRfdm1pZF9tYXBwaW5nLA0KPiAgIAkuaW5pdF9pbnRlcnJ1cHRzID0ga2dkX2luaXRf aW50ZXJydXB0cywNCj4gQEAgLTgzOSw4ICs4MzksMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtm ZDJrZ2RfY2FsbHMga2ZkMmtnZCA9IHsNCj4gICAJLmludmFsaWRhdGVfdGxic192bWlkID0gaW52 YWxpZGF0ZV90bGJzX3ZtaWQsDQo+ICAgCS5nZXRfaGl2ZV9pZCA9IGFtZGdwdV9hbWRrZmRfZ2V0 X2hpdmVfaWQsDQo+ICAgfTsNCj4gLQ0KPiAtc3RydWN0IGtmZDJrZ2RfY2FsbHMgKmFtZGdwdV9h bWRrZmRfZ2Z4XzEwXzBfZ2V0X2Z1bmN0aW9ucygpDQo+IC17DQo+IC0JcmV0dXJuIChzdHJ1Y3Qg a2ZkMmtnZF9jYWxscyAqKSZrZmQya2dkOw0KPiAtfQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjcuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y3LmMNCj4gaW5kZXggOWM0ZWJjYWRhZDYy Li4wYjljYzY1MTVlNjQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y3LmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjcuYw0KPiBAQCAtNzUxLDcgKzc1MSw3IEBAIHN0YXRpYyB1 aW50MzJfdCByZWFkX3ZtaWRfZnJvbV92bWZhdWx0X3JlZyhzdHJ1Y3Qga2dkX2RldiAqa2dkKQ0K PiAgIAlyZXR1cm4gUkVHX0dFVF9GSUVMRChzdGF0dXMsIFZNX0NPTlRFWFQxX1BST1RFQ1RJT05f RkFVTFRfU1RBVFVTLCBWTUlEKTsNCj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0 IGtmZDJrZ2RfY2FsbHMga2ZkMmtnZCA9IHsNCj4gK2NvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxz IGdmeF92N19rZmQya2dkID0gew0KPiAgIAkucHJvZ3JhbV9zaF9tZW1fc2V0dGluZ3MgPSBrZ2Rf cHJvZ3JhbV9zaF9tZW1fc2V0dGluZ3MsDQo+ICAgCS5zZXRfcGFzaWRfdm1pZF9tYXBwaW5nID0g a2dkX3NldF9wYXNpZF92bWlkX21hcHBpbmcsDQo+ICAgCS5pbml0X2ludGVycnVwdHMgPSBrZ2Rf aW5pdF9pbnRlcnJ1cHRzLA0KPiBAQCAtNzc1LDggKzc3NSwzIEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qga2ZkMmtnZF9jYWxscyBrZmQya2dkID0gew0KPiAgIAkuaW52YWxpZGF0ZV90bGJzX3ZtaWQg PSBpbnZhbGlkYXRlX3RsYnNfdm1pZCwNCj4gICAJLnJlYWRfdm1pZF9mcm9tX3ZtZmF1bHRfcmVn ID0gcmVhZF92bWlkX2Zyb21fdm1mYXVsdF9yZWcsDQo+ICAgfTsNCj4gLQ0KPiAtc3RydWN0IGtm ZDJrZ2RfY2FsbHMgKmFtZGdwdV9hbWRrZmRfZ2Z4XzdfZ2V0X2Z1bmN0aW9ucyh2b2lkKQ0KPiAt ew0KPiAtCXJldHVybiAoc3RydWN0IGtmZDJrZ2RfY2FsbHMgKikma2ZkMmtnZDsNCj4gLX0NCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4 X3Y4LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5j DQo+IGluZGV4IGYyZTUyYjQ5NjA0NC4uMzQxNmE3ZjI3ZGM3IDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5jDQo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y4LmMNCj4gQEAgLTY5 Niw3ICs2OTYsNyBAQCBzdGF0aWMgaW50IGludmFsaWRhdGVfdGxic192bWlkKHN0cnVjdCBrZ2Rf ZGV2ICprZ2QsIHVpbnQxNl90IHZtaWQpDQo+ICAgCXJldHVybiAwOw0KPiAgIH0NCj4gICANCj4g LXN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyBrZmQya2dkID0gew0KPiArY29uc3Qg c3RydWN0IGtmZDJrZ2RfY2FsbHMgZ2Z4X3Y4X2tmZDJrZ2QgPSB7DQo+ICAgCS5wcm9ncmFtX3No X21lbV9zZXR0aW5ncyA9IGtnZF9wcm9ncmFtX3NoX21lbV9zZXR0aW5ncywNCj4gICAJLnNldF9w YXNpZF92bWlkX21hcHBpbmcgPSBrZ2Rfc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZywNCj4gICAJLmlu aXRfaW50ZXJydXB0cyA9IGtnZF9pbml0X2ludGVycnVwdHMsDQo+IEBAIC03MjAsOCArNzIwLDMg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzIGtmZDJrZ2QgPSB7DQo+ICAgCS5p bnZhbGlkYXRlX3RsYnMgPSBpbnZhbGlkYXRlX3RsYnMsDQo+ICAgCS5pbnZhbGlkYXRlX3RsYnNf dm1pZCA9IGludmFsaWRhdGVfdGxic192bWlkLA0KPiAgIH07DQo+IC0NCj4gLXN0cnVjdCBrZmQy a2dkX2NhbGxzICphbWRncHVfYW1ka2ZkX2dmeF84XzBfZ2V0X2Z1bmN0aW9ucyh2b2lkKQ0KPiAt ew0KPiAtCXJldHVybiAoc3RydWN0IGtmZDJrZ2RfY2FsbHMgKikma2ZkMmtnZDsNCj4gLX0NCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4 X3Y5LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OS5j DQo+IGluZGV4IDEyZjMwZGYyMTc0Yy4uODJlZDkzMTZiMDk2IDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OS5jDQo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y5LmMNCj4gQEAgLTc4 Niw3ICs3ODYsNyBAQCB2b2lkIGtnZF9nZnhfdjlfc2V0X3ZtX2NvbnRleHRfcGFnZV90YWJsZV9i YXNlKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQzMl90IHZtaQ0KPiAgIAlnZnhodWJfdjFfMF9z ZXR1cF92bV9wdF9yZWdzKGFkZXYsIHZtaWQsIHBhZ2VfdGFibGVfYmFzZSk7DQo+ICAgfQ0KPiAg IA0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzIGtmZDJrZ2QgPSB7DQo+ICtj b25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyBnZnhfdjlfa2ZkMmtnZCA9IHsNCj4gICAJLnByb2dy YW1fc2hfbWVtX3NldHRpbmdzID0ga2dkX2dmeF92OV9wcm9ncmFtX3NoX21lbV9zZXR0aW5ncywN Cj4gICAJLnNldF9wYXNpZF92bWlkX21hcHBpbmcgPSBrZ2RfZ2Z4X3Y5X3NldF9wYXNpZF92bWlk X21hcHBpbmcsDQo+ICAgCS5pbml0X2ludGVycnVwdHMgPSBrZ2RfZ2Z4X3Y5X2luaXRfaW50ZXJy dXB0cywNCj4gQEAgLTgxMCw4ICs4MTAsMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtmZDJrZ2Rf Y2FsbHMga2ZkMmtnZCA9IHsNCj4gICAJLmludmFsaWRhdGVfdGxic192bWlkID0ga2dkX2dmeF92 OV9pbnZhbGlkYXRlX3RsYnNfdm1pZCwNCj4gICAJLmdldF9oaXZlX2lkID0gYW1kZ3B1X2FtZGtm ZF9nZXRfaGl2ZV9pZCwNCj4gICB9Ow0KPiAtDQo+IC1zdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1k Z3B1X2FtZGtmZF9nZnhfOV8wX2dldF9mdW5jdGlvbnModm9pZCkNCj4gLXsNCj4gLQlyZXR1cm4g KHN0cnVjdCBrZmQya2dkX2NhbGxzICopJmtmZDJrZ2Q7DQo+IC19DQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGtmZC9rZmRfZGV2aWNlLmMNCj4gaW5kZXggOTZhOWUwNjUzZGIyLi4wZGIyNzM1ODdh ZjQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2Uu Yw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlLmMNCj4gQEAg LTM5LDYgKzM5LDM1IEBADQo+ICAgICovDQo+ICAgc3RhdGljIGF0b21pY190IGtmZF9sb2NrZWQg PSBBVE9NSUNfSU5JVCgwKTsNCj4gICANCj4gK2V4dGVybiBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9j YWxscyBnZnhfdjdfa2ZkMmtnZDsNCj4gK2V4dGVybiBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxs cyBnZnhfdjhfa2ZkMmtnZDsNCj4gK2V4dGVybiBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyBn Znhfdjlfa2ZkMmtnZDsNCj4gK2V4dGVybiBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyBhcmN0 dXJ1c19rZmQya2dkOw0KPiArZXh0ZXJuIGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzIGdmeF92 MTBfa2ZkMmtnZDsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzICpr ZmQya2dkX2Z1bmNzW10gPSB7DQo+ICsjaWZkZWYgS0ZEX1NVUFBPUlRfSU9NTVVfVjINCj4gKwlb Q0hJUF9LQVZFUkldID0gJmdmeF92N19rZmQya2dkLA0KPiArCVtDSElQX0NBUlJJWk9dID0gJmdm eF92OF9rZmQya2dkLA0KPiArCVtDSElQX1JBVkVOXSA9ICZnZnhfdjlfa2ZkMmtnZCwNCj4gKyNl bmRpZg0KPiArCVtDSElQX0hBV0FJSV0gPSAmZ2Z4X3Y3X2tmZDJrZ2QsDQo+ICsJW0NISVBfVE9O R0FdID0gJmdmeF92OF9rZmQya2dkLA0KPiArCVtDSElQX0ZJSkldID0gJmdmeF92OF9rZmQya2dk LA0KPiArCVtDSElQX1BPTEFSSVMxMF0gPSAmZ2Z4X3Y4X2tmZDJrZ2QsDQo+ICsJW0NISVBfUE9M QVJJUzExXSA9ICZnZnhfdjhfa2ZkMmtnZCwNCj4gKwlbQ0hJUF9QT0xBUklTMTJdID0gJmdmeF92 OF9rZmQya2dkLA0KPiArCVtDSElQX1ZFR0FNXSA9ICZnZnhfdjhfa2ZkMmtnZCwNCj4gKwlbQ0hJ UF9WRUdBMTBdID0gJmdmeF92OV9rZmQya2dkLA0KPiArCVtDSElQX1ZFR0ExMl0gPSAmZ2Z4X3Y5 X2tmZDJrZ2QsDQo+ICsJW0NISVBfVkVHQTIwXSA9ICZnZnhfdjlfa2ZkMmtnZCwNCj4gKwlbQ0hJ UF9SRU5PSVJdID0gJmdmeF92OV9rZmQya2dkLA0KPiArCVtDSElQX0FSQ1RVUlVTXSA9ICZhcmN0 dXJ1c19rZmQya2dkLA0KPiArCVtDSElQX05BVkkxMF0gPSAmZ2Z4X3YxMF9rZmQya2dkLA0KPiAr CVtDSElQX05BVkkxMl0gPSAmZ2Z4X3YxMF9rZmQya2dkLA0KPiArCVtDSElQX05BVkkxNF0gPSAm Z2Z4X3YxMF9rZmQya2dkLA0KPiArfTsNCj4gKw0KPiAgICNpZmRlZiBLRkRfU1VQUE9SVF9JT01N VV9WMg0KPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9pbmZvIGthdmVyaV9kZXZp Y2VfaW5mbyA9IHsNCj4gICAJLmFzaWNfZmFtaWx5ID0gQ0hJUF9LQVZFUkksDQo+IEBAIC00NTQs MjAgKzQ4MywyMiBAQCBzdGF0aWMgdm9pZCBrZmRfZ3R0X3NhX2Zpbmkoc3RydWN0IGtmZF9kZXYg KmtmZCk7DQo+ICAgc3RhdGljIGludCBrZmRfcmVzdW1lKHN0cnVjdCBrZmRfZGV2ICprZmQpOw0K PiAgIA0KPiAgIHN0cnVjdCBrZmRfZGV2ICprZ2Qya2ZkX3Byb2JlKHN0cnVjdCBrZ2RfZGV2ICpr Z2QsDQo+IC0Jc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxz ICpmMmcsDQo+IC0JdW5zaWduZWQgaW50IGFzaWNfdHlwZSwgYm9vbCB2ZikNCj4gKwlzdHJ1Y3Qg cGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IGFzaWNfdHlwZSwgYm9vbCB2ZikNCj4gICB7DQo+ ICAgCXN0cnVjdCBrZmRfZGV2ICprZmQ7DQo+ICAgCWNvbnN0IHN0cnVjdCBrZmRfZGV2aWNlX2lu Zm8gKmRldmljZV9pbmZvOw0KPiArCWNvbnN0IHN0cnVjdCBrZmQya2dkX2NhbGxzICpmMmc7DQo+ ICAgDQo+IC0JaWYgKGFzaWNfdHlwZSA+PSBzaXplb2Yoa2ZkX3N1cHBvcnRlZF9kZXZpY2VzKSAv IChzaXplb2Yodm9pZCAqKSAqIDIpKSB7DQo+ICsJaWYgKGFzaWNfdHlwZSA+PSBzaXplb2Yoa2Zk X3N1cHBvcnRlZF9kZXZpY2VzKSAvIChzaXplb2Yodm9pZCAqKSAqIDIpDQo+ICsJCXx8IGFzaWNf dHlwZSA+PSBzaXplb2Yoa2ZkMmtnZF9mdW5jcykgLyBzaXplb2Yodm9pZCAqKSkgew0KPiAgIAkJ ZGV2X2VycihrZmRfZGV2aWNlLCAiYXNpY190eXBlICVkIG91dCBvZiByYW5nZVxuIiwgYXNpY190 eXBlKTsNCj4gICAJCXJldHVybiBOVUxMOyAvKiBhc2ljX3R5cGUgb3V0IG9mIHJhbmdlICovDQo+ ICAgCX0NCj4gICANCj4gICAJZGV2aWNlX2luZm8gPSBrZmRfc3VwcG9ydGVkX2RldmljZXNbYXNp Y190eXBlXVt2Zl07DQo+ICsJZjJnID0ga2ZkMmtnZF9mdW5jc1thc2ljX3R5cGVdOw0KPiAgIA0K PiAtCWlmICghZGV2aWNlX2luZm8pIHsNCj4gKwlpZiAoIWRldmljZV9pbmZvICYmICFmMmcpIHsN Cj4gICAJCWRldl9lcnIoa2ZkX2RldmljZSwgIiVzICVzIG5vdCBzdXBwb3J0ZWQgaW4ga2ZkXG4i LA0KPiAgIAkJCWFtZGdwdV9hc2ljX25hbWVbYXNpY190eXBlXSwgdmYgPyAiVkYiIDogIiIpOw0K PiAgIAkJcmV0dXJuIE5VTEw7DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1n Zng=