From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kuehling, Felix" Subject: Re: [PATCH 1/2] drm/amdgpu: Dump PDEs and PTEs on VM faults (v3) Date: Tue, 16 Jul 2019 19:57:11 +0000 Message-ID: References: <20190713064211.20047-1-Felix.Kuehling@amd.com> <79761463-5821-006a-6537-4cf28d43452b@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <79761463-5821-006a-6537-4cf28d43452b-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Content-Language: en-US Content-ID: <0D65EC34394D1C42AAB04982C9687AF7-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: "Koenig, Christian" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" T24gMjAxOS0wNy0xNiA1OjI3IGEubS4sIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6DQo+IEFtIDEz LjA3LjE5IHVtIDA4OjQyIHNjaHJpZWIgS3VlaGxpbmcsIEZlbGl4Og0KPj4gV2FsayBwYWdlIHRh YmxlIGZvciB0aGUgZmF1bHRpbmcgYWRkcmVzcyBhbmQgZHVtcCBQREVzIGFuZCBQVEVzIGF0DQo+ PiBhbGwgbGV2ZWxzLiBBbHNvIGZsYWcgZGlzY3JlcGFuY2llcyB3aGVyZSBhIFBERSBwb2ludHMg dG8gYSBkaWZmZXJlbnQNCj4+IGFkZHJlc3MgdGhhbiB0aGUgbmV4dCBsZXZlbCBQREIgb3IgUFRC IEJPLg0KPj4NCj4+IHYyOg0KPj4gKiBGaXggYWRkcmVzcyBzaGlmdCBmb3IgR0ZYdjgNCj4+ICog UmVkbyBQREIvUFRCIGFkZHJlc3MgY2hlY2tpbmcgdG8gd29yayBvbiBhbGwgZ2VuZXJhdGlvbnMN Cj4+DQo+PiB2MzoNCj4+ICogU2ltcGxpZmllZCBwZGUgYWRkcmVzcyBhbmQgZmxhZyBjaGVjaw0K Pj4NCj4+IFNpZ25lZC1vZmYtYnk6IEZlbGl4IEt1ZWhsaW5nIDxGZWxpeC5LdWVobGluZ0BhbWQu Y29tPg0KPj4gLS0tDQo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRt LmMgfMKgIDUgKy0NCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0u aCB8wqAgMiArDQo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uY8Kg IHwgNzkgKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPj4gwqAgZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3ZtLmjCoCB8wqAgNyArKy0NCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dtY192OF8wLmPCoMKgIHzCoCA2ICstDQo+PiDCoCBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nbWNfdjlfMC5jwqDCoCB8wqAgNSArLQ0KPj4gwqAgNiBmaWxlcyBjaGFuZ2Vk LCA5NSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgDQo+PiBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYw0KPj4gaW5kZXggYmJiZjA2OWVmYjc3Li43ODQ0 MDc0OGM4N2YgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdHRtLmMNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0u Yw0KPj4gQEAgLTE1MDUsOSArMTUwNSw4IEBAIHN0YXRpYyBib29sIA0KPj4gYW1kZ3B1X3R0bV9i b19ldmljdGlvbl92YWx1YWJsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLA0KPj4gwqDC oCAqIFRoaXMgaXMgdXNlZCB0byBhY2Nlc3MgVlJBTSB0aGF0IGJhY2tzIGEgYnVmZmVyIG9iamVj dCB2aWEgTU1JTw0KPj4gwqDCoCAqIGFjY2VzcyBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLg0KPj4g wqDCoCAqLw0KPj4gLXN0YXRpYyBpbnQgYW1kZ3B1X3R0bV9hY2Nlc3NfbWVtb3J5KHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sDQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgdW5zaWduZWQgbG9uZyBvZmZzZXQsDQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgdm9pZCAqYnVmLCBpbnQgbGVuLCBpbnQgd3JpdGUpDQo+PiAraW50 IGFtZGdwdV90dG1fYWNjZXNzX21lbW9yeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCB1 bnNpZ25lZCANCj4+IGxvbmcgb2Zmc2V0LA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHZvaWQgKmJ1ZiwgaW50IGxlbiwgaW50IHdyaXRlKQ0KPj4gwqAgew0KPj4gwqDCoMKg wqDCoCBzdHJ1Y3QgYW1kZ3B1X2JvICphYm8gPSB0dG1fdG9fYW1kZ3B1X2JvKGJvKTsNCj4+IMKg wqDCoMKgwqAgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2FkZXYoYWJv LT50Ym8uYmRldik7DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3R0bS5oIA0KPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRt LmgNCj4+IGluZGV4IGJjY2I4YzQ5ZTU5Ny4uY2ZmYmFmZmZhOWQ3IDEwMDY0NA0KPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oDQo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgNCj4+IEBAIC04Myw2ICs4Myw4IEBAIHZv aWQgYW1kZ3B1X3R0bV9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsNCj4+IMKgIHZv aWQgYW1kZ3B1X3R0bV9zZXRfYnVmZmVyX2Z1bmNzX3N0YXR1cyhzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBi b29sIGVuYWJsZSk7DQo+PiDCoCAraW50IGFtZGdwdV90dG1fYWNjZXNzX21lbW9yeShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLCANCj4+IHVuc2lnbmVkIGxvbmcgb2Zmc2V0LA0KPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZvaWQgKmJ1ZiwgaW50IGxlbiwgaW50IHdy aXRlKTsNCj4+IMKgIGludCBhbWRncHVfY29weV9idWZmZXIoc3RydWN0IGFtZGdwdV9yaW5nICpy aW5nLCB1aW50NjRfdCBzcmNfb2Zmc2V0LA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgdWludDY0X3QgZHN0X29mZnNldCwgdWludDMyX3QgYnl0ZV9jb3VudCwNCj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJl c3YsDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zt LmMgDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jDQo+PiBpbmRl eCAxOTUxZjJhYmJkYmMuLjY0ZWU0NmVhYTA0MSAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jDQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdm0uYw0KPj4gQEAgLTU0NCw2ICs1NDQsNzggQEAgc3RhdGljIHZvaWQg YW1kZ3B1X3ZtX3B0X25leHRfZGZzKHN0cnVjdCANCj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhbWRncHVfdm1fcHRfY29udGludWVfZGZzKChzdGFydCks IChlbnRyeSkpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKg wqAgKGVudHJ5KSA9IChjdXJzb3IpLmVudHJ5LCBhbWRncHVfdm1fcHRfbmV4dF9kZnMoKGFkZXYp LCANCj4+ICYoY3Vyc29yKSkpDQo+PiDCoCArLyoqDQo+PiArICogYW1kZ3B1X3ZtX2R1bXBfcHRl IC0gZHVtcCBQVEVzIGFsb25nIGEgcGFnZSB0YWJsZSB3YWxrDQo+PiArICoNCj4+ICsgKiBAYWRl djogYW1kZ3B1IGRldmljZSBwb2ludGVyDQo+PiArICogQHZtOiBWTSBhZGRyZXNzIHNwYWNlDQo+ PiArICogQGFkZHI6IHZpcnR1YWwgYWRkcmVzcw0KPj4gKyAqDQo+PiArICogV2Fsa3MgdGhlIHBh Z2UgdGFibGUgb2YgQHZtIGF0IHRoZSBnaXZlbiBAYWRkciBhbmQgcHJpbnRzIHRoZSBQREVzDQo+ PiArICogYW5kIFBURXMgYWxvbmcgdGhlIHdheSBvbiBhIHNpbmdsZSBsaW5lLg0KPj4gKyAqLw0K Pj4gK3ZvaWQgYW1kZ3B1X3ZtX2R1bXBfcHRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBz dHJ1Y3QgYW1kZ3B1X3ZtIA0KPj4gKnZtLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdWlu dDY0X3QgYWRkcikNCj4+ICt7DQo+PiArwqDCoMKgIHN0YXRpYyBjb25zdCBjaGFyICpsZXZlbF9l bnRyeVs0XSA9IHsiUERFMiIsICJQREUxIiwgIlBERTAiLCANCj4+ICJQVEUifTsNCj4+ICvCoMKg wqAgc3RhdGljIGNvbnN0IGNoYXIgKmxldmVsX2Jsb2NrWzRdID0geyJQREIyIiwgIlBEQjEiLCAi UERCMCIsIA0KPj4gIlBUQiJ9Ow0KPj4gK8KgwqDCoCBzdHJ1Y3QgYW1kZ3B1X3ZtX3B0X2N1cnNv ciBjdXJzb3I7DQo+PiArwqDCoMKgIHVpbnQ2NF90IHBkZV9hZGRyLCBwZGVfZmxhZ3MsIGxhc3Rf cGRlOw0KPj4gK8KgwqDCoCBjaGFyIGJ1ZlsxMjhdOw0KPj4gK8KgwqDCoCBpbnQgaSA9IDA7DQo+ PiArDQo+PiArwqDCoMKgIGFtZGdwdV9nbWNfZ2V0X3BkZV9mb3JfYm8odm0tPnJvb3QuYmFzZS5i bywgDQo+PiBhZGV2LT52bV9tYW5hZ2VyLnJvb3RfbGV2ZWwsDQo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAmcGRlX2FkZHIsICZwZGVfZmxhZ3MpOw0KPj4gK8KgwqDCoCBs YXN0X3BkZSA9IHBkZV9hZGRyIHwgcGRlX2ZsYWdzOw0KPj4gKw0KPj4gK8KgwqDCoCBhbWRncHVf dm1fcHRfc3RhcnQoYWRldiwgdm0sIGFkZHIgPj4gUEFHRV9TSElGVCwgJmN1cnNvcik7DQo+DQo+ IFdhbGtpbmcgdGhlIFZNIHN0cnVjdHVyZSB3aXRob3V0IGEgbG9jayBpcyBkYW5nZXJvdXMsIGJ1 dCB3ZSBjYW4gb25seSANCj4gdGFrZSB0aGUgbG9jayBpbiB0aGUgZmF1bHQgd29ya2VyIG9uIFZl Z2ExMC4NCg0KTm90IHN1cmUgd2hhdCB5b3UgbWVhbiBieSBmYXVsdCB3b3JrZXIuIEFzIGZhciBh cyBJIGNhbiB0ZWxsLCB0aGUgVk0gDQpzdHJ1Y3R1cmUgaXMgcHJvdGVjdGVkIGJ5IHRoZSBwYWdl IHRhYmxlIHJlc2VydmF0aW9uIGxvY2ssIHdoaWNoIEkgY2FuJ3QgDQp0YWtlIGluIGFuIGludGVy cnVwdCBoYW5kbGVyLiBZb3UncmUgcmVmZXJyaW5nIHRvIGEgZmF1bHQgd29ya2VyLCB3aGljaCAN CmNvdWxkIHRha2UgdGhlIGxvY2ssIGJ1dCBJIGRvbid0IHNlZSB0aGF0IGluIHN0YWdpbmcgeWV0 Lg0KDQoNCj4NCj4+ICsNCj4+ICvCoMKgwqAgZG8gew0KPj4gK8KgwqDCoMKgwqDCoMKgIHVuc2ln bmVkIGludCBtYXNrLCBzaGlmdCwgaWR4Ow0KPj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRn cHVfYm8gKmJvOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQ2NF90IHB0ZTsNCj4+ICsNCj4+ICvC oMKgwqDCoMKgwqDCoCBtYXNrID0gYW1kZ3B1X3ZtX2VudHJpZXNfbWFzayhhZGV2LCBjdXJzb3Iu bGV2ZWwpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHNoaWZ0ID0gYW1kZ3B1X3ZtX2xldmVsX3NoaWZ0 KGFkZXYsIGN1cnNvci5sZXZlbCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgaWR4ID0gKGN1cnNvci5w Zm4gPj4gc2hpZnQpICYgbWFzazsNCj4+ICsNCj4+ICvCoMKgwqDCoMKgwqDCoCBibyA9IGN1cnNv ci5lbnRyeS0+YmFzZS5ibzsNCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoYm8pIHsNCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIC8qIEZsYWcgZGlzY3JlcGFuY3kgYmV0d2VlbiBwcmV2aW91cyBs ZXZlbCBQREUNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBhbmQgdGhlIGFjdHVhbCBh ZGRyZXNzIG9mIHRoaXMgUFRCIG9yIFBEQi4NCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Ki8NCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFtZGdwdV9nbWNfZ2V0X3BkZV9mb3JfYm8o Ym8sIGN1cnNvci5sZXZlbCwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAmcGRlX2FkZHIsICZwZGVfZmxhZ3MpOw0KPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaWYgKChwZGVfYWRkciB8IHBkZV9mbGFncykgIT0gbGFzdF9wZGUpDQo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGkgKz0gc25wcmludGYoYnVmICsgaSwgc2l6 ZW9mKGJ1ZikgLSBpLCAiISIpOw0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYW1k Z3B1X3R0bV9hY2Nlc3NfbWVtb3J5KCZiby0+dGJvLCBpZHggKiBzaXplb2YocHRlKSwNCj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJnB0ZSwgc2l6 ZW9mKHB0ZSksIGZhbHNlKTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGkgKz0gc25wcmlu dGYoYnVmICsgaSwgc2l6ZW9mKGJ1ZikgLSBpLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAiJXNbJWRdPTB4JWxseCAiLA0KPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXZlbF9lbnRyeVtjdXJzb3IubGV2ZWxdLCBp ZHgsIHB0ZSk7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsYXN0X3BkZSA9IHB0ZTsNCj4+ ICvCoMKgwqDCoMKgwqDCoCB9IGVsc2Ugew0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyog RmxhZyBkaXNjcmVwYW5jeSBpZiBwcmV2aW91cyBsZXZlbCBQREUgaGFkDQo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICogYSB2YWxpZCBlbnRyeSBidXQgdGhlcmUgaXMgbm8gUFRCIG9yIFBE QiBCTy4NCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8NCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGlmICgobGFzdF9wZGUgJiBBTURHUFVfUFRFX1ZBTElEKSAmJg0KPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAhKGxhc3RfcGRlICYgQU1ER1BVX1BERV9QVEUpKQ0K Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpICs9IHNucHJpbnRmKGJ1ZiArIGks IHNpemVvZihidWYpIC0gaSwgIiEiKTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGkgKz0g c25wcmludGYoYnVmICsgaSwgc2l6ZW9mKGJ1ZikgLSBpLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAibm8gJXMgIiwgbGV2ZWxfYmxvY2tbY3Vyc29yLmxl dmVsXSk7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsYXN0X3BkZSA9IDA7DQo+PiArwqDC oMKgwqDCoMKgwqAgfQ0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgICsrY3Vyc29yLmxldmVsOw0K Pj4gK8KgwqDCoMKgwqDCoMKgIGN1cnNvci5wYXJlbnQgPSBjdXJzb3IuZW50cnk7DQo+PiArwqDC oMKgwqDCoMKgwqAgaWYgKCFjdXJzb3IuZW50cnktPmVudHJpZXMpDQo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBicmVhazsNCj4+ICvCoMKgwqDCoMKgwqDCoCBjdXJzb3IuZW50cnkgPSAmY3Vy c29yLmVudHJ5LT5lbnRyaWVzW2lkeF07DQo+PiArwqDCoMKgIH0gd2hpbGUgKGN1cnNvci5lbnRy eSk7DQo+PiArwqDCoMKgIGRldl9lcnIoYWRldi0+ZGV2LCAiJXMiLCBidWYpOw0KPj4gK30NCj4+ ICsNCj4+IMKgIC8qKg0KPj4gwqDCoCAqIGFtZGdwdV92bV9nZXRfcGRfYm8gLSBhZGQgdGhlIFZN IFBEIHRvIGEgdmFsaWRhdGlvbiBsaXN0DQo+PiDCoMKgICoNCj4+IEBAIC0zMDgxLDggKzMxNTMs OSBAQCBpbnQgYW1kZ3B1X3ZtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIA0KPj4gdm9p ZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxwKQ0KPj4gwqDCoCAqIEBwYXNpZDogUEFTSUQg aWRlbnRpZmllciBmb3IgVk0NCj4+IMKgwqAgKiBAdGFza19pbmZvOiB0YXNrX2luZm8gdG8gZmls bC4NCj4+IMKgwqAgKi8NCj4+IC12b2lkIGFtZGdwdV92bV9nZXRfdGFza19pbmZvKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LCB1bnNpZ25lZCANCj4+IGludCBwYXNpZCwNCj4+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV90YXNrX2luZm8gKnRhc2tfaW5mbykNCj4+ ICtzdHJ1Y3QgYW1kZ3B1X3ZtICphbWRncHVfdm1fZ2V0X3Rhc2tfaW5mbyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgdW5zaWduZWQgaW50IHBhc2lkLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X3Rhc2tfaW5mbyAqdGFza19pbmZvKQ0KPj4g wqAgew0KPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bTsNCj4+IMKgwqDCoMKgwqAg dW5zaWduZWQgbG9uZyBmbGFnczsNCj4+IEBAIC0zMDk0LDYgKzMxNjcsOCBAQCB2b2lkIGFtZGdw dV92bV9nZXRfdGFza19pbmZvKHN0cnVjdCANCj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVuc2ln bmVkIGludCBwYXNpZCwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAqdGFza19pbmZvID0gdm0tPnRh c2tfaW5mbzsNCj4+IHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFkZXYtPnZtX21hbmFnZXIucGFz aWRfbG9jaywgZmxhZ3MpOw0KPj4gKw0KPj4gK8KgwqDCoCByZXR1cm4gdm07DQo+DQo+IFRoaXMg aXMgZGFuZ2Vyb3VzIGFzIHdlbGwgd2hlbiB3ZSBhcmUgaW4gdGhlIGludGVycnVwdCBoYW5kbGVy Lg0KPg0KPiBBcyBzb29uIGFzIHRoZSBzcGlubG9jayBpcyBkcm9wcGVkIHRoZSBWTSBzdHJ1Y3R1 cmUgY2FuIGJlIGZyZWVkIGJ5IA0KPiBhbm90aGVyIHRocmVhZC4NCg0KT0ssIHRoYXQncyBlYXNp ZXIgdG8gZml4LiBJIHdhcyB0cnlpbmcgdG8gYXZvaWQgbG9va2luZyB1cCB0aGUgVk0gZnJvbSAN CnRoZSBQQVNJRCB0d2ljZS4gQnV0IEkgY291bGQgZG8gaXQgaW4gYW1kZ3B1X3ZtX2R1bXBfcHRl IGFuZCBob2xkIHRoZSANCnNwaW4gbG9jayBhcyBsb25nIGFzIEknbSBhY2Nlc3NpbmcgdGhlIFZN Lg0KDQpUaGUgcmVzZXJ2YXRpb24gbG9jayBpcyB0aGUgYmlnZ2VyIHByb2JsZW0uIEknbGwga2Vl cCB0aGlzIHBhdGNoIGFyb3VuZCwgDQpiZWNhdXNlIEkgZmluZCBpdCB1c2VmdWwsIGJ1dCBJIHdv bid0IHN1Ym1pdCBpdCB1bnRpbCBJIGZpbmQgYSBzYWZlIA0KcGxhY2UgdG8gYWNjZXNzIHRoZSBW TSBzdHJ1Y3R1cmUgaW4gYSBmYXVsdCBoYW5kbGVyIG9yIHdvcmtlci4NCg0KUmVnYXJkcywNCiDC oCBGZWxpeA0KDQoNCj4NCj4gQ2hyaXN0aWFuLg0KPg0KPg0KPj4gwqAgfQ0KPj4gwqAgwqAgLyoq DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmgg DQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oDQo+PiBpbmRleCA0 ODlhMTYyY2E2MjAuLjZhOGI4MzNkMTgwZSAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oDQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdm0uaA0KPj4gQEAgLTM0OCw2ICszNDgsOCBAQCBpbnQgYW1kZ3B1X3ZtX2lu aXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIA0KPj4gc3RydWN0IGFtZGdwdV92bSAqdm0s DQo+PiDCoCBpbnQgYW1kZ3B1X3ZtX21ha2VfY29tcHV0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwgc3RydWN0IA0KPj4gYW1kZ3B1X3ZtICp2bSwgdW5zaWduZWQgaW50IHBhc2lkKTsNCj4+ IMKgIHZvaWQgYW1kZ3B1X3ZtX3JlbGVhc2VfY29tcHV0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwgc3RydWN0IA0KPj4gYW1kZ3B1X3ZtICp2bSk7DQo+PiDCoCB2b2lkIGFtZGdwdV92bV9m aW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSk7DQo+ PiArdm9pZCBhbWRncHVfdm1fZHVtcF9wdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0 cnVjdCBhbWRncHVfdm0gDQo+PiAqdm0sDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50 NjRfdCBhZGRyKTsNCj4+IMKgIHZvaWQgYW1kZ3B1X3ZtX2dldF9wZF9ibyhzdHJ1Y3QgYW1kZ3B1 X3ZtICp2bSwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGxpc3RfaGVh ZCAqdmFsaWRhdGVkLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYW1k Z3B1X2JvX2xpc3RfZW50cnkgKmVudHJ5KTsNCj4+IEBAIC00MDEsOCArNDAzLDkgQEAgYm9vbCBh bWRncHVfdm1fbmVlZF9waXBlbGluZV9zeW5jKHN0cnVjdCANCj4+IGFtZGdwdV9yaW5nICpyaW5n LA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGFtZGdw dV9qb2IgKmpvYik7DQo+PiDCoCB2b2lkIGFtZGdwdV92bV9jaGVja19jb21wdXRlX2J1ZyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7DQo+PiDCoCAtdm9pZCBhbWRncHVfdm1fZ2V0X3Rhc2tf aW5mbyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5zaWduZWQgDQo+PiBpbnQgcGFzaWQs DQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV90YXNr X2luZm8gKnRhc2tfaW5mbyk7DQo+PiArc3RydWN0IGFtZGdwdV92bSAqYW1kZ3B1X3ZtX2dldF90 YXNrX2luZm8oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBwYXNpZCwNCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV90YXNr X2luZm8gKnRhc2tfaW5mbyk7DQo+PiDCoCDCoCB2b2lkIGFtZGdwdV92bV9zZXRfdGFza19pbmZv KHN0cnVjdCBhbWRncHVfdm0gKnZtKTsNCj4+IMKgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jIA0KPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nbWNfdjhfMC5jDQo+PiBpbmRleCA4YmYyYmEzMTBmZDkuLjE4MjA3ZWNmZDg1YyAxMDA2NDQN Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMNCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMNCj4+IEBAIC0xNDQ4LDkgKzE0 NDgsMTAgQEAgc3RhdGljIGludCBnbWNfdjhfMF9wcm9jZXNzX2ludGVycnVwdChzdHJ1Y3QgDQo+ PiBhbWRncHVfZGV2aWNlICphZGV2LA0KPj4gwqAgwqDCoMKgwqDCoCBpZiAocHJpbnRrX3JhdGVs aW1pdCgpKSB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV90YXNrX2luZm8g dGFza19pbmZvOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVfdm0gKnZtOw0KPj4g wqAgwqDCoMKgwqDCoMKgwqDCoMKgIG1lbXNldCgmdGFza19pbmZvLCAwLCBzaXplb2Yoc3RydWN0 IGFtZGdwdV90YXNrX2luZm8pKTsNCj4+IC3CoMKgwqDCoMKgwqDCoCBhbWRncHVfdm1fZ2V0X3Rh c2tfaW5mbyhhZGV2LCBlbnRyeS0+cGFzaWQsICZ0YXNrX2luZm8pOw0KPj4gK8KgwqDCoMKgwqDC oMKgIHZtID0gYW1kZ3B1X3ZtX2dldF90YXNrX2luZm8oYWRldiwgZW50cnktPnBhc2lkLCAmdGFz a19pbmZvKTsNCj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoCBkZXZfZXJyKGFkZXYtPmRldiwgIkdQ VSBmYXVsdCBkZXRlY3RlZDogJWQgMHglMDh4IGZvciANCj4+IHByb2Nlc3MgJXMgcGlkICVkIHRo cmVhZCAlcyBwaWQgJWRcbiIsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbnRyeS0+ c3JjX2lkLCBlbnRyeS0+c3JjX2RhdGFbMF0sIHRhc2tfaW5mby5wcm9jZXNzX25hbWUsDQo+PiBA QCAtMTQ2MSw2ICsxNDYyLDkgQEAgc3RhdGljIGludCBnbWNfdjhfMF9wcm9jZXNzX2ludGVycnVw dChzdHJ1Y3QgDQo+PiBhbWRncHVfZGV2aWNlICphZGV2LA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgc3RhdHVzKTsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBnbWNfdjhfMF92bV9kZWNv ZGVfZmF1bHQoYWRldiwgc3RhdHVzLCBhZGRyLCBtY19jbGllbnQsDQo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbnRyeS0+cGFzaWQpOw0KPj4gK8KgwqDC oMKgwqDCoMKgIGlmICh2bSkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFtZGdwdV92bV9k dW1wX3B0ZShhZGV2LCB2bSwgKHVpbnQ2NF90KWFkZHINCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA8PCBBTURHUFVfR1BVX1BBR0VfU0hJRlQpOw0KPj4g wqDCoMKgwqDCoCB9DQo+PiDCoCDCoMKgwqDCoMKgIHZtaWQgPSBSRUdfR0VUX0ZJRUxEKHN0YXR1 cywgDQo+PiBWTV9DT05URVhUMV9QUk9URUNUSU9OX0ZBVUxUX1NUQVRVUywNCj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jIA0KPj4gYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jDQo+PiBpbmRleCBiZDVkMzY5NDQ0ODEuLmYy N2U4OGFmNDAxNiAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dt Y192OV8wLmMNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMN Cj4+IEBAIC0zMzEsOSArMzMxLDEwIEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfcHJvY2Vzc19pbnRl cnJ1cHQoc3RydWN0IA0KPj4gYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+IMKgIMKgwqDCoMKgwqAg aWYgKHByaW50a19yYXRlbGltaXQoKSkgew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBh bWRncHVfdGFza19pbmZvIHRhc2tfaW5mbzsNCj4+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYW1k Z3B1X3ZtICp2bTsNCj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoCBtZW1zZXQoJnRhc2tfaW5mbywg MCwgc2l6ZW9mKHN0cnVjdCBhbWRncHVfdGFza19pbmZvKSk7DQo+PiAtwqDCoMKgwqDCoMKgwqAg YW1kZ3B1X3ZtX2dldF90YXNrX2luZm8oYWRldiwgZW50cnktPnBhc2lkLCAmdGFza19pbmZvKTsN Cj4+ICvCoMKgwqDCoMKgwqDCoCB2bSA9IGFtZGdwdV92bV9nZXRfdGFza19pbmZvKGFkZXYsIGVu dHJ5LT5wYXNpZCwgJnRhc2tfaW5mbyk7DQo+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgZGV2X2Vy cihhZGV2LT5kZXYsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiWyVzXSAlcyBwYWdl IGZhdWx0IChzcmNfaWQ6JXUgcmluZzoldSB2bWlkOiV1ICINCj4+IEBAIC0zNDksNiArMzUwLDgg QEAgc3RhdGljIGludCBnbWNfdjlfMF9wcm9jZXNzX2ludGVycnVwdChzdHJ1Y3QgDQo+PiBhbWRn cHVfZGV2aWNlICphZGV2LA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGV2X2Vycihh ZGV2LT5kZXYsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJWTV9MMl9Q Uk9URUNUSU9OX0ZBVUxUX1NUQVRVUzoweCUwOFhcbiIsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHN0YXR1cyk7DQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHZtKQ0KPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYW1kZ3B1X3ZtX2R1bXBfcHRlKGFkZXYsIHZtLCBhZGRy KTsNCj4+IMKgwqDCoMKgwqAgfQ0KPj4gwqAgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4NCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGlu ZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeA==