From mboxrd@z Thu Jan 1 00:00:00 1970 From: andrey Subject: Re: [PATCH 1/2] drm/amdgpu:resolv deadlock between reset and cs_ioctl v4. Date: Mon, 9 Oct 2017 23:31:26 -0400 Message-ID: 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: <9fc20357-db3e-3823-3073-c70ead162f4e-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: =?UTF-8?Q?Christian_K=c3=b6nig?= , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Monk Liu CgpPbiAyMDE3LTEwLTA5IDA0OjM0IEFNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+IEFtIDA2 LjEwLjIwMTcgdW0gMjA6MjAgc2NocmllYiBBbmRyZXkgR3JvZHpvdnNreToKPj4gRnJvbTogTW9u ayBMaXUgPE1vbmsuTGl1QGFtZC5jb20+Cj4+Cj4+IG5lZWQgdG8gdW5yZXNlcnZlIHR0bSBibyBi ZWZvcmUgImNzX2FkZF9mZW5jZSIgYW5kICJlbnRpdHlfcHVzaF9qb2IiCj4+IG90aGVyd2lzZSB0 aGVyZSB3aWxsIGJlIGRlYWRsb2NrIGJldHdlZW4gInJlY292ZXJfdnJhbV9mcm9tX3NoYWRvdyIK Pj4gYW5kIHByZXZpb3VzIHR3byByb3V0aW5lcyBvbiB0aGUgdHRtIGJvJ3MgcmVzdiBsb2NrLgo+ Pgo+PiB2MjoKPj4gQWRkIHBlciBjdHggbXV0ZXguCj4+Cj4+IHYzOgo+PiBSZWxsb2NhdGUgbXV0 ZXggYXF1aXNpdGlvbiBpbnRvIGFtZGdwdV9jc19wYXJzZXJfaW5pdCBhbmQgbXVleCByZWxlYXNl Cj4+IGludG8gYW1kZ3B1X2NzX3BhcnNlcl9maW5pIHRvIGF2b2lkIG5lc3RlZCBsb2NraW5nIGxv Y2t1cC4KPj4gQWRkIHJvbGxiYWNrIGNvZGUgZm9yIGFtZGdwdV9jdHhfYWRkX2ZlbmNlIGluIGNh c2Ugb2YgZXJyb3Igb3Igc2lnbmFsCj4+IGludGVycnVwdGlvbi4KPj4KPj4gdjQ6Cj4+IFJlZmFj dG9yIGFtZGdwdV9jc19pYl92bV9jaHVuayBhbmQgYW1kZ3B1X2NzX2liX2ZpbGwgdG8gZW5hYmxl Cj4+IG9sZCBmZW5jZSB3YWl0aW5nIGJlZm9yZSByZXNlcnZhdGlvbiBsb2NrIGlzIGFxdWlyZWQu Cj4+Cj4+IENoYW5nZS1JZDogSWEyMDliZWFiNTAzNmJmYzJjMzhjYmYxODMyNGZhM2VmZDRiYWIx Y2YKPj4gU2lnbmVkLW9mZi1ieTogTW9uayBMaXUgPE1vbmsuTGl1QGFtZC5jb20+Cj4+IFNpZ25l ZC1vZmYtYnk6IEFuZHJleSBHcm9kem92c2t5IDxhbmRyZXkuZ3JvZHpvdnNreUBhbWQuY29tPgo+ PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICAgfCAgIDEg Kwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jICB8IDE2NCAKPj4g KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfY3R4LmMgfCAgIDQgKwo+PiAgIDMgZmlsZXMgY2hhbmdlZCwgMTAwIGlu c2VydGlvbnMoKyksIDY5IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggCj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1LmgKPj4gaW5kZXggNTNkOGRmMy4uYmFhMjk1MyAxMDA2NDQKPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4gQEAgLTcyNCw2ICs3MjQsNyBAQCBzdHJ1Y3QgYW1kZ3B1 X2N0eCB7Cj4+ICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgICAgKipmZW5jZXM7Cj4+ICAgICAgIHN0 cnVjdCBhbWRncHVfY3R4X3JpbmcgICAgcmluZ3NbQU1ER1BVX01BWF9SSU5HU107Cj4+ICAgICAg IGJvb2wgcHJlYW1ibGVfcHJlc2VudGVkOwo+PiArICAgIHN0cnVjdCBtdXRleCAgICAgICAgbG9j azsKPj4gICB9Owo+PiAgICAgc3RydWN0IGFtZGdwdV9jdHhfbWdyIHsKPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIAo+PiBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+IGluZGV4IDlmMTIwMmEuLjBmYTFiYzcgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+IEBAIC04OSw2ICs4 OSw5IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3BhcnNlcl9pbml0KHN0cnVjdCAKPj4gYW1kZ3B1 X2NzX3BhcnNlciAqcCwgdm9pZCAqZGF0YSkKPj4gICAgICAgICAgIGdvdG8gZnJlZV9jaHVuazsK Pj4gICAgICAgfQo+PiAgICsKPj4gKyAgICBtdXRleF9sb2NrKCZwLT5jdHgtPmxvY2spOwo+PiAr Cj4+ICAgICAgIC8qIGdldCBjaHVua3MgKi8KPj4gICAgICAgY2h1bmtfYXJyYXlfdXNlciA9IHU2 NF90b191c2VyX3B0cihjcy0+aW4uY2h1bmtzKTsKPj4gICAgICAgaWYgKGNvcHlfZnJvbV91c2Vy KGNodW5rX2FycmF5LCBjaHVua19hcnJheV91c2VyLAo+PiBAQCAtNzE1LDI4ICs3MTgsMjEgQEAg c3RhdGljIGludCBhbWRncHVfY3Nfc3luY19yaW5ncyhzdHJ1Y3QgCj4+IGFtZGdwdV9jc19wYXJz ZXIgKnApCj4+ICAgLyoqCj4+ICAgICogY3NfcGFyc2VyX2ZpbmkoKSAtIGNsZWFuIHBhcnNlciBz dGF0ZXMKPj4gICAgKiBAcGFyc2VyOiAgICBwYXJzZXIgc3RydWN0dXJlIGhvbGRpbmcgcGFyc2lu ZyBjb250ZXh0Lgo+PiAtICogQGVycm9yOiAgICBlcnJvciBudW1iZXIKPj4gLSAqCj4+IC0gKiBJ ZiBlcnJvciBpcyBzZXQgdGhhbiB1bnZhbGlkYXRlIGJ1ZmZlciwgb3RoZXJ3aXNlIGp1c3QgZnJl ZSBtZW1vcnkKPj4gLSAqIHVzZWQgYnkgcGFyc2luZyBjb250ZXh0Lgo+PiAgICAqKi8KPj4gLXN0 YXRpYyB2b2lkIGFtZGdwdV9jc19wYXJzZXJfZmluaShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAq cGFyc2VyLCAKPj4gaW50IGVycm9yLAo+PiAtICAgICAgICAgICAgICAgICAgYm9vbCBiYWNrb2Zm KQo+PiArc3RhdGljIHZvaWQgYW1kZ3B1X2NzX3BhcnNlcl9maW5pKHN0cnVjdCBhbWRncHVfY3Nf cGFyc2VyICpwYXJzZXIpCj4KPiBZb3UgY2FuIG5vdyBkcm9wIHRoaXMgY2hhbmdlIGFuZCBrZWVw IHRoZSBsb2dpYyBhcyBpdCBpcyBzaW5jZSB3ZSAKPiBtb3ZlZCB0aGUgd2FpdCBiZWZvcmUgdGFr aW5nIHRoZSByZXNlcnZhdGlvbiBsb2Nrcy4KCkJ5ICJ0aGlzIGNoYW5nZSIgaGVyZSBhbmQgaW4g dGhlIGNvbW1lbnQgbGF0ZXIgYmVsbG93IEkgZ3Vlc3MgeW91IG1lYW4gCnRoZSBvcmlnaW5hbCBj aGFuZ2UgYnkgTW9uayBhYm91dCBtb3ZpbmcgdHRtX2V1X2ZlbmNlX2J1ZmZlcl9vYmplY3RzIHRv IApiZWZvcmUgYW1kX3NjaGVkX2VudGl0eV9wdXNoX2pvYiA/IEluIHRoYXQgY2FzZSBJIGFtIG5v dCBzdXJlIGhvdyB3ZSBjYW4gCmRyb3AgaXQgc2luY2UgdGhlIHdhaXQgd2UgbW92ZWQgaW4gdGhl IHNlY29uZCBwYXRjaCB3YXMgdGhlIG9uZSBmb3IgdGhlIApvbGQgZmVuY2Ugd2hpbGUgTW9uaydz IGNoYW5nZSB3YXMgYWJvdXQgdGhlIHdhaXQgaGFwcGVuaW5nIHdoZW4gdGhlIAprZmlmbyBpcyBm dWxsLiBJc24ndCByZXZlcnRpbmcgaGlzIGNoYW5nZSB3aWxsIGp1c3QgcHV0IHVzIGFnYWluIGlu IHRoZSAKb3JpZ2luYWwgZGVhZGxvY2sgb2YgYmxvY2tpbmcgb24gZnVsbCBrZmlmbyB3aGlsZSBo b2xkaW5nIHRoZSAKcmVzZXJ2YXRpb24gbG9jayBkdXJpbmcgZ3B1IHJlc2V0IHdpdGggVlJBTSBy ZWNvdmVyeSA/CgpUaGFua3MsCkFuZHJleQoKPgo+PiAgIHsKPj4gICAgICAgdW5zaWduZWQgaTsK Pj4gICAtICAgIGlmIChlcnJvciAmJiBiYWNrb2ZmKQo+PiAtICAgICAgICB0dG1fZXVfYmFja29m Zl9yZXNlcnZhdGlvbigmcGFyc2VyLT50aWNrZXQsCj4+IC0gICAgICAgICAgICAgICAgICAgICAg ICZwYXJzZXItPnZhbGlkYXRlZCk7Cj4+IC0KPj4gICAgICAgZm9yIChpID0gMDsgaSA8IHBhcnNl ci0+bnVtX3Bvc3RfZGVwX3N5bmNvYmpzOyBpKyspCj4+ICAgICAgICAgICBkcm1fc3luY29ial9w dXQocGFyc2VyLT5wb3N0X2RlcF9zeW5jb2Jqc1tpXSk7Cj4+ICAgICAgIGtmcmVlKHBhcnNlci0+ cG9zdF9kZXBfc3luY29ianMpOwo+PiAgICAgICAgIGRtYV9mZW5jZV9wdXQocGFyc2VyLT5mZW5j ZSk7Cj4+ICAgLSAgICBpZiAocGFyc2VyLT5jdHgpCj4+ICsgICAgaWYgKHBhcnNlci0+Y3R4KSB7 Cj4+ICsgICAgICAgIG11dGV4X3VubG9jaygmcGFyc2VyLT5jdHgtPmxvY2spOwo+PiAgICAgICAg ICAgYW1kZ3B1X2N0eF9wdXQocGFyc2VyLT5jdHgpOwo+PiArICAgIH0KPj4gICAgICAgaWYgKHBh cnNlci0+Ym9fbGlzdCkKPj4gICAgICAgICAgIGFtZGdwdV9ib19saXN0X3B1dChwYXJzZXItPmJv X2xpc3QpOwo+PiAgIEBAIC04NDMsNyArODM5LDcyIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX2li X3ZtX2NodW5rKHN0cnVjdCAKPj4gYW1kZ3B1X2RldmljZSAqYWRldiwKPj4gICAgICAgc3RydWN0 IGFtZGdwdV9mcHJpdiAqZnByaXYgPSBwLT5maWxwLT5kcml2ZXJfcHJpdjsKPj4gICAgICAgc3Ry dWN0IGFtZGdwdV92bSAqdm0gPSAmZnByaXYtPnZtOwo+PiAgICAgICBzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmcgPSBwLT5qb2ItPnJpbmc7Cj4+IC0gICAgaW50IGksIHI7Cj4+ICsgICAgaW50IGks IGosIHI7Cj4+ICsKPj4gKyAgICBmb3IgKGkgPSAwLCBqID0gMDsgaSA8IHAtPm5jaHVua3MgJiYg aiA8IHAtPmpvYi0+bnVtX2liczsgaSsrKSB7Cj4+ICsKPj4gKyAgICAgICAgc3RydWN0IGFtZGdw dV9jc19jaHVuayAqY2h1bms7Cj4+ICsgICAgICAgIHN0cnVjdCBhbWRncHVfaWIgKmliOwo+PiAr ICAgICAgICBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19pYiAqY2h1bmtfaWI7Cj4+ICsKPj4g KyAgICAgICAgY2h1bmsgPSAmcC0+Y2h1bmtzW2ldOwo+PiArICAgICAgICBpYiA9ICZwLT5qb2It Pmlic1tqXTsKPj4gKyAgICAgICAgY2h1bmtfaWIgPSAoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1 bmtfaWIgKiljaHVuay0+a2RhdGE7Cj4+ICsKPj4gKyAgICAgICAgaWYgKGNodW5rLT5jaHVua19p ZCAhPSBBTURHUFVfQ0hVTktfSURfSUIpCj4+ICsgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl Owo+PiArCj4+ICsgICAgICAgIGlmIChwLT5qb2ItPnJpbmctPmZ1bmNzLT5wYXJzZV9jcykgewo+ PiArICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9ib192YV9tYXBwaW5nICptOwo+PiArICAgICAg ICAgICAgc3RydWN0IGFtZGdwdV9ibyAqYW9iaiA9IE5VTEw7Cj4+ICsgICAgICAgICAgICB1aW50 NjRfdCBvZmZzZXQ7Cj4+ICsgICAgICAgICAgICB1aW50OF90ICprcHRyOwo+PiArCj4+ICsgICAg ICAgICAgICByID0gYW1kZ3B1X2NzX2ZpbmRfbWFwcGluZyhwLCBjaHVua19pYi0+dmFfc3RhcnQs Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAmYW9iaiwgJm0pOwo+PiArICAgICAgICAg ICAgaWYgKHIpIHsKPj4gKyAgICAgICAgICAgICAgICBEUk1fRVJST1IoIklCIHZhX3N0YXJ0IGlz IGludmFsaWRcbiIpOwo+PiArICAgICAgICAgICAgICAgIHJldHVybiByOwo+PiArICAgICAgICAg ICAgfQo+PiArCj4+ICsgICAgICAgICAgICBpZiAoKGNodW5rX2liLT52YV9zdGFydCArIGNodW5r X2liLT5pYl9ieXRlcykgPgo+PiArICAgICAgICAgICAgICAgIChtLT5sYXN0ICsgMSkgKiBBTURH UFVfR1BVX1BBR0VfU0laRSkgewo+PiArICAgICAgICAgICAgICAgIERSTV9FUlJPUigiSUIgdmFf c3RhcnQraWJfYnl0ZXMgaXMgaW52YWxpZFxuIik7Cj4+ICsgICAgICAgICAgICAgICAgcmV0dXJu IC1FSU5WQUw7Cj4+ICsgICAgICAgICAgICB9Cj4+ICsKPj4gKyAgICAgICAgICAgIC8qIHRoZSBJ QiBzaG91bGQgYmUgcmVzZXJ2ZWQgYXQgdGhpcyBwb2ludCAqLwo+PiArICAgICAgICAgICAgciA9 IGFtZGdwdV9ib19rbWFwKGFvYmosICh2b2lkICoqKSZrcHRyKTsKPj4gKyAgICAgICAgICAgIGlm IChyKSB7Cj4+ICsgICAgICAgICAgICAgICAgcmV0dXJuIHI7Cj4+ICsgICAgICAgICAgICB9Cj4+ ICsKPj4gKyAgICAgICAgICAgIG9mZnNldCA9IG0tPnN0YXJ0ICogQU1ER1BVX0dQVV9QQUdFX1NJ WkU7Cj4+ICsgICAgICAgICAgICBrcHRyICs9IGNodW5rX2liLT52YV9zdGFydCAtIG9mZnNldDsK Pj4gKwo+PiArICAgICAgICAgICAgciA9ICBhbWRncHVfaWJfZ2V0KGFkZXYsIHZtLCBjaHVua19p Yi0+aWJfYnl0ZXMsIGliKTsKPj4gKyAgICAgICAgICAgIGlmIChyKSB7Cj4+ICsgICAgICAgICAg ICAgICAgRFJNX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGliICFcbiIpOwo+PiArICAgICAgICAgICAg ICAgIHJldHVybiByOwo+PiArICAgICAgICAgICAgfQo+PiArCj4+ICsgICAgICAgICAgICBtZW1j cHkoaWItPnB0ciwga3B0ciwgY2h1bmtfaWItPmliX2J5dGVzKTsKPj4gKyAgICAgICAgICAgIGFt ZGdwdV9ib19rdW5tYXAoYW9iaik7Cj4+ICsgICAgICAgIH0gZWxzZSB7Cj4+ICsgICAgICAgICAg ICByID0gIGFtZGdwdV9pYl9nZXQoYWRldiwgdm0sIDAsIGliKTsKPj4gKyAgICAgICAgICAgIGlm IChyKSB7Cj4+ICsgICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGliICFc biIpOwo+PiArICAgICAgICAgICAgICAgIHJldHVybiByOwo+PiArICAgICAgICAgICAgfQo+PiAr Cj4+ICsgICAgICAgIH0KPj4gKwo+PiArICAgICAgICBpYi0+Z3B1X2FkZHIgPSBjaHVua19pYi0+ dmFfc3RhcnQ7Cj4+ICsgICAgICAgIGliLT5sZW5ndGhfZHcgPSBjaHVua19pYi0+aWJfYnl0ZXMg LyA0Owo+PiArICAgICAgICBpYi0+ZmxhZ3MgPSBjaHVua19pYi0+ZmxhZ3M7Cj4KPiBQbGVhc2Ug a2VlcCB0aGUgY2FsbHMgdG8gYW1kZ3B1X2liX2dldCgpIGluc2lkZSBhbWRncHVfY3NfaWJfZmls bCgpLgo+Cj4+ICsgICAgICAgIGorKzsKPj4gKwo+PiArICAgIH0KPj4gICAgICAgICAvKiBPbmx5 IGZvciBVVkQvVkNFIFZNIGVtdWxhdGlvbiAqLwo+PiAgICAgICBpZiAocmluZy0+ZnVuY3MtPnBh cnNlX2NzKSB7Cj4+IEBAIC04NjgsMTkgKzkyOSwxNSBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19p Yl92bV9jaHVuayhzdHJ1Y3QgCj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+ICAgc3RhdGljIGlu dCBhbWRncHVfY3NfaWJfZmlsbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4gICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwYXJzZXIpCj4+ICAgewo+PiAt ICAgIHN0cnVjdCBhbWRncHVfZnByaXYgKmZwcml2ID0gcGFyc2VyLT5maWxwLT5kcml2ZXJfcHJp djsKPj4gLSAgICBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSA9ICZmcHJpdi0+dm07Cj4+ICAgICAgIGlu dCBpLCBqOwo+PiAgICAgICBpbnQgciwgY2VfcHJlZW1wdCA9IDAsIGRlX3ByZWVtcHQgPSAwOwo+ PiAgICAgICAgIGZvciAoaSA9IDAsIGogPSAwOyBpIDwgcGFyc2VyLT5uY2h1bmtzICYmIGogPCAK Pj4gcGFyc2VyLT5qb2ItPm51bV9pYnM7IGkrKykgewo+PiAgICAgICAgICAgc3RydWN0IGFtZGdw dV9jc19jaHVuayAqY2h1bms7Cj4+IC0gICAgICAgIHN0cnVjdCBhbWRncHVfaWIgKmliOwo+PiAg ICAgICAgICAgc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfaWIgKmNodW5rX2liOwo+PiAgICAg ICAgICAgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nOwo+PiAgICAgICAgICAgICBjaHVuayA9ICZw YXJzZXItPmNodW5rc1tpXTsKPj4gLSAgICAgICAgaWIgPSAmcGFyc2VyLT5qb2ItPmlic1tqXTsK Pj4gICAgICAgICAgIGNodW5rX2liID0gKHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX2liICop Y2h1bmstPmtkYXRhOwo+PiAgICAgICAgICAgICBpZiAoY2h1bmstPmNodW5rX2lkICE9IEFNREdQ VV9DSFVOS19JRF9JQikKPj4gQEAgLTkxNyw1NCArOTc0LDYgQEAgc3RhdGljIGludCBhbWRncHVf Y3NfaWJfZmlsbChzdHJ1Y3QgCj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+ICAgICAgICAgICAg IHBhcnNlci0+am9iLT5yaW5nID0gcmluZzsKPj4gICAtICAgICAgICBpZiAocmluZy0+ZnVuY3Mt PnBhcnNlX2NzKSB7Cj4+IC0gICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvX3ZhX21hcHBpbmcg Km07Cj4+IC0gICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICphb2JqID0gTlVMTDsKPj4gLSAg ICAgICAgICAgIHVpbnQ2NF90IG9mZnNldDsKPj4gLSAgICAgICAgICAgIHVpbnQ4X3QgKmtwdHI7 Cj4+IC0KPj4gLSAgICAgICAgICAgIHIgPSBhbWRncHVfY3NfZmluZF9tYXBwaW5nKHBhcnNlciwg Y2h1bmtfaWItPnZhX3N0YXJ0LAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFvYmos ICZtKTsKPj4gLSAgICAgICAgICAgIGlmIChyKSB7Cj4+IC0gICAgICAgICAgICAgICAgRFJNX0VS Uk9SKCJJQiB2YV9zdGFydCBpcyBpbnZhbGlkXG4iKTsKPj4gLSAgICAgICAgICAgICAgICByZXR1 cm4gcjsKPj4gLSAgICAgICAgICAgIH0KPj4gLQo+PiAtICAgICAgICAgICAgaWYgKChjaHVua19p Yi0+dmFfc3RhcnQgKyBjaHVua19pYi0+aWJfYnl0ZXMpID4KPj4gLSAgICAgICAgICAgICAgICAo bS0+bGFzdCArIDEpICogQU1ER1BVX0dQVV9QQUdFX1NJWkUpIHsKPj4gLSAgICAgICAgICAgICAg ICBEUk1fRVJST1IoIklCIHZhX3N0YXJ0K2liX2J5dGVzIGlzIGludmFsaWRcbiIpOwo+PiAtICAg ICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiAtICAgICAgICAgICAgfQo+PiAtCj4+IC0g ICAgICAgICAgICAvKiB0aGUgSUIgc2hvdWxkIGJlIHJlc2VydmVkIGF0IHRoaXMgcG9pbnQgKi8K Pj4gLSAgICAgICAgICAgIHIgPSBhbWRncHVfYm9fa21hcChhb2JqLCAodm9pZCAqKikma3B0cik7 Cj4+IC0gICAgICAgICAgICBpZiAocikgewo+PiAtICAgICAgICAgICAgICAgIHJldHVybiByOwo+ PiAtICAgICAgICAgICAgfQo+PiAtCj4+IC0gICAgICAgICAgICBvZmZzZXQgPSBtLT5zdGFydCAq IEFNREdQVV9HUFVfUEFHRV9TSVpFOwo+PiAtICAgICAgICAgICAga3B0ciArPSBjaHVua19pYi0+ dmFfc3RhcnQgLSBvZmZzZXQ7Cj4+IC0KPj4gLSAgICAgICAgICAgIHIgPSAgYW1kZ3B1X2liX2dl dChhZGV2LCB2bSwgY2h1bmtfaWItPmliX2J5dGVzLCBpYik7Cj4+IC0gICAgICAgICAgICBpZiAo cikgewo+PiAtICAgICAgICAgICAgICAgIERSTV9FUlJPUigiRmFpbGVkIHRvIGdldCBpYiAhXG4i KTsKPj4gLSAgICAgICAgICAgICAgICByZXR1cm4gcjsKPj4gLSAgICAgICAgICAgIH0KPj4gLQo+ PiAtICAgICAgICAgICAgbWVtY3B5KGliLT5wdHIsIGtwdHIsIGNodW5rX2liLT5pYl9ieXRlcyk7 Cj4+IC0gICAgICAgICAgICBhbWRncHVfYm9fa3VubWFwKGFvYmopOwo+PiAtICAgICAgICB9IGVs c2Ugewo+PiAtICAgICAgICAgICAgciA9ICBhbWRncHVfaWJfZ2V0KGFkZXYsIHZtLCAwLCBpYik7 Cj4+IC0gICAgICAgICAgICBpZiAocikgewo+PiAtICAgICAgICAgICAgICAgIERSTV9FUlJPUigi RmFpbGVkIHRvIGdldCBpYiAhXG4iKTsKPj4gLSAgICAgICAgICAgICAgICByZXR1cm4gcjsKPj4g LSAgICAgICAgICAgIH0KPj4gLQo+PiAtICAgICAgICB9Cj4+IC0KPj4gLSAgICAgICAgaWItPmdw dV9hZGRyID0gY2h1bmtfaWItPnZhX3N0YXJ0Owo+PiAtICAgICAgICBpYi0+bGVuZ3RoX2R3ID0g Y2h1bmtfaWItPmliX2J5dGVzIC8gNDsKPj4gLSAgICAgICAgaWItPmZsYWdzID0gY2h1bmtfaWIt PmZsYWdzOwo+PiAgICAgICAgICAgaisrOwo+PiAgICAgICB9Cj4+ICAgQEAgLTExNjAsMTQgKzEx NjksMjYgQEAgc3RhdGljIGludCBhbWRncHVfY3Nfc3VibWl0KHN0cnVjdCAKPj4gYW1kZ3B1X2Nz X3BhcnNlciAqcCwKPj4gICAgICAgICBhbWRncHVfY3NfcG9zdF9kZXBlbmRlbmNpZXMocCk7Cj4+ ICAgKwo+PiArICAgIC8qIGhvb2sgc2NoZWQgZmVuY2UgdG8gYWxsIEJPcycgcmVzZXJ2YXRpb24g aW4gdmFsaWRhdGVkIGxpc3QKPj4gKyAgICAgKiBhbmQgdW5yZXNlcnZlIHRoZW0uCj4+ICsgICAg ICoKPj4gKyAgICAgKiB3ZSB1bnJlc2VydmUgYXQgaGVyZSBpcyBiZWNhdXNlIG90aGVyd2lzZQo+ PiArICAgICAqIHRoZXJlJ2xsIGJlIGRlYWRsb2NrIGJldHdlZW4gY3R4X2FkZF9mZW5jZS9zY2hl ZF9lbnRpdHlfcHVzaF9qb2IKPj4gKyAgICAgKiBhbmQgZ3B1X3Jlc2V0IHJvdXRpbmUncyByZWNv dmVyX2JvX2Zyb21fc2hhZG93IG9uIFBEL1BURXMnIAo+PiB0dG0gYm8gbG9jawo+PiArICAgICAq Lwo+PiArICAgIHR0bV9ldV9mZW5jZV9idWZmZXJfb2JqZWN0cygmcC0+dGlja2V0LCAmcC0+dmFs aWRhdGVkLCBwLT5mZW5jZSk7Cj4+ICsKPj4gKwo+PiAgICAgICBjcy0+b3V0LmhhbmRsZSA9IGFt ZGdwdV9jdHhfYWRkX2ZlbmNlKHAtPmN0eCwgcmluZywgcC0+ZmVuY2UpOwo+PiArCj4+ICsKPgo+ IFBsZWFzZSBkcm9wIHRoYXQgY2hhbmdlLiBJdCBpc24ndCBuZWNlc3NhcnkgYW55IG1vcmUgYWZ0 ZXIgeW91IG1vdmVkIAo+IHRoZSB3YWl0aW5nIG91dHNpZGUgb2YgdGhlIEJPIGxvY2suCj4KPiBE aXRvIGZvciBtb3N0IG9mIHRoZSBvdGhlciBjaGFuZ2VzIGFzIHdlbGwuCj4KPiBSZWdhcmRzLAo+ IENocmlzdGlhbi4KPgo+PiAgICAgICBqb2ItPnVmX3NlcXVlbmNlID0gY3MtPm91dC5oYW5kbGU7 Cj4+ICAgICAgIGFtZGdwdV9qb2JfZnJlZV9yZXNvdXJjZXMoam9iKTsKPj4gICAgICAgICB0cmFj ZV9hbWRncHVfY3NfaW9jdGwoam9iKTsKPj4gICAgICAgYW1kX3NjaGVkX2VudGl0eV9wdXNoX2pv Yigmam9iLT5iYXNlKTsKPj4gICAtICAgIHR0bV9ldV9mZW5jZV9idWZmZXJfb2JqZWN0cygmcC0+ dGlja2V0LCAmcC0+dmFsaWRhdGVkLCBwLT5mZW5jZSk7Cj4+ICAgICAgIGFtZGdwdV9tbl91bmxv Y2socC0+bW4pOwo+PiAgICAgICAgIHJldHVybiAwOwo+PiBAQCAtMTE4OSw2ICsxMjEwLDcgQEAg aW50IGFtZGdwdV9jc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCAKPj4gdm9pZCAqZGF0 YSwgc3RydWN0IGRybV9maWxlICpmaWxwKQo+PiAgICAgICAgIHBhcnNlci5hZGV2ID0gYWRldjsK Pj4gICAgICAgcGFyc2VyLmZpbHAgPSBmaWxwOwo+PiArICAgIGZwcml2ID0gZmlscC0+ZHJpdmVy X3ByaXY7Cj4+ICAgICAgICAgciA9IGFtZGdwdV9jc19wYXJzZXJfaW5pdCgmcGFyc2VyLCBkYXRh KTsKPj4gICAgICAgaWYgKHIpIHsKPj4gQEAgLTExOTYsNiArMTIxOCwxMCBAQCBpbnQgYW1kZ3B1 X2NzX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIAo+PiB2b2lkICpkYXRhLCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbHApCj4+ICAgICAgICAgICBnb3RvIG91dDsKPj4gICAgICAgfQo+PiAgICsg ICAgciA9IGFtZGdwdV9jc19pYl9maWxsKGFkZXYsICZwYXJzZXIpOwo+PiArICAgIGlmIChyKQo+ PiArICAgICAgICBnb3RvIG91dDsKPj4gKwo+PiAgICAgICByID0gYW1kZ3B1X2NzX3BhcnNlcl9i b3MoJnBhcnNlciwgZGF0YSk7Cj4+ICAgICAgIGlmIChyKSB7Cj4+ICAgICAgICAgICBpZiAociA9 PSAtRU5PTUVNKQo+PiBAQCAtMTIwNiw5ICsxMjMyLDYgQEAgaW50IGFtZGdwdV9jc19pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCAKPj4gdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpm aWxwKQo+PiAgICAgICB9Cj4+ICAgICAgICAgcmVzZXJ2ZWRfYnVmZmVycyA9IHRydWU7Cj4+IC0g ICAgciA9IGFtZGdwdV9jc19pYl9maWxsKGFkZXYsICZwYXJzZXIpOwo+PiAtICAgIGlmIChyKQo+ PiAtICAgICAgICBnb3RvIG91dDsKPj4gICAgICAgICByID0gYW1kZ3B1X2NzX2RlcGVuZGVuY2ll cyhhZGV2LCAmcGFyc2VyKTsKPj4gICAgICAgaWYgKHIpIHsKPj4gQEAgLTEyMjYsNyArMTI0OSwx MCBAQCBpbnQgYW1kZ3B1X2NzX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIAo+PiB2b2lk ICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCj4+ICAgICAgIHIgPSBhbWRncHVfY3Nfc3Vi bWl0KCZwYXJzZXIsIGNzKTsKPj4gICAgIG91dDoKPj4gLSAgICBhbWRncHVfY3NfcGFyc2VyX2Zp bmkoJnBhcnNlciwgciwgcmVzZXJ2ZWRfYnVmZmVycyk7Cj4+ICsgICAgaWYgKHIgJiYgcmVzZXJ2 ZWRfYnVmZmVycykKPj4gKyAgICAgICAgdHRtX2V1X2JhY2tvZmZfcmVzZXJ2YXRpb24oJnBhcnNl ci50aWNrZXQsICZwYXJzZXIudmFsaWRhdGVkKTsKPj4gKwo+PiArICAgIGFtZGdwdV9jc19wYXJz ZXJfZmluaSgmcGFyc2VyKTsKPj4gICAgICAgcmV0dXJuIHI7Cj4+ICAgfQo+PiAgIGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmMgCj4+IGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2N0eC5jCj4+IGluZGV4IGExMWU0NDMuLmMwNzNh NjggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jdHgu Ywo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmMKPj4gQEAg LTM5LDYgKzM5LDggQEAgc3RhdGljIGludCBhbWRncHVfY3R4X2luaXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgCj4+ICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X2N0eCAqY3R4KQo+PiAgICAgICBpZiAoIWN0 eC0+ZmVuY2VzKQo+PiAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+ICAgKyAgICBtdXRleF9p bml0KCZjdHgtPmxvY2spOwo+PiArCj4+ICAgICAgIGZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFY X1JJTkdTOyArK2kpIHsKPj4gICAgICAgICAgIGN0eC0+cmluZ3NbaV0uc2VxdWVuY2UgPSAxOwo+ PiAgICAgICAgICAgY3R4LT5yaW5nc1tpXS5mZW5jZXMgPSAmY3R4LT5mZW5jZXNbYW1kZ3B1X3Nj aGVkX2pvYnMgKiBpXTsKPj4gQEAgLTk2LDYgKzk4LDggQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2N0 eF9maW5pKHN0cnVjdCBhbWRncHVfY3R4ICpjdHgpCj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICZjdHgtPnJpbmdzW2ldLmVudGl0eSk7Cj4+ICAgICAgICAgYW1kZ3B1X3F1ZXVlX21ncl9maW5p KGFkZXYsICZjdHgtPnF1ZXVlX21ncik7Cj4+ICsKPj4gKyAgICBtdXRleF9kZXN0cm95KCZjdHgt PmxvY2spOwo+PiAgIH0KPj4gICAgIHN0YXRpYyBpbnQgYW1kZ3B1X2N0eF9hbGxvYyhzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwKPgo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2FtZC1nZngK