From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrey Grodzovsky Subject: [PATCH 1/2] drm/amdgpu:resolv deadlock between reset and cs_ioctl v4. Date: Fri, 6 Oct 2017 14:20:20 -0400 Message-ID: <1507314021-18323-1-git-send-email-andrey.grodzovsky@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Andrey Grodzovsky , Christian.Koenig-5C7GfCeVMHo@public.gmane.org, Monk Liu RnJvbTogTW9uayBMaXUgPE1vbmsuTGl1QGFtZC5jb20+CgpuZWVkIHRvIHVucmVzZXJ2ZSB0dG0g Ym8gYmVmb3JlICJjc19hZGRfZmVuY2UiIGFuZCAiZW50aXR5X3B1c2hfam9iIgpvdGhlcndpc2Ug dGhlcmUgd2lsbCBiZSBkZWFkbG9jayBiZXR3ZWVuICJyZWNvdmVyX3ZyYW1fZnJvbV9zaGFkb3ci CmFuZCBwcmV2aW91cyB0d28gcm91dGluZXMgb24gdGhlIHR0bSBibydzIHJlc3YgbG9jay4KCnYy OgpBZGQgcGVyIGN0eCBtdXRleC4KCnYzOgpSZWxsb2NhdGUgbXV0ZXggYXF1aXNpdGlvbiBpbnRv IGFtZGdwdV9jc19wYXJzZXJfaW5pdCBhbmQgbXVleCByZWxlYXNlCmludG8gYW1kZ3B1X2NzX3Bh cnNlcl9maW5pIHRvIGF2b2lkIG5lc3RlZCBsb2NraW5nIGxvY2t1cC4KQWRkIHJvbGxiYWNrIGNv ZGUgZm9yIGFtZGdwdV9jdHhfYWRkX2ZlbmNlIGluIGNhc2Ugb2YgZXJyb3Igb3Igc2lnbmFsCmlu dGVycnVwdGlvbi4KCnY0OgpSZWZhY3RvciBhbWRncHVfY3NfaWJfdm1fY2h1bmsgYW5kIGFtZGdw dV9jc19pYl9maWxsIHRvIGVuYWJsZQpvbGQgZmVuY2Ugd2FpdGluZyBiZWZvcmUgcmVzZXJ2YXRp b24gbG9jayBpcyBhcXVpcmVkLgoKQ2hhbmdlLUlkOiBJYTIwOWJlYWI1MDM2YmZjMmMzOGNiZjE4 MzI0ZmEzZWZkNGJhYjFjZgpTaWduZWQtb2ZmLWJ5OiBNb25rIExpdSA8TW9uay5MaXVAYW1kLmNv bT4KU2lnbmVkLW9mZi1ieTogQW5kcmV5IEdyb2R6b3Zza3kgPGFuZHJleS5ncm9kem92c2t5QGFt ZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggICAgIHwgICAx ICsKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jICB8IDE2NCArKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2N0eC5jIHwgICA0ICsKIDMgZmlsZXMgY2hhbmdlZCwgMTAwIGluc2VydGlvbnMoKyksIDY5 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKaW5kZXggNTNkOGRm My4uYmFhMjk1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKQEAgLTcyNCw2ICs3 MjQsNyBAQCBzdHJ1Y3QgYW1kZ3B1X2N0eCB7CiAJc3RydWN0IGRtYV9mZW5jZQkqKmZlbmNlczsK IAlzdHJ1Y3QgYW1kZ3B1X2N0eF9yaW5nCXJpbmdzW0FNREdQVV9NQVhfUklOR1NdOwogCWJvb2wg cHJlYW1ibGVfcHJlc2VudGVkOworCXN0cnVjdCBtdXRleAkJbG9jazsKIH07CiAKIHN0cnVjdCBh bWRncHVfY3R4X21nciB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCmluZGV4 IDlmMTIwMmEuLjBmYTFiYzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5j CkBAIC04OSw2ICs4OSw5IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3BhcnNlcl9pbml0KHN0cnVj dCBhbWRncHVfY3NfcGFyc2VyICpwLCB2b2lkICpkYXRhKQogCQlnb3RvIGZyZWVfY2h1bms7CiAJ fQogCisKKwltdXRleF9sb2NrKCZwLT5jdHgtPmxvY2spOworCiAJLyogZ2V0IGNodW5rcyAqLwog CWNodW5rX2FycmF5X3VzZXIgPSB1NjRfdG9fdXNlcl9wdHIoY3MtPmluLmNodW5rcyk7CiAJaWYg KGNvcHlfZnJvbV91c2VyKGNodW5rX2FycmF5LCBjaHVua19hcnJheV91c2VyLApAQCAtNzE1LDI4 ICs3MTgsMjEgQEAgc3RhdGljIGludCBhbWRncHVfY3Nfc3luY19yaW5ncyhzdHJ1Y3QgYW1kZ3B1 X2NzX3BhcnNlciAqcCkKIC8qKgogICogY3NfcGFyc2VyX2ZpbmkoKSAtIGNsZWFuIHBhcnNlciBz dGF0ZXMKICAqIEBwYXJzZXI6CXBhcnNlciBzdHJ1Y3R1cmUgaG9sZGluZyBwYXJzaW5nIGNvbnRl eHQuCi0gKiBAZXJyb3I6CWVycm9yIG51bWJlcgotICoKLSAqIElmIGVycm9yIGlzIHNldCB0aGFu IHVudmFsaWRhdGUgYnVmZmVyLCBvdGhlcndpc2UganVzdCBmcmVlIG1lbW9yeQotICogdXNlZCBi eSBwYXJzaW5nIGNvbnRleHQuCiAgKiovCi1zdGF0aWMgdm9pZCBhbWRncHVfY3NfcGFyc2VyX2Zp bmkoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlciwgaW50IGVycm9yLAotCQkJCSAgYm9v bCBiYWNrb2ZmKQorc3RhdGljIHZvaWQgYW1kZ3B1X2NzX3BhcnNlcl9maW5pKHN0cnVjdCBhbWRn cHVfY3NfcGFyc2VyICpwYXJzZXIpCiB7CiAJdW5zaWduZWQgaTsKIAotCWlmIChlcnJvciAmJiBi YWNrb2ZmKQotCQl0dG1fZXVfYmFja29mZl9yZXNlcnZhdGlvbigmcGFyc2VyLT50aWNrZXQsCi0J CQkJCSAgICZwYXJzZXItPnZhbGlkYXRlZCk7Ci0KIAlmb3IgKGkgPSAwOyBpIDwgcGFyc2VyLT5u dW1fcG9zdF9kZXBfc3luY29ianM7IGkrKykKIAkJZHJtX3N5bmNvYmpfcHV0KHBhcnNlci0+cG9z dF9kZXBfc3luY29ianNbaV0pOwogCWtmcmVlKHBhcnNlci0+cG9zdF9kZXBfc3luY29ianMpOwog CiAJZG1hX2ZlbmNlX3B1dChwYXJzZXItPmZlbmNlKTsKIAotCWlmIChwYXJzZXItPmN0eCkKKwlp ZiAocGFyc2VyLT5jdHgpIHsKKwkJbXV0ZXhfdW5sb2NrKCZwYXJzZXItPmN0eC0+bG9jayk7CiAJ CWFtZGdwdV9jdHhfcHV0KHBhcnNlci0+Y3R4KTsKKwl9CiAJaWYgKHBhcnNlci0+Ym9fbGlzdCkK IAkJYW1kZ3B1X2JvX2xpc3RfcHV0KHBhcnNlci0+Ym9fbGlzdCk7CiAKQEAgLTg0Myw3ICs4Mzks NzIgQEAgc3RhdGljIGludCBhbWRncHVfY3NfaWJfdm1fY2h1bmsoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCiAJc3RydWN0IGFtZGdwdV9mcHJpdiAqZnByaXYgPSBwLT5maWxwLT5kcml2ZXJf cHJpdjsKIAlzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSA9ICZmcHJpdi0+dm07CiAJc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nID0gcC0+am9iLT5yaW5nOwotCWludCBpLCByOworCWludCBpLCBqLCByOwor CisJZm9yIChpID0gMCwgaiA9IDA7IGkgPCBwLT5uY2h1bmtzICYmIGogPCBwLT5qb2ItPm51bV9p YnM7IGkrKykgeworCisJCXN0cnVjdCBhbWRncHVfY3NfY2h1bmsgKmNodW5rOworCQlzdHJ1Y3Qg YW1kZ3B1X2liICppYjsKKwkJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfaWIgKmNodW5rX2li OworCisJCWNodW5rID0gJnAtPmNodW5rc1tpXTsKKwkJaWIgPSAmcC0+am9iLT5pYnNbal07CisJ CWNodW5rX2liID0gKHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX2liICopY2h1bmstPmtkYXRh OworCisJCWlmIChjaHVuay0+Y2h1bmtfaWQgIT0gQU1ER1BVX0NIVU5LX0lEX0lCKQorCQkJCQlj b250aW51ZTsKKworCQlpZiAocC0+am9iLT5yaW5nLT5mdW5jcy0+cGFyc2VfY3MpIHsKKwkJCXN0 cnVjdCBhbWRncHVfYm9fdmFfbWFwcGluZyAqbTsKKwkJCXN0cnVjdCBhbWRncHVfYm8gKmFvYmog PSBOVUxMOworCQkJdWludDY0X3Qgb2Zmc2V0OworCQkJdWludDhfdCAqa3B0cjsKKworCQkJciA9 IGFtZGdwdV9jc19maW5kX21hcHBpbmcocCwgY2h1bmtfaWItPnZhX3N0YXJ0LAorCQkJCQkJICAg JmFvYmosICZtKTsKKwkJCWlmIChyKSB7CisJCQkJRFJNX0VSUk9SKCJJQiB2YV9zdGFydCBpcyBp bnZhbGlkXG4iKTsKKwkJCQlyZXR1cm4gcjsKKwkJCX0KKworCQkJaWYgKChjaHVua19pYi0+dmFf c3RhcnQgKyBjaHVua19pYi0+aWJfYnl0ZXMpID4KKwkJCQkobS0+bGFzdCArIDEpICogQU1ER1BV X0dQVV9QQUdFX1NJWkUpIHsKKwkJCQlEUk1fRVJST1IoIklCIHZhX3N0YXJ0K2liX2J5dGVzIGlz IGludmFsaWRcbiIpOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQorCisJCQkvKiB0aGUgSUIg c2hvdWxkIGJlIHJlc2VydmVkIGF0IHRoaXMgcG9pbnQgKi8KKwkJCXIgPSBhbWRncHVfYm9fa21h cChhb2JqLCAodm9pZCAqKikma3B0cik7CisJCQlpZiAocikgeworCQkJCXJldHVybiByOworCQkJ fQorCisJCQlvZmZzZXQgPSBtLT5zdGFydCAqIEFNREdQVV9HUFVfUEFHRV9TSVpFOworCQkJa3B0 ciArPSBjaHVua19pYi0+dmFfc3RhcnQgLSBvZmZzZXQ7CisKKwkJCXIgPSAgYW1kZ3B1X2liX2dl dChhZGV2LCB2bSwgY2h1bmtfaWItPmliX2J5dGVzLCBpYik7CisJCQlpZiAocikgeworCQkJCURS TV9FUlJPUigiRmFpbGVkIHRvIGdldCBpYiAhXG4iKTsKKwkJCQlyZXR1cm4gcjsKKwkJCX0KKwor CQkJbWVtY3B5KGliLT5wdHIsIGtwdHIsIGNodW5rX2liLT5pYl9ieXRlcyk7CisJCQlhbWRncHVf Ym9fa3VubWFwKGFvYmopOworCQl9IGVsc2UgeworCQkJciA9ICBhbWRncHVfaWJfZ2V0KGFkZXYs IHZtLCAwLCBpYik7CisJCQlpZiAocikgeworCQkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGdldCBp YiAhXG4iKTsKKwkJCQlyZXR1cm4gcjsKKwkJCX0KKworCQl9CisKKwkJaWItPmdwdV9hZGRyID0g Y2h1bmtfaWItPnZhX3N0YXJ0OworCQlpYi0+bGVuZ3RoX2R3ID0gY2h1bmtfaWItPmliX2J5dGVz IC8gNDsKKwkJaWItPmZsYWdzID0gY2h1bmtfaWItPmZsYWdzOworCQlqKys7CisKKwl9CiAKIAkv KiBPbmx5IGZvciBVVkQvVkNFIFZNIGVtdWxhdGlvbiAqLwogCWlmIChyaW5nLT5mdW5jcy0+cGFy c2VfY3MpIHsKQEAgLTg2OCwxOSArOTI5LDE1IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX2liX3Zt X2NodW5rKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogc3RhdGljIGludCBhbWRncHVfY3Nf aWJfZmlsbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCSAgICAgc3RydWN0IGFtZGdw dV9jc19wYXJzZXIgKnBhcnNlcikKIHsKLQlzdHJ1Y3QgYW1kZ3B1X2Zwcml2ICpmcHJpdiA9IHBh cnNlci0+ZmlscC0+ZHJpdmVyX3ByaXY7Ci0Jc3RydWN0IGFtZGdwdV92bSAqdm0gPSAmZnByaXYt PnZtOwogCWludCBpLCBqOwogCWludCByLCBjZV9wcmVlbXB0ID0gMCwgZGVfcHJlZW1wdCA9IDA7 CiAKIAlmb3IgKGkgPSAwLCBqID0gMDsgaSA8IHBhcnNlci0+bmNodW5rcyAmJiBqIDwgcGFyc2Vy LT5qb2ItPm51bV9pYnM7IGkrKykgewogCQlzdHJ1Y3QgYW1kZ3B1X2NzX2NodW5rICpjaHVuazsK LQkJc3RydWN0IGFtZGdwdV9pYiAqaWI7CiAJCXN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX2li ICpjaHVua19pYjsKIAkJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nOwogCiAJCWNodW5rID0gJnBh cnNlci0+Y2h1bmtzW2ldOwotCQlpYiA9ICZwYXJzZXItPmpvYi0+aWJzW2pdOwogCQljaHVua19p YiA9IChzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19pYiAqKWNodW5rLT5rZGF0YTsKIAogCQlp ZiAoY2h1bmstPmNodW5rX2lkICE9IEFNREdQVV9DSFVOS19JRF9JQikKQEAgLTkxNyw1NCArOTc0 LDYgQEAgc3RhdGljIGludCBhbWRncHVfY3NfaWJfZmlsbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwKIAogCQlwYXJzZXItPmpvYi0+cmluZyA9IHJpbmc7CiAKLQkJaWYgKHJpbmctPmZ1bmNz LT5wYXJzZV9jcykgewotCQkJc3RydWN0IGFtZGdwdV9ib192YV9tYXBwaW5nICptOwotCQkJc3Ry dWN0IGFtZGdwdV9ibyAqYW9iaiA9IE5VTEw7Ci0JCQl1aW50NjRfdCBvZmZzZXQ7Ci0JCQl1aW50 OF90ICprcHRyOwotCi0JCQlyID0gYW1kZ3B1X2NzX2ZpbmRfbWFwcGluZyhwYXJzZXIsIGNodW5r X2liLT52YV9zdGFydCwKLQkJCQkJCSAgICZhb2JqLCAmbSk7Ci0JCQlpZiAocikgewotCQkJCURS TV9FUlJPUigiSUIgdmFfc3RhcnQgaXMgaW52YWxpZFxuIik7Ci0JCQkJcmV0dXJuIHI7Ci0JCQl9 Ci0KLQkJCWlmICgoY2h1bmtfaWItPnZhX3N0YXJ0ICsgY2h1bmtfaWItPmliX2J5dGVzKSA+Ci0J CQkgICAgKG0tPmxhc3QgKyAxKSAqIEFNREdQVV9HUFVfUEFHRV9TSVpFKSB7Ci0JCQkJRFJNX0VS Uk9SKCJJQiB2YV9zdGFydCtpYl9ieXRlcyBpcyBpbnZhbGlkXG4iKTsKLQkJCQlyZXR1cm4gLUVJ TlZBTDsKLQkJCX0KLQotCQkJLyogdGhlIElCIHNob3VsZCBiZSByZXNlcnZlZCBhdCB0aGlzIHBv aW50ICovCi0JCQlyID0gYW1kZ3B1X2JvX2ttYXAoYW9iaiwgKHZvaWQgKiopJmtwdHIpOwotCQkJ aWYgKHIpIHsKLQkJCQlyZXR1cm4gcjsKLQkJCX0KLQotCQkJb2Zmc2V0ID0gbS0+c3RhcnQgKiBB TURHUFVfR1BVX1BBR0VfU0laRTsKLQkJCWtwdHIgKz0gY2h1bmtfaWItPnZhX3N0YXJ0IC0gb2Zm c2V0OwotCi0JCQlyID0gIGFtZGdwdV9pYl9nZXQoYWRldiwgdm0sIGNodW5rX2liLT5pYl9ieXRl cywgaWIpOwotCQkJaWYgKHIpIHsKLQkJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBnZXQgaWIgIVxu Iik7Ci0JCQkJcmV0dXJuIHI7Ci0JCQl9Ci0KLQkJCW1lbWNweShpYi0+cHRyLCBrcHRyLCBjaHVu a19pYi0+aWJfYnl0ZXMpOwotCQkJYW1kZ3B1X2JvX2t1bm1hcChhb2JqKTsKLQkJfSBlbHNlIHsK LQkJCXIgPSAgYW1kZ3B1X2liX2dldChhZGV2LCB2bSwgMCwgaWIpOwotCQkJaWYgKHIpIHsKLQkJ CQlEUk1fRVJST1IoIkZhaWxlZCB0byBnZXQgaWIgIVxuIik7Ci0JCQkJcmV0dXJuIHI7Ci0JCQl9 Ci0KLQkJfQotCi0JCWliLT5ncHVfYWRkciA9IGNodW5rX2liLT52YV9zdGFydDsKLQkJaWItPmxl bmd0aF9kdyA9IGNodW5rX2liLT5pYl9ieXRlcyAvIDQ7Ci0JCWliLT5mbGFncyA9IGNodW5rX2li LT5mbGFnczsKIAkJaisrOwogCX0KIApAQCAtMTE2MCwxNCArMTE2OSwyNiBAQCBzdGF0aWMgaW50 IGFtZGdwdV9jc19zdWJtaXQoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCiAKIAlhbWRncHVf Y3NfcG9zdF9kZXBlbmRlbmNpZXMocCk7CiAKKworCS8qIGhvb2sgc2NoZWQgZmVuY2UgdG8gYWxs IEJPcycgcmVzZXJ2YXRpb24gaW4gdmFsaWRhdGVkIGxpc3QKKwkgKiBhbmQgdW5yZXNlcnZlIHRo ZW0uCisJICoKKwkgKiB3ZSB1bnJlc2VydmUgYXQgaGVyZSBpcyBiZWNhdXNlIG90aGVyd2lzZQor CSAqIHRoZXJlJ2xsIGJlIGRlYWRsb2NrIGJldHdlZW4gY3R4X2FkZF9mZW5jZS9zY2hlZF9lbnRp dHlfcHVzaF9qb2IKKwkgKiBhbmQgZ3B1X3Jlc2V0IHJvdXRpbmUncyByZWNvdmVyX2JvX2Zyb21f c2hhZG93IG9uIFBEL1BURXMnIHR0bSBibyBsb2NrCisJICovCisJdHRtX2V1X2ZlbmNlX2J1ZmZl cl9vYmplY3RzKCZwLT50aWNrZXQsICZwLT52YWxpZGF0ZWQsIHAtPmZlbmNlKTsKKworCiAJY3Mt Pm91dC5oYW5kbGUgPSBhbWRncHVfY3R4X2FkZF9mZW5jZShwLT5jdHgsIHJpbmcsIHAtPmZlbmNl KTsKKworCiAJam9iLT51Zl9zZXF1ZW5jZSA9IGNzLT5vdXQuaGFuZGxlOwogCWFtZGdwdV9qb2Jf ZnJlZV9yZXNvdXJjZXMoam9iKTsKIAogCXRyYWNlX2FtZGdwdV9jc19pb2N0bChqb2IpOwogCWFt ZF9zY2hlZF9lbnRpdHlfcHVzaF9qb2IoJmpvYi0+YmFzZSk7CiAKLQl0dG1fZXVfZmVuY2VfYnVm ZmVyX29iamVjdHMoJnAtPnRpY2tldCwgJnAtPnZhbGlkYXRlZCwgcC0+ZmVuY2UpOwogCWFtZGdw dV9tbl91bmxvY2socC0+bW4pOwogCiAJcmV0dXJuIDA7CkBAIC0xMTg5LDYgKzEyMTAsNyBAQCBp bnQgYW1kZ3B1X2NzX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0 cnVjdCBkcm1fZmlsZSAqZmlscCkKIAogCXBhcnNlci5hZGV2ID0gYWRldjsKIAlwYXJzZXIuZmls cCA9IGZpbHA7CisJZnByaXYgPSBmaWxwLT5kcml2ZXJfcHJpdjsKIAogCXIgPSBhbWRncHVfY3Nf cGFyc2VyX2luaXQoJnBhcnNlciwgZGF0YSk7CiAJaWYgKHIpIHsKQEAgLTExOTYsNiArMTIxOCwx MCBAQCBpbnQgYW1kZ3B1X2NzX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlscCkKIAkJZ290byBvdXQ7CiAJfQogCisJciA9IGFtZGdw dV9jc19pYl9maWxsKGFkZXYsICZwYXJzZXIpOworCWlmIChyKQorCQlnb3RvIG91dDsKKwogCXIg PSBhbWRncHVfY3NfcGFyc2VyX2JvcygmcGFyc2VyLCBkYXRhKTsKIAlpZiAocikgewogCQlpZiAo ciA9PSAtRU5PTUVNKQpAQCAtMTIwNiw5ICsxMjMyLDYgQEAgaW50IGFtZGdwdV9jc19pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHAp CiAJfQogCiAJcmVzZXJ2ZWRfYnVmZmVycyA9IHRydWU7Ci0JciA9IGFtZGdwdV9jc19pYl9maWxs KGFkZXYsICZwYXJzZXIpOwotCWlmIChyKQotCQlnb3RvIG91dDsKIAogCXIgPSBhbWRncHVfY3Nf ZGVwZW5kZW5jaWVzKGFkZXYsICZwYXJzZXIpOwogCWlmIChyKSB7CkBAIC0xMjI2LDcgKzEyNDks MTAgQEAgaW50IGFtZGdwdV9jc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCiAJciA9IGFtZGdwdV9jc19zdWJtaXQoJnBhcnNl ciwgY3MpOwogCiBvdXQ6Ci0JYW1kZ3B1X2NzX3BhcnNlcl9maW5pKCZwYXJzZXIsIHIsIHJlc2Vy dmVkX2J1ZmZlcnMpOworCWlmIChyICYmIHJlc2VydmVkX2J1ZmZlcnMpCisJCXR0bV9ldV9iYWNr b2ZmX3Jlc2VydmF0aW9uKCZwYXJzZXIudGlja2V0LCAmcGFyc2VyLnZhbGlkYXRlZCk7CisKKwlh bWRncHVfY3NfcGFyc2VyX2ZpbmkoJnBhcnNlcik7CiAJcmV0dXJuIHI7CiB9CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jdHguYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jdHguYwppbmRleCBhMTFlNDQzLi5jMDczYTY4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3R4LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2N0eC5jCkBAIC0zOSw2ICszOSw4IEBAIHN0 YXRpYyBpbnQgYW1kZ3B1X2N0eF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1 Y3QgYW1kZ3B1X2N0eCAqY3R4KQogCWlmICghY3R4LT5mZW5jZXMpCiAJCXJldHVybiAtRU5PTUVN OwogCisJbXV0ZXhfaW5pdCgmY3R4LT5sb2NrKTsKKwogCWZvciAoaSA9IDA7IGkgPCBBTURHUFVf TUFYX1JJTkdTOyArK2kpIHsKIAkJY3R4LT5yaW5nc1tpXS5zZXF1ZW5jZSA9IDE7CiAJCWN0eC0+ cmluZ3NbaV0uZmVuY2VzID0gJmN0eC0+ZmVuY2VzW2FtZGdwdV9zY2hlZF9qb2JzICogaV07CkBA IC05Niw2ICs5OCw4IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9jdHhfZmluaShzdHJ1Y3QgYW1kZ3B1 X2N0eCAqY3R4KQogCQkJCSAgICAgICZjdHgtPnJpbmdzW2ldLmVudGl0eSk7CiAKIAlhbWRncHVf cXVldWVfbWdyX2ZpbmkoYWRldiwgJmN0eC0+cXVldWVfbWdyKTsKKworCW11dGV4X2Rlc3Ryb3ko JmN0eC0+bG9jayk7CiB9CiAKIHN0YXRpYyBpbnQgYW1kZ3B1X2N0eF9hbGxvYyhzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2FtZC1nZngK