From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Koenig, Christian" Subject: Re: [PATCH v5 6/6] drm/amdgpu: Avoid HW reset if guilty job already signaled. Date: Tue, 23 Apr 2019 12:32:20 +0000 Message-ID: <9774408b-cc4c-90dd-cbc7-6ef5c6fd8c46@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <7a09bdb5-0acb-3df1-6691-4940920411ec@amd.com> Content-Language: en-US Content-ID: <773F9D21BF63B548BFA1B12B54E4D17C@namprd12.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Grodzovsky, Andrey" , "dri-devel@lists.freedesktop.org" , "amd-gfx@lists.freedesktop.org" , "eric@anholt.net" , "etnaviv@lists.freedesktop.org" , "ckoenig.leichtzumerken@gmail.com" Cc: "Kazlauskas, Nicholas" List-Id: dri-devel@lists.freedesktop.org V2VsbCB5b3UgYXQgbGVhc3QgaGF2ZSB0byBnaXZlIG1lIHRpbWUgdGlsbCBhZnRlciB0aGUgaG9s aWRheXMgdG8gZ2V0IA0KZ29pbmcgYWdhaW4gOikNCg0KTm90IHN1cmUgZXhhY3RseSBqZXQgd2h5 IHdlIG5lZWQgcGF0Y2ggbnVtYmVyIDUuDQoNCkFuZCB3ZSBzaG91bGQgcHJvYmFibHkgY29tbWl0 IHBhdGNoICMxIGFuZCAjMi4NCg0KQ2hyaXN0aWFuLg0KDQpBbSAyMi4wNC4xOSB1bSAxMzo1NCBz Y2hyaWViIEdyb2R6b3Zza3ksIEFuZHJleToNCj4gUGluZyBmb3IgcGF0Y2hlcyAzLCBuZXcgcGF0 Y2ggNSBhbmQgcGF0Y2ggNi4NCj4NCj4gQW5kcmV5DQo+DQo+IE9uIDQvMTgvMTkgMTE6MDAgQU0s IEFuZHJleSBHcm9kem92c2t5IHdyb3RlOg0KPj4gQWxzbyByZWplY3QgVERScyBpZiBhbm90aGVy IG9uZSBhbHJlYWR5IHJ1bm5pbmcuDQo+Pg0KPj4gdjI6DQo+PiBTdG9wIGFsbCBzY2hlZHVsZXJz IGFjcm9zcyBkZXZpY2UgYW5kIGVudGlyZSBYR01JIGhpdmUgYmVmb3JlDQo+PiBmb3JjZSBzaWdu YWxpbmcgSFcgZmVuY2VzLg0KPj4gQXZvaWQgcGFzc2luZyBqb2Jfc2lnbmFsZWQgdG8gaGVscGVy IGZuY3Rpb25zIHRvIGtlZXAgYWxsIHRoZSBkZWNpc2lvbg0KPj4gbWFraW5nIGFib3V0IHNraXBw aW5nIEhXIHJlc2V0IGluIG9uZSBwbGFjZS4NCj4+DQo+PiB2MzoNCj4+IEZpeCBTVyBzY2hlZC4g aGFuZyBhZnRlciBub24gSFcgcmVzZXQuIHNjaGVkLmh3X3JxX2NvdW50IGhhcyB0byBiZSBiYWxh bmNlZA0KPj4gYWdhaW5zdCBpdCdzIGRlY3JlbWVudCBpbiBkcm1fc2NoZWRfc3RvcCBpbiBub24g SFcgcmVzZXQgY2FzZS4NCj4+IHY0OiByZWJhc2UNCj4+IHY1OiBSZXZlcnQgdjMgYXMgd2UgZG8g aXQgbm93IGluIHNjZWR1bGVyIGNvZGUuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogQW5kcmV5IEdy b2R6b3Zza3kgPGFuZHJleS5ncm9kem92c2t5QGFtZC5jb20+DQo+PiAtLS0NCj4+ICAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8IDE0MyArKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLQ0KPj4gICAgMSBmaWxlIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKyks IDQ4IGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZGV2aWNlLmMNCj4+IGluZGV4IGEwZTE2NWMuLjg1Zjg3OTIgMTAwNjQ0DQo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMNCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYw0KPj4gQEAgLTMzMzQsOCArMzMz NCw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9wcmVfYXNpY19yZXNldChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwNCj4+ICAgIAkJaWYgKCFyaW5nIHx8ICFyaW5nLT5zY2hlZC50aHJl YWQpDQo+PiAgICAJCQljb250aW51ZTsNCj4+ICAgIA0KPj4gLQkJZHJtX3NjaGVkX3N0b3AoJnJp bmctPnNjaGVkLCAmam9iLT5iYXNlKTsNCj4+IC0NCj4+ICAgIAkJLyogYWZ0ZXIgYWxsIGh3IGpv YnMgYXJlIHJlc2V0LCBodyBmZW5jZSBpcyBtZWFuaW5nbGVzcywgc28gZm9yY2VfY29tcGxldGlv biAqLw0KPj4gICAgCQlhbWRncHVfZmVuY2VfZHJpdmVyX2ZvcmNlX2NvbXBsZXRpb24ocmluZyk7 DQo+PiAgICAJfQ0KPj4gQEAgLTMzNDMsNiArMzM0MSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Rl dmljZV9wcmVfYXNpY19yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+ICAgIAlp Zihqb2IpDQo+PiAgICAJCWRybV9zY2hlZF9pbmNyZWFzZV9rYXJtYSgmam9iLT5iYXNlKTsNCj4+ ICAgIA0KPj4gKwkvKiBEb24ndCBzdXNwZW5kIG9uIGJhcmUgbWV0YWwgaWYgd2UgYXJlIG5vdCBn b2luZyB0byBIVyByZXNldCB0aGUgQVNJQyAqLw0KPj4gICAgCWlmICghYW1kZ3B1X3NyaW92X3Zm KGFkZXYpKSB7DQo+PiAgICANCj4+ICAgIAkJaWYgKCFuZWVkX2Z1bGxfcmVzZXQpDQo+PiBAQCAt MzQ4MCwzNyArMzQ3OSwyMSBAQCBzdGF0aWMgaW50IGFtZGdwdV9kb19hc2ljX3Jlc2V0KHN0cnVj dCBhbWRncHVfaGl2ZV9pbmZvICpoaXZlLA0KPj4gICAgCXJldHVybiByOw0KPj4gICAgfQ0KPj4g ICAgDQo+PiAtc3RhdGljIHZvaWQgYW1kZ3B1X2RldmljZV9wb3N0X2FzaWNfcmVzZXQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+PiArc3RhdGljIGJvb2wgYW1kZ3B1X2RldmljZV9sb2Nr X2FkZXYoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgdHJ5bG9jaykNCj4+ICAgIHsN Cj4+IC0JaW50IGk7DQo+PiAtDQo+PiAtCWZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1JJTkdT OyArK2kpIHsNCj4+IC0JCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9IGFkZXYtPnJpbmdzW2ld Ow0KPj4gLQ0KPj4gLQkJaWYgKCFyaW5nIHx8ICFyaW5nLT5zY2hlZC50aHJlYWQpDQo+PiAtCQkJ Y29udGludWU7DQo+PiAtDQo+PiAtCQlpZiAoIWFkZXYtPmFzaWNfcmVzZXRfcmVzKQ0KPj4gLQkJ CWRybV9zY2hlZF9yZXN1Ym1pdF9qb2JzKCZyaW5nLT5zY2hlZCk7DQo+PiArCWlmICh0cnlsb2Nr KSB7DQo+PiArCQlpZiAoIW11dGV4X3RyeWxvY2soJmFkZXYtPmxvY2tfcmVzZXQpKQ0KPj4gKwkJ CXJldHVybiBmYWxzZTsNCj4+ICsJfSBlbHNlDQo+PiArCQltdXRleF9sb2NrKCZhZGV2LT5sb2Nr X3Jlc2V0KTsNCj4+ICAgIA0KPj4gLQkJZHJtX3NjaGVkX3N0YXJ0KCZyaW5nLT5zY2hlZCwgIWFk ZXYtPmFzaWNfcmVzZXRfcmVzKTsNCj4+IC0JfQ0KPj4gLQ0KPj4gLQlpZiAoIWFtZGdwdV9kZXZp Y2VfaGFzX2RjX3N1cHBvcnQoYWRldikpIHsNCj4+IC0JCWRybV9oZWxwZXJfcmVzdW1lX2ZvcmNl X21vZGUoYWRldi0+ZGRldik7DQo+PiAtCX0NCj4+IC0NCj4+IC0JYWRldi0+YXNpY19yZXNldF9y ZXMgPSAwOw0KPj4gLX0NCj4+IC0NCj4+IC1zdGF0aWMgdm9pZCBhbWRncHVfZGV2aWNlX2xvY2tf YWRldihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikNCj4+IC17DQo+PiAtCW11dGV4X2xvY2so JmFkZXYtPmxvY2tfcmVzZXQpOw0KPj4gICAgCWF0b21pY19pbmMoJmFkZXYtPmdwdV9yZXNldF9j b3VudGVyKTsNCj4+ICAgIAlhZGV2LT5pbl9ncHVfcmVzZXQgPSAxOw0KPj4gICAgCS8qIEJsb2Nr IGtmZDogU1JJT1Ygd291bGQgZG8gaXQgc2VwYXJhdGVseSAqLw0KPj4gICAgCWlmICghYW1kZ3B1 X3NyaW92X3ZmKGFkZXYpKQ0KPj4gICAgICAgICAgICAgICAgICAgIGFtZGdwdV9hbWRrZmRfcHJl X3Jlc2V0KGFkZXYpOw0KPj4gKw0KPj4gKwlyZXR1cm4gdHJ1ZTsNCj4+ICAgIH0NCj4+ICAgIA0K Pj4gICAgc3RhdGljIHZvaWQgYW1kZ3B1X2RldmljZV91bmxvY2tfYWRldihzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikNCj4+IEBAIC0zNTM4LDQwICszNTIxLDQyIEBAIHN0YXRpYyB2b2lkIGFt ZGdwdV9kZXZpY2VfdW5sb2NrX2FkZXYoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+PiAg ICBpbnQgYW1kZ3B1X2RldmljZV9ncHVfcmVjb3ZlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwNCj4+ICAgIAkJCSAgICAgIHN0cnVjdCBhbWRncHVfam9iICpqb2IpDQo+PiAgICB7DQo+PiAt CWludCByOw0KPj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIGRldmljZV9saXN0LCAqZGV2aWNlX2xpc3Rf aGFuZGxlID0gIE5VTEw7DQo+PiArCWJvb2wgbmVlZF9mdWxsX3Jlc2V0LCBqb2Jfc2lnbmFsZWQ7 DQo+PiAgICAJc3RydWN0IGFtZGdwdV9oaXZlX2luZm8gKmhpdmUgPSBOVUxMOw0KPj4gLQlib29s IG5lZWRfZnVsbF9yZXNldCA9IGZhbHNlOw0KPj4gICAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICp0 bXBfYWRldiA9IE5VTEw7DQo+PiAtCXN0cnVjdCBsaXN0X2hlYWQgZGV2aWNlX2xpc3QsICpkZXZp Y2VfbGlzdF9oYW5kbGUgPSAgTlVMTDsNCj4+ICsJaW50IGksIHIgPSAwOw0KPj4gICAgDQo+PiAr CW5lZWRfZnVsbF9yZXNldCA9IGpvYl9zaWduYWxlZCA9IGZhbHNlOw0KPj4gICAgCUlOSVRfTElT VF9IRUFEKCZkZXZpY2VfbGlzdCk7DQo+PiAgICANCj4+ICAgIAlkZXZfaW5mbyhhZGV2LT5kZXYs ICJHUFUgcmVzZXQgYmVnaW4hXG4iKTsNCj4+ICAgIA0KPj4gKwloaXZlID0gYW1kZ3B1X2dldF94 Z21pX2hpdmUoYWRldiwgZmFsc2UpOw0KPj4gKw0KPj4gICAgCS8qDQo+PiAtCSAqIEluIGNhc2Ug b2YgWEdNSSBoaXZlIGRpc2FsbG93IGNvbmN1cnJlbnQgcmVzZXRzIHRvIGJlIHRyaWdnZXJlZA0K Pj4gLQkgKiBieSBkaWZmZXJlbnQgbm9kZXMuIE5vIHBvaW50IGFsc28gc2luY2UgdGhlIG9uZSBu b2RlIGFscmVhZHkgZXhlY3V0aW5nDQo+PiAtCSAqIHJlc2V0IHdpbGwgYWxzbyByZXNldCBhbGwg dGhlIG90aGVyIG5vZGVzIGluIHRoZSBoaXZlLg0KPj4gKwkgKiBIZXJlIHdlIHRyeWxvY2sgdG8g YXZvaWQgY2hhaW4gb2YgcmVzZXRzIGV4ZWN1dGluZyBmcm9tDQo+PiArCSAqIGVpdGhlciB0cmln Z2VyIGJ5IGpvYnMgb24gZGlmZmVyZW50IGFkZXZzIGluIFhHTUkgaGl2ZSBvciBqb2JzIG9uDQo+ PiArCSAqIGRpZmZlcmVudCBzY2hlZHVsZXJzIGZvciBzYW1lIGRldmljZSB3aGlsZSB0aGlzIFRP IGhhbmRsZXIgaXMgcnVubmluZy4NCj4+ICsJICogV2UgYWx3YXlzIHJlc2V0IGFsbCBzY2hlZHVs ZXJzIGZvciBkZXZpY2UgYW5kIGFsbCBkZXZpY2VzIGZvciBYR01JDQo+PiArCSAqIGhpdmUgc28g dGhhdCBzaG91bGQgdGFrZSBjYXJlIG9mIHRoZW0gdG9vLg0KPj4gICAgCSAqLw0KPj4gLQloaXZl ID0gYW1kZ3B1X2dldF94Z21pX2hpdmUoYWRldiwgMCk7DQo+PiAtCWlmIChoaXZlICYmIGFkZXYt PmdtYy54Z21pLm51bV9waHlzaWNhbF9ub2RlcyA+IDEgJiYNCj4+IC0JICAgICFtdXRleF90cnls b2NrKCZoaXZlLT5yZXNldF9sb2NrKSkNCj4+ICsNCj4+ICsJaWYgKGhpdmUgJiYgIW11dGV4X3Ry eWxvY2soJmhpdmUtPnJlc2V0X2xvY2spKSB7DQo+PiArCQlEUk1fSU5GTygiQmFpbGluZyBvbiBU RFIgZm9yIHNfam9iOiVsbHgsIGhpdmU6ICVsbHggYXMgYW5vdGhlciBhbHJlYWR5IGluIHByb2dy ZXNzIiwNCj4+ICsJCQkgam9iLT5iYXNlLmlkLCBoaXZlLT5oaXZlX2lkKTsNCj4+ICAgIAkJcmV0 dXJuIDA7DQo+PiArCX0NCj4+ICAgIA0KPj4gICAgCS8qIFN0YXJ0IHdpdGggYWRldiBwcmUgYXNp YyByZXNldCBmaXJzdCBmb3Igc29mdCByZXNldCBjaGVjay4qLw0KPj4gLQlhbWRncHVfZGV2aWNl X2xvY2tfYWRldihhZGV2KTsNCj4+IC0JciA9IGFtZGdwdV9kZXZpY2VfcHJlX2FzaWNfcmVzZXQo YWRldiwNCj4+IC0JCQkJCSBqb2IsDQo+PiAtCQkJCQkgJm5lZWRfZnVsbF9yZXNldCk7DQo+PiAt CWlmIChyKSB7DQo+PiAtCQkvKlRPRE8gU2hvdWxkIHdlIHN0b3AgPyovDQo+PiAtCQlEUk1fRVJS T1IoIkdQVSBwcmUgYXNpYyByZXNldCBmYWlsZWQgd2l0aCBlcnIsICVkIGZvciBkcm0gZGV2LCAl cyAiLA0KPj4gLQkJCSAgciwgYWRldi0+ZGRldi0+dW5pcXVlKTsNCj4+IC0JCWFkZXYtPmFzaWNf cmVzZXRfcmVzID0gcjsNCj4+ICsJaWYgKCFhbWRncHVfZGV2aWNlX2xvY2tfYWRldihhZGV2LCAh aGl2ZSkpIHsNCj4+ICsJCURSTV9JTkZPKCJCYWlsaW5nIG9uIFREUiBmb3Igc19qb2I6JWxseCwg YXMgYW5vdGhlciBhbHJlYWR5IGluIHByb2dyZXNzIiwNCj4+ICsJCQkJCSBqb2ItPmJhc2UuaWQp Ow0KPj4gKwkJcmV0dXJuIDA7DQo+PiAgICAJfQ0KPj4gICAgDQo+PiAgICAJLyogQnVpbGQgbGlz dCBvZiBkZXZpY2VzIHRvIHJlc2V0ICovDQo+PiAtCWlmICAobmVlZF9mdWxsX3Jlc2V0ICYmIGFk ZXYtPmdtYy54Z21pLm51bV9waHlzaWNhbF9ub2RlcyA+IDEpIHsNCj4+ICsJaWYgIChhZGV2LT5n bWMueGdtaS5udW1fcGh5c2ljYWxfbm9kZXMgPiAxKSB7DQo+PiAgICAJCWlmICghaGl2ZSkgew0K Pj4gICAgCQkJYW1kZ3B1X2RldmljZV91bmxvY2tfYWRldihhZGV2KTsNCj4+ICAgIAkJCXJldHVy biAtRU5PREVWOw0KPj4gQEAgLTM1ODgsMTMgKzM1NzMsNTYgQEAgaW50IGFtZGdwdV9kZXZpY2Vf Z3B1X3JlY292ZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+PiAgICAJCWRldmljZV9s aXN0X2hhbmRsZSA9ICZkZXZpY2VfbGlzdDsNCj4+ICAgIAl9DQo+PiAgICANCj4+ICsJLyogYmxv Y2sgYWxsIHNjaGVkdWxlcnMgYW5kIHJlc2V0IGdpdmVuIGpvYidzIHJpbmcgKi8NCj4+ICsJbGlz dF9mb3JfZWFjaF9lbnRyeSh0bXBfYWRldiwgZGV2aWNlX2xpc3RfaGFuZGxlLCBnbWMueGdtaS5o ZWFkKSB7DQo+PiArCQlmb3IgKGkgPSAwOyBpIDwgQU1ER1BVX01BWF9SSU5HUzsgKytpKSB7DQo+ PiArCQkJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gdG1wX2FkZXYtPnJpbmdzW2ldOw0KPj4g Kw0KPj4gKwkJCWlmICghcmluZyB8fCAhcmluZy0+c2NoZWQudGhyZWFkKQ0KPj4gKwkJCQljb250 aW51ZTsNCj4+ICsNCj4+ICsJCQlkcm1fc2NoZWRfc3RvcCgmcmluZy0+c2NoZWQsICZqb2ItPmJh c2UpOw0KPj4gKwkJfQ0KPj4gKwl9DQo+PiArDQo+PiArDQo+PiArCS8qDQo+PiArCSAqIE11c3Qg Y2hlY2sgZ3VpbHR5IHNpZ25hbCBoZXJlIHNpbmNlIGFmdGVyIHRoaXMgcG9pbnQgYWxsIG9sZA0K Pj4gKwkgKiBIVyBmZW5jZXMgYXJlIGZvcmNlIHNpZ25hbGVkLg0KPj4gKwkgKg0KPj4gKwkgKiBq b2ItPmJhc2UgaG9sZHMgYSByZWZlcmVuY2UgdG8gcGFyZW50IGZlbmNlDQo+PiArCSAqLw0KPj4g KwlpZiAoam9iICYmIGpvYi0+YmFzZS5zX2ZlbmNlLT5wYXJlbnQgJiYNCj4+ICsJICAgIGRtYV9m ZW5jZV9pc19zaWduYWxlZChqb2ItPmJhc2Uuc19mZW5jZS0+cGFyZW50KSkNCj4+ICsJCWpvYl9z aWduYWxlZCA9IHRydWU7DQo+PiArDQo+PiArCWlmICghYW1kZ3B1X2RldmljZV9pcF9uZWVkX2Z1 bGxfcmVzZXQoYWRldikpDQo+PiArCQlkZXZpY2VfbGlzdF9oYW5kbGUgPSAmZGV2aWNlX2xpc3Q7 DQo+PiArDQo+PiArCWlmIChqb2Jfc2lnbmFsZWQpIHsNCj4+ICsJCWRldl9pbmZvKGFkZXYtPmRl diwgIkd1aWx0eSBqb2IgYWxyZWFkeSBzaWduYWxlZCwgc2tpcHBpbmcgSFcgcmVzZXQiKTsNCj4+ ICsJCWdvdG8gc2tpcF9od19yZXNldDsNCj4+ICsJfQ0KPj4gKw0KPj4gKw0KPj4gKwkvKiBHdWls dHkgam9iIHdpbGwgYmUgZnJlZWQgYWZ0ZXIgdGhpcyovDQo+PiArCXIgPSBhbWRncHVfZGV2aWNl X3ByZV9hc2ljX3Jlc2V0KGFkZXYsDQo+PiArCQkJCQkgam9iLA0KPj4gKwkJCQkJICZuZWVkX2Z1 bGxfcmVzZXQpOw0KPj4gKwlpZiAocikgew0KPj4gKwkJLypUT0RPIFNob3VsZCB3ZSBzdG9wID8q Lw0KPj4gKwkJRFJNX0VSUk9SKCJHUFUgcHJlIGFzaWMgcmVzZXQgZmFpbGVkIHdpdGggZXJyLCAl ZCBmb3IgZHJtIGRldiwgJXMgIiwNCj4+ICsJCQkgIHIsIGFkZXYtPmRkZXYtPnVuaXF1ZSk7DQo+ PiArCQlhZGV2LT5hc2ljX3Jlc2V0X3JlcyA9IHI7DQo+PiArCX0NCj4+ICsNCj4+ICAgIHJldHJ5 OgkvKiBSZXN0IG9mIGFkZXZzIHByZSBhc2ljIHJlc2V0IGZyb20gWEdNSSBoaXZlLiAqLw0KPj4g ICAgCWxpc3RfZm9yX2VhY2hfZW50cnkodG1wX2FkZXYsIGRldmljZV9saXN0X2hhbmRsZSwgZ21j LnhnbWkuaGVhZCkgew0KPj4gICAgDQo+PiAgICAJCWlmICh0bXBfYWRldiA9PSBhZGV2KQ0KPj4g ICAgCQkJY29udGludWU7DQo+PiAgICANCj4+IC0JCWFtZGdwdV9kZXZpY2VfbG9ja19hZGV2KHRt cF9hZGV2KTsNCj4+ICsJCWFtZGdwdV9kZXZpY2VfbG9ja19hZGV2KHRtcF9hZGV2LCBmYWxzZSk7 DQo+PiAgICAJCXIgPSBhbWRncHVfZGV2aWNlX3ByZV9hc2ljX3Jlc2V0KHRtcF9hZGV2LA0KPj4g ICAgCQkJCQkJIE5VTEwsDQo+PiAgICAJCQkJCQkgJm5lZWRfZnVsbF9yZXNldCk7DQo+PiBAQCAt MzYxOCw5ICszNjQ2LDI4IEBAIGludCBhbWRncHVfZGV2aWNlX2dwdV9yZWNvdmVyKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LA0KPj4gICAgCQkJZ290byByZXRyeTsNCj4+ICAgIAl9DQo+PiAg ICANCj4+ICtza2lwX2h3X3Jlc2V0Og0KPj4gKw0KPj4gICAgCS8qIFBvc3QgQVNJQyByZXNldCBm b3IgYWxsIGRldnMgLiovDQo+PiAgICAJbGlzdF9mb3JfZWFjaF9lbnRyeSh0bXBfYWRldiwgZGV2 aWNlX2xpc3RfaGFuZGxlLCBnbWMueGdtaS5oZWFkKSB7DQo+PiAtCQlhbWRncHVfZGV2aWNlX3Bv c3RfYXNpY19yZXNldCh0bXBfYWRldik7DQo+PiArCQlmb3IgKGkgPSAwOyBpIDwgQU1ER1BVX01B WF9SSU5HUzsgKytpKSB7DQo+PiArCQkJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gdG1wX2Fk ZXYtPnJpbmdzW2ldOw0KPj4gKw0KPj4gKwkJCWlmICghcmluZyB8fCAhcmluZy0+c2NoZWQudGhy ZWFkKQ0KPj4gKwkJCQljb250aW51ZTsNCj4+ICsNCj4+ICsJCQkvKiBObyBwb2ludCB0byByZXN1 Ym1pdCBqb2JzIGlmIHdlIGRpZG4ndCBIVyByZXNldCovDQo+PiArCQkJaWYgKCF0bXBfYWRldi0+ YXNpY19yZXNldF9yZXMgJiYgIWpvYl9zaWduYWxlZCkNCj4+ICsJCQkJZHJtX3NjaGVkX3Jlc3Vi bWl0X2pvYnMoJnJpbmctPnNjaGVkKTsNCj4+ICsNCj4+ICsJCQlkcm1fc2NoZWRfc3RhcnQoJnJp bmctPnNjaGVkLCAhdG1wX2FkZXYtPmFzaWNfcmVzZXRfcmVzKTsNCj4+ICsJCX0NCj4+ICsNCj4+ ICsJCWlmICghYW1kZ3B1X2RldmljZV9oYXNfZGNfc3VwcG9ydCh0bXBfYWRldikgJiYgIWpvYl9z aWduYWxlZCkgew0KPj4gKwkJCWRybV9oZWxwZXJfcmVzdW1lX2ZvcmNlX21vZGUodG1wX2FkZXYt PmRkZXYpOw0KPj4gKwkJfQ0KPj4gKw0KPj4gKwkJdG1wX2FkZXYtPmFzaWNfcmVzZXRfcmVzID0g MDsNCj4+ICAgIA0KPj4gICAgCQlpZiAocikgew0KPj4gICAgCQkJLyogYmFkIG5ld3MsIGhvdyB0 byB0ZWxsIGl0IHRvIHVzZXJzcGFjZSA/ICovDQo+PiBAQCAtMzYzMyw3ICszNjgwLDcgQEAgaW50 IGFtZGdwdV9kZXZpY2VfZ3B1X3JlY292ZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ PiAgICAJCWFtZGdwdV9kZXZpY2VfdW5sb2NrX2FkZXYodG1wX2FkZXYpOw0KPj4gICAgCX0NCj4+ ICAgIA0KPj4gLQlpZiAoaGl2ZSAmJiBhZGV2LT5nbWMueGdtaS5udW1fcGh5c2ljYWxfbm9kZXMg PiAxKQ0KPj4gKwlpZiAoaGl2ZSkNCj4+ICAgIAkJbXV0ZXhfdW5sb2NrKCZoaXZlLT5yZXNldF9s b2NrKTsNCj4+ICAgIA0KPj4gICAgCWlmIChyKQ0KDQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWw=