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: Mon, 9 Oct 2017 10:34:29 +0200 Message-ID: <9fc20357-db3e-3823-3073-c70ead162f4e@amd.com> References: <1507314021-18323-1-git-send-email-andrey.grodzovsky@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1507314021-18323-1-git-send-email-andrey.grodzovsky-5C7GfCeVMHo@public.gmane.org> 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 Grodzovsky , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Monk Liu QW0gMDYuMTAuMjAxNyB1bSAyMDoyMCBzY2hyaWViIEFuZHJleSBHcm9kem92c2t5Ogo+IEZyb206 IE1vbmsgTGl1IDxNb25rLkxpdUBhbWQuY29tPgo+Cj4gbmVlZCB0byB1bnJlc2VydmUgdHRtIGJv IGJlZm9yZSAiY3NfYWRkX2ZlbmNlIiBhbmQgImVudGl0eV9wdXNoX2pvYiIKPiBvdGhlcndpc2Ug dGhlcmUgd2lsbCBiZSBkZWFkbG9jayBiZXR3ZWVuICJyZWNvdmVyX3ZyYW1fZnJvbV9zaGFkb3ci Cj4gYW5kIHByZXZpb3VzIHR3byByb3V0aW5lcyBvbiB0aGUgdHRtIGJvJ3MgcmVzdiBsb2NrLgo+ Cj4gdjI6Cj4gQWRkIHBlciBjdHggbXV0ZXguCj4KPiB2MzoKPiBSZWxsb2NhdGUgbXV0ZXggYXF1 aXNpdGlvbiBpbnRvIGFtZGdwdV9jc19wYXJzZXJfaW5pdCBhbmQgbXVleCByZWxlYXNlCj4gaW50 byBhbWRncHVfY3NfcGFyc2VyX2ZpbmkgdG8gYXZvaWQgbmVzdGVkIGxvY2tpbmcgbG9ja3VwLgo+ IEFkZCByb2xsYmFjayBjb2RlIGZvciBhbWRncHVfY3R4X2FkZF9mZW5jZSBpbiBjYXNlIG9mIGVy cm9yIG9yIHNpZ25hbAo+IGludGVycnVwdGlvbi4KPgo+IHY0Ogo+IFJlZmFjdG9yIGFtZGdwdV9j c19pYl92bV9jaHVuayBhbmQgYW1kZ3B1X2NzX2liX2ZpbGwgdG8gZW5hYmxlCj4gb2xkIGZlbmNl IHdhaXRpbmcgYmVmb3JlIHJlc2VydmF0aW9uIGxvY2sgaXMgYXF1aXJlZC4KPgo+IENoYW5nZS1J ZDogSWEyMDliZWFiNTAzNmJmYzJjMzhjYmYxODMyNGZhM2VmZDRiYWIxY2YKPiBTaWduZWQtb2Zm LWJ5OiBNb25rIExpdSA8TW9uay5MaXVAYW1kLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXkg R3JvZHpvdnNreSA8YW5kcmV5Lmdyb2R6b3Zza3lAYW1kLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oICAgICB8ICAgMSArCj4gICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYyAgfCAxNjQgKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jdHguYyB8ICAg NCArCj4gICAzIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNlcnRpb25zKCspLCA2OSBkZWxldGlvbnMo LSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4gaW5kZXggNTNkOGRmMy4uYmFh Mjk1MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4gQEAgLTcyNCw2ICs3 MjQsNyBAQCBzdHJ1Y3QgYW1kZ3B1X2N0eCB7Cj4gICAJc3RydWN0IGRtYV9mZW5jZQkqKmZlbmNl czsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X2N0eF9yaW5nCXJpbmdzW0FNREdQVV9NQVhfUklOR1NdOwo+ ICAgCWJvb2wgcHJlYW1ibGVfcHJlc2VudGVkOwo+ICsJc3RydWN0IG11dGV4CQlsb2NrOwo+ICAg fTsKPiAgIAo+ICAgc3RydWN0IGFtZGdwdV9jdHhfbWdyIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfY3MuYwo+IGluZGV4IDlmMTIwMmEuLjBmYTFiYzcgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwo+IEBAIC04OSw2ICs4OSw5IEBAIHN0YXRpYyBp bnQgYW1kZ3B1X2NzX3BhcnNlcl9pbml0KHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLCB2b2lk ICpkYXRhKQo+ICAgCQlnb3RvIGZyZWVfY2h1bms7Cj4gICAJfQo+ICAgCj4gKwo+ICsJbXV0ZXhf bG9jaygmcC0+Y3R4LT5sb2NrKTsKPiArCj4gICAJLyogZ2V0IGNodW5rcyAqLwo+ICAgCWNodW5r X2FycmF5X3VzZXIgPSB1NjRfdG9fdXNlcl9wdHIoY3MtPmluLmNodW5rcyk7Cj4gICAJaWYgKGNv cHlfZnJvbV91c2VyKGNodW5rX2FycmF5LCBjaHVua19hcnJheV91c2VyLAo+IEBAIC03MTUsMjgg KzcxOCwyMSBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19zeW5jX3JpbmdzKHN0cnVjdCBhbWRncHVf Y3NfcGFyc2VyICpwKQo+ICAgLyoqCj4gICAgKiBjc19wYXJzZXJfZmluaSgpIC0gY2xlYW4gcGFy c2VyIHN0YXRlcwo+ICAgICogQHBhcnNlcjoJcGFyc2VyIHN0cnVjdHVyZSBob2xkaW5nIHBhcnNp bmcgY29udGV4dC4KPiAtICogQGVycm9yOgllcnJvciBudW1iZXIKPiAtICoKPiAtICogSWYgZXJy b3IgaXMgc2V0IHRoYW4gdW52YWxpZGF0ZSBidWZmZXIsIG90aGVyd2lzZSBqdXN0IGZyZWUgbWVt b3J5Cj4gLSAqIHVzZWQgYnkgcGFyc2luZyBjb250ZXh0Lgo+ICAgICoqLwo+IC1zdGF0aWMgdm9p ZCBhbWRncHVfY3NfcGFyc2VyX2Zpbmkoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlciwg aW50IGVycm9yLAo+IC0JCQkJICBib29sIGJhY2tvZmYpCj4gK3N0YXRpYyB2b2lkIGFtZGdwdV9j c19wYXJzZXJfZmluaShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyKQoKWW91IGNhbiBu b3cgZHJvcCB0aGlzIGNoYW5nZSBhbmQga2VlcCB0aGUgbG9naWMgYXMgaXQgaXMgc2luY2Ugd2Ug bW92ZWQgCnRoZSB3YWl0IGJlZm9yZSB0YWtpbmcgdGhlIHJlc2VydmF0aW9uIGxvY2tzLgoKPiAg IHsKPiAgIAl1bnNpZ25lZCBpOwo+ICAgCj4gLQlpZiAoZXJyb3IgJiYgYmFja29mZikKPiAtCQl0 dG1fZXVfYmFja29mZl9yZXNlcnZhdGlvbigmcGFyc2VyLT50aWNrZXQsCj4gLQkJCQkJICAgJnBh cnNlci0+dmFsaWRhdGVkKTsKPiAtCj4gICAJZm9yIChpID0gMDsgaSA8IHBhcnNlci0+bnVtX3Bv c3RfZGVwX3N5bmNvYmpzOyBpKyspCj4gICAJCWRybV9zeW5jb2JqX3B1dChwYXJzZXItPnBvc3Rf ZGVwX3N5bmNvYmpzW2ldKTsKPiAgIAlrZnJlZShwYXJzZXItPnBvc3RfZGVwX3N5bmNvYmpzKTsK PiAgIAo+ICAgCWRtYV9mZW5jZV9wdXQocGFyc2VyLT5mZW5jZSk7Cj4gICAKPiAtCWlmIChwYXJz ZXItPmN0eCkKPiArCWlmIChwYXJzZXItPmN0eCkgewo+ICsJCW11dGV4X3VubG9jaygmcGFyc2Vy LT5jdHgtPmxvY2spOwo+ICAgCQlhbWRncHVfY3R4X3B1dChwYXJzZXItPmN0eCk7Cj4gKwl9Cj4g ICAJaWYgKHBhcnNlci0+Ym9fbGlzdCkKPiAgIAkJYW1kZ3B1X2JvX2xpc3RfcHV0KHBhcnNlci0+ Ym9fbGlzdCk7Cj4gICAKPiBAQCAtODQzLDcgKzgzOSw3MiBAQCBzdGF0aWMgaW50IGFtZGdwdV9j c19pYl92bV9jaHVuayhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAgIAlzdHJ1Y3QgYW1k Z3B1X2Zwcml2ICpmcHJpdiA9IHAtPmZpbHAtPmRyaXZlcl9wcml2Owo+ICAgCXN0cnVjdCBhbWRn cHVfdm0gKnZtID0gJmZwcml2LT52bTsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSBw LT5qb2ItPnJpbmc7Cj4gLQlpbnQgaSwgcjsKPiArCWludCBpLCBqLCByOwo+ICsKPiArCWZvciAo aSA9IDAsIGogPSAwOyBpIDwgcC0+bmNodW5rcyAmJiBqIDwgcC0+am9iLT5udW1faWJzOyBpKysp IHsKPiArCj4gKwkJc3RydWN0IGFtZGdwdV9jc19jaHVuayAqY2h1bms7Cj4gKwkJc3RydWN0IGFt ZGdwdV9pYiAqaWI7Cj4gKwkJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfaWIgKmNodW5rX2li Owo+ICsKPiArCQljaHVuayA9ICZwLT5jaHVua3NbaV07Cj4gKwkJaWIgPSAmcC0+am9iLT5pYnNb al07Cj4gKwkJY2h1bmtfaWIgPSAoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfaWIgKiljaHVu ay0+a2RhdGE7Cj4gKwo+ICsJCWlmIChjaHVuay0+Y2h1bmtfaWQgIT0gQU1ER1BVX0NIVU5LX0lE X0lCKQo+ICsJCQkJCWNvbnRpbnVlOwo+ICsKPiArCQlpZiAocC0+am9iLT5yaW5nLT5mdW5jcy0+ cGFyc2VfY3MpIHsKPiArCQkJc3RydWN0IGFtZGdwdV9ib192YV9tYXBwaW5nICptOwo+ICsJCQlz dHJ1Y3QgYW1kZ3B1X2JvICphb2JqID0gTlVMTDsKPiArCQkJdWludDY0X3Qgb2Zmc2V0Owo+ICsJ CQl1aW50OF90ICprcHRyOwo+ICsKPiArCQkJciA9IGFtZGdwdV9jc19maW5kX21hcHBpbmcocCwg Y2h1bmtfaWItPnZhX3N0YXJ0LAo+ICsJCQkJCQkgICAmYW9iaiwgJm0pOwo+ICsJCQlpZiAocikg ewo+ICsJCQkJRFJNX0VSUk9SKCJJQiB2YV9zdGFydCBpcyBpbnZhbGlkXG4iKTsKPiArCQkJCXJl dHVybiByOwo+ICsJCQl9Cj4gKwo+ICsJCQlpZiAoKGNodW5rX2liLT52YV9zdGFydCArIGNodW5r X2liLT5pYl9ieXRlcykgPgo+ICsJCQkJKG0tPmxhc3QgKyAxKSAqIEFNREdQVV9HUFVfUEFHRV9T SVpFKSB7Cj4gKwkJCQlEUk1fRVJST1IoIklCIHZhX3N0YXJ0K2liX2J5dGVzIGlzIGludmFsaWRc biIpOwo+ICsJCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJCX0KPiArCj4gKwkJCS8qIHRoZSBJQiBz aG91bGQgYmUgcmVzZXJ2ZWQgYXQgdGhpcyBwb2ludCAqLwo+ICsJCQlyID0gYW1kZ3B1X2JvX2tt YXAoYW9iaiwgKHZvaWQgKiopJmtwdHIpOwo+ICsJCQlpZiAocikgewo+ICsJCQkJcmV0dXJuIHI7 Cj4gKwkJCX0KPiArCj4gKwkJCW9mZnNldCA9IG0tPnN0YXJ0ICogQU1ER1BVX0dQVV9QQUdFX1NJ WkU7Cj4gKwkJCWtwdHIgKz0gY2h1bmtfaWItPnZhX3N0YXJ0IC0gb2Zmc2V0Owo+ICsKPiArCQkJ ciA9ICBhbWRncHVfaWJfZ2V0KGFkZXYsIHZtLCBjaHVua19pYi0+aWJfYnl0ZXMsIGliKTsKPiAr CQkJaWYgKHIpIHsKPiArCQkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGdldCBpYiAhXG4iKTsKPiAr CQkJCXJldHVybiByOwo+ICsJCQl9Cj4gKwo+ICsJCQltZW1jcHkoaWItPnB0ciwga3B0ciwgY2h1 bmtfaWItPmliX2J5dGVzKTsKPiArCQkJYW1kZ3B1X2JvX2t1bm1hcChhb2JqKTsKPiArCQl9IGVs c2Ugewo+ICsJCQlyID0gIGFtZGdwdV9pYl9nZXQoYWRldiwgdm0sIDAsIGliKTsKPiArCQkJaWYg KHIpIHsKPiArCQkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGdldCBpYiAhXG4iKTsKPiArCQkJCXJl dHVybiByOwo+ICsJCQl9Cj4gKwo+ICsJCX0KPiArCj4gKwkJaWItPmdwdV9hZGRyID0gY2h1bmtf aWItPnZhX3N0YXJ0Owo+ICsJCWliLT5sZW5ndGhfZHcgPSBjaHVua19pYi0+aWJfYnl0ZXMgLyA0 Owo+ICsJCWliLT5mbGFncyA9IGNodW5rX2liLT5mbGFnczsKClBsZWFzZSBrZWVwIHRoZSBjYWxs cyB0byBhbWRncHVfaWJfZ2V0KCkgaW5zaWRlIGFtZGdwdV9jc19pYl9maWxsKCkuCgo+ICsJCWor KzsKPiArCj4gKwl9Cj4gICAKPiAgIAkvKiBPbmx5IGZvciBVVkQvVkNFIFZNIGVtdWxhdGlvbiAq Lwo+ICAgCWlmIChyaW5nLT5mdW5jcy0+cGFyc2VfY3MpIHsKPiBAQCAtODY4LDE5ICs5MjksMTUg QEAgc3RhdGljIGludCBhbWRncHVfY3NfaWJfdm1fY2h1bmsoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCj4gICBzdGF0aWMgaW50IGFtZGdwdV9jc19pYl9maWxsKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LAo+ICAgCQkJICAgICBzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyKQo+ ICAgewo+IC0Jc3RydWN0IGFtZGdwdV9mcHJpdiAqZnByaXYgPSBwYXJzZXItPmZpbHAtPmRyaXZl cl9wcml2Owo+IC0Jc3RydWN0IGFtZGdwdV92bSAqdm0gPSAmZnByaXYtPnZtOwo+ICAgCWludCBp LCBqOwo+ICAgCWludCByLCBjZV9wcmVlbXB0ID0gMCwgZGVfcHJlZW1wdCA9IDA7Cj4gICAKPiAg IAlmb3IgKGkgPSAwLCBqID0gMDsgaSA8IHBhcnNlci0+bmNodW5rcyAmJiBqIDwgcGFyc2VyLT5q b2ItPm51bV9pYnM7IGkrKykgewo+ICAgCQlzdHJ1Y3QgYW1kZ3B1X2NzX2NodW5rICpjaHVuazsK PiAtCQlzdHJ1Y3QgYW1kZ3B1X2liICppYjsKPiAgIAkJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1 bmtfaWIgKmNodW5rX2liOwo+ICAgCQlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmc7Cj4gICAKPiAg IAkJY2h1bmsgPSAmcGFyc2VyLT5jaHVua3NbaV07Cj4gLQkJaWIgPSAmcGFyc2VyLT5qb2ItPmli c1tqXTsKPiAgIAkJY2h1bmtfaWIgPSAoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfaWIgKilj aHVuay0+a2RhdGE7Cj4gICAKPiAgIAkJaWYgKGNodW5rLT5jaHVua19pZCAhPSBBTURHUFVfQ0hV TktfSURfSUIpCj4gQEAgLTkxNyw1NCArOTc0LDYgQEAgc3RhdGljIGludCBhbWRncHVfY3NfaWJf ZmlsbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAgIAo+ICAgCQlwYXJzZXItPmpvYi0+ cmluZyA9IHJpbmc7Cj4gICAKPiAtCQlpZiAocmluZy0+ZnVuY3MtPnBhcnNlX2NzKSB7Cj4gLQkJ CXN0cnVjdCBhbWRncHVfYm9fdmFfbWFwcGluZyAqbTsKPiAtCQkJc3RydWN0IGFtZGdwdV9ibyAq YW9iaiA9IE5VTEw7Cj4gLQkJCXVpbnQ2NF90IG9mZnNldDsKPiAtCQkJdWludDhfdCAqa3B0cjsK PiAtCj4gLQkJCXIgPSBhbWRncHVfY3NfZmluZF9tYXBwaW5nKHBhcnNlciwgY2h1bmtfaWItPnZh X3N0YXJ0LAo+IC0JCQkJCQkgICAmYW9iaiwgJm0pOwo+IC0JCQlpZiAocikgewo+IC0JCQkJRFJN X0VSUk9SKCJJQiB2YV9zdGFydCBpcyBpbnZhbGlkXG4iKTsKPiAtCQkJCXJldHVybiByOwo+IC0J CQl9Cj4gLQo+IC0JCQlpZiAoKGNodW5rX2liLT52YV9zdGFydCArIGNodW5rX2liLT5pYl9ieXRl cykgPgo+IC0JCQkgICAgKG0tPmxhc3QgKyAxKSAqIEFNREdQVV9HUFVfUEFHRV9TSVpFKSB7Cj4g LQkJCQlEUk1fRVJST1IoIklCIHZhX3N0YXJ0K2liX2J5dGVzIGlzIGludmFsaWRcbiIpOwo+IC0J CQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQkJCX0KPiAtCj4gLQkJCS8qIHRoZSBJQiBzaG91bGQgYmUg cmVzZXJ2ZWQgYXQgdGhpcyBwb2ludCAqLwo+IC0JCQlyID0gYW1kZ3B1X2JvX2ttYXAoYW9iaiwg KHZvaWQgKiopJmtwdHIpOwo+IC0JCQlpZiAocikgewo+IC0JCQkJcmV0dXJuIHI7Cj4gLQkJCX0K PiAtCj4gLQkJCW9mZnNldCA9IG0tPnN0YXJ0ICogQU1ER1BVX0dQVV9QQUdFX1NJWkU7Cj4gLQkJ CWtwdHIgKz0gY2h1bmtfaWItPnZhX3N0YXJ0IC0gb2Zmc2V0Owo+IC0KPiAtCQkJciA9ICBhbWRn cHVfaWJfZ2V0KGFkZXYsIHZtLCBjaHVua19pYi0+aWJfYnl0ZXMsIGliKTsKPiAtCQkJaWYgKHIp IHsKPiAtCQkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGdldCBpYiAhXG4iKTsKPiAtCQkJCXJldHVy biByOwo+IC0JCQl9Cj4gLQo+IC0JCQltZW1jcHkoaWItPnB0ciwga3B0ciwgY2h1bmtfaWItPmli X2J5dGVzKTsKPiAtCQkJYW1kZ3B1X2JvX2t1bm1hcChhb2JqKTsKPiAtCQl9IGVsc2Ugewo+IC0J CQlyID0gIGFtZGdwdV9pYl9nZXQoYWRldiwgdm0sIDAsIGliKTsKPiAtCQkJaWYgKHIpIHsKPiAt CQkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGdldCBpYiAhXG4iKTsKPiAtCQkJCXJldHVybiByOwo+ IC0JCQl9Cj4gLQo+IC0JCX0KPiAtCj4gLQkJaWItPmdwdV9hZGRyID0gY2h1bmtfaWItPnZhX3N0 YXJ0Owo+IC0JCWliLT5sZW5ndGhfZHcgPSBjaHVua19pYi0+aWJfYnl0ZXMgLyA0Owo+IC0JCWli LT5mbGFncyA9IGNodW5rX2liLT5mbGFnczsKPiAgIAkJaisrOwo+ICAgCX0KPiAgIAo+IEBAIC0x MTYwLDE0ICsxMTY5LDI2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdChzdHJ1Y3QgYW1k Z3B1X2NzX3BhcnNlciAqcCwKPiAgIAo+ICAgCWFtZGdwdV9jc19wb3N0X2RlcGVuZGVuY2llcyhw KTsKPiAgIAo+ICsKPiArCS8qIGhvb2sgc2NoZWQgZmVuY2UgdG8gYWxsIEJPcycgcmVzZXJ2YXRp b24gaW4gdmFsaWRhdGVkIGxpc3QKPiArCSAqIGFuZCB1bnJlc2VydmUgdGhlbS4KPiArCSAqCj4g KwkgKiB3ZSB1bnJlc2VydmUgYXQgaGVyZSBpcyBiZWNhdXNlIG90aGVyd2lzZQo+ICsJICogdGhl cmUnbGwgYmUgZGVhZGxvY2sgYmV0d2VlbiBjdHhfYWRkX2ZlbmNlL3NjaGVkX2VudGl0eV9wdXNo X2pvYgo+ICsJICogYW5kIGdwdV9yZXNldCByb3V0aW5lJ3MgcmVjb3Zlcl9ib19mcm9tX3NoYWRv dyBvbiBQRC9QVEVzJyB0dG0gYm8gbG9jawo+ICsJICovCj4gKwl0dG1fZXVfZmVuY2VfYnVmZmVy X29iamVjdHMoJnAtPnRpY2tldCwgJnAtPnZhbGlkYXRlZCwgcC0+ZmVuY2UpOwo+ICsKPiArCj4g ICAJY3MtPm91dC5oYW5kbGUgPSBhbWRncHVfY3R4X2FkZF9mZW5jZShwLT5jdHgsIHJpbmcsIHAt PmZlbmNlKTsKPiArCj4gKwoKUGxlYXNlIGRyb3AgdGhhdCBjaGFuZ2UuIEl0IGlzbid0IG5lY2Vz c2FyeSBhbnkgbW9yZSBhZnRlciB5b3UgbW92ZWQgdGhlIAp3YWl0aW5nIG91dHNpZGUgb2YgdGhl IEJPIGxvY2suCgpEaXRvIGZvciBtb3N0IG9mIHRoZSBvdGhlciBjaGFuZ2VzIGFzIHdlbGwuCgpS ZWdhcmRzLApDaHJpc3RpYW4uCgo+ICAgCWpvYi0+dWZfc2VxdWVuY2UgPSBjcy0+b3V0LmhhbmRs ZTsKPiAgIAlhbWRncHVfam9iX2ZyZWVfcmVzb3VyY2VzKGpvYik7Cj4gICAKPiAgIAl0cmFjZV9h bWRncHVfY3NfaW9jdGwoam9iKTsKPiAgIAlhbWRfc2NoZWRfZW50aXR5X3B1c2hfam9iKCZqb2It PmJhc2UpOwo+ICAgCj4gLQl0dG1fZXVfZmVuY2VfYnVmZmVyX29iamVjdHMoJnAtPnRpY2tldCwg JnAtPnZhbGlkYXRlZCwgcC0+ZmVuY2UpOwo+ICAgCWFtZGdwdV9tbl91bmxvY2socC0+bW4pOwo+ ICAgCj4gICAJcmV0dXJuIDA7Cj4gQEAgLTExODksNiArMTIxMCw3IEBAIGludCBhbWRncHVfY3Nf aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxl ICpmaWxwKQo+ICAgCj4gICAJcGFyc2VyLmFkZXYgPSBhZGV2Owo+ICAgCXBhcnNlci5maWxwID0g ZmlscDsKPiArCWZwcml2ID0gZmlscC0+ZHJpdmVyX3ByaXY7Cj4gICAKPiAgIAlyID0gYW1kZ3B1 X2NzX3BhcnNlcl9pbml0KCZwYXJzZXIsIGRhdGEpOwo+ICAgCWlmIChyKSB7Cj4gQEAgLTExOTYs NiArMTIxOCwxMCBAQCBpbnQgYW1kZ3B1X2NzX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlscCkKPiAgIAkJZ290byBvdXQ7Cj4gICAJ fQo+ICAgCj4gKwlyID0gYW1kZ3B1X2NzX2liX2ZpbGwoYWRldiwgJnBhcnNlcik7Cj4gKwlpZiAo cikKPiArCQlnb3RvIG91dDsKPiArCj4gICAJciA9IGFtZGdwdV9jc19wYXJzZXJfYm9zKCZwYXJz ZXIsIGRhdGEpOwo+ICAgCWlmIChyKSB7Cj4gICAJCWlmIChyID09IC1FTk9NRU0pCj4gQEAgLTEy MDYsOSArMTIzMiw2IEBAIGludCBhbWRncHVfY3NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxwKQo+ICAgCX0KPiAgIAo+ICAgCXJl c2VydmVkX2J1ZmZlcnMgPSB0cnVlOwo+IC0JciA9IGFtZGdwdV9jc19pYl9maWxsKGFkZXYsICZw YXJzZXIpOwo+IC0JaWYgKHIpCj4gLQkJZ290byBvdXQ7Cj4gICAKPiAgIAlyID0gYW1kZ3B1X2Nz X2RlcGVuZGVuY2llcyhhZGV2LCAmcGFyc2VyKTsKPiAgIAlpZiAocikgewo+IEBAIC0xMjI2LDcg KzEyNDksMTAgQEAgaW50IGFtZGdwdV9jc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCj4gICAJciA9IGFtZGdwdV9jc19zdWJt aXQoJnBhcnNlciwgY3MpOwo+ICAgCj4gICBvdXQ6Cj4gLQlhbWRncHVfY3NfcGFyc2VyX2Zpbmko JnBhcnNlciwgciwgcmVzZXJ2ZWRfYnVmZmVycyk7Cj4gKwlpZiAociAmJiByZXNlcnZlZF9idWZm ZXJzKQo+ICsJCXR0bV9ldV9iYWNrb2ZmX3Jlc2VydmF0aW9uKCZwYXJzZXIudGlja2V0LCAmcGFy c2VyLnZhbGlkYXRlZCk7Cj4gKwo+ICsJYW1kZ3B1X2NzX3BhcnNlcl9maW5pKCZwYXJzZXIpOwo+ ICAgCXJldHVybiByOwo+ICAgfQo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9jdHguYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9jdHguYwo+IGluZGV4IGExMWU0NDMuLmMwNzNhNjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2N0eC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2N0eC5jCj4gQEAgLTM5LDYgKzM5LDggQEAgc3RhdGljIGludCBhbWRn cHVfY3R4X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfY3R4 ICpjdHgpCj4gICAJaWYgKCFjdHgtPmZlbmNlcykKPiAgIAkJcmV0dXJuIC1FTk9NRU07Cj4gICAK PiArCW11dGV4X2luaXQoJmN0eC0+bG9jayk7Cj4gKwo+ICAgCWZvciAoaSA9IDA7IGkgPCBBTURH UFVfTUFYX1JJTkdTOyArK2kpIHsKPiAgIAkJY3R4LT5yaW5nc1tpXS5zZXF1ZW5jZSA9IDE7Cj4g ICAJCWN0eC0+cmluZ3NbaV0uZmVuY2VzID0gJmN0eC0+ZmVuY2VzW2FtZGdwdV9zY2hlZF9qb2Jz ICogaV07Cj4gQEAgLTk2LDYgKzk4LDggQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2N0eF9maW5pKHN0 cnVjdCBhbWRncHVfY3R4ICpjdHgpCj4gICAJCQkJICAgICAgJmN0eC0+cmluZ3NbaV0uZW50aXR5 KTsKPiAgIAo+ICAgCWFtZGdwdV9xdWV1ZV9tZ3JfZmluaShhZGV2LCAmY3R4LT5xdWV1ZV9tZ3Ip Owo+ICsKPiArCW11dGV4X2Rlc3Ryb3koJmN0eC0+bG9jayk7Cj4gICB9Cj4gICAKPiAgIHN0YXRp YyBpbnQgYW1kZ3B1X2N0eF9hbGxvYyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxp bmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK