From mboxrd@z Thu Jan 1 00:00:00 1970 From: Monk Liu Subject: [PATCH 13/18] drm/amdgpu:fix driver unloading bug Date: Mon, 18 Sep 2017 14:11:57 +0800 Message-ID: <1505715122-23904-14-git-send-email-Monk.Liu@amd.com> References: <1505715122-23904-1-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: <1505715122-23904-1-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: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Horace Chen , Monk Liu W1NXREVWLTEyNjYzMV0gLSBmaXggaHlwZXJ2aXNvciBzYXZlX3ZmIGZhaWwgdGhhdCBvY2N1cmVk CmFmdGVyIGRyaXZlciByZW1vdmVkOgoxLiBCZWNhdXNlIHRoZSBLSVEgYW5kIEtDUSB3ZXJlIG5v dCB1bW1hcHBlZCwgc2F2ZV92ZiB3aWxsIGZhaWwgaWYgZHJpdmVyIGZyZWVkIG1xZCBvZiBLSVEg YW5kIEtDUS4KMi4gS0lRIGNhbid0IGJlIHVubWFwcGVkIHNpbmNlIFJMQ1YgYWx3YXlzIG5lZWQg aXQsIHRoZSBib19mcmVlIG9uIEtJUSBzaG91bGQgYmUgc2tpcHBlZAozLiBLQ1EgY2FuIGJlIHVu bWFwcGVkLCBhbmQgc2hvdWxkIGJlIHVubWFwcGVkIGR1cmluZyBod19maW5pLAo0LiBSTENWIHN0 aWxsIG5lZWQgdG8gYWNjZXNzIG90aGVyIG1jIGFkZHJlc3MgZnJvbSBzb21lIGh3IGV2ZW4gYWZ0 ZXIgZHJpdmVyIHVubG9hZGVkLAogICBTbyB3ZSBzaG91bGQgbm90IHVuYmluZCBnYXJ0IGZvciBW Ri4KCkNoYW5nZS1JZDogSTMyMDQ4N2E5YTg0OGY0MTQ4NGM1ZjhjYzExYmUzNGFjYTgwN2I0MjQK U2lnbmVkLW9mZi1ieTogSG9yYWNlIENoZW4gPGhvcmFjZS5jaGVuQGFtZC5jb20+ClNpZ25lZC1v ZmYtYnk6IE1vbmsgTGl1IDxNb25rLkxpdUBhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2dmeC5jICB8ICA1ICsrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4 X3Y5XzAuYyAgICB8IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiAzIGZpbGVz IGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMKaW5kZXggZjQzNzAwOC4uMmZlZTA3MSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2FydC5jCkBAIC0zOTQsNyArMzk0LDggQEAg aW50IGFtZGdwdV9nYXJ0X2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAgKi8KIHZv aWQgYW1kZ3B1X2dhcnRfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKLQlpZiAo YWRldi0+Z2FydC5yZWFkeSkgeworCS8qIGdhcnQgaXMgc3RpbGwgdXNlZCBieSBvdGhlciBodyB1 bmRlciBTUklPViwgZG9uJ3QgdW5iaW5kIGl0ICovCisJaWYgKGFkZXYtPmdhcnQucmVhZHkgJiYg IWFtZGdwdV9zcmlvdl92ZihhZGV2KSkgewogCQkvKiB1bmJpbmQgcGFnZXMgKi8KIAkJYW1kZ3B1 X2dhcnRfdW5iaW5kKGFkZXYsIDAsIGFkZXYtPmdhcnQubnVtX2NwdV9wYWdlcyk7CiAJfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dmeC5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dmeC5jCmluZGV4IDRmNmM2OGYuLmJmNjY1NmYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZnguYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Z4LmMKQEAgLTMwOSw2ICszMDks MTEgQEAgdm9pZCBhbWRncHVfZ2Z4X2NvbXB1dGVfbXFkX3N3X2Zpbmkoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiAJCQkJICAgICAgJnJpbmctPm1xZF9wdHIpOwogCX0KIAorCS8qIGRvbid0 IGRlYWxsb2NhdGUgS0lRIG1xZCBiZWNhdXNlIHRoZSBibyBpcyBzdGlsbCB1c2VkIGJ5IFJMQ1Yg ZXZlbgorCXRoZSBndWVzdCBWTSBpcyBzaHV0ZG93biAqLworCWlmIChhbWRncHVfc3Jpb3ZfdmYo YWRldikpCisJCXJldHVybjsKKwogCXJpbmcgPSAmYWRldi0+Z2Z4LmtpcS5yaW5nOwogCWtmcmVl KGFkZXYtPmdmeC5tZWMubXFkX2JhY2t1cFtBTURHUFVfTUFYX0NPTVBVVEVfUklOR1NdKTsKIAlh bWRncHVfYm9fZnJlZV9rZXJuZWwoJnJpbmctPm1xZF9vYmosCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjlfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ2Z4X3Y5XzAuYwppbmRleCA0NDk2MGIzLi5hNTc3YmJjIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjlfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dmeF92OV8wLmMKQEAgLTI4OTIsMTQgKzI4OTIsNzIgQEAgc3RhdGljIGludCBnZnhf djlfMF9od19pbml0KHZvaWQgKmhhbmRsZSkKIAlyZXR1cm4gcjsKIH0KIAorc3RhdGljIGludCBn ZnhfdjlfMF9rY3FfZGlzYWJsZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKmtpcV9yaW5nLHN0cnVjdCBh bWRncHVfcmluZyAqcmluZykKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGtpcV9y aW5nLT5hZGV2OworCXVpbnQzMl90IHNjcmF0Y2gsIHRtcCA9IDA7CisJaW50IHIsIGk7CisKKwly ID0gYW1kZ3B1X2dmeF9zY3JhdGNoX2dldChhZGV2LCAmc2NyYXRjaCk7CisJaWYgKHIpIHsKKwkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IHNjcmF0Y2ggcmVnICglZCkuXG4iLCByKTsKKwkJcmV0 dXJuIHI7CisJfQorCVdSRUczMihzY3JhdGNoLCAweENBRkVERUFEKTsKKworCXIgPSBhbWRncHVf cmluZ19hbGxvYyhraXFfcmluZywgMTApOworCWlmIChyKSB7CisJCURSTV9FUlJPUigiRmFpbGVk IHRvIGxvY2sgS0lRICglZCkuXG4iLCByKTsKKwkJYW1kZ3B1X2dmeF9zY3JhdGNoX2ZyZWUoYWRl diwgc2NyYXRjaCk7CisJCXJldHVybiByOworCX0KKworCS8qIHVubWFwIHF1ZXVlcyAqLworCWFt ZGdwdV9yaW5nX3dyaXRlKGtpcV9yaW5nLCBQQUNLRVQzKFBBQ0tFVDNfVU5NQVBfUVVFVUVTLCA0 KSk7CisJYW1kZ3B1X3Jpbmdfd3JpdGUoa2lxX3JpbmcsIC8qIFFfc2VsOiAwLCB2bWlkOiAwLCBl bmdpbmU6IDAsIG51bV9ROiAxICovCisJCQkJCQlQQUNLRVQzX1VOTUFQX1FVRVVFU19BQ1RJT04o MSkgfCAvKiBSRVNFVF9RVUVVRVMgKi8KKwkJCQkJCVBBQ0tFVDNfVU5NQVBfUVVFVUVTX1FVRVVF X1NFTCgwKSB8CisJCQkJCQlQQUNLRVQzX1VOTUFQX1FVRVVFU19FTkdJTkVfU0VMKDApIHwKKwkJ CQkJCVBBQ0tFVDNfVU5NQVBfUVVFVUVTX05VTV9RVUVVRVMoMSkpOworCWFtZGdwdV9yaW5nX3dy aXRlKGtpcV9yaW5nLCBQQUNLRVQzX1VOTUFQX1FVRVVFU19ET09SQkVMTF9PRkZTRVQwKHJpbmct PmRvb3JiZWxsX2luZGV4KSk7CisJYW1kZ3B1X3Jpbmdfd3JpdGUoa2lxX3JpbmcsIDApOworCWFt ZGdwdV9yaW5nX3dyaXRlKGtpcV9yaW5nLCAwKTsKKwlhbWRncHVfcmluZ193cml0ZShraXFfcmlu ZywgMCk7CisJLyogd3JpdGUgdG8gc2NyYXRjaCBmb3IgY29tcGxldGlvbiAqLworCWFtZGdwdV9y aW5nX3dyaXRlKGtpcV9yaW5nLCBQQUNLRVQzKFBBQ0tFVDNfU0VUX1VDT05GSUdfUkVHLCAxKSk7 CisJYW1kZ3B1X3Jpbmdfd3JpdGUoa2lxX3JpbmcsIChzY3JhdGNoIC0gUEFDS0VUM19TRVRfVUNP TkZJR19SRUdfU1RBUlQpKTsKKwlhbWRncHVfcmluZ193cml0ZShraXFfcmluZywgMHhERUFEQkVF Rik7CisJYW1kZ3B1X3JpbmdfY29tbWl0KGtpcV9yaW5nKTsKKworCWZvciAoaSA9IDA7IGkgPCBh ZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykgeworCQl0bXAgPSBSUkVHMzIoc2NyYXRjaCk7CisJCWlm ICh0bXAgPT0gMHhERUFEQkVFRikKKwkJCWJyZWFrOworCQlEUk1fVURFTEFZKDEpOworCX0KKwlp ZiAoaSA+PSBhZGV2LT51c2VjX3RpbWVvdXQpIHsKKwkJRFJNX0VSUk9SKCJLQ1EgZGlzYWJsZWQg ZmFpbGVkIChzY3JhdGNoKDB4JTA0WCk9MHglMDhYKVxuIiwgc2NyYXRjaCwgdG1wKTsKKwkJciA9 IC1FSU5WQUw7CisJfQorCWFtZGdwdV9nZnhfc2NyYXRjaF9mcmVlKGFkZXYsIHNjcmF0Y2gpOwor CXJldHVybiByOworfQorCisKIHN0YXRpYyBpbnQgZ2Z4X3Y5XzBfaHdfZmluaSh2b2lkICpoYW5k bGUpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKiloYW5kbGU7CisJaW50IGksIHI7CiAKIAlhbWRncHVfaXJxX3B1dChhZGV2LCAmYWRldi0+ Z2Z4LnByaXZfcmVnX2lycSwgMCk7CiAJYW1kZ3B1X2lycV9wdXQoYWRldiwgJmFkZXYtPmdmeC5w cml2X2luc3RfaXJxLCAwKTsKIAlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7Ci0JCXByX2Rl YnVnKCJGb3IgU1JJT1YgY2xpZW50LCBzaG91bGRuJ3QgZG8gYW55dGhpbmcuXG4iKTsKKwkJLyog ZGlzYWJsZSBLQ1EgdG8gYXZvaWQgQ1BDIHRvdWNoIG1lbW9yeSBub3QgdmFsaWQgYW55bW9yZSAq LworCQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+Z2Z4Lm51bV9jb21wdXRlX3JpbmdzOyBpKyspIHsK KwkJCXIgPSBnZnhfdjlfMF9rY3FfZGlzYWJsZSgmYWRldi0+Z2Z4LmtpcS5yaW5nLCAmYWRldi0+ Z2Z4LmNvbXB1dGVfcmluZ1tpXSk7CisJCQlpZiAocikKKwkJCQlyZXR1cm4gcjsKKwkJfQogCQly ZXR1cm4gMDsKIAl9CiAJZ2Z4X3Y5XzBfY3BfZW5hYmxlKGFkZXYsIGZhbHNlKTsKLS0gCjIuNy40 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4 IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK