From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 3/9] drm/msm: Split msm_gem_get_iova into two steps Date: Wed, 7 Nov 2018 15:35:48 -0700 Message-ID: <20181107223554.27308-4-jcrouse@codeaurora.org> References: <20181107223554.27308-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181107223554.27308-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: bzwang-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, sam-uyr5N9Q2VtJg9hUCZPvPmw@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org U3BsaXQgdGhlIG9wZXJhdGlvbiBvZiBtc21fZ2VtX2dldF9pb3ZhIGludG8gdHdvIG9wZXJhdGlv bnM6CjEpIGFsbG9jYXRlIGFuIGlvdmEgYW5kIDIpIG1hcCAocGluKSB0aGUgYmFja2luZyBtZW1v cnkgaW50IHRoZQppb21tdS4gVGhpcyBpcyB0aGUgZmlyc3Qgc3RlcCB0b3dhcmQgYWxsb3dpbmcg bWVtb3J5IHBpbm5pbmcKdG8gb2NjdXIgaW5kZXBlbmRlbnRseSBvZiB0aGUgaW92YSBtYW5hZ2Vt ZW50LgoKU2lnbmVkLW9mZi1ieTogSm9yZGFuIENyb3VzZSA8amNyb3VzZUBjb2RlYXVyb3JhLm9y Zz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaCAgICAgfCAgMiArCiBkcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9nZW0uYyAgICAgfCA4MCArKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uaCAgICAgfCAgMSArCiBkcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9nZW1fdm1hLmMgfCA0NCArKysrKysrKysrKystLS0tLQogNCBmaWxl cyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2Rydi5oCmluZGV4IDNhMGYyMTE5MTI3Yi4uNjNiMjhiNjliMmFiIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9k cnYuaApAQCAtMjQxLDYgKzI0MSw4IEBAIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICptc21fYXRv bWljX3N0YXRlX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBtc21fYXRvbWlj X3N0YXRlX2NsZWFyKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiB2b2lkIG1zbV9h dG9taWNfc3RhdGVfZnJlZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogCitpbnQg bXNtX2dlbV9pbml0X3ZtYShzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICphc3BhY2UsCisJ CXN0cnVjdCBtc21fZ2VtX3ZtYSAqdm1hLCBpbnQgbnBhZ2VzKTsKIHZvaWQgbXNtX2dlbV91bm1h cF92bWEoc3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNlLAogCQlzdHJ1Y3QgbXNt X2dlbV92bWEgKnZtYSk7CiBpbnQgbXNtX2dlbV9tYXBfdm1hKHN0cnVjdCBtc21fZ2VtX2FkZHJl c3Nfc3BhY2UgKmFzcGFjZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dl bS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMKaW5kZXggZmY3NWU1NTdiNzA4Li4x ODlkN2YwZjFhYWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5jCkBAIC0zNTcsNTIgKzM1Nyw3NiBAQCBw dXRfaW92YShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIAl9CiB9CiAKLS8qIGdldCBpb3Zh LCB0YWtpbmcgYSByZWZlcmVuY2UuICBTaG91bGQgaGF2ZSBhIG1hdGNoaW5nIHB1dCAqLwotaW50 IG1zbV9nZW1fZ2V0X2lvdmEoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCitzdGF0aWMgaW50 IG1zbV9nZW1fZ2V0X2lvdmFfbG9ja2VkKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogCQlz dHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICphc3BhY2UsIHVpbnQ2NF90ICppb3ZhKQogewog CXN0cnVjdCBtc21fZ2VtX29iamVjdCAqbXNtX29iaiA9IHRvX21zbV9ibyhvYmopOwogCXN0cnVj dCBtc21fZ2VtX3ZtYSAqdm1hOwogCWludCByZXQgPSAwOwogCi0JbXV0ZXhfbG9jaygmbXNtX29i ai0+bG9jayk7Ci0KLQlpZiAoV0FSTl9PTihtc21fb2JqLT5tYWR2ICE9IE1TTV9NQURWX1dJTExO RUVEKSkgewotCQltdXRleF91bmxvY2soJm1zbV9vYmotPmxvY2spOwotCQlyZXR1cm4gLUVCVVNZ OwotCX0KKwlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJm1zbV9vYmotPmxvY2spKTsKIAogCXZt YSA9IGxvb2t1cF92bWEob2JqLCBhc3BhY2UpOwogCiAJaWYgKCF2bWEpIHsKLQkJc3RydWN0IHBh Z2UgKipwYWdlczsKLQogCQl2bWEgPSBhZGRfdm1hKG9iaiwgYXNwYWNlKTsKLQkJaWYgKElTX0VS Uih2bWEpKSB7Ci0JCQlyZXQgPSBQVFJfRVJSKHZtYSk7Ci0JCQlnb3RvIHVubG9jazsKLQkJfQor CQlpZiAoSVNfRVJSKHZtYSkpCisJCQlyZXR1cm4gUFRSX0VSUih2bWEpOwogCi0JCXBhZ2VzID0g Z2V0X3BhZ2VzKG9iaik7Ci0JCWlmIChJU19FUlIocGFnZXMpKSB7Ci0JCQlyZXQgPSBQVFJfRVJS KHBhZ2VzKTsKLQkJCWdvdG8gZmFpbDsKKwkJcmV0ID0gbXNtX2dlbV9pbml0X3ZtYShhc3BhY2Us IHZtYSwgb2JqLT5zaXplID4+IFBBR0VfU0hJRlQpOworCQlpZiAocmV0KSB7CisJCQlkZWxfdm1h KHZtYSk7CisJCQlyZXR1cm4gcmV0OwogCQl9Ci0KLQkJcmV0ID0gbXNtX2dlbV9tYXBfdm1hKGFz cGFjZSwgdm1hLCBtc21fb2JqLT5zZ3QsCi0JCQkJb2JqLT5zaXplID4+IFBBR0VfU0hJRlQpOwot CQlpZiAocmV0KQotCQkJZ290byBmYWlsOwogCX0KIAogCSppb3ZhID0gdm1hLT5pb3ZhOwotCi0J bXV0ZXhfdW5sb2NrKCZtc21fb2JqLT5sb2NrKTsKIAlyZXR1cm4gMDsKK30KKworc3RhdGljIGlu dCBtc21fZ2VtX3Bpbl9pb3ZhKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAorCQlzdHJ1Y3Qg bXNtX2dlbV9hZGRyZXNzX3NwYWNlICphc3BhY2UpCit7CisJc3RydWN0IG1zbV9nZW1fb2JqZWN0 ICptc21fb2JqID0gdG9fbXNtX2JvKG9iaik7CisJc3RydWN0IG1zbV9nZW1fdm1hICp2bWE7CisJ c3RydWN0IHBhZ2UgKipwYWdlczsKKworCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmbXNtX29i ai0+bG9jaykpOworCisJaWYgKFdBUk5fT04obXNtX29iai0+bWFkdiAhPSBNU01fTUFEVl9XSUxM TkVFRCkpCisJCXJldHVybiAtRUJVU1k7CisKKwl2bWEgPSBsb29rdXBfdm1hKG9iaiwgYXNwYWNl KTsKKwlpZiAoV0FSTl9PTighdm1hKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlwYWdlcyA9IGdl dF9wYWdlcyhvYmopOworCWlmIChJU19FUlIocGFnZXMpKQorCQlyZXR1cm4gUFRSX0VSUihwYWdl cyk7CisKKwlyZXR1cm4gbXNtX2dlbV9tYXBfdm1hKGFzcGFjZSwgdm1hLCBtc21fb2JqLT5zZ3Qs CisJCQlvYmotPnNpemUgPj4gUEFHRV9TSElGVCk7Cit9CisKKworLyogZ2V0IGlvdmEsIHRha2lu ZyBhIHJlZmVyZW5jZS4gIFNob3VsZCBoYXZlIGEgbWF0Y2hpbmcgcHV0ICovCitpbnQgbXNtX2dl bV9nZXRfaW92YShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKKwkJc3RydWN0IG1zbV9nZW1f YWRkcmVzc19zcGFjZSAqYXNwYWNlLCB1aW50NjRfdCAqaW92YSkKK3sKKwlzdHJ1Y3QgbXNtX2dl bV9vYmplY3QgKm1zbV9vYmogPSB0b19tc21fYm8ob2JqKTsKKwl1NjQgbG9jYWw7CisJaW50IHJl dDsKKworCW11dGV4X2xvY2soJm1zbV9vYmotPmxvY2spOworCisJcmV0ID0gbXNtX2dlbV9nZXRf aW92YV9sb2NrZWQob2JqLCBhc3BhY2UsICZsb2NhbCk7CisKKwlpZiAoIXJldCkKKwkJcmV0ID0g bXNtX2dlbV9waW5faW92YShvYmosIGFzcGFjZSk7CisKKwlpZiAoIXJldCkKKwkJKmlvdmEgPSBs b2NhbDsKIAotZmFpbDoKLQlkZWxfdm1hKHZtYSk7Ci11bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZt c21fb2JqLT5sb2NrKTsKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fZ2VtLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uaAppbmRleCBj NWQ5YmQzZTQ3YTguLjMyYzEzZTY1NTliNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZ2VtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmgKQEAgLTQxLDYg KzQxLDcgQEAgc3RydWN0IG1zbV9nZW1fdm1hIHsKIAl1aW50NjRfdCBpb3ZhOwogCXN0cnVjdCBt c21fZ2VtX2FkZHJlc3Nfc3BhY2UgKmFzcGFjZTsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7ICAg IC8qIG5vZGUgaW4gbXNtX2dlbV9vYmplY3Q6OnZtYXMgKi8KKwlib29sIG1hcHBlZDsKIH07CiAK IHN0cnVjdCBtc21fZ2VtX29iamVjdCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9nZW1fdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fdm1hLmMKaW5kZXgg NzA0YWU3ZTY5NTAwLi5jNGM0MmJmMGRiMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2dlbV92bWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fdm1hLmMK QEAgLTU1LDYgKzU1LDcgQEAgbXNtX2dlbV91bm1hcF92bWEoc3RydWN0IG1zbV9nZW1fYWRkcmVz c19zcGFjZSAqYXNwYWNlLAogCXNwaW5fdW5sb2NrKCZhc3BhY2UtPmxvY2spOwogCiAJdm1hLT5p b3ZhID0gMDsKKwl2bWEtPm1hcHBlZCA9IGZhbHNlOwogCiAJbXNtX2dlbV9hZGRyZXNzX3NwYWNl X3B1dChhc3BhY2UpOwogfQpAQCAtNjMsMTQgKzY0LDM3IEBAIGludAogbXNtX2dlbV9tYXBfdm1h KHN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3BhY2UgKmFzcGFjZSwKIAkJc3RydWN0IG1zbV9nZW1f dm1hICp2bWEsIHN0cnVjdCBzZ190YWJsZSAqc2d0LCBpbnQgbnBhZ2VzKQogewotCWludCByZXQ7 CisJdW5zaWduZWQgc2l6ZSA9IG5wYWdlcyA8PCBQQUdFX1NISUZUOworCWludCByZXQgPSAwOwog Ci0Jc3Bpbl9sb2NrKCZhc3BhY2UtPmxvY2spOwotCWlmIChXQVJOX09OKGRybV9tbV9ub2RlX2Fs bG9jYXRlZCgmdm1hLT5ub2RlKSkpIHsKLQkJc3Bpbl91bmxvY2soJmFzcGFjZS0+bG9jayk7CisJ aWYgKFdBUk5fT04oIXZtYS0+aW92YSkpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKHZtYS0+ bWFwcGVkKQogCQlyZXR1cm4gMDsKLQl9CiAKKwl2bWEtPm1hcHBlZCA9IHRydWU7CisKKwlpZiAo YXNwYWNlLT5tbXUpCisJCXJldCA9IGFzcGFjZS0+bW11LT5mdW5jcy0+bWFwKGFzcGFjZS0+bW11 LCB2bWEtPmlvdmEsIHNndCwKKwkJCQlzaXplLCBJT01NVV9SRUFEIHwgSU9NTVVfV1JJVEUpOwor CisJaWYgKHJldCkKKwkJdm1hLT5tYXBwZWQgPSBmYWxzZTsKKworCXJldHVybiByZXQ7Cit9CisK Ky8qIEluaXRpYWxpemUgYSBuZXcgdm1hIGFuZCBhbGxvY2F0ZSBhbiBpb3ZhIGZvciBpdCAqLwor aW50IG1zbV9nZW1faW5pdF92bWEoc3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNl LAorCQlzdHJ1Y3QgbXNtX2dlbV92bWEgKnZtYSwgaW50IG5wYWdlcykKK3sKKwlpbnQgcmV0Owor CisJaWYgKFdBUk5fT04odm1hLT5pb3ZhKSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCXNwaW5fbG9j aygmYXNwYWNlLT5sb2NrKTsKIAlyZXQgPSBkcm1fbW1faW5zZXJ0X25vZGUoJmFzcGFjZS0+bW0s ICZ2bWEtPm5vZGUsIG5wYWdlcyk7CiAJc3Bpbl91bmxvY2soJmFzcGFjZS0+bG9jayk7CiAKQEAg LTc4LDE3ICsxMDIsMTEgQEAgbXNtX2dlbV9tYXBfdm1hKHN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nf c3BhY2UgKmFzcGFjZSwKIAkJcmV0dXJuIHJldDsKIAogCXZtYS0+aW92YSA9IHZtYS0+bm9kZS5z dGFydCA8PCBQQUdFX1NISUZUOworCXZtYS0+bWFwcGVkID0gZmFsc2U7CiAKLQlpZiAoYXNwYWNl LT5tbXUpIHsKLQkJdW5zaWduZWQgc2l6ZSA9IG5wYWdlcyA8PCBQQUdFX1NISUZUOwotCQlyZXQg PSBhc3BhY2UtPm1tdS0+ZnVuY3MtPm1hcChhc3BhY2UtPm1tdSwgdm1hLT5pb3ZhLCBzZ3QsCi0J CQkJc2l6ZSwgSU9NTVVfUkVBRCB8IElPTU1VX1dSSVRFKTsKLQl9Ci0KLQkvKiBHZXQgYSByZWZl cmVuY2UgdG8gdGhlIGFzcGFjZSB0byBrZWVwIGl0IGFyb3VuZCAqLwogCWtyZWZfZ2V0KCZhc3Bh Y2UtPmtyZWYpOwogCi0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogc3RydWN0IG1zbV9n ZW1fYWRkcmVzc19zcGFjZSAqCi0tIAoyLjE4LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ZyZWVkcmVubwo=