From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH 1/2] drm/ttm: fix busy memory to fail other user v6 Date: Tue, 7 May 2019 17:36:41 +0800 Message-ID: <20190507093642.7859-1-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Christian.Koenig@amd.com, Prike.Liang@amd.com, dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org List-Id: amd-gfx.lists.freedesktop.org aGVhdnkgZ3B1IGpvYiBjb3VsZCBvY2N1cHkgbWVtb3J5IGxvbmcgdGltZSwgd2hpY2ggbGVhZCBv dGhlciB1c2VyIGZhaWwgdG8gZ2V0IG1lbW9yeS4KCmJhc2ljYWxseSBwaWNrIHVwIENocmlzdGlh biBpZGVhOgoKMS4gUmVzZXJ2ZSB0aGUgQk8gaW4gREMgdXNpbmcgYSB3d19tdXRleCB0aWNrZXQg KHRyaXZpYWwpLgoyLiBJZiB3ZSB0aGVuIHJ1biBpbnRvIHRoaXMgRUJVU1kgY29uZGl0aW9uIGlu IFRUTSBjaGVjayBpZiB0aGUgQk8gd2UgbmVlZCBtZW1vcnkgZm9yIChvciByYXRoZXIgdGhlIHd3 X211dGV4IG9mIGl0cyByZXNlcnZhdGlvbiBvYmplY3QpIGhhcyBhIHRpY2tldCBhc3NpZ25lZC4K My4gSWYgd2UgaGF2ZSBhIHRpY2tldCB3ZSBncmFiIGEgcmVmZXJlbmNlIHRvIHRoZSBmaXJzdCBC TyBvbiB0aGUgTFJVLCBkcm9wIHRoZSBMUlUgbG9jayBhbmQgdHJ5IHRvIGdyYWIgdGhlIHJlc2Vy dmF0aW9uIGxvY2sgd2l0aCB0aGUgdGlja2V0Lgo0LiBJZiBnZXR0aW5nIHRoZSByZXNlcnZhdGlv biBsb2NrIHdpdGggdGhlIHRpY2tldCBzdWNjZWVkZWQgd2UgY2hlY2sgaWYgdGhlIEJPIGlzIHN0 aWxsIHRoZSBmaXJzdCBvbmUgb24gdGhlIExSVSBpbiBxdWVzdGlvbiAodGhlIEJPIGNvdWxkIGhh dmUgbW92ZWQpLgo1LiBJZiB0aGUgQk8gaXMgc3RpbGwgdGhlIGZpcnN0IG9uZSBvbiB0aGUgTFJV IGluIHF1ZXN0aW9uIHdlIHRyeSB0byBldmljdCBpdCBhcyB3ZSB3b3VsZCBldmljdCBhbnkgb3Ro ZXIgQk8uCjYuIElmIGFueSBvZiB0aGUgIklmJ3MiIGFib3ZlIGZhaWwgd2UganVzdCBiYWNrIG9m ZiBhbmQgcmV0dXJuIC1FQlVTWS4KCnYyOiBmaXggc29tZSBtaW5vciBjaGVjawp2MzogYWRkcmVz cyBDaHJpc3RpYW4gdjIgY29tbWVudHMuCnY0OiBmaXggc29tZSBtaXNzaW5nCnY1OiBoYW5kbGUg Zmlyc3RfYm8gdW5sb2NrIGFuZCBib19nZXQvcHV0CnY2OiBhYnN0cmFjdCB1bmlmaWVkIGl0ZXJh dGUgZnVuY3Rpb24sIGFuZCBoYW5kbGUgYWxsIHBvc3NpYmxlIHVzZWNhc2Ugbm90IG9ubHkgcGlu bmVkIGJvLgoKQ2hhbmdlLUlkOiBJMjE0MjNmYjkyMmY4ODU0NjVmMTM4MzNjNDFkZjFlMTM0MzY0 YThlNwpTaWduZWQtb2ZmLWJ5OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgfCAxMTMgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5NyBpbnNlcnRpb25zKCspLCAxNiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jIGIv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwppbmRleCA4NTAyYjNlZDJkODguLmJiZjFkMTRk MDBhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCkBAIC03NjYsMTEgKzc2NiwxMyBAQCBFWFBPUlRfU1lN Qk9MKHR0bV9ib19ldmljdGlvbl92YWx1YWJsZSk7CiAgKiBiLiBPdGhlcndpc2UsIHRyeWxvY2sg aXQuCiAgKi8KIHN0YXRpYyBib29sIHR0bV9ib19ldmljdF9zd2Fwb3V0X2FsbG93YWJsZShzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAotCQkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpj dHgsIGJvb2wgKmxvY2tlZCkKKwkJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LCBib29s ICpsb2NrZWQsIGJvb2wgKmJ1c3kpCiB7CiAJYm9vbCByZXQgPSBmYWxzZTsKIAogCSpsb2NrZWQg PSBmYWxzZTsKKwlpZiAoYnVzeSkKKwkJKmJ1c3kgPSBmYWxzZTsKIAlpZiAoYm8tPnJlc3YgPT0g Y3R4LT5yZXN2KSB7CiAJCXJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChiby0+cmVzdik7 CiAJCWlmIChjdHgtPmZsYWdzICYgVFRNX09QVF9GTEFHX0FMTE9XX1JFU19FVklDVApAQCAtNzc5 LDM1ICs3ODEsNDUgQEAgc3RhdGljIGJvb2wgdHRtX2JvX2V2aWN0X3N3YXBvdXRfYWxsb3dhYmxl KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJfSBlbHNlIHsKIAkJKmxvY2tlZCA9IHJl c2VydmF0aW9uX29iamVjdF90cnlsb2NrKGJvLT5yZXN2KTsKIAkJcmV0ID0gKmxvY2tlZDsKKwkJ aWYgKCFyZXQgJiYgYnVzeSkKKwkJCSpidXN5ID0gdHJ1ZTsKIAl9CiAKIAlyZXR1cm4gcmV0Owog fQogCi1zdGF0aWMgaW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYsCi0JCQkgICAgICAgdWludDMyX3QgbWVtX3R5cGUsCi0JCQkgICAgICAgY29uc3Qgc3Ry dWN0IHR0bV9wbGFjZSAqcGxhY2UsCi0JCQkgICAgICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4 ICpjdHgpCitzdGF0aWMgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0KgordHRtX21lbV9maW5kX2V2 aXRhYmxlX2JvKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAorCQkJIHN0cnVjdCB0dG1fbWVt X3R5cGVfbWFuYWdlciAqbWFuLAorCQkJIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAor CQkJIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAorCQkJIHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqKmZpcnN0X2JvLAorCQkJIGJvb2wgKmxvY2tlZCkKIHsKLQlzdHJ1Y3QgdHRtX2Jv X2dsb2JhbCAqZ2xvYiA9IGJkZXYtPmdsb2I7Ci0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2Vy ICptYW4gPSAmYmRldi0+bWFuW21lbV90eXBlXTsKIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvID0gTlVMTDsKLQlib29sIGxvY2tlZCA9IGZhbHNlOwotCXVuc2lnbmVkIGk7Ci0JaW50IHJl dDsKKwlpbnQgaTsKIAotCXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOworCWlmIChmaXJzdF9i bykKKwkJKmZpcnN0X2JvID0gTlVMTDsKIAlmb3IgKGkgPSAwOyBpIDwgVFRNX01BWF9CT19QUklP UklUWTsgKytpKSB7CiAJCWxpc3RfZm9yX2VhY2hfZW50cnkoYm8sICZtYW4tPmxydVtpXSwgbHJ1 KSB7Ci0JCQlpZiAoIXR0bV9ib19ldmljdF9zd2Fwb3V0X2FsbG93YWJsZShibywgY3R4LCAmbG9j a2VkKSkKKwkJCWJvb2wgYnVzeSA9IGZhbHNlOworCQkJaWYgKCF0dG1fYm9fZXZpY3Rfc3dhcG91 dF9hbGxvd2FibGUoYm8sIGN0eCwgbG9ja2VkLAorCQkJCQkJCSAgICAmYnVzeSkpIHsKKwkJCQlp ZiAoZmlyc3RfYm8gJiYgISgqZmlyc3RfYm8pICYmIGJ1c3kpIHsKKwkJCQkJdHRtX2JvX2dldChi byk7CisJCQkJCSpmaXJzdF9ibyA9IGJvOworCQkJCX0KIAkJCQljb250aW51ZTsKKwkJCX0KIAog CQkJaWYgKHBsYWNlICYmICFiZGV2LT5kcml2ZXItPmV2aWN0aW9uX3ZhbHVhYmxlKGJvLAogCQkJ CQkJCQkgICAgICBwbGFjZSkpIHsKLQkJCQlpZiAobG9ja2VkKQorCQkJCWlmICgqbG9ja2VkKQog CQkJCQlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKGJvLT5yZXN2KTsKIAkJCQljb250aW51ZTsK IAkJCX0KKwogCQkJYnJlYWs7CiAJCX0KIApAQCAtODE4LDkgKzgzMCw2NiBAQCBzdGF0aWMgaW50 IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJCWJvID0g TlVMTDsKIAl9CiAKKwlyZXR1cm4gYm87Cit9CisKK3N0YXRpYyBpbnQgdHRtX21lbV9ldmljdF9m aXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKKwkJCSAgICAgICB1aW50MzJfdCBtZW1f dHlwZSwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKKwkJCSAgICAg ICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKK3sKKwlzdHJ1Y3QgdHRtX2JvX2dsb2Jh bCAqZ2xvYiA9IGJkZXYtPmdsb2I7CisJc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4g PSAmYmRldi0+bWFuW21lbV90eXBlXTsKKwlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0g TlVMTCwgKmZpcnN0X2JvID0gTlVMTDsKKwlib29sIGxvY2tlZCA9IGZhbHNlOworCWludCByZXQ7 CisKKwlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKKwlibyA9IHR0bV9tZW1fZmluZF9ldml0 YWJsZV9ibyhiZGV2LCBtYW4sIHBsYWNlLCBjdHgsICZmaXJzdF9ibywKKwkJCQkgICAgICAmbG9j a2VkKTsKIAlpZiAoIWJvKSB7CisJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBidXN5X2N0eDsK KwogCQlzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwotCQlyZXR1cm4gLUVCVVNZOworCQkv KiBjaGVjayBpZiBvdGhlciB1c2VyIG9jY3VweSBtZW1vcnkgdG9vIGxvbmcgdGltZSAqLworCQlp ZiAoIWZpcnN0X2JvIHx8ICFjdHggfHwgIWN0eC0+cmVzdiB8fCAhY3R4LT5yZXN2LT5sb2NrLmN0 eCkgeworCQkJaWYgKGZpcnN0X2JvKQorCQkJCXR0bV9ib19wdXQoZmlyc3RfYm8pOworCQkJcmV0 dXJuIC1FQlVTWTsKKwkJfQorCQlpZiAoZmlyc3RfYm8tPnJlc3YgPT0gY3R4LT5yZXN2KSB7CisJ CQl0dG1fYm9fcHV0KGZpcnN0X2JvKTsKKwkJCXJldHVybiAtRUJVU1k7CisJCX0KKwkJaWYgKGN0 eC0+aW50ZXJydXB0aWJsZSkKKwkJCXJldCA9IHd3X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgm Zmlyc3RfYm8tPnJlc3YtPmxvY2ssCisJCQkJCQkJICBjdHgtPnJlc3YtPmxvY2suY3R4KTsKKwkJ ZWxzZQorCQkJcmV0ID0gd3dfbXV0ZXhfbG9jaygmZmlyc3RfYm8tPnJlc3YtPmxvY2ssIGN0eC0+ cmVzdi0+bG9jay5jdHgpOworCQlpZiAocmV0KSB7CisJCQl0dG1fYm9fcHV0KGZpcnN0X2JvKTsK KwkJCXJldHVybiByZXQ7CisJCX0KKwkJc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7CisJCS8q IHByZXZpb3VzIGJ1c3kgcmVzdiBsb2NrIGlzIGhlbGQgYnkgYWJvdmUsIGlkbGUgbm93LAorCQkg KiBzbyBsZXQgdGhlbSBldmljdGFibGUuCisJCSAqLworCQlidXN5X2N0eC5pbnRlcnJ1cHRpYmxl ID0gY3R4LT5pbnRlcnJ1cHRpYmxlOworCQlidXN5X2N0eC5ub193YWl0X2dwdSAgID0gY3R4LT5u b193YWl0X2dwdTsKKwkJYnVzeV9jdHgucmVzdgkgICAgICAgPSBmaXJzdF9iby0+cmVzdjsKKwkJ YnVzeV9jdHguZmxhZ3MJICAgICAgID0gVFRNX09QVF9GTEFHX0FMTE9XX1JFU19FVklDVDsKKwor CQlibyA9IHR0bV9tZW1fZmluZF9ldml0YWJsZV9ibyhiZGV2LCBtYW4sIHBsYWNlLCAmYnVzeV9j dHgsIE5VTEwsCisJCQkJCSAgICAgICZsb2NrZWQpOworCQlpZiAoYm8gJiYgKGJvLT5yZXN2ID09 IGZpcnN0X2JvLT5yZXN2KSkKKwkJCWxvY2tlZCA9IHRydWU7CisJCWVsc2UgaWYgKGJvKQorCQkJ d3dfbXV0ZXhfdW5sb2NrKCZmaXJzdF9iby0+cmVzdi0+bG9jayk7CisJCWlmICghYm8pIHsKKwkJ CXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7CisJCQl0dG1fYm9fcHV0KGZpcnN0X2JvKTsK KwkJCXJldHVybiAtRUJVU1k7CisJCX0KIAl9CiAKIAlrcmVmX2dldCgmYm8tPmxpc3Rfa3JlZik7 CkBAIC04MjksMTEgKzg5OCwxNSBAQCBzdGF0aWMgaW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJCXJldCA9IHR0bV9ib19jbGVhbnVwX3JlZnMoYm8s IGN0eC0+aW50ZXJydXB0aWJsZSwKIAkJCQkJICBjdHgtPm5vX3dhaXRfZ3B1LCBsb2NrZWQpOwog CQlrcmVmX3B1dCgmYm8tPmxpc3Rfa3JlZiwgdHRtX2JvX3JlbGVhc2VfbGlzdCk7CisJCWlmIChm aXJzdF9ibykKKwkJCXR0bV9ib19wdXQoZmlyc3RfYm8pOwogCQlyZXR1cm4gcmV0OwogCX0KIAog CXR0bV9ib19kZWxfZnJvbV9scnUoYm8pOwogCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7 CisJaWYgKGZpcnN0X2JvKQorCQl0dG1fYm9fcHV0KGZpcnN0X2JvKTsKIAogCXJldCA9IHR0bV9i b19ldmljdChibywgY3R4KTsKIAlpZiAobG9ja2VkKSB7CkBAIC04OTksNiArOTcyLDEzIEBAIHN0 YXRpYyBpbnQgdHRtX2JvX21lbV9mb3JjZV9zcGFjZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAogewogCXN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7CiAJc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSAmYmRldi0+bWFuW21lbV90eXBlXTsKKwlzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggbmF0aXZlX2N0eCA9IHsKKwkJLmludGVycnVwdGlibGUgPSBm YWxzZSwKKwkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UsCisJCS5yZXN2ID0gYm8tPnJlc3YsCisJCS5m bGFncyA9IDAKKwl9OworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqZXZpY3RfY3R4ID0gY3R4 ID8gY3R4IDogJm5hdGl2ZV9jdHg7CiAJaW50IHJldDsKIAogCWRvIHsKQEAgLTkwNyw3ICs5ODcs NyBAQCBzdGF0aWMgaW50IHR0bV9ib19tZW1fZm9yY2Vfc3BhY2Uoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKIAkJCXJldHVybiByZXQ7CiAJCWlmIChtZW0tPm1tX25vZGUpCiAJCQlicmVh azsKLQkJcmV0ID0gdHRtX21lbV9ldmljdF9maXJzdChiZGV2LCBtZW1fdHlwZSwgcGxhY2UsIGN0 eCk7CisJCXJldCA9IHR0bV9tZW1fZXZpY3RfZmlyc3QoYmRldiwgbWVtX3R5cGUsIHBsYWNlLCBl dmljdF9jdHgpOwogCQlpZiAodW5saWtlbHkocmV0ICE9IDApKQogCQkJcmV0dXJuIHJldDsKIAl9 IHdoaWxlICgxKTsKQEAgLTE3ODQsNyArMTg2NCw4IEBAIGludCB0dG1fYm9fc3dhcG91dChzdHJ1 Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCiAJ c3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7CiAJZm9yIChpID0gMDsgaSA8IFRUTV9NQVhfQk9f UFJJT1JJVFk7ICsraSkgewogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmZ2xvYi0+c3dhcF9s cnVbaV0sIHN3YXApIHsKLQkJCWlmICh0dG1fYm9fZXZpY3Rfc3dhcG91dF9hbGxvd2FibGUoYm8s IGN0eCwgJmxvY2tlZCkpIHsKKwkJCWlmICh0dG1fYm9fZXZpY3Rfc3dhcG91dF9hbGxvd2FibGUo Ym8sIGN0eCwgJmxvY2tlZCwKKwkJCQkJCQkgICBOVUxMKSkgewogCQkJCXJldCA9IDA7CiAJCQkJ YnJlYWs7CiAJCQl9Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbA==