From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emil Velikov Subject: [PATCH 3/5] drm/vmwgfx: use core drm to extend/check vmw_execbuf_ioctl Date: Wed, 22 May 2019 17:41:17 +0100 Message-ID: <20190522164119.24139-3-emil.l.velikov@gmail.com> References: <20190522164119.24139-1-emil.l.velikov@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5DB0F89BFD for ; Wed, 22 May 2019 16:42:46 +0000 (UTC) Received: by mail-wr1-x443.google.com with SMTP id g12so3056052wro.8 for ; Wed, 22 May 2019 09:42:46 -0700 (PDT) In-Reply-To: <20190522164119.24139-1-emil.l.velikov@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: Thomas Hellstrom , kernel@collabora.com, VMware Graphics List-Id: dri-devel@lists.freedesktop.org RnJvbTogRW1pbCBWZWxpa292IDxlbWlsLnZlbGlrb3ZAY29sbGFib3JhLmNvbT4KCkN1cnJlbnRs eSB2bXdfZXhlY2J1Zl9pb2N0bCgpIG9wZW4tY29kZXMgdGhlIHBlcm1pc3Npb24gY2hlY2tpbmcs IHNpemUKZXh0ZW5kaW5nIGFuZCBjb3B5aW5nIHRoYXQgaXMgYWxyZWFkeSBkb25lIGluIGNvcmUg ZHJtLgoKS2lsbCBhbGwgdGhlIGR1cGxpY2F0aW9uLCBhZGRpbmcgYSBmZXcgY29tbWVudHMgZm9y IGNsYXJpdHkuCgpDYzogIlZNd2FyZSBHcmFwaGljcyIgPGxpbnV4LWdyYXBoaWNzLW1haW50YWlu ZXJAdm13YXJlLmNvbT4KQ2M6IFRob21hcyBIZWxsc3Ryb20gPHRoZWxsc3Ryb21Adm13YXJlLmNv bT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KU2lnbmVkLW9mZi1ieTogRW1p bCBWZWxpa292IDxlbWlsLnZlbGlrb3ZAY29sbGFib3JhLmNvbT4KLS0tClRob21hcywgVk13YXJl IHRlYW0sCgpQbGVhc2UgZ2l2ZSB0aGlzIHNvbWUgdGVzdGluZyBvbiB5b3VyIGVuZC4gSSd2ZSBv bmx5IHRlc3RlZCBpdCBhZ2FpbnN0Cm1lc2EtbWFzdGVyLgoKVGhhbmtzCkVtaWwKLS0tCiBkcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYyAgICAgfCAxMiArLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oICAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMgfCA1MiArKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAz IGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKaW5kZXggZDNmMTA4ZjdlNTJkLi4yY2I2YWUyMTllNDMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCkBAIC0xODYsNyArMTg2LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyB2bXdfaW9jdGxzW10gPSB7CiAJCSAgICAg IERSTV9SRU5ERVJfQUxMT1cpLAogCVZNV19JT0NUTF9ERUYoVk1XX1JFRl9TVVJGQUNFLCB2bXdf c3VyZmFjZV9yZWZlcmVuY2VfaW9jdGwsCiAJCSAgICAgIERSTV9BVVRIIHwgRFJNX1JFTkRFUl9B TExPVyksCi0JVk1XX0lPQ1RMX0RFRihWTVdfRVhFQ0JVRiwgTlVMTCwgRFJNX0FVVEggfAorCVZN V19JT0NUTF9ERUYoVk1XX0VYRUNCVUYsIHZtd19leGVjYnVmX2lvY3RsLCBEUk1fQVVUSCB8CiAJ CSAgICAgIERSTV9SRU5ERVJfQUxMT1cpLAogCVZNV19JT0NUTF9ERUYoVk1XX0ZFTkNFX1dBSVQs IHZtd19mZW5jZV9vYmpfd2FpdF9pb2N0bCwKIAkJICAgICAgRFJNX1JFTkRFUl9BTExPVyksCkBA IC0xMTQwLDE1ICsxMTQwLDcgQEAgc3RhdGljIGxvbmcgdm13X2dlbmVyaWNfaW9jdGwoc3RydWN0 IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCiAJCQkmdm13X2lvY3Rsc1tuciAtIERSTV9D T01NQU5EX0JBU0VdOwogCiAJCWlmIChuciA9PSBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1ZNV19F WEVDQlVGKSB7Ci0JCQlyZXQgPSAobG9uZykgZHJtX2lvY3RsX3Blcm1pdChpb2N0bC0+ZmxhZ3Ms IGZpbGVfcHJpdik7Ci0JCQlpZiAodW5saWtlbHkocmV0ICE9IDApKQotCQkJCXJldHVybiByZXQ7 Ci0KLQkJCWlmICh1bmxpa2VseSgoY21kICYgKElPQ19JTiB8IElPQ19PVVQpKSAhPSBJT0NfSU4p KQotCQkJCWdvdG8gb3V0X2lvX2VuY29kaW5nOwotCi0JCQlyZXR1cm4gKGxvbmcpIHZtd19leGVj YnVmX2lvY3RsKGRldiwgYXJnLCBmaWxlX3ByaXYsCi0JCQkJCQkJX0lPQ19TSVpFKGNtZCkpOwor CQkJcmV0dXJuIGlvY3RsX2Z1bmMoZmlscCwgY21kLCBhcmcpOwogCQl9IGVsc2UgaWYgKG5yID09 IERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVk1XX1VQREFURV9MQVlPVVQpIHsKIAkJCWlmICghZHJt X2lzX2N1cnJlbnRfbWFzdGVyKGZpbGVfcHJpdikgJiYKIAkJCSAgICAhY2FwYWJsZShDQVBfU1lT X0FETUlOKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmgKaW5kZXggOWJlMjE3NmNjMjYw Li5mNWJmYWM4NWY3OTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCkBAIC05MTAs OCArOTEwLDggQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqdm13X3BpdGVyX3BhZ2Uoc3Ry dWN0IHZtd19waXRlciAqdml0ZXIpCiAgKiBDb21tYW5kIHN1Ym1pc3Npb24gLSB2bXdnZnhfZXhl Y2J1Zi5jCiAgKi8KIAotZXh0ZXJuIGludCB2bXdfZXhlY2J1Zl9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGRhdGEsCi0JCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2LCBzaXplX3Qgc2l6ZSk7CitleHRlcm4gaW50IHZtd19leGVjYnVmX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgICAgIHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2KTsKIGV4dGVybiBpbnQgdm13X2V4ZWNidWZfcHJvY2VzcyhzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdiwKIAkJCSAgICAgICBzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 LAogCQkJICAgICAgIHZvaWQgX191c2VyICp1c2VyX2NvbW1hbmRzLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1Zi5jIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfZXhlY2J1Zi5jCmluZGV4IDJmZjdiYTA0ZDhjOC4uNzY3ZTJiOTk2MThkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1Zi5jCkBAIC0zOTc3LDU0ICszOTc3 LDQwIEBAIHZvaWQgdm13X2V4ZWNidWZfcmVsZWFzZV9waW5uZWRfYm8oc3RydWN0IHZtd19wcml2 YXRlICpkZXZfcHJpdikKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5jbWRidWZfbXV0ZXgpOwog fQogCi1pbnQgdm13X2V4ZWNidWZfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWdu ZWQgbG9uZyBkYXRhLAotCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgc2l6ZV90 IHNpemUpCitpbnQgdm13X2V4ZWNidWZfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwKKwkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCiB7CiAJc3RydWN0 IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IHZtd19wcml2KGRldik7Ci0Jc3RydWN0IGRybV92bXdf ZXhlY2J1Zl9hcmcgYXJnOworCXN0cnVjdCBkcm1fdm13X2V4ZWNidWZfYXJnICphcmcgPSBkYXRh OwogCWludCByZXQ7Ci0Jc3RhdGljIGNvbnN0IHNpemVfdCBjb3B5X29mZnNldFtdID0gewotCQlv ZmZzZXRvZihzdHJ1Y3QgZHJtX3Ztd19leGVjYnVmX2FyZywgY29udGV4dF9oYW5kbGUpLAotCQlz aXplb2Yoc3RydWN0IGRybV92bXdfZXhlY2J1Zl9hcmcpfTsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpp bl9mZW5jZSA9IE5VTEw7CiAKLQlpZiAodW5saWtlbHkoc2l6ZSA8IGNvcHlfb2Zmc2V0WzBdKSkg ewotCQlWTVdfREVCVUdfVVNFUigiSW52YWxpZCBjb21tYW5kIHNpemUsIGlvY3RsICVkXG4iLAot CQkJICAgICAgIERSTV9WTVdfRVhFQ0JVRik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlm IChjb3B5X2Zyb21fdXNlcigmYXJnLCAodm9pZCBfX3VzZXIgKikgZGF0YSwgY29weV9vZmZzZXRb MF0pICE9IDApCi0JCXJldHVybiAtRUZBVUxUOwotCiAJLyoKIAkgKiBFeHRlbmQgdGhlIGlvY3Rs IGFyZ3VtZW50IHdoaWxlIG1haW50YWluaW5nIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotCSAq IFdlIHRha2UgZGlmZmVyZW50IGNvZGUgcGF0aHMgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiBh cmcudmVyc2lvbi4KKwkgKiBXZSB0YWtlIGRpZmZlcmVudCBjb2RlIHBhdGhzIGRlcGVuZGluZyBv biB0aGUgdmFsdWUgb2YgYXJnLT52ZXJzaW9uLgorCSAqCisJICogTm90ZTogVGhlIGlvY3RsIGFy Z3VtZW50IGlzIGV4dGVuZGVkIGFuZCB6ZXJvcGFkZGVkIGJ5IGNvcmUgRFJNLgogCSAqLwotCWlm ICh1bmxpa2VseShhcmcudmVyc2lvbiA+IERSTV9WTVdfRVhFQ0JVRl9WRVJTSU9OIHx8Ci0JCSAg ICAgYXJnLnZlcnNpb24gPT0gMCkpIHsKKwlpZiAodW5saWtlbHkoYXJnLT52ZXJzaW9uID4gRFJN X1ZNV19FWEVDQlVGX1ZFUlNJT04gfHwKKwkJICAgICBhcmctPnZlcnNpb24gPT0gMCkpIHsKIAkJ Vk1XX0RFQlVHX1VTRVIoIkluY29ycmVjdCBleGVjYnVmIHZlcnNpb24uXG4iKTsKIAkJcmV0dXJu IC1FSU5WQUw7CiAJfQogCi0JaWYgKGFyZy52ZXJzaW9uID4gMSAmJgotCSAgICBjb3B5X2Zyb21f dXNlcigmYXJnLmNvbnRleHRfaGFuZGxlLAotCQkJICAgKHZvaWQgX191c2VyICopIChkYXRhICsg Y29weV9vZmZzZXRbMF0pLAotCQkJICAgY29weV9vZmZzZXRbYXJnLnZlcnNpb24gLSAxXSAtIGNv cHlfb2Zmc2V0WzBdKSAhPSAwKQotCQlyZXR1cm4gLUVGQVVMVDsKLQotCXN3aXRjaCAoYXJnLnZl cnNpb24pIHsKKwlzd2l0Y2ggKGFyZy0+dmVyc2lvbikgewogCWNhc2UgMToKLQkJYXJnLmNvbnRl eHRfaGFuZGxlID0gKHVpbnQzMl90KSAtMTsKKwkJLyogRm9yIHYxIGNvcmUgRFJNIGhhdmUgZXh0 ZW5kZWQgKyB6ZXJvcGFkZGVkIHRoZSBkYXRhICovCisJCWFyZy0+Y29udGV4dF9oYW5kbGUgPSAo dWludDMyX3QpIC0xOwogCQlicmVhazsKIAljYXNlIDI6CiAJZGVmYXVsdDoKKwkJLyogRm9yIHYy IGFuZCBsYXRlciBjb3JlIERSTSB3b3VsZCBoYXZlIGNvcnJlY3RseSBjb3BpZWQgaXQgKi8KIAkJ YnJlYWs7CiAJfQogCiAJLyogSWYgaW1wb3J0ZWQgYSBmZW5jZSBGRCBmcm9tIGVsc2V3aGVyZSwg dGhlbiB3YWl0IG9uIGl0ICovCi0JaWYgKGFyZy5mbGFncyAmIERSTV9WTVdfRVhFQ0JVRl9GTEFH X0lNUE9SVF9GRU5DRV9GRCkgewotCQlpbl9mZW5jZSA9IHN5bmNfZmlsZV9nZXRfZmVuY2UoYXJn LmltcG9ydGVkX2ZlbmNlX2ZkKTsKKwlpZiAoYXJnLT5mbGFncyAmIERSTV9WTVdfRVhFQ0JVRl9G TEFHX0lNUE9SVF9GRU5DRV9GRCkgeworCQlpbl9mZW5jZSA9IHN5bmNfZmlsZV9nZXRfZmVuY2Uo YXJnLT5pbXBvcnRlZF9mZW5jZV9mZCk7CiAKIAkJaWYgKCFpbl9mZW5jZSkgewogCQkJVk1XX0RF QlVHX1VTRVIoIkNhbm5vdCBnZXQgaW1wb3J0ZWQgZmVuY2VcbiIpOwpAQCAtNDA0MSwxMSArNDAy NywxMSBAQCBpbnQgdm13X2V4ZWNidWZfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5z aWduZWQgbG9uZyBkYXRhLAogCQlyZXR1cm4gcmV0OwogCiAJcmV0ID0gdm13X2V4ZWNidWZfcHJv Y2VzcyhmaWxlX3ByaXYsIGRldl9wcml2LAotCQkJCSAgKHZvaWQgX191c2VyICopKHVuc2lnbmVk IGxvbmcpYXJnLmNvbW1hbmRzLAotCQkJCSAgTlVMTCwgYXJnLmNvbW1hbmRfc2l6ZSwgYXJnLnRo cm90dGxlX3VzLAotCQkJCSAgYXJnLmNvbnRleHRfaGFuZGxlLAotCQkJCSAgKHZvaWQgX191c2Vy ICopKHVuc2lnbmVkIGxvbmcpYXJnLmZlbmNlX3JlcCwKLQkJCQkgIE5VTEwsIGFyZy5mbGFncyk7 CisJCQkJICAodm9pZCBfX3VzZXIgKikodW5zaWduZWQgbG9uZylhcmctPmNvbW1hbmRzLAorCQkJ CSAgTlVMTCwgYXJnLT5jb21tYW5kX3NpemUsIGFyZy0+dGhyb3R0bGVfdXMsCisJCQkJICBhcmct PmNvbnRleHRfaGFuZGxlLAorCQkJCSAgKHZvaWQgX191c2VyICopKHVuc2lnbmVkIGxvbmcpYXJn LT5mZW5jZV9yZXAsCisJCQkJICBOVUxMLCBhcmctPmZsYWdzKTsKIAogCXR0bV9yZWFkX3VubG9j aygmZGV2X3ByaXYtPnJlc2VydmF0aW9uX3NlbSk7CiAJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkK LS0gCjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs