From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Gmeiner Subject: [PATCH V5 08/25] drm/etnaviv: copy pmrs from userspace Date: Sun, 24 Sep 2017 15:15:26 +0200 Message-ID: <20170924131543.4066-9-christian.gmeiner@gmail.com> References: <20170924131543.4066-1-christian.gmeiner@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170924131543.4066-1-christian.gmeiner@gmail.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 Cc: linux+etnaviv@armlinux.org.uk, etnaviv@lists.freedesktop.org, cphealy@gmail.com List-Id: dri-devel@lists.freedesktop.org Q2hhbmdlcyBmcm9tIHYxIC0+IHYyOgotIHJlbmFtZWQgc3VibWl0X3BlcmZtb25fcmVxdWVzdCgp IHRvIHN1Ym1pdF9wZXJmbW9uX3ZhbGlkYXRlKCkKLSBleHRlbmRlZCBmbGFncyB2YWxpZGF0aW9u Ci0gYWRkZWQgY29tbWVudCBhYm91dCBvZmZzZXQgMAotIG1vdmVkIGFzc2lnbWVudCBvZiBjbWRi dWYtPm5yX3BtcnMgYmVsb3cgdGhlIGNvcHlfZnJvbV91c2VyIG9mIHRoZSBwbXJzLgoKQ2hhbmdl cyBmcm9tIHYyIC0+IHYzOgotIGZpeGVkIGZsYWdzIHZhbGlkYXRpb24KCkNoYW5nZXMgdjQgLT4g djUKLSBwYXNzIGNtZGJ1Zi0+ZXhlY19zdGF0ZSB0byBldG5hdml2X3BtX3JlcV92YWxpZGF0ZSgu LikKClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBHbWVpbmVyIDxjaHJpc3RpYW4uZ21laW5lckBn bWFpbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0 LmMgfCA2OSArKysrKysrKysrKysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNjcg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2 L2V0bmF2aXZfZ2VtX3N1Ym1pdC5jCmluZGV4IDljNTdiMTRkZmNiZi4uMzZhOWViZDI2ZjQ4IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYwpAQCAtMjEs NiArMjEsNyBAQAogI2luY2x1ZGUgImV0bmF2aXZfZHJ2LmgiCiAjaW5jbHVkZSAiZXRuYXZpdl9n cHUuaCIKICNpbmNsdWRlICJldG5hdml2X2dlbS5oIgorI2luY2x1ZGUgImV0bmF2aXZfcGVyZm1v bi5oIgogCiAvKgogICogQ21kc3RyZWFtIHN1Ym1pc3Npb246CkBAIC0yODMsNiArMjg0LDU0IEBA IHN0YXRpYyBpbnQgc3VibWl0X3JlbG9jKHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQgKnN1Ym1p dCwgdm9pZCAqc3RyZWFtLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHN1Ym1pdF9wZXJm bW9uX3ZhbGlkYXRlKHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQgKnN1Ym1pdCwKKwkJc3RydWN0 IGV0bmF2aXZfY21kYnVmICpjbWRidWYsCisJCWNvbnN0IHN0cnVjdCBkcm1fZXRuYXZpdl9nZW1f c3VibWl0X3BtciAqcG1ycywKKwkJdTMyIG5yX3BtcykKK3sKKwl1MzIgaTsKKworCWZvciAoaSA9 IDA7IGkgPCBucl9wbXM7IGkrKykgeworCQljb25zdCBzdHJ1Y3QgZHJtX2V0bmF2aXZfZ2VtX3N1 Ym1pdF9wbXIgKnIgPSBwbXJzICsgaTsKKwkJc3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdF9ibyAq Ym87CisJCWludCByZXQ7CisKKwkJcmV0ID0gc3VibWl0X2JvKHN1Ym1pdCwgci0+cmVhZF9pZHgs ICZibyk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCS8qIGF0IG9mZnNldCAwIGEg c2VxdWVuY2UgbnVtYmVyIGdldHMgc3RvcmVkIHVzZWQgZm9yIHVzZXJzcGFjZSBzeW5jICovCisJ CWlmIChyLT5yZWFkX29mZnNldCA9PSAwKSB7CisJCQlEUk1fRVJST1IoInBlcmZtb24gcmVxdWVz dDogb2Zmc2V0IGlzIDAiKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJaWYgKHItPnJl YWRfb2Zmc2V0ID49IGJvLT5vYmotPmJhc2Uuc2l6ZSAtIHNpemVvZih1MzIpKSB7CisJCQlEUk1f RVJST1IoInBlcmZtb24gcmVxdWVzdDogb2Zmc2V0ICV1IG91dHNpZGUgb2JqZWN0IiwgaSk7CisJ CQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWlmIChyLT5mbGFncyAmIH4oRVROQV9QTV9QUk9D RVNTX1BSRSB8IEVUTkFfUE1fUFJPQ0VTU19QT1NUKSkgeworCQkJRFJNX0VSUk9SKCJwZXJmbW9u IHJlcXVlc3Q6IGZsYWdzIGFyZSBub3QgdmFsaWQiKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9 CisKKwkJaWYgKGV0bmF2aXZfcG1fcmVxX3ZhbGlkYXRlKHIsIGNtZGJ1Zi0+ZXhlY19zdGF0ZSkp IHsKKwkJCURSTV9FUlJPUigicGVyZm1vbiByZXF1ZXN0OiBkb21haW4gb3Igc2lnbmFsIG5vdCB2 YWxpZCIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQljbWRidWYtPnBtcnNbaV0uZmxh Z3MgPSByLT5mbGFnczsKKwkJY21kYnVmLT5wbXJzW2ldLmRvbWFpbiA9IHItPmRvbWFpbjsKKwkJ Y21kYnVmLT5wbXJzW2ldLnNpZ25hbCA9IHItPnNpZ25hbDsKKwkJY21kYnVmLT5wbXJzW2ldLnNl cXVlbmNlID0gci0+c2VxdWVuY2U7CisJCWNtZGJ1Zi0+cG1yc1tpXS5vZmZzZXQgPSByLT5yZWFk X29mZnNldDsKKwkJY21kYnVmLT5wbXJzW2ldLmJvX3ZtYSA9IGV0bmF2aXZfZ2VtX3ZtYXAoJmJv LT5vYmotPmJhc2UpOworCX0KKworCXJldHVybiAwOworfQorCiBzdGF0aWMgdm9pZCBzdWJtaXRf Y2xlYW51cChzdHJ1Y3QgZXRuYXZpdl9nZW1fc3VibWl0ICpzdWJtaXQpCiB7CiAJdW5zaWduZWQg aTsKQEAgLTMwNiw2ICszNTUsNyBAQCBpbnQgZXRuYXZpdl9pb2N0bF9nZW1fc3VibWl0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJc3RydWN0IGV0bmF2aXZfZHJtX3ByaXZh dGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1fZXRuYXZpdl9nZW1fc3Vi bWl0ICphcmdzID0gZGF0YTsKIAlzdHJ1Y3QgZHJtX2V0bmF2aXZfZ2VtX3N1Ym1pdF9yZWxvYyAq cmVsb2NzOworCXN0cnVjdCBkcm1fZXRuYXZpdl9nZW1fc3VibWl0X3BtciAqcG1yczsKIAlzdHJ1 Y3QgZHJtX2V0bmF2aXZfZ2VtX3N1Ym1pdF9ibyAqYm9zOwogCXN0cnVjdCBldG5hdml2X2dlbV9z dWJtaXQgKnN1Ym1pdDsKIAlzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgKmNtZGJ1ZjsKQEAgLTM0Nywx MSArMzk3LDEyIEBAIGludCBldG5hdml2X2lvY3RsX2dlbV9zdWJtaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKIAkgKi8KIAlib3MgPSBrdm1hbGxvY19hcnJheShhcmdzLT5u cl9ib3MsIHNpemVvZigqYm9zKSwgR0ZQX0tFUk5FTCk7CiAJcmVsb2NzID0ga3ZtYWxsb2NfYXJy YXkoYXJncy0+bnJfcmVsb2NzLCBzaXplb2YoKnJlbG9jcyksIEdGUF9LRVJORUwpOworCXBtcnMg PSBrdm1hbGxvY19hcnJheShhcmdzLT5ucl9wbXJzLCBzaXplb2YoKnBtcnMpLCBHRlBfS0VSTkVM KTsKIAlzdHJlYW0gPSBrdm1hbGxvY19hcnJheSgxLCBhcmdzLT5zdHJlYW1fc2l6ZSwgR0ZQX0tF Uk5FTCk7CiAJY21kYnVmID0gZXRuYXZpdl9jbWRidWZfbmV3KGdwdS0+Y21kYnVmX3N1YmFsbG9j LAogCQkJCSAgICBBTElHTihhcmdzLT5zdHJlYW1fc2l6ZSwgOCkgKyA4LAotCQkJCSAgICBhcmdz LT5ucl9ib3MsIDApOwotCWlmICghYm9zIHx8ICFyZWxvY3MgfHwgIXN0cmVhbSB8fCAhY21kYnVm KSB7CisJCQkJICAgIGFyZ3MtPm5yX2JvcywgYXJncy0+bnJfcG1ycyk7CisJaWYgKCFib3MgfHwg IXJlbG9jcyB8fCAhcG1ycyB8fCAhc3RyZWFtIHx8ICFjbWRidWYpIHsKIAkJcmV0ID0gLUVOT01F TTsKIAkJZ290byBlcnJfc3VibWl0X2NtZHM7CiAJfQpAQCAtMzczLDYgKzQyNCwxNCBAQCBpbnQg ZXRuYXZpdl9pb2N0bF9nZW1fc3VibWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJCWdvdG8gZXJyX3N1Ym1pdF9jbWRzOwogCX0KIAorCXJldCA9IGNvcHlfZnJvbV91c2Vy KHBtcnMsIHU2NF90b191c2VyX3B0cihhcmdzLT5wbXJzKSwKKwkJCSAgICAgYXJncy0+bnJfcG1y cyAqIHNpemVvZigqcG1ycykpOworCWlmIChyZXQpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290 byBlcnJfc3VibWl0X2NtZHM7CisJfQorCWNtZGJ1Zi0+bnJfcG1ycyA9IGFyZ3MtPm5yX3BtcnM7 CisKIAlyZXQgPSBjb3B5X2Zyb21fdXNlcihzdHJlYW0sIHU2NF90b191c2VyX3B0cihhcmdzLT5z dHJlYW0pLAogCQkJICAgICBhcmdzLT5zdHJlYW1fc2l6ZSk7CiAJaWYgKHJldCkgewpAQCAtNDQx LDYgKzUwMCwxMCBAQCBpbnQgZXRuYXZpdl9pb2N0bF9nZW1fc3VibWl0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKKwlyZXQgPSBz dWJtaXRfcGVyZm1vbl92YWxpZGF0ZShzdWJtaXQsIGNtZGJ1ZiwgcG1ycywgYXJncy0+bnJfcG1y cyk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKIAltZW1jcHkoY21kYnVmLT52YWRkciwgc3Ry ZWFtLCBhcmdzLT5zdHJlYW1fc2l6ZSk7CiAJY21kYnVmLT51c2VyX3NpemUgPSBBTElHTihhcmdz LT5zdHJlYW1fc2l6ZSwgOCk7CiAKQEAgLTQ5NCw2ICs1NTcsOCBAQCBpbnQgZXRuYXZpdl9pb2N0 bF9nZW1fc3VibWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWt2ZnJl ZShib3MpOwogCWlmIChyZWxvY3MpCiAJCWt2ZnJlZShyZWxvY3MpOworCWlmIChwbXJzKQorCQlr dmZyZWUocG1ycyk7CiAKIAlyZXR1cm4gcmV0OwogfQotLSAKMi4xMy41CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK