From mboxrd@z Thu Jan 1 00:00:00 1970 From: jglisse@redhat.com Subject: [RFC PATCH 12/13] drm/nouveau: HMM area creation helpers for nouveau client Date: Fri, 9 Mar 2018 22:21:40 -0500 Message-ID: <20180310032141.6096-13-jglisse@redhat.com> References: <20180310032141.6096-1-jglisse@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180310032141.6096-1-jglisse@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org Cc: Ralph Campbell , Evgeny Baskakov , linux-mm@kvack.org, =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Ben Skeggs , John Hubbard List-Id: dri-devel@lists.freedesktop.org RnJvbTogSsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3NlQHJlZGhhdC5jb20+CgpIZWxwZXJzIHRvIGNy ZWF0ZSBhcmVhIG9mIHZpcnR1YWwgYWRkcmVzcyB1bmRlciBITU0gY29udHJvbCBmb3IgYSBub3V2 ZWF1CmNsaWVudC4gR1BVIGFjY2VzcyB0byBITU0gYXJlYSBhcmUgdmFsaWQgYXMgbG9uZyBhcyB0 aGUgaG9sZSB2bWEgZXhpc3QgaW4KdGhlIHByb2Nlc3MgdmlydHVhbCBhZGRyZXNzIHNwYWNlLgoK U2lnbmVkLW9mZi1ieTogSsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3NlQHJlZGhhdC5jb20+CkNjOiBC ZW4gU2tlZ2dzIDxic2tlZ2dzQHJlZGhhdC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbm91dmVhdV9obW0uYyB8IDI4ICsrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbm91dmVhdV9obW0uaCB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf dm1tLmMgfCA4MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbm91dmVhdV92bW0uaCB8IDEyICsrKysrCiA0IGZpbGVzIGNoYW5nZWQs IDEyNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9obW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfaG1tLmMKaW5k ZXggYTRjNmY2ODdmNmE4Li42ODBlMjliYmYzNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L25vdXZlYXVfaG1tLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91 dmVhdV9obW0uYwpAQCAtMjQ1LDYgKzI0NSwzMSBAQCBub3V2ZWF1X3ZtbV9zeW5jX3BhZ2V0YWJs ZXMoc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvciwKIAkJCSAgICB1bnNpZ25lZCBsb25nIHN0YXJ0 LAogCQkJICAgIHVuc2lnbmVkIGxvbmcgZW5kKQogeworCXN0cnVjdCBub3V2ZWF1X2htbSAqaG1t OworCXN0cnVjdCBub3V2ZWF1X2NsaSAqY2xpOworCisJaG1tID0gY29udGFpbmVyX29mKG1pcnJv ciwgc3RydWN0IG5vdXZlYXVfaG1tLCBtaXJyb3IpOworCWlmICghaG1tLT5ob2xlLnZtYSB8fCBo bW0tPmhvbGUuc3RhcnQgPT0gaG1tLT5ob2xlLmVuZCkKKwkJcmV0dXJuOworCisJLyogSWdub3Jl IGFyZWEgaW5zaWRlIGhvbGUgKi8KKwllbmQgPSBtaW4oZW5kLCBUQVNLX1NJWkUpOworCWlmIChz dGFydCA+PSBobW0tPmhvbGUuc3RhcnQgJiYgZW5kIDw9IGhtbS0+aG9sZS5lbmQpCisJCXJldHVy bjsKKwlpZiAoc3RhcnQgPCBobW0tPmhvbGUuc3RhcnQgJiYgZW5kID4gaG1tLT5ob2xlLnN0YXJ0 KSB7CisJCW5vdXZlYXVfdm1tX3N5bmNfcGFnZXRhYmxlcyhtaXJyb3IsIHVwZGF0ZSwgc3RhcnQs CisJCQkJCSAgICBobW0tPmhvbGUuc3RhcnQpOworCQlzdGFydCA9IGhtbS0+aG9sZS5lbmQ7CisJ fSBlbHNlIGlmIChzdGFydCA8IGhtbS0+aG9sZS5lbmQgJiYgc3RhcnQgPj0gaG1tLT5ob2xlLnN0 YXJ0KSB7CisJCXN0YXJ0ID0gaG1tLT5ob2xlLmVuZDsKKwl9CisJaWYgKGVuZCA8PSBzdGFydCkK KwkJcmV0dXJuOworCisJY2xpID0gY29udGFpbmVyX29mKGhtbSwgc3RydWN0IG5vdXZlYXVfY2xp LCBobW0pOworCW11dGV4X2xvY2soJmhtbS0+bXV0ZXgpOworCW52aWZfdm1tX2htbV91bm1hcCgm Y2xpLT52bW0udm1tLCBzdGFydCwgKGVuZCAtIHN0YXJ0KSA+PiBQQUdFX1NISUZUKTsKKwltdXRl eF91bmxvY2soJmhtbS0+bXV0ZXgpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGhtbV9taXJy b3Jfb3BzIG5vdXZlYXVfaG1tX21pcnJvcl9vcHMgPSB7CkBAIC0yNTQsNiArMjc5LDggQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBobW1fbWlycm9yX29wcyBub3V2ZWF1X2htbV9taXJyb3Jfb3BzID0g ewogdm9pZAogbm91dmVhdV9obW1fZmluaShzdHJ1Y3Qgbm91dmVhdV9jbGkgKmNsaSkKIHsKKwlz dHJ1Y3Qgbm91dmVhdV9obW0gKmhtbSA9ICZjbGktPmhtbTsKKwogCWlmICghY2xpLT5obW0uZW5h YmxlZCkKIAkJcmV0dXJuOwogCkBAIC0yNjIsNiArMjg5LDcgQEAgbm91dmVhdV9obW1fZmluaShz dHJ1Y3Qgbm91dmVhdV9jbGkgKmNsaSkKIAludmlmX29iamVjdF9maW5pKCZjbGktPmhtbS5ycGZi KTsKIAogCWhtbV9taXJyb3JfdW5yZWdpc3RlcigmY2xpLT5obW0ubWlycm9yKTsKKwludmlmX3Zt bV9obW1fZmluaSgmY2xpLT52bW0udm1tLCBobW0tPmhvbGUuc3RhcnQsIGhtbS0+aG9sZS5lbmQp OwogCW5vdXZlYXVfdm1tX3N5bmNfcGFnZXRhYmxlcygmY2xpLT5obW0ubWlycm9yLCBITU1fVVBE QVRFX0lOVkFMSURBVEUsCiAJCQkJICAgIFBBR0VfU0laRSwgVEFTS19TSVpFKTsKIH0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfaG1tLmggYi9kcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9ub3V2ZWF1X2htbS5oCmluZGV4IDQ3ZjMxY2Y4YWM1Ni4uYmM2OGRjZjA3 NDhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2htbS5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfaG1tLmgKQEAgLTMzLDYgKzMzLDcg QEAKICNpZiBkZWZpbmVkKENPTkZJR19ITU1fTUlSUk9SKSAmJiBkZWZpbmVkKENPTkZJR19ERVZJ Q0VfUFJJVkFURSkKIAogc3RydWN0IG5vdXZlYXVfaG1tIHsKKwlzdHJ1Y3Qgbm91dmVhdV92bW1f aG9sZSBob2xlOwogCXN0cnVjdCBudmlmX29iamVjdCBycGZiOwogCXN0cnVjdCBudmlmX25vdGlm eSBwZW5kaW5nOwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdm1tLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X3ZtbS5jCmluZGV4IGY1MzcxZDk2YjAwMy4uOGU2YzQ3YTk5ZWRiIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3ZtbS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdm1tLmMKQEAgLTExNSw2ICsxMTUsODkgQEAgbm91dmVh dV92bWFfbmV3KHN0cnVjdCBub3V2ZWF1X2JvICpudmJvLCBzdHJ1Y3Qgbm91dmVhdV92bW0gKnZt bSwKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50Cit2bW1faG9sZV9mYXVsdChzdHJ1Y3Qg dm1fZmF1bHQgKnZtZikKK3sKKwlyZXR1cm4gVk1fRkFVTFRfU0lHQlVTOworfQorCitzdGF0aWMg dm9pZAordm1tX2hvbGVfb3BlbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlzdHJ1 Y3Qgbm91dmVhdV9jbGkgKmNsaSA9IHZtYS0+dm1fcHJpdmF0ZV9kYXRhOworCXN0cnVjdCBub3V2 ZWF1X3ZtbV9ob2xlICpob2xlID0gJmNsaS0+aG1tLmhvbGU7CisKKwkvKgorCSAqIE5vIG5lZWQg Zm9yIGF0b21pYyB0aGlzIGhhcHBlbiB1bmRlciBtbWFwX3NlbSB3cml0ZSBsb2NrLiBNYWtlIHN1 cmUKKwkgKiB0aGlzIGFzc3VtcHRpb24gaG9sZHMgd2l0aCBhIEJVR19PTigpCisJICovCisJQlVH X09OKGRvd25fcmVhZF90cnlsb2NrKCZ2bWEtPnZtX21tLT5tbWFwX3NlbSkpOworCWhvbGUtPmNv dW50Kys7Cit9CisKK3N0YXRpYyB2b2lkCit2bW1faG9sZV9jbG9zZShzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYSkKK3sKKwlzdHJ1Y3Qgbm91dmVhdV9jbGkgKmNsaSA9IHZtYS0+dm1fcHJpdmF0 ZV9kYXRhOworCXN0cnVjdCBub3V2ZWF1X3ZtbV9ob2xlICpob2xlID0gJmNsaS0+aG1tLmhvbGU7 CisKKwkvKgorCSAqIE5vIG5lZWQgZm9yIGF0b21pYyB0aGlzIGhhcHBlbiB1bmRlciBtbWFwX3Nl bSB3cml0ZSBsb2NrIHdpdGggb25lCisJICogZXhjZXB0aW9uIHdoZW4gYSBwcm9jZXNzIGlzIGJl aW5nIGtpbGwgKGZyb20gZG9fZXhpdCgpKS4gRm9yIHRoYXQKKwkgKiByZWFzb25zIHdlIGRvbid0 IHRlc3Qgd2l0aCBCVUdfT04oKS4KKwkgKi8KKwlpZiAoKC0taG9sZS0+Y291bnQpIDw9IDApIHsK KwkJbm91dmVhdV9obW1fZmluaShjbGkpOworCQlob2xlLT52bWEgPSBOVUxMOworCX0KK30KKwor c3RhdGljIGludAordm1tX2hvbGVfYWNjZXNzKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1 bnNpZ25lZCBsb25nIGFkZHIsCisJCXZvaWQgKmJ1ZiwgaW50IGxlbiwgaW50IHdyaXRlKQorewor CXJldHVybiAtRUlPOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3Ry dWN0IHZtbV9ob2xlX3ZtX29wcyA9IHsKKwkuYWNjZXNzID0gdm1tX2hvbGVfYWNjZXNzLAorCS5j bG9zZSA9IHZtbV9ob2xlX2Nsb3NlLAorCS5mYXVsdCA9IHZtbV9ob2xlX2ZhdWx0LAorCS5vcGVu ID0gdm1tX2hvbGVfb3BlbiwKK307CisKK2ludAorbm91dmVhdV92bW1faG1tKHN0cnVjdCBub3V2 ZWF1X2NsaSAqY2xpLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKKwkJc3RydWN0IHZtX2FyZWFfc3RydWN0 ICp2bWEpCit7CisJc3RydWN0IG5vdXZlYXVfdm1tX2hvbGUgKmhvbGUgPSAmY2xpLT5obW0uaG9s ZTsKKwl1bnNpZ25lZCBsb25nIHNpemUgPSB2bWEtPnZtX2VuZCAtIHZtYS0+dm1fc3RhcnQ7CisJ dW5zaWduZWQgbG9uZyBwZ3NpemUgPSBzaXplID4+IFBBR0VfU0hJRlQ7CisJaW50IHJldDsKKwor CWlmICgodm1hLT52bV9wZ29mZiArIHBnc2l6ZSkgPiAoRFJNX0ZJTEVfUEFHRV9PRkZTRVQgKyAo NFVMIDw8IDMwKSkpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFjbGktPmhtbS5lbmFibGVk KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWhvbGUtPnZtYSA9IHZtYTsKKwlob2xlLT5jbGkgPSBj bGk7CisJaG9sZS0+ZmlsZSA9IGZpbGU7CisJaG9sZS0+c3RhcnQgPSB2bWEtPnZtX3N0YXJ0Owor CWhvbGUtPmVuZCA9IHZtYS0+dm1fZW5kOworCWhvbGUtPmNvdW50ID0gMTsKKworCXJldCA9IG52 aWZfdm1tX2htbV9pbml0KCZjbGktPnZtbS52bW0sIHZtYS0+dm1fc3RhcnQsIHZtYS0+dm1fZW5k KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJdm1hLT52bV9wcml2YXRlX2RhdGEgPSBj bGk7CisJdm1hLT52bV9vcHMgPSAmdm1tX2hvbGVfdm1fb3BzOworCXZtYS0+dm1fZmxhZ3MgfD0g Vk1fRE9OVEVYUEFORCB8IFZNX0RPTlREVU1QOworCXJldHVybiAwOworfQorCiB2b2lkCiBub3V2 ZWF1X3ZtbV9maW5pKHN0cnVjdCBub3V2ZWF1X3ZtbSAqdm1tKQogewpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV92bW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfdm1tLmgKaW5kZXggNWMzMWY0MzY3OGQzLi40M2QzMGZlYjMwNTcgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdm1tLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV92bW0uaApAQCAtMTMsNiArMTMsMTUgQEAgc3RydWN0 IG5vdXZlYXVfdm1hIHsKIAlzdHJ1Y3Qgbm91dmVhdV9tZW0gKm1lbTsKIH07CiAKK3N0cnVjdCBu b3V2ZWF1X3ZtbV9ob2xlIHsKKwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYTsKKwlzdHJ1Y3Qg bm91dmVhdV9jbGkgKmNsaTsKKwlzdHJ1Y3QgZmlsZSAqZmlsZTsKKwl1bnNpZ25lZCBsb25nIHN0 YXJ0OworCXVuc2lnbmVkIGxvbmcgZW5kOworCWludCBjb3VudDsKK307CisKIHN0cnVjdCBub3V2 ZWF1X3ZtYSAqbm91dmVhdV92bWFfZmluZChzdHJ1Y3Qgbm91dmVhdV9ibyAqLCBzdHJ1Y3Qgbm91 dmVhdV92bW0gKik7CiBpbnQgbm91dmVhdV92bWFfbmV3KHN0cnVjdCBub3V2ZWF1X2JvICosIHN0 cnVjdCBub3V2ZWF1X3ZtbSAqLAogCQkgICAgc3RydWN0IG5vdXZlYXVfdm1hICoqKTsKQEAgLTI2 LDYgKzM1LDkgQEAgc3RydWN0IG5vdXZlYXVfdm1tIHsKIAlzdHJ1Y3QgbnZrbV92bSAqdm07CiB9 OwogCitpbnQgbm91dmVhdV92bW1faG1tKHN0cnVjdCBub3V2ZWF1X2NsaSAqY2xpLCBzdHJ1Y3Qg ZmlsZSAqZmlsZSwKKwkJICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKKwogaW50IG5v dXZlYXVfdm1tX2luaXQoc3RydWN0IG5vdXZlYXVfY2xpICosIHMzMiBvY2xhc3MsIHN0cnVjdCBu b3V2ZWF1X3ZtbSAqKTsKIHZvaWQgbm91dmVhdV92bW1fZmluaShzdHJ1Y3Qgbm91dmVhdV92bW0g Kik7CiAjZW5kaWYKLS0gCjIuMTQuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==