From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 1/2] drm/amdgpu:resolv deadlock between reset and cs_ioctl v4. Date: Tue, 10 Oct 2017 09:05:16 +0200 Message-ID: <590b6a7d-e105-cf97-57a3-174272f27765@amd.com> References: <1507314021-18323-1-git-send-email-andrey.grodzovsky@amd.com> <9fc20357-db3e-3823-3073-c70ead162f4e@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US 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: andrey , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Monk Liu QW0gMTAuMTAuMjAxNyB1bSAwNTozMSBzY2hyaWViIGFuZHJleToKPgo+Cj4gT24gMjAxNy0xMC0w OSAwNDozNCBBTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4gQW0gMDYuMTAuMjAxNyB1bSAy MDoyMCBzY2hyaWViIEFuZHJleSBHcm9kem92c2t5Ogo+Pj4gRnJvbTogTW9uayBMaXUgPE1vbmsu TGl1QGFtZC5jb20+Cj4+Pgo+Pj4gbmVlZCB0byB1bnJlc2VydmUgdHRtIGJvIGJlZm9yZSAiY3Nf YWRkX2ZlbmNlIiBhbmQgImVudGl0eV9wdXNoX2pvYiIKPj4+IG90aGVyd2lzZSB0aGVyZSB3aWxs IGJlIGRlYWRsb2NrIGJldHdlZW4gInJlY292ZXJfdnJhbV9mcm9tX3NoYWRvdyIKPj4+IGFuZCBw cmV2aW91cyB0d28gcm91dGluZXMgb24gdGhlIHR0bSBibydzIHJlc3YgbG9jay4KPj4+Cj4+PiB2 MjoKPj4+IEFkZCBwZXIgY3R4IG11dGV4Lgo+Pj4KPj4+IHYzOgo+Pj4gUmVsbG9jYXRlIG11dGV4 IGFxdWlzaXRpb24gaW50byBhbWRncHVfY3NfcGFyc2VyX2luaXQgYW5kIG11ZXggcmVsZWFzZQo+ Pj4gaW50byBhbWRncHVfY3NfcGFyc2VyX2ZpbmkgdG8gYXZvaWQgbmVzdGVkIGxvY2tpbmcgbG9j a3VwLgo+Pj4gQWRkIHJvbGxiYWNrIGNvZGUgZm9yIGFtZGdwdV9jdHhfYWRkX2ZlbmNlIGluIGNh c2Ugb2YgZXJyb3Igb3Igc2lnbmFsCj4+PiBpbnRlcnJ1cHRpb24uCj4+Pgo+Pj4gdjQ6Cj4+PiBS ZWZhY3RvciBhbWRncHVfY3NfaWJfdm1fY2h1bmsgYW5kIGFtZGdwdV9jc19pYl9maWxsIHRvIGVu YWJsZQo+Pj4gb2xkIGZlbmNlIHdhaXRpbmcgYmVmb3JlIHJlc2VydmF0aW9uIGxvY2sgaXMgYXF1 aXJlZC4KPj4+Cj4+PiBDaGFuZ2UtSWQ6IElhMjA5YmVhYjUwMzZiZmMyYzM4Y2JmMTgzMjRmYTNl ZmQ0YmFiMWNmCj4+PiBTaWduZWQtb2ZmLWJ5OiBNb25rIExpdSA8TW9uay5MaXVAYW1kLmNvbT4K Pj4+IFNpZ25lZC1vZmYtYnk6IEFuZHJleSBHcm9kem92c2t5IDxhbmRyZXkuZ3JvZHpvdnNreUBh bWQuY29tPgo+Pj4gLS0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5o ICAgICB8ICAgMSArCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5j ICB8IDE2NCAKPj4+ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4+PiAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jdHguYyB8ICAgNCArCj4+PiAgIDMgZmlsZXMg Y2hhbmdlZCwgMTAwIGluc2VydGlvbnMoKyksIDY5IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAKPj4+IGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4+IGluZGV4IDUzZDhkZjMuLmJhYTI5NTMg MTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4+IEBAIC03MjQsNiAr NzI0LDcgQEAgc3RydWN0IGFtZGdwdV9jdHggewo+Pj4gICAgICAgc3RydWN0IGRtYV9mZW5jZSAg ICAqKmZlbmNlczsKPj4+ICAgICAgIHN0cnVjdCBhbWRncHVfY3R4X3JpbmcgICAgcmluZ3NbQU1E R1BVX01BWF9SSU5HU107Cj4+PiAgICAgICBib29sIHByZWFtYmxlX3ByZXNlbnRlZDsKPj4+ICsg ICAgc3RydWN0IG11dGV4ICAgICAgICBsb2NrOwo+Pj4gICB9Owo+Pj4gICAgIHN0cnVjdCBhbWRn cHVfY3R4X21nciB7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2NzLmMgCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5j Cj4+PiBpbmRleCA5ZjEyMDJhLi4wZmExYmM3IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9jcy5jCj4+PiBAQCAtODksNiArODksOSBAQCBzdGF0aWMgaW50IGFtZGdw dV9jc19wYXJzZXJfaW5pdChzdHJ1Y3QgCj4+PiBhbWRncHVfY3NfcGFyc2VyICpwLCB2b2lkICpk YXRhKQo+Pj4gICAgICAgICAgIGdvdG8gZnJlZV9jaHVuazsKPj4+ICAgICAgIH0KPj4+ICAgKwo+ Pj4gKyAgICBtdXRleF9sb2NrKCZwLT5jdHgtPmxvY2spOwo+Pj4gKwo+Pj4gICAgICAgLyogZ2V0 IGNodW5rcyAqLwo+Pj4gICAgICAgY2h1bmtfYXJyYXlfdXNlciA9IHU2NF90b191c2VyX3B0cihj cy0+aW4uY2h1bmtzKTsKPj4+ICAgICAgIGlmIChjb3B5X2Zyb21fdXNlcihjaHVua19hcnJheSwg Y2h1bmtfYXJyYXlfdXNlciwKPj4+IEBAIC03MTUsMjggKzcxOCwyMSBAQCBzdGF0aWMgaW50IGFt ZGdwdV9jc19zeW5jX3JpbmdzKHN0cnVjdCAKPj4+IGFtZGdwdV9jc19wYXJzZXIgKnApCj4+PiAg IC8qKgo+Pj4gICAgKiBjc19wYXJzZXJfZmluaSgpIC0gY2xlYW4gcGFyc2VyIHN0YXRlcwo+Pj4g ICAgKiBAcGFyc2VyOiAgICBwYXJzZXIgc3RydWN0dXJlIGhvbGRpbmcgcGFyc2luZyBjb250ZXh0 Lgo+Pj4gLSAqIEBlcnJvcjogICAgZXJyb3IgbnVtYmVyCj4+PiAtICoKPj4+IC0gKiBJZiBlcnJv ciBpcyBzZXQgdGhhbiB1bnZhbGlkYXRlIGJ1ZmZlciwgb3RoZXJ3aXNlIGp1c3QgZnJlZSBtZW1v cnkKPj4+IC0gKiB1c2VkIGJ5IHBhcnNpbmcgY29udGV4dC4KPj4+ICAgICoqLwo+Pj4gLXN0YXRp YyB2b2lkIGFtZGdwdV9jc19wYXJzZXJfZmluaShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcGFy c2VyLCAKPj4+IGludCBlcnJvciwKPj4+IC0gICAgICAgICAgICAgICAgICBib29sIGJhY2tvZmYp Cj4+PiArc3RhdGljIHZvaWQgYW1kZ3B1X2NzX3BhcnNlcl9maW5pKHN0cnVjdCBhbWRncHVfY3Nf cGFyc2VyICpwYXJzZXIpCj4+Cj4+IFlvdSBjYW4gbm93IGRyb3AgdGhpcyBjaGFuZ2UgYW5kIGtl ZXAgdGhlIGxvZ2ljIGFzIGl0IGlzIHNpbmNlIHdlIAo+PiBtb3ZlZCB0aGUgd2FpdCBiZWZvcmUg dGFraW5nIHRoZSByZXNlcnZhdGlvbiBsb2Nrcy4KPgo+IEJ5ICJ0aGlzIGNoYW5nZSIgaGVyZSBh bmQgaW4gdGhlIGNvbW1lbnQgbGF0ZXIgYmVsbG93IEkgZ3Vlc3MgeW91IG1lYW4gCj4gdGhlIG9y aWdpbmFsIGNoYW5nZSBieSBNb25rIGFib3V0IG1vdmluZyB0dG1fZXVfZmVuY2VfYnVmZmVyX29i amVjdHMgCj4gdG8gYmVmb3JlIGFtZF9zY2hlZF9lbnRpdHlfcHVzaF9qb2IgPwoKWWVzLCBjb3Jy ZWN0LgoKPiBJbiB0aGF0IGNhc2UgSSBhbSBub3Qgc3VyZSBob3cgd2UgY2FuIGRyb3AgaXQgc2lu Y2UgdGhlIHdhaXQgd2UgbW92ZWQgCj4gaW4gdGhlIHNlY29uZCBwYXRjaCB3YXMgdGhlIG9uZSBm b3IgdGhlIG9sZCBmZW5jZSB3aGlsZSBNb25rJ3MgY2hhbmdlIAo+IHdhcyBhYm91dCB0aGUgd2Fp dCBoYXBwZW5pbmcgd2hlbiB0aGUga2ZpZm8gaXMgZnVsbC4gSXNuJ3QgcmV2ZXJ0aW5nIAo+IGhp cyBjaGFuZ2Ugd2lsbCBqdXN0IHB1dCB1cyBhZ2FpbiBpbiB0aGUgb3JpZ2luYWwgZGVhZGxvY2sg b2YgYmxvY2tpbmcgCj4gb24gZnVsbCBrZmlmbyB3aGlsZSBob2xkaW5nIHRoZSByZXNlcnZhdGlv biBsb2NrIGR1cmluZyBncHUgcmVzZXQgd2l0aCAKPiBWUkFNIHJlY292ZXJ5ID8KClllYWgsIGJ1 dCB3ZSBuZWVkIHRvIGZpeCB0aGlzIGtmaWZvIGlzc3VlIGluIGFub3RoZXIgd2F5IGFueXdheS4g Q2F1c2UgCndlIHB1c2ggdG8gdGhlIGtmaWZvIGR1cmluZyBCTyBtaWdyYXRpb24gYW5kIHBhZ2Ug dGFibGVzIHVwZGF0ZXMgYXMgd2VsbCAKYW5kIHRoYXQgY2FuIG9ubHkgaGFwcGVuIHdoaWxlIHRo ZSBCT3MgYXJlIHJlc2VydmVkLgoKSW4gZ2VuZXJhbCBwbGVhc2UgY29uY2VudHJhdGUgb24gb25l IGNoYW5nZSBhdCBhIHRpbWUuIEluIG90aGVyIHdvcmRzIAp0aGlzIGZpcnN0IHBhdGNoIHNob3Vs ZCBqdXN0IG1vdmUgZmlsbGluZyB0aGUgSUJzIGJlZm9yZSB0YWtpbmcgdGhlIEJPIApyZXNlcnZh dGlvbiBsb2NrLgoKVG8gZG8gdGhpcyB5b3UganVzdCBuZWVkIHRvIG1vdmUgdGhlIGNhbGxzIHRv IGFtZGdwdV9jc19maW5kX21hcHBpbmcoKSAKYW5kIGFtZGdwdV9ib19rbWFwKCkgYW5kIGFtZGdw dV9ib19rdW5tYXAoKSBvdXQgb2YgYW1kZ3B1X2NzX2ZpbGxfaWIoKSwgCmJ1dCBwbGVhc2UgdHJ5 IHRvIGtlZXAgdGhlIGFtZGdwdV9pYl9nZXQoKSBhdCB0aGUgb3JpZ2luYWwgcGxhY2UuCgpSZWdh cmRzLApDaHJpc3RpYW4uCgo+Cj4gVGhhbmtzLAo+IEFuZHJleQo+Cj4+Cj4+PiAgIHsKPj4+ICAg ICAgIHVuc2lnbmVkIGk7Cj4+PiAgIC0gICAgaWYgKGVycm9yICYmIGJhY2tvZmYpCj4+PiAtICAg ICAgICB0dG1fZXVfYmFja29mZl9yZXNlcnZhdGlvbigmcGFyc2VyLT50aWNrZXQsCj4+PiAtICAg ICAgICAgICAgICAgICAgICAgICAmcGFyc2VyLT52YWxpZGF0ZWQpOwo+Pj4gLQo+Pj4gICAgICAg Zm9yIChpID0gMDsgaSA8IHBhcnNlci0+bnVtX3Bvc3RfZGVwX3N5bmNvYmpzOyBpKyspCj4+PiAg ICAgICAgICAgZHJtX3N5bmNvYmpfcHV0KHBhcnNlci0+cG9zdF9kZXBfc3luY29ianNbaV0pOwo+ Pj4gICAgICAga2ZyZWUocGFyc2VyLT5wb3N0X2RlcF9zeW5jb2Jqcyk7Cj4+PiAgICAgICAgIGRt YV9mZW5jZV9wdXQocGFyc2VyLT5mZW5jZSk7Cj4+PiAgIC0gICAgaWYgKHBhcnNlci0+Y3R4KQo+ Pj4gKyAgICBpZiAocGFyc2VyLT5jdHgpIHsKPj4+ICsgICAgICAgIG11dGV4X3VubG9jaygmcGFy c2VyLT5jdHgtPmxvY2spOwo+Pj4gICAgICAgICAgIGFtZGdwdV9jdHhfcHV0KHBhcnNlci0+Y3R4 KTsKPj4+ICsgICAgfQo+Pj4gICAgICAgaWYgKHBhcnNlci0+Ym9fbGlzdCkKPj4+ICAgICAgICAg ICBhbWRncHVfYm9fbGlzdF9wdXQocGFyc2VyLT5ib19saXN0KTsKPj4+ICAgQEAgLTg0Myw3ICs4 MzksNzIgQEAgc3RhdGljIGludCBhbWRncHVfY3NfaWJfdm1fY2h1bmsoc3RydWN0IAo+Pj4gYW1k Z3B1X2RldmljZSAqYWRldiwKPj4+ICAgICAgIHN0cnVjdCBhbWRncHVfZnByaXYgKmZwcml2ID0g cC0+ZmlscC0+ZHJpdmVyX3ByaXY7Cj4+PiAgICAgICBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSA9ICZm cHJpdi0+dm07Cj4+PiAgICAgICBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSBwLT5qb2ItPnJp bmc7Cj4+PiAtICAgIGludCBpLCByOwo+Pj4gKyAgICBpbnQgaSwgaiwgcjsKPj4+ICsKPj4+ICsg ICAgZm9yIChpID0gMCwgaiA9IDA7IGkgPCBwLT5uY2h1bmtzICYmIGogPCBwLT5qb2ItPm51bV9p YnM7IGkrKykgewo+Pj4gKwo+Pj4gKyAgICAgICAgc3RydWN0IGFtZGdwdV9jc19jaHVuayAqY2h1 bms7Cj4+PiArICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2liICppYjsKPj4+ICsgICAgICAgIHN0cnVj dCBkcm1fYW1kZ3B1X2NzX2NodW5rX2liICpjaHVua19pYjsKPj4+ICsKPj4+ICsgICAgICAgIGNo dW5rID0gJnAtPmNodW5rc1tpXTsKPj4+ICsgICAgICAgIGliID0gJnAtPmpvYi0+aWJzW2pdOwo+ Pj4gKyAgICAgICAgY2h1bmtfaWIgPSAoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfaWIgKilj aHVuay0+a2RhdGE7Cj4+PiArCj4+PiArICAgICAgICBpZiAoY2h1bmstPmNodW5rX2lkICE9IEFN REdQVV9DSFVOS19JRF9JQikKPj4+ICsgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+Pj4g Kwo+Pj4gKyAgICAgICAgaWYgKHAtPmpvYi0+cmluZy0+ZnVuY3MtPnBhcnNlX2NzKSB7Cj4+PiAr ICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9ib192YV9tYXBwaW5nICptOwo+Pj4gKyAgICAgICAg ICAgIHN0cnVjdCBhbWRncHVfYm8gKmFvYmogPSBOVUxMOwo+Pj4gKyAgICAgICAgICAgIHVpbnQ2 NF90IG9mZnNldDsKPj4+ICsgICAgICAgICAgICB1aW50OF90ICprcHRyOwo+Pj4gKwo+Pj4gKyAg ICAgICAgICAgIHIgPSBhbWRncHVfY3NfZmluZF9tYXBwaW5nKHAsIGNodW5rX2liLT52YV9zdGFy dCwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAmYW9iaiwgJm0pOwo+Pj4gKyAgICAg ICAgICAgIGlmIChyKSB7Cj4+PiArICAgICAgICAgICAgICAgIERSTV9FUlJPUigiSUIgdmFfc3Rh cnQgaXMgaW52YWxpZFxuIik7Cj4+PiArICAgICAgICAgICAgICAgIHJldHVybiByOwo+Pj4gKyAg ICAgICAgICAgIH0KPj4+ICsKPj4+ICsgICAgICAgICAgICBpZiAoKGNodW5rX2liLT52YV9zdGFy dCArIGNodW5rX2liLT5pYl9ieXRlcykgPgo+Pj4gKyAgICAgICAgICAgICAgICAobS0+bGFzdCAr IDEpICogQU1ER1BVX0dQVV9QQUdFX1NJWkUpIHsKPj4+ICsgICAgICAgICAgICAgICAgRFJNX0VS Uk9SKCJJQiB2YV9zdGFydCtpYl9ieXRlcyBpcyBpbnZhbGlkXG4iKTsKPj4+ICsgICAgICAgICAg ICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiArICAgICAgICAgICAgfQo+Pj4gKwo+Pj4gKyAgICAg ICAgICAgIC8qIHRoZSBJQiBzaG91bGQgYmUgcmVzZXJ2ZWQgYXQgdGhpcyBwb2ludCAqLwo+Pj4g KyAgICAgICAgICAgIHIgPSBhbWRncHVfYm9fa21hcChhb2JqLCAodm9pZCAqKikma3B0cik7Cj4+ PiArICAgICAgICAgICAgaWYgKHIpIHsKPj4+ICsgICAgICAgICAgICAgICAgcmV0dXJuIHI7Cj4+ PiArICAgICAgICAgICAgfQo+Pj4gKwo+Pj4gKyAgICAgICAgICAgIG9mZnNldCA9IG0tPnN0YXJ0 ICogQU1ER1BVX0dQVV9QQUdFX1NJWkU7Cj4+PiArICAgICAgICAgICAga3B0ciArPSBjaHVua19p Yi0+dmFfc3RhcnQgLSBvZmZzZXQ7Cj4+PiArCj4+PiArICAgICAgICAgICAgciA9ICBhbWRncHVf aWJfZ2V0KGFkZXYsIHZtLCBjaHVua19pYi0+aWJfYnl0ZXMsIGliKTsKPj4+ICsgICAgICAgICAg ICBpZiAocikgewo+Pj4gKyAgICAgICAgICAgICAgICBEUk1fRVJST1IoIkZhaWxlZCB0byBnZXQg aWIgIVxuIik7Cj4+PiArICAgICAgICAgICAgICAgIHJldHVybiByOwo+Pj4gKyAgICAgICAgICAg IH0KPj4+ICsKPj4+ICsgICAgICAgICAgICBtZW1jcHkoaWItPnB0ciwga3B0ciwgY2h1bmtfaWIt PmliX2J5dGVzKTsKPj4+ICsgICAgICAgICAgICBhbWRncHVfYm9fa3VubWFwKGFvYmopOwo+Pj4g KyAgICAgICAgfSBlbHNlIHsKPj4+ICsgICAgICAgICAgICByID0gIGFtZGdwdV9pYl9nZXQoYWRl diwgdm0sIDAsIGliKTsKPj4+ICsgICAgICAgICAgICBpZiAocikgewo+Pj4gKyAgICAgICAgICAg ICAgICBEUk1fRVJST1IoIkZhaWxlZCB0byBnZXQgaWIgIVxuIik7Cj4+PiArICAgICAgICAgICAg ICAgIHJldHVybiByOwo+Pj4gKyAgICAgICAgICAgIH0KPj4+ICsKPj4+ICsgICAgICAgIH0KPj4+ ICsKPj4+ICsgICAgICAgIGliLT5ncHVfYWRkciA9IGNodW5rX2liLT52YV9zdGFydDsKPj4+ICsg ICAgICAgIGliLT5sZW5ndGhfZHcgPSBjaHVua19pYi0+aWJfYnl0ZXMgLyA0Owo+Pj4gKyAgICAg ICAgaWItPmZsYWdzID0gY2h1bmtfaWItPmZsYWdzOwo+Pgo+PiBQbGVhc2Uga2VlcCB0aGUgY2Fs bHMgdG8gYW1kZ3B1X2liX2dldCgpIGluc2lkZSBhbWRncHVfY3NfaWJfZmlsbCgpLgo+Pgo+Pj4g KyAgICAgICAgaisrOwo+Pj4gKwo+Pj4gKyAgICB9Cj4+PiAgICAgICAgIC8qIE9ubHkgZm9yIFVW RC9WQ0UgVk0gZW11bGF0aW9uICovCj4+PiAgICAgICBpZiAocmluZy0+ZnVuY3MtPnBhcnNlX2Nz KSB7Cj4+PiBAQCAtODY4LDE5ICs5MjksMTUgQEAgc3RhdGljIGludCBhbWRncHVfY3NfaWJfdm1f Y2h1bmsoc3RydWN0IAo+Pj4gYW1kZ3B1X2RldmljZSAqYWRldiwKPj4+ICAgc3RhdGljIGludCBh bWRncHVfY3NfaWJfZmlsbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4+ICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyKQo+Pj4gICB7Cj4+PiAt ICAgIHN0cnVjdCBhbWRncHVfZnByaXYgKmZwcml2ID0gcGFyc2VyLT5maWxwLT5kcml2ZXJfcHJp djsKPj4+IC0gICAgc3RydWN0IGFtZGdwdV92bSAqdm0gPSAmZnByaXYtPnZtOwo+Pj4gICAgICAg aW50IGksIGo7Cj4+PiAgICAgICBpbnQgciwgY2VfcHJlZW1wdCA9IDAsIGRlX3ByZWVtcHQgPSAw Owo+Pj4gICAgICAgICBmb3IgKGkgPSAwLCBqID0gMDsgaSA8IHBhcnNlci0+bmNodW5rcyAmJiBq IDwgCj4+PiBwYXJzZXItPmpvYi0+bnVtX2liczsgaSsrKSB7Cj4+PiAgICAgICAgICAgc3RydWN0 IGFtZGdwdV9jc19jaHVuayAqY2h1bms7Cj4+PiAtICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2liICpp YjsKPj4+ICAgICAgICAgICBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19pYiAqY2h1bmtfaWI7 Cj4+PiAgICAgICAgICAgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nOwo+Pj4gICAgICAgICAgICAg Y2h1bmsgPSAmcGFyc2VyLT5jaHVua3NbaV07Cj4+PiAtICAgICAgICBpYiA9ICZwYXJzZXItPmpv Yi0+aWJzW2pdOwo+Pj4gICAgICAgICAgIGNodW5rX2liID0gKHN0cnVjdCBkcm1fYW1kZ3B1X2Nz X2NodW5rX2liICopY2h1bmstPmtkYXRhOwo+Pj4gICAgICAgICAgICAgaWYgKGNodW5rLT5jaHVu a19pZCAhPSBBTURHUFVfQ0hVTktfSURfSUIpCj4+PiBAQCAtOTE3LDU0ICs5NzQsNiBAQCBzdGF0 aWMgaW50IGFtZGdwdV9jc19pYl9maWxsKHN0cnVjdCAKPj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYs Cj4+PiAgICAgICAgICAgICBwYXJzZXItPmpvYi0+cmluZyA9IHJpbmc7Cj4+PiAgIC0gICAgICAg IGlmIChyaW5nLT5mdW5jcy0+cGFyc2VfY3MpIHsKPj4+IC0gICAgICAgICAgICBzdHJ1Y3QgYW1k Z3B1X2JvX3ZhX21hcHBpbmcgKm07Cj4+PiAtICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9ibyAq YW9iaiA9IE5VTEw7Cj4+PiAtICAgICAgICAgICAgdWludDY0X3Qgb2Zmc2V0Owo+Pj4gLSAgICAg ICAgICAgIHVpbnQ4X3QgKmtwdHI7Cj4+PiAtCj4+PiAtICAgICAgICAgICAgciA9IGFtZGdwdV9j c19maW5kX21hcHBpbmcocGFyc2VyLCBjaHVua19pYi0+dmFfc3RhcnQsCj4+PiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmFvYmosICZtKTsKPj4+IC0gICAgICAgICAgICBpZiAocikgewo+ Pj4gLSAgICAgICAgICAgICAgICBEUk1fRVJST1IoIklCIHZhX3N0YXJ0IGlzIGludmFsaWRcbiIp Owo+Pj4gLSAgICAgICAgICAgICAgICByZXR1cm4gcjsKPj4+IC0gICAgICAgICAgICB9Cj4+PiAt Cj4+PiAtICAgICAgICAgICAgaWYgKChjaHVua19pYi0+dmFfc3RhcnQgKyBjaHVua19pYi0+aWJf Ynl0ZXMpID4KPj4+IC0gICAgICAgICAgICAgICAgKG0tPmxhc3QgKyAxKSAqIEFNREdQVV9HUFVf UEFHRV9TSVpFKSB7Cj4+PiAtICAgICAgICAgICAgICAgIERSTV9FUlJPUigiSUIgdmFfc3RhcnQr aWJfYnl0ZXMgaXMgaW52YWxpZFxuIik7Cj4+PiAtICAgICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOwo+Pj4gLSAgICAgICAgICAgIH0KPj4+IC0KPj4+IC0gICAgICAgICAgICAvKiB0aGUgSUIg c2hvdWxkIGJlIHJlc2VydmVkIGF0IHRoaXMgcG9pbnQgKi8KPj4+IC0gICAgICAgICAgICByID0g YW1kZ3B1X2JvX2ttYXAoYW9iaiwgKHZvaWQgKiopJmtwdHIpOwo+Pj4gLSAgICAgICAgICAgIGlm IChyKSB7Cj4+PiAtICAgICAgICAgICAgICAgIHJldHVybiByOwo+Pj4gLSAgICAgICAgICAgIH0K Pj4+IC0KPj4+IC0gICAgICAgICAgICBvZmZzZXQgPSBtLT5zdGFydCAqIEFNREdQVV9HUFVfUEFH RV9TSVpFOwo+Pj4gLSAgICAgICAgICAgIGtwdHIgKz0gY2h1bmtfaWItPnZhX3N0YXJ0IC0gb2Zm c2V0Owo+Pj4gLQo+Pj4gLSAgICAgICAgICAgIHIgPSAgYW1kZ3B1X2liX2dldChhZGV2LCB2bSwg Y2h1bmtfaWItPmliX2J5dGVzLCBpYik7Cj4+PiAtICAgICAgICAgICAgaWYgKHIpIHsKPj4+IC0g ICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGliICFcbiIpOwo+Pj4gLSAg ICAgICAgICAgICAgICByZXR1cm4gcjsKPj4+IC0gICAgICAgICAgICB9Cj4+PiAtCj4+PiAtICAg ICAgICAgICAgbWVtY3B5KGliLT5wdHIsIGtwdHIsIGNodW5rX2liLT5pYl9ieXRlcyk7Cj4+PiAt ICAgICAgICAgICAgYW1kZ3B1X2JvX2t1bm1hcChhb2JqKTsKPj4+IC0gICAgICAgIH0gZWxzZSB7 Cj4+PiAtICAgICAgICAgICAgciA9ICBhbWRncHVfaWJfZ2V0KGFkZXYsIHZtLCAwLCBpYik7Cj4+ PiAtICAgICAgICAgICAgaWYgKHIpIHsKPj4+IC0gICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJG YWlsZWQgdG8gZ2V0IGliICFcbiIpOwo+Pj4gLSAgICAgICAgICAgICAgICByZXR1cm4gcjsKPj4+ IC0gICAgICAgICAgICB9Cj4+PiAtCj4+PiAtICAgICAgICB9Cj4+PiAtCj4+PiAtICAgICAgICBp Yi0+Z3B1X2FkZHIgPSBjaHVua19pYi0+dmFfc3RhcnQ7Cj4+PiAtICAgICAgICBpYi0+bGVuZ3Ro X2R3ID0gY2h1bmtfaWItPmliX2J5dGVzIC8gNDsKPj4+IC0gICAgICAgIGliLT5mbGFncyA9IGNo dW5rX2liLT5mbGFnczsKPj4+ICAgICAgICAgICBqKys7Cj4+PiAgICAgICB9Cj4+PiAgIEBAIC0x MTYwLDE0ICsxMTY5LDI2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdChzdHJ1Y3QgCj4+ PiBhbWRncHVfY3NfcGFyc2VyICpwLAo+Pj4gICAgICAgICBhbWRncHVfY3NfcG9zdF9kZXBlbmRl bmNpZXMocCk7Cj4+PiAgICsKPj4+ICsgICAgLyogaG9vayBzY2hlZCBmZW5jZSB0byBhbGwgQk9z JyByZXNlcnZhdGlvbiBpbiB2YWxpZGF0ZWQgbGlzdAo+Pj4gKyAgICAgKiBhbmQgdW5yZXNlcnZl IHRoZW0uCj4+PiArICAgICAqCj4+PiArICAgICAqIHdlIHVucmVzZXJ2ZSBhdCBoZXJlIGlzIGJl Y2F1c2Ugb3RoZXJ3aXNlCj4+PiArICAgICAqIHRoZXJlJ2xsIGJlIGRlYWRsb2NrIGJldHdlZW4g Cj4+PiBjdHhfYWRkX2ZlbmNlL3NjaGVkX2VudGl0eV9wdXNoX2pvYgo+Pj4gKyAgICAgKiBhbmQg Z3B1X3Jlc2V0IHJvdXRpbmUncyByZWNvdmVyX2JvX2Zyb21fc2hhZG93IG9uIFBEL1BURXMnIAo+ Pj4gdHRtIGJvIGxvY2sKPj4+ICsgICAgICovCj4+PiArICAgIHR0bV9ldV9mZW5jZV9idWZmZXJf b2JqZWN0cygmcC0+dGlja2V0LCAmcC0+dmFsaWRhdGVkLCBwLT5mZW5jZSk7Cj4+PiArCj4+PiAr Cj4+PiAgICAgICBjcy0+b3V0LmhhbmRsZSA9IGFtZGdwdV9jdHhfYWRkX2ZlbmNlKHAtPmN0eCwg cmluZywgcC0+ZmVuY2UpOwo+Pj4gKwo+Pj4gKwo+Pgo+PiBQbGVhc2UgZHJvcCB0aGF0IGNoYW5n ZS4gSXQgaXNuJ3QgbmVjZXNzYXJ5IGFueSBtb3JlIGFmdGVyIHlvdSBtb3ZlZCAKPj4gdGhlIHdh aXRpbmcgb3V0c2lkZSBvZiB0aGUgQk8gbG9jay4KPj4KPj4gRGl0byBmb3IgbW9zdCBvZiB0aGUg b3RoZXIgY2hhbmdlcyBhcyB3ZWxsLgo+Pgo+PiBSZWdhcmRzLAo+PiBDaHJpc3RpYW4uCj4+Cj4+ PiAgICAgICBqb2ItPnVmX3NlcXVlbmNlID0gY3MtPm91dC5oYW5kbGU7Cj4+PiAgICAgICBhbWRn cHVfam9iX2ZyZWVfcmVzb3VyY2VzKGpvYik7Cj4+PiAgICAgICAgIHRyYWNlX2FtZGdwdV9jc19p b2N0bChqb2IpOwo+Pj4gICAgICAgYW1kX3NjaGVkX2VudGl0eV9wdXNoX2pvYigmam9iLT5iYXNl KTsKPj4+ICAgLSAgICB0dG1fZXVfZmVuY2VfYnVmZmVyX29iamVjdHMoJnAtPnRpY2tldCwgJnAt PnZhbGlkYXRlZCwgCj4+PiBwLT5mZW5jZSk7Cj4+PiAgICAgICBhbWRncHVfbW5fdW5sb2NrKHAt Pm1uKTsKPj4+ICAgICAgICAgcmV0dXJuIDA7Cj4+PiBAQCAtMTE4OSw2ICsxMjEwLDcgQEAgaW50 IGFtZGdwdV9jc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCAKPj4+IHZvaWQgKmRhdGEs IHN0cnVjdCBkcm1fZmlsZSAqZmlscCkKPj4+ICAgICAgICAgcGFyc2VyLmFkZXYgPSBhZGV2Owo+ Pj4gICAgICAgcGFyc2VyLmZpbHAgPSBmaWxwOwo+Pj4gKyAgICBmcHJpdiA9IGZpbHAtPmRyaXZl cl9wcml2Owo+Pj4gICAgICAgICByID0gYW1kZ3B1X2NzX3BhcnNlcl9pbml0KCZwYXJzZXIsIGRh dGEpOwo+Pj4gICAgICAgaWYgKHIpIHsKPj4+IEBAIC0xMTk2LDYgKzEyMTgsMTAgQEAgaW50IGFt ZGdwdV9jc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCAKPj4+IHZvaWQgKmRhdGEsIHN0 cnVjdCBkcm1fZmlsZSAqZmlscCkKPj4+ICAgICAgICAgICBnb3RvIG91dDsKPj4+ICAgICAgIH0K Pj4+ICAgKyAgICByID0gYW1kZ3B1X2NzX2liX2ZpbGwoYWRldiwgJnBhcnNlcik7Cj4+PiArICAg IGlmIChyKQo+Pj4gKyAgICAgICAgZ290byBvdXQ7Cj4+PiArCj4+PiAgICAgICByID0gYW1kZ3B1 X2NzX3BhcnNlcl9ib3MoJnBhcnNlciwgZGF0YSk7Cj4+PiAgICAgICBpZiAocikgewo+Pj4gICAg ICAgICAgIGlmIChyID09IC1FTk9NRU0pCj4+PiBAQCAtMTIwNiw5ICsxMjMyLDYgQEAgaW50IGFt ZGdwdV9jc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCAKPj4+IHZvaWQgKmRhdGEsIHN0 cnVjdCBkcm1fZmlsZSAqZmlscCkKPj4+ICAgICAgIH0KPj4+ICAgICAgICAgcmVzZXJ2ZWRfYnVm ZmVycyA9IHRydWU7Cj4+PiAtICAgIHIgPSBhbWRncHVfY3NfaWJfZmlsbChhZGV2LCAmcGFyc2Vy KTsKPj4+IC0gICAgaWYgKHIpCj4+PiAtICAgICAgICBnb3RvIG91dDsKPj4+ICAgICAgICAgciA9 IGFtZGdwdV9jc19kZXBlbmRlbmNpZXMoYWRldiwgJnBhcnNlcik7Cj4+PiAgICAgICBpZiAocikg ewo+Pj4gQEAgLTEyMjYsNyArMTI0OSwxMCBAQCBpbnQgYW1kZ3B1X2NzX2lvY3RsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIAo+Pj4gdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxwKQo+ Pj4gICAgICAgciA9IGFtZGdwdV9jc19zdWJtaXQoJnBhcnNlciwgY3MpOwo+Pj4gICAgIG91dDoK Pj4+IC0gICAgYW1kZ3B1X2NzX3BhcnNlcl9maW5pKCZwYXJzZXIsIHIsIHJlc2VydmVkX2J1ZmZl cnMpOwo+Pj4gKyAgICBpZiAociAmJiByZXNlcnZlZF9idWZmZXJzKQo+Pj4gKyAgICAgICAgdHRt X2V1X2JhY2tvZmZfcmVzZXJ2YXRpb24oJnBhcnNlci50aWNrZXQsICZwYXJzZXIudmFsaWRhdGVk KTsKPj4+ICsKPj4+ICsgICAgYW1kZ3B1X2NzX3BhcnNlcl9maW5pKCZwYXJzZXIpOwo+Pj4gICAg ICAgcmV0dXJuIHI7Cj4+PiAgIH0KPj4+ICAgZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9jdHguYyAKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2N0eC5jCj4+PiBpbmRleCBhMTFlNDQzLi5jMDczYTY4IDEwMDY0NAo+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2N0eC5jCj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmMKPj4+IEBAIC0zOSw2ICszOSw4IEBAIHN0 YXRpYyBpbnQgYW1kZ3B1X2N0eF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlIAo+Pj4gKmFkZXYs IHN0cnVjdCBhbWRncHVfY3R4ICpjdHgpCj4+PiAgICAgICBpZiAoIWN0eC0+ZmVuY2VzKQo+Pj4g ICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+Pj4gICArICAgIG11dGV4X2luaXQoJmN0eC0+bG9j ayk7Cj4+PiArCj4+PiAgICAgICBmb3IgKGkgPSAwOyBpIDwgQU1ER1BVX01BWF9SSU5HUzsgKytp KSB7Cj4+PiAgICAgICAgICAgY3R4LT5yaW5nc1tpXS5zZXF1ZW5jZSA9IDE7Cj4+PiAgICAgICAg ICAgY3R4LT5yaW5nc1tpXS5mZW5jZXMgPSAmY3R4LT5mZW5jZXNbYW1kZ3B1X3NjaGVkX2pvYnMg KiBpXTsKPj4+IEBAIC05Niw2ICs5OCw4IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9jdHhfZmluaShz dHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4KQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+ cmluZ3NbaV0uZW50aXR5KTsKPj4+ICAgICAgICAgYW1kZ3B1X3F1ZXVlX21ncl9maW5pKGFkZXYs ICZjdHgtPnF1ZXVlX21ncik7Cj4+PiArCj4+PiArICAgIG11dGV4X2Rlc3Ryb3koJmN0eC0+bG9j ayk7Cj4+PiAgIH0KPj4+ICAgICBzdGF0aWMgaW50IGFtZGdwdV9jdHhfYWxsb2Moc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCj4+Cj4+Cj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vYW1kLWdmeAo=