From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felix Kuehling Subject: [PATCH 1/2] drm/ttm: Implement vm_operations_struct.access v2 Date: Mon, 17 Jul 2017 23:57:02 -0400 Message-ID: <1500350223-4913-1-git-send-email-Felix.Kuehling@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: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Felix Kuehling List-Id: dri-devel@lists.freedesktop.org QWxsb3dzIGdkYiB0byBhY2Nlc3MgY29udGVudHMgb2YgdXNlciBtb2RlIG1hcHBlZCBCT3MuIFN5 c3RlbSBtZW1vcnkKaXMgaGFuZGxlZCBieSBUVE0gdXNpbmcga21hcC4gT3RoZXIgbWVtb3J5IHBv b2xzIHJlcXVpcmUgYSBuZXcgZHJpdmVyCmNhbGxiYWNrIGluIHR0bV9ib19kcml2ZXIuCgp2MjoK KiBrbWFwIG9ubHkgb25lIHBhZ2UgYXQgYSB0aW1lCiogc3dhcCBpbiBCTyBpZiBuZWVkZWQKKiBt YWtlIGRyaXZlciBjYWxsYmFjayBtb3JlIGdlbmVyaWMgdG8gaGFuZGxlIHByaXZhdGUgbWVtb3J5 IHBvb2xzCiogZG9jdW1lbnQgY2FsbGJhY2sgcmV0dXJuIHZhbHVlCiogV0FSTl9PTiAtPiBXQVJO X09OX09OQ0UKClNpZ25lZC1vZmYtYnk6IEZlbGl4IEt1ZWhsaW5nIDxGZWxpeC5LdWVobGluZ0Bh bWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgfCA3OSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogaW5jbHVkZS9kcm0vdHRtL3R0bV9i b19kcml2ZXIuaCB8IDE3ICsrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym9fdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKaW5kZXggOWY1M2RmOS4u OTQ1OTg1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCkBAIC0yOTQsMTAgKzI5NCw4NyBAQCBz dGF0aWMgdm9pZCB0dG1fYm9fdm1fY2xvc2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJ dm1hLT52bV9wcml2YXRlX2RhdGEgPSBOVUxMOwogfQogCitzdGF0aWMgaW50IHR0bV9ib192bV9h Y2Nlc3Nfa21hcChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAorCQkJCSB1bnNpZ25lZCBs b25nIG9mZnNldCwKKwkJCQkgdm9pZCAqYnVmLCBpbnQgbGVuLCBpbnQgd3JpdGUpCit7CisJdW5z aWduZWQgbG9uZyBwYWdlID0gb2Zmc2V0ID4+IFBBR0VfU0hJRlQ7CisJdW5zaWduZWQgbG9uZyBi eXRlc19sZWZ0ID0gbGVuOworCWludCByZXQ7CisKKwkvKiBDb3B5IGEgcGFnZSBhdCBhIHRpbWUs IHRoYXQgd2F5IG5vIGV4dHJhIHZpcnR1YWwgYWRkcmVzcworCSAqIG1hcHBpbmcgaXMgbmVlZGVk CisJICovCisJb2Zmc2V0IC09IHBhZ2UgPDwgUEFHRV9TSElGVDsKKwlkbyB7CisJCXVuc2lnbmVk IGxvbmcgYnl0ZXMgPSBtaW4oYnl0ZXNfbGVmdCwgUEFHRV9TSVpFIC0gb2Zmc2V0KTsKKwkJc3Ry dWN0IHR0bV9ib19rbWFwX29iaiBtYXA7CisJCXZvaWQgKnB0cjsKKwkJYm9vbCBpc19pb21lbTsK KworCQlyZXQgPSB0dG1fYm9fa21hcChibywgcGFnZSwgMSwgJm1hcCk7CisJCWlmIChyZXQpCisJ CQlyZXR1cm4gcmV0OworCisJCXB0ciA9ICh1aW50OF90ICopdHRtX2ttYXBfb2JqX3ZpcnR1YWwo Jm1hcCwgJmlzX2lvbWVtKSArIG9mZnNldDsKKwkJV0FSTl9PTl9PTkNFKGlzX2lvbWVtKTsKKwkJ aWYgKHdyaXRlKQorCQkJbWVtY3B5KHB0ciwgYnVmLCBieXRlcyk7CisJCWVsc2UKKwkJCW1lbWNw eShidWYsIHB0ciwgYnl0ZXMpOworCQl0dG1fYm9fa3VubWFwKCZtYXApOworCisJCXBhZ2UrKzsK KwkJYnl0ZXNfbGVmdCAtPSBieXRlczsKKwkJb2Zmc2V0ID0gMDsKKwl9IHdoaWxlIChieXRlc19s ZWZ0KTsKKworCXJldHVybiBsZW47Cit9CisKK3N0YXRpYyBpbnQgdHRtX2JvX3ZtX2FjY2Vzcyhz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyLAorCQkJICAgIHZv aWQgKmJ1ZiwgaW50IGxlbiwgaW50IHdyaXRlKQoreworCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0g KGFkZHIpIC0gdm1hLT52bV9zdGFydDsKKwlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0g dm1hLT52bV9wcml2YXRlX2RhdGE7CisJaW50IHJldDsKKworCWlmIChsZW4gPCAxIHx8IChvZmZz ZXQgKyBsZW4pID4+IFBBR0VfU0hJRlQgPiBiby0+bnVtX3BhZ2VzKQorCQlyZXR1cm4gLUVJTzsK KworCXJldCA9IHR0bV9ib19yZXNlcnZlKGJvLCB0cnVlLCBmYWxzZSwgTlVMTCk7CisJaWYgKHJl dCkKKwkJcmV0dXJuIHJldDsKKworCXN3aXRjaChiby0+bWVtLm1lbV90eXBlKSB7CisJY2FzZSBU VE1fUExfU1lTVEVNOgorCQlpZiAodW5saWtlbHkoYm8tPnR0bS0+cGFnZV9mbGFncyAmIFRUTV9Q QUdFX0ZMQUdfU1dBUFBFRCkpIHsKKwkJCXJldCA9IHR0bV90dF9zd2FwaW4oYm8tPnR0bSk7CisJ CQlpZiAodW5saWtlbHkocmV0ICE9IDApKQorCQkJCXJldHVybiByZXQ7CisJCX0KKwkJLyogZmFs bCB0aHJvdWdoICovCisJY2FzZSBUVE1fUExfVFQ6CisJCXJldCA9IHR0bV9ib192bV9hY2Nlc3Nf a21hcChibywgb2Zmc2V0LCBidWYsIGxlbiwgd3JpdGUpOworCQlicmVhazsKKwlkZWZhdWx0Ogor CQlpZiAoYm8tPmJkZXYtPmRyaXZlci0+YWNjZXNzX21lbW9yeSkKKwkJCXJldCA9IGJvLT5iZGV2 LT5kcml2ZXItPmFjY2Vzc19tZW1vcnkoCisJCQkJYm8sIG9mZnNldCwgYnVmLCBsZW4sIHdyaXRl KTsKKwkJZWxzZQorCQkJcmV0ID0gLUVJTzsKKwl9CisKKwl0dG1fYm9fdW5yZXNlcnZlKGJvKTsK KworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19z dHJ1Y3QgdHRtX2JvX3ZtX29wcyA9IHsKIAkuZmF1bHQgPSB0dG1fYm9fdm1fZmF1bHQsCiAJLm9w ZW4gPSB0dG1fYm9fdm1fb3BlbiwKLQkuY2xvc2UgPSB0dG1fYm9fdm1fY2xvc2UKKwkuY2xvc2Ug PSB0dG1fYm9fdm1fY2xvc2UsCisJLmFjY2VzcyA9IHR0bV9ib192bV9hY2Nlc3MKIH07CiAKIHN0 YXRpYyBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKnR0bV9ib192bV9sb29rdXAoc3RydWN0IHR0 bV9ib19kZXZpY2UgKmJkZXYsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2Ry aXZlci5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAppbmRleCA2YmJkMzRkLi4w NDM4MGJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCisrKyBi L2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKQEAgLTQ3MSw2ICs0NzEsMjMgQEAgc3Ry dWN0IHR0bV9ib19kcml2ZXIgewogCSAqLwogCXVuc2lnbmVkIGxvbmcgKCppb19tZW1fcGZuKShz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQkJCSAgICB1bnNpZ25lZCBsb25nIHBhZ2Vf b2Zmc2V0KTsKKworCS8qKgorCSAqIFJlYWQvd3JpdGUgbWVtb3J5IGJ1ZmZlcnMgZm9yIHB0cmFj ZSBhY2Nlc3MKKwkgKgorCSAqIEBibzogdGhlIEJPIHRvIGFjY2VzcworCSAqIEBvZmZzZXQ6IHRo ZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIEJPCisJICogQGJ1ZjogcG9pbnRlciB0byBz b3VyY2UvZGVzdGluYXRpb24gYnVmZmVyCisJICogQGxlbjogbnVtYmVyIG9mIGJ5dGVzIHRvIGNv cHkKKwkgKiBAd3JpdGU6IHdoZXRoZXIgdG8gcmVhZCAoMCkgZnJvbSBvciB3cml0ZSAobm9uLTAp IHRvIEJPCisJICoKKwkgKiBJZiBzdWNjZXNzZnVsLCB0aGlzIGZ1bmN0aW9uIHNob3VsZCByZXR1 cm4gdGhlIG51bWJlciBvZgorCSAqIGJ5dGVzIGNvcGllZCwgLUVJTyBvdGhlcndpc2UuIElmIHRo ZSBudW1iZXIgb2YgYnl0ZXMKKwkgKiByZXR1cm5lZCBpcyA8IGxlbiwgdGhlIGZ1bmN0aW9uIG1h eSBiZSBjYWxsZWQgYWdhaW4gd2l0aAorCSAqIHRoZSByZW1haW5kZXIgb2YgdGhlIGJ1ZmZlciB0 byBjb3B5LgorCSAqLworCWludCAoKmFjY2Vzc19tZW1vcnkpKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8sIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAorCQkJICAgICB2b2lkICpidWYsIGludCBs ZW4sIGludCB3cml0ZSk7CiB9OwogCiAvKioKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2FtZC1nZngK