From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [PATCH 2/4] drm/amdgpu: cleanups for vram lost handling Date: Wed, 28 Feb 2018 09:25:19 -0500 Message-ID: References: <1519802463-9090-1-git-send-email-Monk.Liu@amd.com> <1519802463-9090-2-git-send-email-Monk.Liu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1519802463-9090-2-git-send-email-Monk.Liu-5C7GfCeVMHo@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: Monk Liu Cc: amd-gfx list T24gV2VkLCBGZWIgMjgsIDIwMTggYXQgMjoyMSBBTSwgTW9uayBMaXUgPE1vbmsuTGl1QGFtZC5j b20+IHdyb3RlOgo+IDEpY3JlYXRlIGEgcm91dGluZSAiaGFuZGxlX3ZyYW1fbG9zdCIgdG8gZG8g dGhlIHZyYW0KPiByZWNvdmVyeSwgYW5kIHB1dCBpdCBpbnRvIGFtZGdwdV9kZXZpY2VfcmVzZXQv cmVzZXRfc3Jpb3YsCj4gdGhpcyB3YXkgbm8gbmVlZCBvZiB0aGUgZXh0cmEgcGFyYW10ZXIgdG8g aG9sZCB0aGUKPiBWUkFNIExPU1QgaW5mb3JtYXRpb24gYW5kIHRoZSByZWxhdGVkIG1hY3JvcyBj YW4gYmUgcmVtb3ZlZC4KPgo+IDMpc2hvdyB2cmFtX3JlY292ZXIgZmFpbHVyZSBpZiB0aW1lIG91 dCwgYW5kIHNldCBUTU8gZXF1YWwgdG8KPiBsb2NrdXBfdGltZW91dCBpZiB2cmFtX3JlY292ZXIg aXMgdW5kZXIgU1JJT1YgcnVudGltZSBtb2RlLgo+Cj4gNClyZXBvcnQgZXJyb3IgaWYgYW55IGlw IHJlc2V0IGZhaWxlZCBmb3IgU1ItSU9WCj4KPiBDaGFuZ2UtSWQ6IEk2ODZlMmI2MTMzODQ0YzE0 OTQ4YzIwNmEyMzE1YzA2NGE3OGMxZDljCj4gU2lnbmVkLW9mZi1ieTogTW9uayBMaXUgPE1vbmsu TGl1QGFtZC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5o ICAgICAgICB8ICAgNCAtCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZp Y2UuYyB8IDEzNiArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+ICAyIGZpbGVzIGNoYW5n ZWQsIDcyIGluc2VydGlvbnMoKyksIDY4IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1LmgKPiBpbmRleCA1YmRkZmMxLi5hYmJjM2YxIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1LmgKPiBAQCAtMTgxLDEwICsxODEsNiBAQCBleHRlcm4gaW50IGFt ZGdwdV9jaWtfc3VwcG9ydDsKPiAgI2RlZmluZSBDSUtfQ1VSU09SX1dJRFRIIDEyOAo+ICAjZGVm aW5lIENJS19DVVJTT1JfSEVJR0hUIDEyOAo+Cj4gLS8qIEdQVSBSRVNFVCBmbGFncyAqLwo+IC0j ZGVmaW5lIEFNREdQVV9SRVNFVF9JTkZPX1ZSQU1fTE9TVCAgKDEgPDwgMCkKPiAtI2RlZmluZSBB TURHUFVfUkVTRVRfSU5GT19GVUxMUkVTRVQgICgxIDw8IDEpCj4gLQo+ICBzdHJ1Y3QgYW1kZ3B1 X2RldmljZTsKPiAgc3RydWN0IGFtZGdwdV9pYjsKPiAgc3RydWN0IGFtZGdwdV9jc19wYXJzZXI7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2Uu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+IGluZGV4IGU5 ZDgxYTguLjM5ZWNlN2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2RldmljZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2RldmljZS5jCj4gQEAgLTE1OTEsNiArMTU5MSw4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Rldmlj ZV9pcF9yZWluaXRfZWFybHlfc3Jpb3Yoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4KPiAg ICAgICAgICAgICAgICAgICAgICAgICByID0gYmxvY2stPnZlcnNpb24tPmZ1bmNzLT5od19pbml0 KGFkZXYpOwo+ICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9JTkZPKCJSRS1JTklUOiAlcyAl c1xuIiwgYmxvY2stPnZlcnNpb24tPmZ1bmNzLT5uYW1lLCByPyJmYWlsZWQiOiJzdWNjZXNzZWQi KTsKPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAocikKPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiByOwo+ICAgICAgICAgICAgICAgICB9Cj4gICAgICAgICB9Cj4K PiBAQCAtMTYyNCw2ICsxNjI2LDggQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX2lwX3JlaW5p dF9sYXRlX3NyaW92KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+Cj4gICAgICAgICAgICAg ICAgICAgICAgICAgciA9IGJsb2NrLT52ZXJzaW9uLT5mdW5jcy0+aHdfaW5pdChhZGV2KTsKPiAg ICAgICAgICAgICAgICAgICAgICAgICBEUk1fSU5GTygiUkUtSU5JVDogJXMgJXNcbiIsIGJsb2Nr LT52ZXJzaW9uLT5mdW5jcy0+bmFtZSwgcj8iZmFpbGVkIjoic3VjY2Vzc2VkIik7Cj4gKyAgICAg ICAgICAgICAgICAgICAgICAgaWYgKHIpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gcjsKPiAgICAgICAgICAgICAgICAgfQo+ICAgICAgICAgfQo+Cj4gQEAgLTI0NzEs MTcgKzI0NzUsNzEgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX3JlY292ZXJfdnJhbV9mcm9t X3NoYWRvdyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAgICAgICAgIHJldHVybiByOwo+ ICB9Cj4KPiArc3RhdGljIGludCBhbWRncHVfaGFuZGxlX3ZyYW1fbG9zdChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKClBsZWFzZSByZW5hbWUgdGhpcyBmdW5jdGlvbiB0byBhbWRncHVfZGV2 aWNlX2hhbmRsZV92cmFtX2xvc3QoKSBmb3IKY29uc2lzdGVuY3kud2l0aCBvdGhlciBmdW5jdGlv bnMgaW4gdGhlIGZpbGUuCgpBbGV4CgoKPiArewo+ICsgICAgICAgc3RydWN0IGFtZGdwdV9yaW5n ICpyaW5nID0gYWRldi0+bW1hbi5idWZmZXJfZnVuY3NfcmluZzsKPiArICAgICAgIHN0cnVjdCBh bWRncHVfYm8gKmJvLCAqdG1wOwo+ICsgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBO VUxMLCAqbmV4dCA9IE5VTEw7Cj4gKyAgICAgICBsb25nIHIgPSAxOwo+ICsgICAgICAgaW50IGkg PSAwOwo+ICsgICAgICAgbG9uZyB0bW87Cj4gKwo+ICsgICAgICAgaWYgKGFtZGdwdV9zcmlvdl9y dW50aW1lKGFkZXYpKQo+ICsgICAgICAgICAgICAgICB0bW8gPSBtc2Vjc190b19qaWZmaWVzKGFt ZGdwdV9sb2NrdXBfdGltZW91dCk7Cj4gKyAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgIHRt byA9IG1zZWNzX3RvX2ppZmZpZXMoMTAwKTsKPiArCj4gKyAgICAgICBEUk1fSU5GTygicmVjb3Zl ciB2cmFtIGJvIGZyb20gc2hhZG93IHN0YXJ0XG4iKTsKPiArICAgICAgIG11dGV4X2xvY2soJmFk ZXYtPnNoYWRvd19saXN0X2xvY2spOwo+ICsgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZl KGJvLCB0bXAsICZhZGV2LT5zaGFkb3dfbGlzdCwgc2hhZG93X2xpc3QpIHsKPiArICAgICAgICAg ICAgICAgbmV4dCA9IE5VTEw7Cj4gKyAgICAgICAgICAgICAgIGFtZGdwdV9kZXZpY2VfcmVjb3Zl cl92cmFtX2Zyb21fc2hhZG93KGFkZXYsIHJpbmcsIGJvLCAmbmV4dCk7Cj4gKyAgICAgICAgICAg ICAgIGlmIChmZW5jZSkgewo+ICsgICAgICAgICAgICAgICAgICAgICAgIHIgPSBkbWFfZmVuY2Vf d2FpdF90aW1lb3V0KGZlbmNlLCBmYWxzZSwgdG1vKTsKPiArICAgICAgICAgICAgICAgICAgICAg ICBpZiAociA9PSAwKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJfZXJyKCJ3 YWl0IGZlbmNlICVwWyVkXSB0aW1lb3V0XG4iLCBmZW5jZSwgaSk7Cj4gKyAgICAgICAgICAgICAg ICAgICAgICAgZWxzZSBpZiAociA8IDApCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwcl9lcnIoIndhaXQgZmVuY2UgJXBbJWRdIGludGVycnVwdGVkXG4iLCBmZW5jZSwgaSk7Cj4g KyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIgPCAxKSB7Cj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkbWFfZmVuY2VfcHV0KGZlbmNlKTsKPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZlbmNlID0gbmV4dDsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAg ICAgICAgICBpKys7Cj4gKyAgICAgICAgICAgICAgIH0KPiArCj4gKyAgICAgICAgICAgICAgIGRt YV9mZW5jZV9wdXQoZmVuY2UpOwo+ICsgICAgICAgICAgICAgICBmZW5jZSA9IG5leHQ7Cj4gKyAg ICAgICB9Cj4gKyAgICAgICBtdXRleF91bmxvY2soJmFkZXYtPnNoYWRvd19saXN0X2xvY2spOwo+ ICsKPiArICAgICAgIGlmIChmZW5jZSkgewo+ICsgICAgICAgICAgICAgICByID0gZG1hX2ZlbmNl X3dhaXRfdGltZW91dChmZW5jZSwgZmFsc2UsIHRtbyk7Cj4gKyAgICAgICAgICAgICAgIGlmIChy ID09IDApCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcHJfZXJyKCJ3YWl0IGZlbmNlICVwWyVk XSB0aW1lb3V0XG4iLCBmZW5jZSwgaSk7Cj4gKyAgICAgICAgICAgICAgIGVsc2UgaWYgKHIgPCAw KQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHByX2Vycigid2FpdCBmZW5jZSAlcFslZF0gaW50 ZXJydXB0ZWRcbiIsIGZlbmNlLCBpKTsKPiArCj4gKyAgICAgICB9Cj4gKyAgICAgICBkbWFfZmVu Y2VfcHV0KGZlbmNlKTsKPiArCj4gKyAgICAgICBpZiAociA+IDApCj4gKyAgICAgICAgICAgICAg IERSTV9JTkZPKCJyZWNvdmVyIHZyYW0gYm8gZnJvbSBzaGFkb3cgZG9uZVxuIik7Cj4gKyAgICAg ICBlbHNlCj4gKyAgICAgICAgICAgICAgIERSTV9FUlJPUigicmVjb3ZlciB2cmFtIGJvIGZyb20g c2hhZG93IGZhaWxlZFxuIik7Cj4gKwo+ICsgICAgICAgcmV0dXJuIChyID4gMD8wOjEpOwo+ICt9 Cj4gKwo+ICAvKgo+ICAgKiBhbWRncHVfZGV2aWNlX3Jlc2V0IC0gcmVzZXQgQVNJQy9HUFUgZm9y IGJhcmUtbWV0YWwgb3IgcGFzc3Rocm91Z2gKPiAgICoKPiAgICogQGFkZXY6IGFtZGdwdSBkZXZp Y2UgcG9pbnRlcgo+IC0gKiBAcmVzZXRfZmxhZ3M6IG91dHB1dCBwYXJhbSB0ZWxscyBjYWxsZXIg dGhlIHJlc2V0IHJlc3VsdAo+ICAgKgo+ICAgKiBhdHRlbXB0IHRvIGRvIHNvZnQtcmVzZXQgb3Ig ZnVsbC1yZXNldCBhbmQgcmVpbml0aWFsaXplIEFzaWMKPiAgICogcmV0dXJuIDAgbWVhbnMgc3Vj Y2Vzc2VkIG90aGVyd2lzZSBmYWlsZWQKPiAgKi8KPiAtc3RhdGljIGludCBhbWRncHVfZGV2aWNl X3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50NjRfdCogcmVzZXRfZmxhZ3MpCj4gK3N0YXRpYyBpbnQgYW1kZ3B1X2Rl dmljZV9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgewo+ICAgICAgICAgYm9v bCBuZWVkX2Z1bGxfcmVzZXQsIHZyYW1fbG9zdCA9IDA7Cj4gICAgICAgICBpbnQgcjsKPiBAQCAt MjQ5Niw3ICsyNTU0LDYgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX3Jlc2V0KHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAo+ICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9JTkZPKCJz b2Z0IHJlc2V0IGZhaWxlZCwgd2lsbCBmYWxsYmFjayB0byBmdWxsIHJlc2V0IVxuIik7Cj4gICAg ICAgICAgICAgICAgICAgICAgICAgbmVlZF9mdWxsX3Jlc2V0ID0gdHJ1ZTsKPiAgICAgICAgICAg ICAgICAgfQo+IC0KPiAgICAgICAgIH0KPgo+ICAgICAgICAgaWYgKG5lZWRfZnVsbF9yZXNldCkg ewo+IEBAIC0yNTQ1LDEzICsyNjAyLDggQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX3Jlc2V0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAgICAgICAgICAgICAgICB9Cj4gICAgICAg ICB9Cj4KPiAtICAgICAgIGlmIChyZXNldF9mbGFncykgewo+IC0gICAgICAgICAgICAgICBpZiAo dnJhbV9sb3N0KQo+IC0gICAgICAgICAgICAgICAgICAgICAgICgqcmVzZXRfZmxhZ3MpIHw9IEFN REdQVV9SRVNFVF9JTkZPX1ZSQU1fTE9TVDsKPiAtCj4gLSAgICAgICAgICAgICAgIGlmIChuZWVk X2Z1bGxfcmVzZXQpCj4gLSAgICAgICAgICAgICAgICAgICAgICAgKCpyZXNldF9mbGFncykgfD0g QU1ER1BVX1JFU0VUX0lORk9fRlVMTFJFU0VUOwo+IC0gICAgICAgfQo+ICsgICAgICAgaWYgKCFy ICYmICgobmVlZF9mdWxsX3Jlc2V0ICYmICEoYWRldi0+ZmxhZ3MgJiBBTURfSVNfQVBVKSkgfHwg dnJhbV9sb3N0KSkKPiArICAgICAgICAgICAgICAgciA9IGFtZGdwdV9oYW5kbGVfdnJhbV9sb3N0 KGFkZXYpOwo+Cj4gICAgICAgICByZXR1cm4gcjsKPiAgfQo+IEBAIC0yNTYwLDE0ICsyNjEyLDEx IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwKPiAgICogYW1kZ3B1X2RldmljZV9yZXNldF9zcmlvdiAtIHJlc2V0IEFTSUMgZm9yIFNS LUlPViB2Zgo+ICAgKgo+ICAgKiBAYWRldjogYW1kZ3B1IGRldmljZSBwb2ludGVyCj4gLSAqIEBy ZXNldF9mbGFnczogb3V0cHV0IHBhcmFtIHRlbGxzIGNhbGxlciB0aGUgcmVzZXQgcmVzdWx0Cj4g ICAqCj4gICAqIGRvIFZGIEZMUiBhbmQgcmVpbml0aWFsaXplIEFzaWMKPiAgICogcmV0dXJuIDAg bWVhbnMgc3VjY2Vzc2VkIG90aGVyd2lzZSBmYWlsZWQKPiAgKi8KPiAtc3RhdGljIGludCBhbWRn cHVfZGV2aWNlX3Jlc2V0X3NyaW92KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqcmVzZXRfZmxhZ3MsCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZnJvbV9oeXBlcnZpc29y KQo+ICtzdGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfcmVzZXRfc3Jpb3Yoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsIGJvb2wgZnJvbV9oeXBlcnZpc29yKQo+ICB7Cj4gICAgICAgICBpbnQgcjsK Pgo+IEBAIC0yNTg4LDI4ICsyNjM3LDIwIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9yZXNl dF9zcmlvdihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPgo+ICAgICAgICAgLyogbm93IHdl IGFyZSBva2F5IHRvIHJlc3VtZSBTTUMvQ1AvU0RNQSAqLwo+ICAgICAgICAgciA9IGFtZGdwdV9k ZXZpY2VfaXBfcmVpbml0X2xhdGVfc3Jpb3YoYWRldik7Cj4gKyAgICAgICBhbWRncHVfdmlydF9y ZWxlYXNlX2Z1bGxfZ3B1KGFkZXYsIHRydWUpOwo+ICAgICAgICAgaWYgKHIpCj4gICAgICAgICAg ICAgICAgIGdvdG8gZXJyb3I7Cj4KPiAgICAgICAgIGFtZGdwdV9pcnFfZ3B1X3Jlc2V0X3Jlc3Vt ZV9oZWxwZXIoYWRldik7Cj4gICAgICAgICByID0gYW1kZ3B1X2liX3JpbmdfdGVzdHMoYWRldik7 Cj4gLSAgICAgICBpZiAocikKPiAtICAgICAgICAgICAgICAgZGV2X2VycihhZGV2LT5kZXYsICJb R1BVX1JFU0VUXSBpYiByaW5nIHRlc3QgZmFpbGVkICglZCkuXG4iLCByKTsKPgo+IC1lcnJvcjoK PiAtICAgICAgIC8qIHJlbGVhc2UgZnVsbCBjb250cm9sIG9mIEdQVSBhZnRlciBpYiB0ZXN0ICov Cj4gLSAgICAgICBhbWRncHVfdmlydF9yZWxlYXNlX2Z1bGxfZ3B1KGFkZXYsIHRydWUpOwo+IC0K PiAtICAgICAgIGlmIChyZXNldF9mbGFncykgewo+IC0gICAgICAgICAgICAgICBpZiAoYWRldi0+ dmlydC5naW1fZmVhdHVyZSAmIEFNREdJTV9GRUFUVVJFX0dJTV9GTFJfVlJBTUxPU1QpIHsKPiAt ICAgICAgICAgICAgICAgICAgICAgICAoKnJlc2V0X2ZsYWdzKSB8PSBBTURHUFVfUkVTRVRfSU5G T19WUkFNX0xPU1Q7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgYXRvbWljX2luYygmYWRldi0+ dnJhbV9sb3N0X2NvdW50ZXIpOwo+IC0gICAgICAgICAgICAgICB9Cj4gLQo+IC0gICAgICAgICAg ICAgICAvKiBWRiBGTFIgb3IgaG90bGluayByZXNldCBpcyBhbHdheXMgZnVsbC1yZXNldCAqLwo+ IC0gICAgICAgICAgICAgICAoKnJlc2V0X2ZsYWdzKSB8PSBBTURHUFVfUkVTRVRfSU5GT19GVUxM UkVTRVQ7Cj4gKyAgICAgICBpZiAoIXIgJiYgYWRldi0+dmlydC5naW1fZmVhdHVyZSAmIEFNREdJ TV9GRUFUVVJFX0dJTV9GTFJfVlJBTUxPU1QpIHsKPiArICAgICAgICAgICAgICAgYXRvbWljX2lu YygmYWRldi0+dnJhbV9sb3N0X2NvdW50ZXIpOwo+ICsgICAgICAgICAgICAgICByID0gYW1kZ3B1 X2hhbmRsZV92cmFtX2xvc3QoYWRldik7Cj4gICAgICAgICB9Cj4KPiArZXJyb3I6Cj4gKwo+ICAg ICAgICAgcmV0dXJuIHI7Cj4gIH0KPgo+IEBAIC0yNjczLDQyICsyNzE0LDkgQEAgaW50IGFtZGdw dV9kZXZpY2VfZ3B1X3JlY292ZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICAgICAg ICB9Cj4KPiAgICAgICAgIGlmIChhbWRncHVfc3Jpb3ZfdmYoYWRldikpCj4gLSAgICAgICAgICAg ICAgIHIgPSBhbWRncHVfZGV2aWNlX3Jlc2V0X3NyaW92KGFkZXYsICZyZXNldF9mbGFncywgam9i ID8gZmFsc2UgOiB0cnVlKTsKPiArICAgICAgICAgICAgICAgciA9IGFtZGdwdV9kZXZpY2VfcmVz ZXRfc3Jpb3YoYWRldiwgam9iID8gZmFsc2UgOiB0cnVlKTsKPiAgICAgICAgIGVsc2UKPiAtICAg ICAgICAgICAgICAgciA9IGFtZGdwdV9kZXZpY2VfcmVzZXQoYWRldiwgJnJlc2V0X2ZsYWdzKTsK PiAtCj4gLSAgICAgICBpZiAoIXIpIHsKPiAtICAgICAgICAgICAgICAgaWYgKCgocmVzZXRfZmxh Z3MgJiBBTURHUFVfUkVTRVRfSU5GT19GVUxMUkVTRVQpICYmICEoYWRldi0+ZmxhZ3MgJiBBTURf SVNfQVBVKSkgfHwKPiAtICAgICAgICAgICAgICAgICAgICAgICAocmVzZXRfZmxhZ3MgJiBBTURH UFVfUkVTRVRfSU5GT19WUkFNX0xPU1QpKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nID0gYWRldi0+bW1hbi5idWZmZXJfZnVuY3NfcmluZzsKPiAt ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibywgKnRtcDsKPiAtICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IE5VTEwsICpuZXh0 ID0gTlVMTDsKPiAtCj4gLSAgICAgICAgICAgICAgICAgICAgICAgRFJNX0lORk8oInJlY292ZXIg dnJhbSBibyBmcm9tIHNoYWRvd1xuIik7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgbXV0ZXhf bG9jaygmYWRldi0+c2hhZG93X2xpc3RfbG9jayk7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAg bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJvLCB0bXAsICZhZGV2LT5zaGFkb3dfbGlzdCwgc2hh ZG93X2xpc3QpIHsKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSBOVUxM Owo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2RldmljZV9yZWNvdmVy X3ZyYW1fZnJvbV9zaGFkb3coYWRldiwgcmluZywgYm8sICZuZXh0KTsKPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChmZW5jZSkgewo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByID0gZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIpIHsKPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXQVJOKHIsICJyZWNvdmVyeSBm cm9tIHNoYWRvdyBpc24ndCBjb21wbGV0ZWRcbiIpOwo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cj4g LQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG1hX2ZlbmNlX3B1dChmZW5jZSk7 Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZW5jZSA9IG5leHQ7Cj4gLSAgICAg ICAgICAgICAgICAgICAgICAgfQo+IC0gICAgICAgICAgICAgICAgICAgICAgIG11dGV4X3VubG9j aygmYWRldi0+c2hhZG93X2xpc3RfbG9jayk7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgaWYg KGZlbmNlKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0gZG1hX2ZlbmNl X3dhaXQoZmVuY2UsIGZhbHNlKTsKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IChyKQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXQVJOKHIsICJy ZWNvdmVyeSBmcm9tIHNoYWRvdyBpc24ndCBjb21wbGV0ZWRcbiIpOwo+IC0gICAgICAgICAgICAg ICAgICAgICAgIH0KPiAtICAgICAgICAgICAgICAgICAgICAgICBkbWFfZmVuY2VfcHV0KGZlbmNl KTsKPiAtICAgICAgICAgICAgICAgfQo+IC0gICAgICAgfQo+ICsgICAgICAgICAgICAgICByID0g YW1kZ3B1X2RldmljZV9yZXNldChhZGV2KTsKPgo+ICAgICAgICAgZm9yIChpID0gMDsgaSA8IEFN REdQVV9NQVhfUklOR1M7ICsraSkgewo+ICAgICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmcgPSBhZGV2LT5yaW5nc1tpXTsKPiAtLQo+IDIuNy40Cj4KPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGFtZC1nZnggbWFpbGluZyBsaXN0 Cj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9hbWQtZ2Z4Cg==