From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Grodzovsky, Andrey" Subject: Re: [PATCH v5 6/6] drm/amdgpu: Avoid HW reset if guilty job already signaled. Date: Mon, 22 Apr 2019 11:54:25 +0000 Message-ID: <7a09bdb5-0acb-3df1-6691-4940920411ec@amd.com> References: <1555599624-12285-1-git-send-email-andrey.grodzovsky@amd.com> <1555599624-12285-6-git-send-email-andrey.grodzovsky@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1555599624-12285-6-git-send-email-andrey.grodzovsky-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US Content-ID: <2914BCB465CDFA4EB5065CCBA35BC91D-asWib9pRmPqcE4WynfumptQqCkab/8FMAL8bYrjMMd8@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org" , "etnaviv-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org" Cc: "Kazlauskas, Nicholas" , "Koenig, Christian" List-Id: dri-devel@lists.freedesktop.org UGluZyBmb3IgcGF0Y2hlcyAzLCBuZXcgcGF0Y2ggNSBhbmQgcGF0Y2ggNi4NCg0KQW5kcmV5DQoN Ck9uIDQvMTgvMTkgMTE6MDAgQU0sIEFuZHJleSBHcm9kem92c2t5IHdyb3RlOg0KPiBBbHNvIHJl amVjdCBURFJzIGlmIGFub3RoZXIgb25lIGFscmVhZHkgcnVubmluZy4NCj4NCj4gdjI6DQo+IFN0 b3AgYWxsIHNjaGVkdWxlcnMgYWNyb3NzIGRldmljZSBhbmQgZW50aXJlIFhHTUkgaGl2ZSBiZWZv cmUNCj4gZm9yY2Ugc2lnbmFsaW5nIEhXIGZlbmNlcy4NCj4gQXZvaWQgcGFzc2luZyBqb2Jfc2ln bmFsZWQgdG8gaGVscGVyIGZuY3Rpb25zIHRvIGtlZXAgYWxsIHRoZSBkZWNpc2lvbg0KPiBtYWtp bmcgYWJvdXQgc2tpcHBpbmcgSFcgcmVzZXQgaW4gb25lIHBsYWNlLg0KPg0KPiB2MzoNCj4gRml4 IFNXIHNjaGVkLiBoYW5nIGFmdGVyIG5vbiBIVyByZXNldC4gc2NoZWQuaHdfcnFfY291bnQgaGFz IHRvIGJlIGJhbGFuY2VkDQo+IGFnYWluc3QgaXQncyBkZWNyZW1lbnQgaW4gZHJtX3NjaGVkX3N0 b3AgaW4gbm9uIEhXIHJlc2V0IGNhc2UuDQo+IHY0OiByZWJhc2UNCj4gdjU6IFJldmVydCB2MyBh cyB3ZSBkbyBpdCBub3cgaW4gc2NlZHVsZXIgY29kZS4NCj4NCj4gU2lnbmVkLW9mZi1ieTogQW5k cmV5IEdyb2R6b3Zza3kgPGFuZHJleS5ncm9kem92c2t5QGFtZC5jb20+DQo+IC0tLQ0KPiAgIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8IDE0MyArKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLQ0KPiAgIDEgZmlsZSBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCsp LCA0OCBkZWxldGlvbnMoLSkNCj4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9kZXZpY2UuYw0KPiBpbmRleCBhMGUxNjVjLi44NWY4NzkyIDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMNCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jDQo+IEBAIC0zMzM0LDggKzMzMzQsNiBA QCBzdGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfcHJlX2FzaWNfcmVzZXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsDQo+ICAgCQlpZiAoIXJpbmcgfHwgIXJpbmctPnNjaGVkLnRocmVhZCkNCj4g ICAJCQljb250aW51ZTsNCj4gICANCj4gLQkJZHJtX3NjaGVkX3N0b3AoJnJpbmctPnNjaGVkLCAm am9iLT5iYXNlKTsNCj4gLQ0KPiAgIAkJLyogYWZ0ZXIgYWxsIGh3IGpvYnMgYXJlIHJlc2V0LCBo dyBmZW5jZSBpcyBtZWFuaW5nbGVzcywgc28gZm9yY2VfY29tcGxldGlvbiAqLw0KPiAgIAkJYW1k Z3B1X2ZlbmNlX2RyaXZlcl9mb3JjZV9jb21wbGV0aW9uKHJpbmcpOw0KPiAgIAl9DQo+IEBAIC0z MzQzLDYgKzMzNDEsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfcHJlX2FzaWNfcmVzZXQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ICAgCWlmKGpvYikNCj4gICAJCWRybV9zY2hl ZF9pbmNyZWFzZV9rYXJtYSgmam9iLT5iYXNlKTsNCj4gICANCj4gKwkvKiBEb24ndCBzdXNwZW5k IG9uIGJhcmUgbWV0YWwgaWYgd2UgYXJlIG5vdCBnb2luZyB0byBIVyByZXNldCB0aGUgQVNJQyAq Lw0KPiAgIAlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkgew0KPiAgIA0KPiAgIAkJaWYgKCFu ZWVkX2Z1bGxfcmVzZXQpDQo+IEBAIC0zNDgwLDM3ICszNDc5LDIxIEBAIHN0YXRpYyBpbnQgYW1k Z3B1X2RvX2FzaWNfcmVzZXQoc3RydWN0IGFtZGdwdV9oaXZlX2luZm8gKmhpdmUsDQo+ICAgCXJl dHVybiByOw0KPiAgIH0NCj4gICANCj4gLXN0YXRpYyB2b2lkIGFtZGdwdV9kZXZpY2VfcG9zdF9h c2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQ0KPiArc3RhdGljIGJvb2wgYW1k Z3B1X2RldmljZV9sb2NrX2FkZXYoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgdHJ5 bG9jaykNCj4gICB7DQo+IC0JaW50IGk7DQo+IC0NCj4gLQlmb3IgKGkgPSAwOyBpIDwgQU1ER1BV X01BWF9SSU5HUzsgKytpKSB7DQo+IC0JCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9IGFkZXYt PnJpbmdzW2ldOw0KPiAtDQo+IC0JCWlmICghcmluZyB8fCAhcmluZy0+c2NoZWQudGhyZWFkKQ0K PiAtCQkJY29udGludWU7DQo+IC0NCj4gLQkJaWYgKCFhZGV2LT5hc2ljX3Jlc2V0X3JlcykNCj4g LQkJCWRybV9zY2hlZF9yZXN1Ym1pdF9qb2JzKCZyaW5nLT5zY2hlZCk7DQo+ICsJaWYgKHRyeWxv Y2spIHsNCj4gKwkJaWYgKCFtdXRleF90cnlsb2NrKCZhZGV2LT5sb2NrX3Jlc2V0KSkNCj4gKwkJ CXJldHVybiBmYWxzZTsNCj4gKwl9IGVsc2UNCj4gKwkJbXV0ZXhfbG9jaygmYWRldi0+bG9ja19y ZXNldCk7DQo+ICAgDQo+IC0JCWRybV9zY2hlZF9zdGFydCgmcmluZy0+c2NoZWQsICFhZGV2LT5h c2ljX3Jlc2V0X3Jlcyk7DQo+IC0JfQ0KPiAtDQo+IC0JaWYgKCFhbWRncHVfZGV2aWNlX2hhc19k Y19zdXBwb3J0KGFkZXYpKSB7DQo+IC0JCWRybV9oZWxwZXJfcmVzdW1lX2ZvcmNlX21vZGUoYWRl di0+ZGRldik7DQo+IC0JfQ0KPiAtDQo+IC0JYWRldi0+YXNpY19yZXNldF9yZXMgPSAwOw0KPiAt fQ0KPiAtDQo+IC1zdGF0aWMgdm9pZCBhbWRncHVfZGV2aWNlX2xvY2tfYWRldihzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikNCj4gLXsNCj4gLQltdXRleF9sb2NrKCZhZGV2LT5sb2NrX3Jlc2V0 KTsNCj4gICAJYXRvbWljX2luYygmYWRldi0+Z3B1X3Jlc2V0X2NvdW50ZXIpOw0KPiAgIAlhZGV2 LT5pbl9ncHVfcmVzZXQgPSAxOw0KPiAgIAkvKiBCbG9jayBrZmQ6IFNSSU9WIHdvdWxkIGRvIGl0 IHNlcGFyYXRlbHkgKi8NCj4gICAJaWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpDQo+ICAgICAg ICAgICAgICAgICAgIGFtZGdwdV9hbWRrZmRfcHJlX3Jlc2V0KGFkZXYpOw0KPiArDQo+ICsJcmV0 dXJuIHRydWU7DQo+ICAgfQ0KPiAgIA0KPiAgIHN0YXRpYyB2b2lkIGFtZGdwdV9kZXZpY2VfdW5s b2NrX2FkZXYoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+IEBAIC0zNTM4LDQwICszNTIx LDQyIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kZXZpY2VfdW5sb2NrX2FkZXYoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpDQo+ICAgaW50IGFtZGdwdV9kZXZpY2VfZ3B1X3JlY292ZXIoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ICAgCQkJICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpv YikNCj4gICB7DQo+IC0JaW50IHI7DQo+ICsJc3RydWN0IGxpc3RfaGVhZCBkZXZpY2VfbGlzdCwg KmRldmljZV9saXN0X2hhbmRsZSA9ICBOVUxMOw0KPiArCWJvb2wgbmVlZF9mdWxsX3Jlc2V0LCBq b2Jfc2lnbmFsZWQ7DQo+ICAgCXN0cnVjdCBhbWRncHVfaGl2ZV9pbmZvICpoaXZlID0gTlVMTDsN Cj4gLQlib29sIG5lZWRfZnVsbF9yZXNldCA9IGZhbHNlOw0KPiAgIAlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqdG1wX2FkZXYgPSBOVUxMOw0KPiAtCXN0cnVjdCBsaXN0X2hlYWQgZGV2aWNlX2xpc3Qs ICpkZXZpY2VfbGlzdF9oYW5kbGUgPSAgTlVMTDsNCj4gKwlpbnQgaSwgciA9IDA7DQo+ICAgDQo+ ICsJbmVlZF9mdWxsX3Jlc2V0ID0gam9iX3NpZ25hbGVkID0gZmFsc2U7DQo+ICAgCUlOSVRfTElT VF9IRUFEKCZkZXZpY2VfbGlzdCk7DQo+ICAgDQo+ICAgCWRldl9pbmZvKGFkZXYtPmRldiwgIkdQ VSByZXNldCBiZWdpbiFcbiIpOw0KPiAgIA0KPiArCWhpdmUgPSBhbWRncHVfZ2V0X3hnbWlfaGl2 ZShhZGV2LCBmYWxzZSk7DQo+ICsNCj4gICAJLyoNCj4gLQkgKiBJbiBjYXNlIG9mIFhHTUkgaGl2 ZSBkaXNhbGxvdyBjb25jdXJyZW50IHJlc2V0cyB0byBiZSB0cmlnZ2VyZWQNCj4gLQkgKiBieSBk aWZmZXJlbnQgbm9kZXMuIE5vIHBvaW50IGFsc28gc2luY2UgdGhlIG9uZSBub2RlIGFscmVhZHkg ZXhlY3V0aW5nDQo+IC0JICogcmVzZXQgd2lsbCBhbHNvIHJlc2V0IGFsbCB0aGUgb3RoZXIgbm9k ZXMgaW4gdGhlIGhpdmUuDQo+ICsJICogSGVyZSB3ZSB0cnlsb2NrIHRvIGF2b2lkIGNoYWluIG9m IHJlc2V0cyBleGVjdXRpbmcgZnJvbQ0KPiArCSAqIGVpdGhlciB0cmlnZ2VyIGJ5IGpvYnMgb24g ZGlmZmVyZW50IGFkZXZzIGluIFhHTUkgaGl2ZSBvciBqb2JzIG9uDQo+ICsJICogZGlmZmVyZW50 IHNjaGVkdWxlcnMgZm9yIHNhbWUgZGV2aWNlIHdoaWxlIHRoaXMgVE8gaGFuZGxlciBpcyBydW5u aW5nLg0KPiArCSAqIFdlIGFsd2F5cyByZXNldCBhbGwgc2NoZWR1bGVycyBmb3IgZGV2aWNlIGFu ZCBhbGwgZGV2aWNlcyBmb3IgWEdNSQ0KPiArCSAqIGhpdmUgc28gdGhhdCBzaG91bGQgdGFrZSBj YXJlIG9mIHRoZW0gdG9vLg0KPiAgIAkgKi8NCj4gLQloaXZlID0gYW1kZ3B1X2dldF94Z21pX2hp dmUoYWRldiwgMCk7DQo+IC0JaWYgKGhpdmUgJiYgYWRldi0+Z21jLnhnbWkubnVtX3BoeXNpY2Fs X25vZGVzID4gMSAmJg0KPiAtCSAgICAhbXV0ZXhfdHJ5bG9jaygmaGl2ZS0+cmVzZXRfbG9jaykp DQo+ICsNCj4gKwlpZiAoaGl2ZSAmJiAhbXV0ZXhfdHJ5bG9jaygmaGl2ZS0+cmVzZXRfbG9jaykp IHsNCj4gKwkJRFJNX0lORk8oIkJhaWxpbmcgb24gVERSIGZvciBzX2pvYjolbGx4LCBoaXZlOiAl bGx4IGFzIGFub3RoZXIgYWxyZWFkeSBpbiBwcm9ncmVzcyIsDQo+ICsJCQkgam9iLT5iYXNlLmlk LCBoaXZlLT5oaXZlX2lkKTsNCj4gICAJCXJldHVybiAwOw0KPiArCX0NCj4gICANCj4gICAJLyog U3RhcnQgd2l0aCBhZGV2IHByZSBhc2ljIHJlc2V0IGZpcnN0IGZvciBzb2Z0IHJlc2V0IGNoZWNr LiovDQo+IC0JYW1kZ3B1X2RldmljZV9sb2NrX2FkZXYoYWRldik7DQo+IC0JciA9IGFtZGdwdV9k ZXZpY2VfcHJlX2FzaWNfcmVzZXQoYWRldiwNCj4gLQkJCQkJIGpvYiwNCj4gLQkJCQkJICZuZWVk X2Z1bGxfcmVzZXQpOw0KPiAtCWlmIChyKSB7DQo+IC0JCS8qVE9ETyBTaG91bGQgd2Ugc3RvcCA/ Ki8NCj4gLQkJRFJNX0VSUk9SKCJHUFUgcHJlIGFzaWMgcmVzZXQgZmFpbGVkIHdpdGggZXJyLCAl ZCBmb3IgZHJtIGRldiwgJXMgIiwNCj4gLQkJCSAgciwgYWRldi0+ZGRldi0+dW5pcXVlKTsNCj4g LQkJYWRldi0+YXNpY19yZXNldF9yZXMgPSByOw0KPiArCWlmICghYW1kZ3B1X2RldmljZV9sb2Nr X2FkZXYoYWRldiwgIWhpdmUpKSB7DQo+ICsJCURSTV9JTkZPKCJCYWlsaW5nIG9uIFREUiBmb3Ig c19qb2I6JWxseCwgYXMgYW5vdGhlciBhbHJlYWR5IGluIHByb2dyZXNzIiwNCj4gKwkJCQkJIGpv Yi0+YmFzZS5pZCk7DQo+ICsJCXJldHVybiAwOw0KPiAgIAl9DQo+ICAgDQo+ICAgCS8qIEJ1aWxk IGxpc3Qgb2YgZGV2aWNlcyB0byByZXNldCAqLw0KPiAtCWlmICAobmVlZF9mdWxsX3Jlc2V0ICYm IGFkZXYtPmdtYy54Z21pLm51bV9waHlzaWNhbF9ub2RlcyA+IDEpIHsNCj4gKwlpZiAgKGFkZXYt PmdtYy54Z21pLm51bV9waHlzaWNhbF9ub2RlcyA+IDEpIHsNCj4gICAJCWlmICghaGl2ZSkgew0K PiAgIAkJCWFtZGdwdV9kZXZpY2VfdW5sb2NrX2FkZXYoYWRldik7DQo+ICAgCQkJcmV0dXJuIC1F Tk9ERVY7DQo+IEBAIC0zNTg4LDEzICszNTczLDU2IEBAIGludCBhbWRncHVfZGV2aWNlX2dwdV9y ZWNvdmVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPiAgIAkJZGV2aWNlX2xpc3RfaGFu ZGxlID0gJmRldmljZV9saXN0Ow0KPiAgIAl9DQo+ICAgDQo+ICsJLyogYmxvY2sgYWxsIHNjaGVk dWxlcnMgYW5kIHJlc2V0IGdpdmVuIGpvYidzIHJpbmcgKi8NCj4gKwlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KHRtcF9hZGV2LCBkZXZpY2VfbGlzdF9oYW5kbGUsIGdtYy54Z21pLmhlYWQpIHsNCj4gKwkJ Zm9yIChpID0gMDsgaSA8IEFNREdQVV9NQVhfUklOR1M7ICsraSkgew0KPiArCQkJc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nID0gdG1wX2FkZXYtPnJpbmdzW2ldOw0KPiArDQo+ICsJCQlpZiAoIXJp bmcgfHwgIXJpbmctPnNjaGVkLnRocmVhZCkNCj4gKwkJCQljb250aW51ZTsNCj4gKw0KPiArCQkJ ZHJtX3NjaGVkX3N0b3AoJnJpbmctPnNjaGVkLCAmam9iLT5iYXNlKTsNCj4gKwkJfQ0KPiArCX0N Cj4gKw0KPiArDQo+ICsJLyoNCj4gKwkgKiBNdXN0IGNoZWNrIGd1aWx0eSBzaWduYWwgaGVyZSBz aW5jZSBhZnRlciB0aGlzIHBvaW50IGFsbCBvbGQNCj4gKwkgKiBIVyBmZW5jZXMgYXJlIGZvcmNl IHNpZ25hbGVkLg0KPiArCSAqDQo+ICsJICogam9iLT5iYXNlIGhvbGRzIGEgcmVmZXJlbmNlIHRv IHBhcmVudCBmZW5jZQ0KPiArCSAqLw0KPiArCWlmIChqb2IgJiYgam9iLT5iYXNlLnNfZmVuY2Ut PnBhcmVudCAmJg0KPiArCSAgICBkbWFfZmVuY2VfaXNfc2lnbmFsZWQoam9iLT5iYXNlLnNfZmVu Y2UtPnBhcmVudCkpDQo+ICsJCWpvYl9zaWduYWxlZCA9IHRydWU7DQo+ICsNCj4gKwlpZiAoIWFt ZGdwdV9kZXZpY2VfaXBfbmVlZF9mdWxsX3Jlc2V0KGFkZXYpKQ0KPiArCQlkZXZpY2VfbGlzdF9o YW5kbGUgPSAmZGV2aWNlX2xpc3Q7DQo+ICsNCj4gKwlpZiAoam9iX3NpZ25hbGVkKSB7DQo+ICsJ CWRldl9pbmZvKGFkZXYtPmRldiwgIkd1aWx0eSBqb2IgYWxyZWFkeSBzaWduYWxlZCwgc2tpcHBp bmcgSFcgcmVzZXQiKTsNCj4gKwkJZ290byBza2lwX2h3X3Jlc2V0Ow0KPiArCX0NCj4gKw0KPiAr DQo+ICsJLyogR3VpbHR5IGpvYiB3aWxsIGJlIGZyZWVkIGFmdGVyIHRoaXMqLw0KPiArCXIgPSBh bWRncHVfZGV2aWNlX3ByZV9hc2ljX3Jlc2V0KGFkZXYsDQo+ICsJCQkJCSBqb2IsDQo+ICsJCQkJ CSAmbmVlZF9mdWxsX3Jlc2V0KTsNCj4gKwlpZiAocikgew0KPiArCQkvKlRPRE8gU2hvdWxkIHdl IHN0b3AgPyovDQo+ICsJCURSTV9FUlJPUigiR1BVIHByZSBhc2ljIHJlc2V0IGZhaWxlZCB3aXRo IGVyciwgJWQgZm9yIGRybSBkZXYsICVzICIsDQo+ICsJCQkgIHIsIGFkZXYtPmRkZXYtPnVuaXF1 ZSk7DQo+ICsJCWFkZXYtPmFzaWNfcmVzZXRfcmVzID0gcjsNCj4gKwl9DQo+ICsNCj4gICByZXRy eToJLyogUmVzdCBvZiBhZGV2cyBwcmUgYXNpYyByZXNldCBmcm9tIFhHTUkgaGl2ZS4gKi8NCj4g ICAJbGlzdF9mb3JfZWFjaF9lbnRyeSh0bXBfYWRldiwgZGV2aWNlX2xpc3RfaGFuZGxlLCBnbWMu eGdtaS5oZWFkKSB7DQo+ICAgDQo+ICAgCQlpZiAodG1wX2FkZXYgPT0gYWRldikNCj4gICAJCQlj b250aW51ZTsNCj4gICANCj4gLQkJYW1kZ3B1X2RldmljZV9sb2NrX2FkZXYodG1wX2FkZXYpOw0K PiArCQlhbWRncHVfZGV2aWNlX2xvY2tfYWRldih0bXBfYWRldiwgZmFsc2UpOw0KPiAgIAkJciA9 IGFtZGdwdV9kZXZpY2VfcHJlX2FzaWNfcmVzZXQodG1wX2FkZXYsDQo+ICAgCQkJCQkJIE5VTEws DQo+ICAgCQkJCQkJICZuZWVkX2Z1bGxfcmVzZXQpOw0KPiBAQCAtMzYxOCw5ICszNjQ2LDI4IEBA IGludCBhbWRncHVfZGV2aWNlX2dwdV9yZWNvdmVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LA0KPiAgIAkJCWdvdG8gcmV0cnk7DQo+ICAgCX0NCj4gICANCj4gK3NraXBfaHdfcmVzZXQ6DQo+ ICsNCj4gICAJLyogUG9zdCBBU0lDIHJlc2V0IGZvciBhbGwgZGV2cyAuKi8NCj4gICAJbGlzdF9m b3JfZWFjaF9lbnRyeSh0bXBfYWRldiwgZGV2aWNlX2xpc3RfaGFuZGxlLCBnbWMueGdtaS5oZWFk KSB7DQo+IC0JCWFtZGdwdV9kZXZpY2VfcG9zdF9hc2ljX3Jlc2V0KHRtcF9hZGV2KTsNCj4gKwkJ Zm9yIChpID0gMDsgaSA8IEFNREdQVV9NQVhfUklOR1M7ICsraSkgew0KPiArCQkJc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nID0gdG1wX2FkZXYtPnJpbmdzW2ldOw0KPiArDQo+ICsJCQlpZiAoIXJp bmcgfHwgIXJpbmctPnNjaGVkLnRocmVhZCkNCj4gKwkJCQljb250aW51ZTsNCj4gKw0KPiArCQkJ LyogTm8gcG9pbnQgdG8gcmVzdWJtaXQgam9icyBpZiB3ZSBkaWRuJ3QgSFcgcmVzZXQqLw0KPiAr CQkJaWYgKCF0bXBfYWRldi0+YXNpY19yZXNldF9yZXMgJiYgIWpvYl9zaWduYWxlZCkNCj4gKwkJ CQlkcm1fc2NoZWRfcmVzdWJtaXRfam9icygmcmluZy0+c2NoZWQpOw0KPiArDQo+ICsJCQlkcm1f c2NoZWRfc3RhcnQoJnJpbmctPnNjaGVkLCAhdG1wX2FkZXYtPmFzaWNfcmVzZXRfcmVzKTsNCj4g KwkJfQ0KPiArDQo+ICsJCWlmICghYW1kZ3B1X2RldmljZV9oYXNfZGNfc3VwcG9ydCh0bXBfYWRl dikgJiYgIWpvYl9zaWduYWxlZCkgew0KPiArCQkJZHJtX2hlbHBlcl9yZXN1bWVfZm9yY2VfbW9k ZSh0bXBfYWRldi0+ZGRldik7DQo+ICsJCX0NCj4gKw0KPiArCQl0bXBfYWRldi0+YXNpY19yZXNl dF9yZXMgPSAwOw0KPiAgIA0KPiAgIAkJaWYgKHIpIHsNCj4gICAJCQkvKiBiYWQgbmV3cywgaG93 IHRvIHRlbGwgaXQgdG8gdXNlcnNwYWNlID8gKi8NCj4gQEAgLTM2MzMsNyArMzY4MCw3IEBAIGlu dCBhbWRncHVfZGV2aWNlX2dwdV9yZWNvdmVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0K PiAgIAkJYW1kZ3B1X2RldmljZV91bmxvY2tfYWRldih0bXBfYWRldik7DQo+ICAgCX0NCj4gICAN Cj4gLQlpZiAoaGl2ZSAmJiBhZGV2LT5nbWMueGdtaS5udW1fcGh5c2ljYWxfbm9kZXMgPiAxKQ0K PiArCWlmIChoaXZlKQ0KPiAgIAkJbXV0ZXhfdW5sb2NrKCZoaXZlLT5yZXNldF9sb2NrKTsNCj4g ICANCj4gICAJaWYgKHIpDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZng=