From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kazlauskas, Nicholas" Subject: Re: [PATCH v5 6/6] drm/amdgpu: Avoid HW reset if guilty job already signaled. Date: Tue, 23 Apr 2019 13:14:28 +0000 Message-ID: <84ca58e2-2b56-2082-d705-3b34e768c613@amd.com> References: <1555599624-12285-1-git-send-email-andrey.grodzovsky@amd.com> <1555599624-12285-6-git-send-email-andrey.grodzovsky@amd.com> <7a09bdb5-0acb-3df1-6691-4940920411ec@amd.com> <9774408b-cc4c-90dd-cbc7-6ef5c6fd8c46@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <9774408b-cc4c-90dd-cbc7-6ef5c6fd8c46-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Koenig, Christian" , "Grodzovsky, Andrey" , "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" List-Id: dri-devel@lists.freedesktop.org RmVlbCBmcmVlIHRvIG1lcmdlIDErMiBzaW5jZSB0aGV5IGRvbid0IHJlYWxseSBkZXBlbmQgb24g YW55IG90aGVyIHdvcmsgDQppbiB0aGUgc2VyaWVzIGFuZCB0aGV5IHdlcmUgcHJldmlvdXNseSBy ZXZpZXdlZC4NCg0KTmljaG9sYXMgS2F6bGF1c2thcw0KDQpPbiA0LzIzLzE5IDg6MzIgQU0sIEtv ZW5pZywgQ2hyaXN0aWFuIHdyb3RlOg0KPiBXZWxsIHlvdSBhdCBsZWFzdCBoYXZlIHRvIGdpdmUg bWUgdGltZSB0aWxsIGFmdGVyIHRoZSBob2xpZGF5cyB0byBnZXQNCj4gZ29pbmcgYWdhaW4gOikN Cj4gDQo+IE5vdCBzdXJlIGV4YWN0bHkgamV0IHdoeSB3ZSBuZWVkIHBhdGNoIG51bWJlciA1Lg0K PiANCj4gQW5kIHdlIHNob3VsZCBwcm9iYWJseSBjb21taXQgcGF0Y2ggIzEgYW5kICMyLg0KPiAN Cj4gQ2hyaXN0aWFuLg0KPiANCj4gQW0gMjIuMDQuMTkgdW0gMTM6NTQgc2NocmllYiBHcm9kem92 c2t5LCBBbmRyZXk6DQo+PiBQaW5nIGZvciBwYXRjaGVzIDMsIG5ldyBwYXRjaCA1IGFuZCBwYXRj aCA2Lg0KPj4NCj4+IEFuZHJleQ0KPj4NCj4+IE9uIDQvMTgvMTkgMTE6MDAgQU0sIEFuZHJleSBH cm9kem92c2t5IHdyb3RlOg0KPj4+IEFsc28gcmVqZWN0IFREUnMgaWYgYW5vdGhlciBvbmUgYWxy ZWFkeSBydW5uaW5nLg0KPj4+DQo+Pj4gdjI6DQo+Pj4gU3RvcCBhbGwgc2NoZWR1bGVycyBhY3Jv c3MgZGV2aWNlIGFuZCBlbnRpcmUgWEdNSSBoaXZlIGJlZm9yZQ0KPj4+IGZvcmNlIHNpZ25hbGlu ZyBIVyBmZW5jZXMuDQo+Pj4gQXZvaWQgcGFzc2luZyBqb2Jfc2lnbmFsZWQgdG8gaGVscGVyIGZu Y3Rpb25zIHRvIGtlZXAgYWxsIHRoZSBkZWNpc2lvbg0KPj4+IG1ha2luZyBhYm91dCBza2lwcGlu ZyBIVyByZXNldCBpbiBvbmUgcGxhY2UuDQo+Pj4NCj4+PiB2MzoNCj4+PiBGaXggU1cgc2NoZWQu IGhhbmcgYWZ0ZXIgbm9uIEhXIHJlc2V0LiBzY2hlZC5od19ycV9jb3VudCBoYXMgdG8gYmUgYmFs YW5jZWQNCj4+PiBhZ2FpbnN0IGl0J3MgZGVjcmVtZW50IGluIGRybV9zY2hlZF9zdG9wIGluIG5v biBIVyByZXNldCBjYXNlLg0KPj4+IHY0OiByZWJhc2UNCj4+PiB2NTogUmV2ZXJ0IHYzIGFzIHdl IGRvIGl0IG5vdyBpbiBzY2VkdWxlciBjb2RlLg0KPj4+DQo+Pj4gU2lnbmVkLW9mZi1ieTogQW5k cmV5IEdyb2R6b3Zza3kgPGFuZHJleS5ncm9kem92c2t5QGFtZC5jb20+DQo+Pj4gLS0tDQo+Pj4g ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8IDE0MyArKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLQ0KPj4+ICAgICAxIGZpbGUgY2hhbmdlZCwgOTUgaW5z ZXJ0aW9ucygrKSwgNDggZGVsZXRpb25zKC0pDQo+Pj4NCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jDQo+Pj4gaW5kZXggYTBlMTY1Yy4uODVmODc5MiAxMDA2 NDQNCj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMN Cj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMNCj4+ PiBAQCAtMzMzNCw4ICszMzM0LDYgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX3ByZV9hc2lj X3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPj4+ICAgICAJCWlmICghcmluZyB8 fCAhcmluZy0+c2NoZWQudGhyZWFkKQ0KPj4+ICAgICAJCQljb250aW51ZTsNCj4+PiAgICAgDQo+ Pj4gLQkJZHJtX3NjaGVkX3N0b3AoJnJpbmctPnNjaGVkLCAmam9iLT5iYXNlKTsNCj4+PiAtDQo+ Pj4gICAgIAkJLyogYWZ0ZXIgYWxsIGh3IGpvYnMgYXJlIHJlc2V0LCBodyBmZW5jZSBpcyBtZWFu aW5nbGVzcywgc28gZm9yY2VfY29tcGxldGlvbiAqLw0KPj4+ICAgICAJCWFtZGdwdV9mZW5jZV9k cml2ZXJfZm9yY2VfY29tcGxldGlvbihyaW5nKTsNCj4+PiAgICAgCX0NCj4+PiBAQCAtMzM0Myw2 ICszMzQxLDcgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX3ByZV9hc2ljX3Jlc2V0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LA0KPj4+ICAgICAJaWYoam9iKQ0KPj4+ICAgICAJCWRybV9z Y2hlZF9pbmNyZWFzZV9rYXJtYSgmam9iLT5iYXNlKTsNCj4+PiAgICAgDQo+Pj4gKwkvKiBEb24n dCBzdXNwZW5kIG9uIGJhcmUgbWV0YWwgaWYgd2UgYXJlIG5vdCBnb2luZyB0byBIVyByZXNldCB0 aGUgQVNJQyAqLw0KPj4+ICAgICAJaWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpIHsNCj4+PiAg ICAgDQo+Pj4gICAgIAkJaWYgKCFuZWVkX2Z1bGxfcmVzZXQpDQo+Pj4gQEAgLTM0ODAsMzcgKzM0 NzksMjEgQEAgc3RhdGljIGludCBhbWRncHVfZG9fYXNpY19yZXNldChzdHJ1Y3QgYW1kZ3B1X2hp dmVfaW5mbyAqaGl2ZSwNCj4+PiAgICAgCXJldHVybiByOw0KPj4+ICAgICB9DQo+Pj4gICAgIA0K Pj4+IC1zdGF0aWMgdm9pZCBhbWRncHVfZGV2aWNlX3Bvc3RfYXNpY19yZXNldChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikNCj4+PiArc3RhdGljIGJvb2wgYW1kZ3B1X2RldmljZV9sb2NrX2Fk ZXYoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgdHJ5bG9jaykNCj4+PiAgICAgew0K Pj4+IC0JaW50IGk7DQo+Pj4gLQ0KPj4+IC0JZm9yIChpID0gMDsgaSA8IEFNREdQVV9NQVhfUklO R1M7ICsraSkgew0KPj4+IC0JCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9IGFkZXYtPnJpbmdz W2ldOw0KPj4+IC0NCj4+PiAtCQlpZiAoIXJpbmcgfHwgIXJpbmctPnNjaGVkLnRocmVhZCkNCj4+ PiAtCQkJY29udGludWU7DQo+Pj4gLQ0KPj4+IC0JCWlmICghYWRldi0+YXNpY19yZXNldF9yZXMp DQo+Pj4gLQkJCWRybV9zY2hlZF9yZXN1Ym1pdF9qb2JzKCZyaW5nLT5zY2hlZCk7DQo+Pj4gKwlp ZiAodHJ5bG9jaykgew0KPj4+ICsJCWlmICghbXV0ZXhfdHJ5bG9jaygmYWRldi0+bG9ja19yZXNl dCkpDQo+Pj4gKwkJCXJldHVybiBmYWxzZTsNCj4+PiArCX0gZWxzZQ0KPj4+ICsJCW11dGV4X2xv Y2soJmFkZXYtPmxvY2tfcmVzZXQpOw0KPj4+ICAgICANCj4+PiAtCQlkcm1fc2NoZWRfc3RhcnQo JnJpbmctPnNjaGVkLCAhYWRldi0+YXNpY19yZXNldF9yZXMpOw0KPj4+IC0JfQ0KPj4+IC0NCj4+ PiAtCWlmICghYW1kZ3B1X2RldmljZV9oYXNfZGNfc3VwcG9ydChhZGV2KSkgew0KPj4+IC0JCWRy bV9oZWxwZXJfcmVzdW1lX2ZvcmNlX21vZGUoYWRldi0+ZGRldik7DQo+Pj4gLQl9DQo+Pj4gLQ0K Pj4+IC0JYWRldi0+YXNpY19yZXNldF9yZXMgPSAwOw0KPj4+IC19DQo+Pj4gLQ0KPj4+IC1zdGF0 aWMgdm9pZCBhbWRncHVfZGV2aWNlX2xvY2tfYWRldihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikNCj4+PiAtew0KPj4+IC0JbXV0ZXhfbG9jaygmYWRldi0+bG9ja19yZXNldCk7DQo+Pj4gICAg IAlhdG9taWNfaW5jKCZhZGV2LT5ncHVfcmVzZXRfY291bnRlcik7DQo+Pj4gICAgIAlhZGV2LT5p bl9ncHVfcmVzZXQgPSAxOw0KPj4+ICAgICAJLyogQmxvY2sga2ZkOiBTUklPViB3b3VsZCBkbyBp dCBzZXBhcmF0ZWx5ICovDQo+Pj4gICAgIAlpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkNCj4+ PiAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV9hbWRrZmRfcHJlX3Jlc2V0KGFkZXYpOw0KPj4+ ICsNCj4+PiArCXJldHVybiB0cnVlOw0KPj4+ICAgICB9DQo+Pj4gICAgIA0KPj4+ICAgICBzdGF0 aWMgdm9pZCBhbWRncHVfZGV2aWNlX3VubG9ja19hZGV2KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQ0KPj4+IEBAIC0zNTM4LDQwICszNTIxLDQyIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kZXZp Y2VfdW5sb2NrX2FkZXYoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+Pj4gICAgIGludCBh bWRncHVfZGV2aWNlX2dwdV9yZWNvdmVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPj4+ ICAgICAJCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iKQ0KPj4+ICAgICB7DQo+Pj4gLQlp bnQgcjsNCj4+PiArCXN0cnVjdCBsaXN0X2hlYWQgZGV2aWNlX2xpc3QsICpkZXZpY2VfbGlzdF9o YW5kbGUgPSAgTlVMTDsNCj4+PiArCWJvb2wgbmVlZF9mdWxsX3Jlc2V0LCBqb2Jfc2lnbmFsZWQ7 DQo+Pj4gICAgIAlzdHJ1Y3QgYW1kZ3B1X2hpdmVfaW5mbyAqaGl2ZSA9IE5VTEw7DQo+Pj4gLQli b29sIG5lZWRfZnVsbF9yZXNldCA9IGZhbHNlOw0KPj4+ICAgICAJc3RydWN0IGFtZGdwdV9kZXZp Y2UgKnRtcF9hZGV2ID0gTlVMTDsNCj4+PiAtCXN0cnVjdCBsaXN0X2hlYWQgZGV2aWNlX2xpc3Qs ICpkZXZpY2VfbGlzdF9oYW5kbGUgPSAgTlVMTDsNCj4+PiArCWludCBpLCByID0gMDsNCj4+PiAg ICAgDQo+Pj4gKwluZWVkX2Z1bGxfcmVzZXQgPSBqb2Jfc2lnbmFsZWQgPSBmYWxzZTsNCj4+PiAg ICAgCUlOSVRfTElTVF9IRUFEKCZkZXZpY2VfbGlzdCk7DQo+Pj4gICAgIA0KPj4+ICAgICAJZGV2 X2luZm8oYWRldi0+ZGV2LCAiR1BVIHJlc2V0IGJlZ2luIVxuIik7DQo+Pj4gICAgIA0KPj4+ICsJ aGl2ZSA9IGFtZGdwdV9nZXRfeGdtaV9oaXZlKGFkZXYsIGZhbHNlKTsNCj4+PiArDQo+Pj4gICAg IAkvKg0KPj4+IC0JICogSW4gY2FzZSBvZiBYR01JIGhpdmUgZGlzYWxsb3cgY29uY3VycmVudCBy ZXNldHMgdG8gYmUgdHJpZ2dlcmVkDQo+Pj4gLQkgKiBieSBkaWZmZXJlbnQgbm9kZXMuIE5vIHBv aW50IGFsc28gc2luY2UgdGhlIG9uZSBub2RlIGFscmVhZHkgZXhlY3V0aW5nDQo+Pj4gLQkgKiBy ZXNldCB3aWxsIGFsc28gcmVzZXQgYWxsIHRoZSBvdGhlciBub2RlcyBpbiB0aGUgaGl2ZS4NCj4+ PiArCSAqIEhlcmUgd2UgdHJ5bG9jayB0byBhdm9pZCBjaGFpbiBvZiByZXNldHMgZXhlY3V0aW5n IGZyb20NCj4+PiArCSAqIGVpdGhlciB0cmlnZ2VyIGJ5IGpvYnMgb24gZGlmZmVyZW50IGFkZXZz IGluIFhHTUkgaGl2ZSBvciBqb2JzIG9uDQo+Pj4gKwkgKiBkaWZmZXJlbnQgc2NoZWR1bGVycyBm b3Igc2FtZSBkZXZpY2Ugd2hpbGUgdGhpcyBUTyBoYW5kbGVyIGlzIHJ1bm5pbmcuDQo+Pj4gKwkg KiBXZSBhbHdheXMgcmVzZXQgYWxsIHNjaGVkdWxlcnMgZm9yIGRldmljZSBhbmQgYWxsIGRldmlj ZXMgZm9yIFhHTUkNCj4+PiArCSAqIGhpdmUgc28gdGhhdCBzaG91bGQgdGFrZSBjYXJlIG9mIHRo ZW0gdG9vLg0KPj4+ICAgICAJICovDQo+Pj4gLQloaXZlID0gYW1kZ3B1X2dldF94Z21pX2hpdmUo YWRldiwgMCk7DQo+Pj4gLQlpZiAoaGl2ZSAmJiBhZGV2LT5nbWMueGdtaS5udW1fcGh5c2ljYWxf bm9kZXMgPiAxICYmDQo+Pj4gLQkgICAgIW11dGV4X3RyeWxvY2soJmhpdmUtPnJlc2V0X2xvY2sp KQ0KPj4+ICsNCj4+PiArCWlmIChoaXZlICYmICFtdXRleF90cnlsb2NrKCZoaXZlLT5yZXNldF9s b2NrKSkgew0KPj4+ICsJCURSTV9JTkZPKCJCYWlsaW5nIG9uIFREUiBmb3Igc19qb2I6JWxseCwg aGl2ZTogJWxseCBhcyBhbm90aGVyIGFscmVhZHkgaW4gcHJvZ3Jlc3MiLA0KPj4+ICsJCQkgam9i LT5iYXNlLmlkLCBoaXZlLT5oaXZlX2lkKTsNCj4+PiAgICAgCQlyZXR1cm4gMDsNCj4+PiArCX0N Cj4+PiAgICAgDQo+Pj4gICAgIAkvKiBTdGFydCB3aXRoIGFkZXYgcHJlIGFzaWMgcmVzZXQgZmly c3QgZm9yIHNvZnQgcmVzZXQgY2hlY2suKi8NCj4+PiAtCWFtZGdwdV9kZXZpY2VfbG9ja19hZGV2 KGFkZXYpOw0KPj4+IC0JciA9IGFtZGdwdV9kZXZpY2VfcHJlX2FzaWNfcmVzZXQoYWRldiwNCj4+ PiAtCQkJCQkgam9iLA0KPj4+IC0JCQkJCSAmbmVlZF9mdWxsX3Jlc2V0KTsNCj4+PiAtCWlmIChy KSB7DQo+Pj4gLQkJLypUT0RPIFNob3VsZCB3ZSBzdG9wID8qLw0KPj4+IC0JCURSTV9FUlJPUigi R1BVIHByZSBhc2ljIHJlc2V0IGZhaWxlZCB3aXRoIGVyciwgJWQgZm9yIGRybSBkZXYsICVzICIs DQo+Pj4gLQkJCSAgciwgYWRldi0+ZGRldi0+dW5pcXVlKTsNCj4+PiAtCQlhZGV2LT5hc2ljX3Jl c2V0X3JlcyA9IHI7DQo+Pj4gKwlpZiAoIWFtZGdwdV9kZXZpY2VfbG9ja19hZGV2KGFkZXYsICFo aXZlKSkgew0KPj4+ICsJCURSTV9JTkZPKCJCYWlsaW5nIG9uIFREUiBmb3Igc19qb2I6JWxseCwg YXMgYW5vdGhlciBhbHJlYWR5IGluIHByb2dyZXNzIiwNCj4+PiArCQkJCQkgam9iLT5iYXNlLmlk KTsNCj4+PiArCQlyZXR1cm4gMDsNCj4+PiAgICAgCX0NCj4+PiAgICAgDQo+Pj4gICAgIAkvKiBC dWlsZCBsaXN0IG9mIGRldmljZXMgdG8gcmVzZXQgKi8NCj4+PiAtCWlmICAobmVlZF9mdWxsX3Jl c2V0ICYmIGFkZXYtPmdtYy54Z21pLm51bV9waHlzaWNhbF9ub2RlcyA+IDEpIHsNCj4+PiArCWlm ICAoYWRldi0+Z21jLnhnbWkubnVtX3BoeXNpY2FsX25vZGVzID4gMSkgew0KPj4+ICAgICAJCWlm ICghaGl2ZSkgew0KPj4+ICAgICAJCQlhbWRncHVfZGV2aWNlX3VubG9ja19hZGV2KGFkZXYpOw0K Pj4+ICAgICAJCQlyZXR1cm4gLUVOT0RFVjsNCj4+PiBAQCAtMzU4OCwxMyArMzU3Myw1NiBAQCBp bnQgYW1kZ3B1X2RldmljZV9ncHVfcmVjb3ZlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwN Cj4+PiAgICAgCQlkZXZpY2VfbGlzdF9oYW5kbGUgPSAmZGV2aWNlX2xpc3Q7DQo+Pj4gICAgIAl9 DQo+Pj4gICAgIA0KPj4+ICsJLyogYmxvY2sgYWxsIHNjaGVkdWxlcnMgYW5kIHJlc2V0IGdpdmVu IGpvYidzIHJpbmcgKi8NCj4+PiArCWxpc3RfZm9yX2VhY2hfZW50cnkodG1wX2FkZXYsIGRldmlj ZV9saXN0X2hhbmRsZSwgZ21jLnhnbWkuaGVhZCkgew0KPj4+ICsJCWZvciAoaSA9IDA7IGkgPCBB TURHUFVfTUFYX1JJTkdTOyArK2kpIHsNCj4+PiArCQkJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n ID0gdG1wX2FkZXYtPnJpbmdzW2ldOw0KPj4+ICsNCj4+PiArCQkJaWYgKCFyaW5nIHx8ICFyaW5n LT5zY2hlZC50aHJlYWQpDQo+Pj4gKwkJCQljb250aW51ZTsNCj4+PiArDQo+Pj4gKwkJCWRybV9z Y2hlZF9zdG9wKCZyaW5nLT5zY2hlZCwgJmpvYi0+YmFzZSk7DQo+Pj4gKwkJfQ0KPj4+ICsJfQ0K Pj4+ICsNCj4+PiArDQo+Pj4gKwkvKg0KPj4+ICsJICogTXVzdCBjaGVjayBndWlsdHkgc2lnbmFs IGhlcmUgc2luY2UgYWZ0ZXIgdGhpcyBwb2ludCBhbGwgb2xkDQo+Pj4gKwkgKiBIVyBmZW5jZXMg YXJlIGZvcmNlIHNpZ25hbGVkLg0KPj4+ICsJICoNCj4+PiArCSAqIGpvYi0+YmFzZSBob2xkcyBh IHJlZmVyZW5jZSB0byBwYXJlbnQgZmVuY2UNCj4+PiArCSAqLw0KPj4+ICsJaWYgKGpvYiAmJiBq b2ItPmJhc2Uuc19mZW5jZS0+cGFyZW50ICYmDQo+Pj4gKwkgICAgZG1hX2ZlbmNlX2lzX3NpZ25h bGVkKGpvYi0+YmFzZS5zX2ZlbmNlLT5wYXJlbnQpKQ0KPj4+ICsJCWpvYl9zaWduYWxlZCA9IHRy dWU7DQo+Pj4gKw0KPj4+ICsJaWYgKCFhbWRncHVfZGV2aWNlX2lwX25lZWRfZnVsbF9yZXNldChh ZGV2KSkNCj4+PiArCQlkZXZpY2VfbGlzdF9oYW5kbGUgPSAmZGV2aWNlX2xpc3Q7DQo+Pj4gKw0K Pj4+ICsJaWYgKGpvYl9zaWduYWxlZCkgew0KPj4+ICsJCWRldl9pbmZvKGFkZXYtPmRldiwgIkd1 aWx0eSBqb2IgYWxyZWFkeSBzaWduYWxlZCwgc2tpcHBpbmcgSFcgcmVzZXQiKTsNCj4+PiArCQln b3RvIHNraXBfaHdfcmVzZXQ7DQo+Pj4gKwl9DQo+Pj4gKw0KPj4+ICsNCj4+PiArCS8qIEd1aWx0 eSBqb2Igd2lsbCBiZSBmcmVlZCBhZnRlciB0aGlzKi8NCj4+PiArCXIgPSBhbWRncHVfZGV2aWNl X3ByZV9hc2ljX3Jlc2V0KGFkZXYsDQo+Pj4gKwkJCQkJIGpvYiwNCj4+PiArCQkJCQkgJm5lZWRf ZnVsbF9yZXNldCk7DQo+Pj4gKwlpZiAocikgew0KPj4+ICsJCS8qVE9ETyBTaG91bGQgd2Ugc3Rv cCA/Ki8NCj4+PiArCQlEUk1fRVJST1IoIkdQVSBwcmUgYXNpYyByZXNldCBmYWlsZWQgd2l0aCBl cnIsICVkIGZvciBkcm0gZGV2LCAlcyAiLA0KPj4+ICsJCQkgIHIsIGFkZXYtPmRkZXYtPnVuaXF1 ZSk7DQo+Pj4gKwkJYWRldi0+YXNpY19yZXNldF9yZXMgPSByOw0KPj4+ICsJfQ0KPj4+ICsNCj4+ PiAgICAgcmV0cnk6CS8qIFJlc3Qgb2YgYWRldnMgcHJlIGFzaWMgcmVzZXQgZnJvbSBYR01JIGhp dmUuICovDQo+Pj4gICAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRtcF9hZGV2LCBkZXZpY2VfbGlz dF9oYW5kbGUsIGdtYy54Z21pLmhlYWQpIHsNCj4+PiAgICAgDQo+Pj4gICAgIAkJaWYgKHRtcF9h ZGV2ID09IGFkZXYpDQo+Pj4gICAgIAkJCWNvbnRpbnVlOw0KPj4+ICAgICANCj4+PiAtCQlhbWRn cHVfZGV2aWNlX2xvY2tfYWRldih0bXBfYWRldik7DQo+Pj4gKwkJYW1kZ3B1X2RldmljZV9sb2Nr X2FkZXYodG1wX2FkZXYsIGZhbHNlKTsNCj4+PiAgICAgCQlyID0gYW1kZ3B1X2RldmljZV9wcmVf YXNpY19yZXNldCh0bXBfYWRldiwNCj4+PiAgICAgCQkJCQkJIE5VTEwsDQo+Pj4gICAgIAkJCQkJ CSAmbmVlZF9mdWxsX3Jlc2V0KTsNCj4+PiBAQCAtMzYxOCw5ICszNjQ2LDI4IEBAIGludCBhbWRn cHVfZGV2aWNlX2dwdV9yZWNvdmVyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPj4+ICAg ICAJCQlnb3RvIHJldHJ5Ow0KPj4+ICAgICAJfQ0KPj4+ICAgICANCj4+PiArc2tpcF9od19yZXNl dDoNCj4+PiArDQo+Pj4gICAgIAkvKiBQb3N0IEFTSUMgcmVzZXQgZm9yIGFsbCBkZXZzIC4qLw0K Pj4+ICAgICAJbGlzdF9mb3JfZWFjaF9lbnRyeSh0bXBfYWRldiwgZGV2aWNlX2xpc3RfaGFuZGxl LCBnbWMueGdtaS5oZWFkKSB7DQo+Pj4gLQkJYW1kZ3B1X2RldmljZV9wb3N0X2FzaWNfcmVzZXQo dG1wX2FkZXYpOw0KPj4+ICsJCWZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1JJTkdTOyArK2kp IHsNCj4+PiArCQkJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gdG1wX2FkZXYtPnJpbmdzW2ld Ow0KPj4+ICsNCj4+PiArCQkJaWYgKCFyaW5nIHx8ICFyaW5nLT5zY2hlZC50aHJlYWQpDQo+Pj4g KwkJCQljb250aW51ZTsNCj4+PiArDQo+Pj4gKwkJCS8qIE5vIHBvaW50IHRvIHJlc3VibWl0IGpv YnMgaWYgd2UgZGlkbid0IEhXIHJlc2V0Ki8NCj4+PiArCQkJaWYgKCF0bXBfYWRldi0+YXNpY19y ZXNldF9yZXMgJiYgIWpvYl9zaWduYWxlZCkNCj4+PiArCQkJCWRybV9zY2hlZF9yZXN1Ym1pdF9q b2JzKCZyaW5nLT5zY2hlZCk7DQo+Pj4gKw0KPj4+ICsJCQlkcm1fc2NoZWRfc3RhcnQoJnJpbmct PnNjaGVkLCAhdG1wX2FkZXYtPmFzaWNfcmVzZXRfcmVzKTsNCj4+PiArCQl9DQo+Pj4gKw0KPj4+ ICsJCWlmICghYW1kZ3B1X2RldmljZV9oYXNfZGNfc3VwcG9ydCh0bXBfYWRldikgJiYgIWpvYl9z aWduYWxlZCkgew0KPj4+ICsJCQlkcm1faGVscGVyX3Jlc3VtZV9mb3JjZV9tb2RlKHRtcF9hZGV2 LT5kZGV2KTsNCj4+PiArCQl9DQo+Pj4gKw0KPj4+ICsJCXRtcF9hZGV2LT5hc2ljX3Jlc2V0X3Jl cyA9IDA7DQo+Pj4gICAgIA0KPj4+ICAgICAJCWlmIChyKSB7DQo+Pj4gICAgIAkJCS8qIGJhZCBu ZXdzLCBob3cgdG8gdGVsbCBpdCB0byB1c2Vyc3BhY2UgPyAqLw0KPj4+IEBAIC0zNjMzLDcgKzM2 ODAsNyBAQCBpbnQgYW1kZ3B1X2RldmljZV9ncHVfcmVjb3ZlcihzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwNCj4+PiAgICAgCQlhbWRncHVfZGV2aWNlX3VubG9ja19hZGV2KHRtcF9hZGV2KTsN Cj4+PiAgICAgCX0NCj4+PiAgICAgDQo+Pj4gLQlpZiAoaGl2ZSAmJiBhZGV2LT5nbWMueGdtaS5u dW1fcGh5c2ljYWxfbm9kZXMgPiAxKQ0KPj4+ICsJaWYgKGhpdmUpDQo+Pj4gICAgIAkJbXV0ZXhf dW5sb2NrKCZoaXZlLT5yZXNldF9sb2NrKTsNCj4+PiAgICAgDQo+Pj4gICAgIAlpZiAocikNCj4g DQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IGRy aS1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0K PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bA0KPiANCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K YW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4