From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emil Velikov Subject: [PATCH libdrm v2 04/10] xf86drm: Allocate drmDevicePtr's on stack Date: Fri, 29 Jun 2018 16:20:17 +0100 Message-ID: <20180629152017.29843-1-emil.l.velikov@gmail.com> References: <20180625173626.8046-4-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-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id EBF938811A for ; Fri, 29 Jun 2018 15:22:28 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id w137-v6so2606231wmw.1 for ; Fri, 29 Jun 2018 08:22:28 -0700 (PDT) In-Reply-To: <20180625173626.8046-4-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: Robert Foss , emil.l.velikov@gmail.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogRW1pbCBWZWxpa292IDxlbWlsLnZlbGlrb3ZAY29sbGFib3JhLmNvbT4KCkN1cnJlbnRs eSB3ZSBkeW5hbWljYWxseSBhbGxvY2F0ZSAxNiBwb2ludGVycyBhbmQgcmVhbGxvY2F0ZSBtb3Jl IGFzCm5lZWRlZC4KCkluc3RlYWQsIGFsbG9jYXRlIHRoZSBtYXhpbXVtIG51bWJlciAoMjU2KSBv biBzdGFjayAtIHRoZSBudW1iZXIgaXMKc21hbGwgZW5vdWdoIGFuZCBpcyB1bmxpa2VseSB0byBj aGFuZ2UgaW4gdGhlIGZvcmVzZWVhYmxlIGZ1dHVyZS4KClRoaXMgYWxsb3dzIHVzIHRvIHNpbXBs aWZ5IHRoZSBlcnJvciBoYW5kbGluZyBhbmQgZXZlbiBzaGVkIGEgZmV3IGJ5dGVzCm9mZiB0aGUg ZmluYWwgYmluYXJ5LgoKdjI6CiAtIGFkZCBhIGRlZmluZSAmIGRlc2NyaXB0aW9uIGJlaGluZCB0 aGUgbWFnaWMgMjU2IChSb2IpCiAtIHJlcG9ydCBlcnJvciB0byBzdHJlcnIgYW5kIHNraXAgd2hl biBvdmVyIDI1NiBkZXZpY2Ugbm9kZXMgKFJvYikKCkNjOiBSb2JlcnQgRm9zcyA8cm9iZXJ0LmZv c3NAY29sbGFib3JhLmNvbT4KU2lnbmVkLW9mZi1ieTogRW1pbCBWZWxpa292IDxlbWlsLnZlbGlr b3ZAY29sbGFib3JhLmNvbT4KVGVzdGVkLWJ5OiBSb2JlcnQgRm9zcyA8cm9iZXJ0LmZvc3NAY29s bGFib3JhLmNvbT4gKHYxKQpSZXZpZXdlZC1ieTogUm9iZXJ0IEZvc3MgPHJvYmVydC5mb3NzQGNv bGxhYm9yYS5jb20+ICh2MSkKUmV2aWV3ZWQtYnk6IEVyaWMgRW5nZXN0cm9tIDxlcmljQGVuZ2Vz dHJvbS5jaD4gKHYxKQotLS0KIHhmODZkcm0uYyB8IDc5ICsrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNl cnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94Zjg2ZHJtLmMgYi94Zjg2 ZHJtLmMKaW5kZXggMTE0Y2Y4NTUuLjAyZGEzZTFmIDEwMDY0NAotLS0gYS94Zjg2ZHJtLmMKKysr IGIveGY4NmRybS5jCkBAIC0zNzY2LDYgKzM3NjYsMTMgQEAgZHJtX2RldmljZV9oYXNfcmRldihk cm1EZXZpY2VQdHIgZGV2aWNlLCBkZXZfdCBmaW5kX3JkZXYpCiAgICAgcmV0dXJuIGZhbHNlOwog fQogCisvKgorICogVGhlIGtlcm5lbCBkcm0gY29yZSBoYXMgYSBudW1iZXIgb2YgcGxhY2VzIHRo YXQgYXNzdW1lIG1heGltdW0gb2YKKyAqIDN4NjQgZGV2aWNlcyBub2Rlcy4gVGhhdCdzIDY0IGZv ciBlYWNoIG9mIHByaW1hcnksIGNvbnRyb2wgYW5kCisgKiByZW5kZXIgbm9kZXMuIFJvdW5kZWQg aXQgdXAgdG8gMjU2IGZvciBzaW1wbGljaXR5LgorICovCisjZGVmaW5lIE1BWF9EUk1fTk9ERVMg MjU2CisKIC8qKgogICogR2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcGVuZWQgZHJtIGRldmlj ZQogICoKQEAgLTM4NDYsNyArMzg1Myw3IEBAIGludCBkcm1HZXREZXZpY2UyKGludCBmZCwgdWlu dDMyX3QgZmxhZ3MsIGRybURldmljZVB0ciAqZGV2aWNlKQogCiAgICAgcmV0dXJuIDA7CiAjZWxz ZQotICAgIGRybURldmljZVB0ciAqbG9jYWxfZGV2aWNlczsKKyAgICBkcm1EZXZpY2VQdHIgbG9j YWxfZGV2aWNlc1tNQVhfRFJNX05PREVTXTsKICAgICBkcm1EZXZpY2VQdHIgZDsKICAgICBESVIg KnN5c2RpcjsKICAgICBzdHJ1Y3QgZGlyZW50ICpkZW50OwpAQCAtMzg1NCw3ICszODYxLDYgQEAg aW50IGRybUdldERldmljZTIoaW50IGZkLCB1aW50MzJfdCBmbGFncywgZHJtRGV2aWNlUHRyICpk ZXZpY2UpCiAgICAgaW50IHN1YnN5c3RlbV90eXBlOwogICAgIGludCBtYWosIG1pbjsKICAgICBp bnQgcmV0LCBpLCBub2RlX2NvdW50OwotICAgIGludCBtYXhfY291bnQgPSAxNjsKICAgICBkZXZf dCBmaW5kX3JkZXY7CiAKICAgICBpZiAoZHJtX2RldmljZV92YWxpZGF0ZV9mbGFncyhmbGFncykp CkBAIC0zODc3LDE1ICszODgzLDkgQEAgaW50IGRybUdldERldmljZTIoaW50IGZkLCB1aW50MzJf dCBmbGFncywgZHJtRGV2aWNlUHRyICpkZXZpY2UpCiAgICAgaWYgKHN1YnN5c3RlbV90eXBlIDwg MCkKICAgICAgICAgcmV0dXJuIHN1YnN5c3RlbV90eXBlOwogCi0gICAgbG9jYWxfZGV2aWNlcyA9 IGNhbGxvYyhtYXhfY291bnQsIHNpemVvZihkcm1EZXZpY2VQdHIpKTsKLSAgICBpZiAobG9jYWxf ZGV2aWNlcyA9PSBOVUxMKQotICAgICAgICByZXR1cm4gLUVOT01FTTsKLQogICAgIHN5c2RpciA9 IG9wZW5kaXIoRFJNX0RJUl9OQU1FKTsKLSAgICBpZiAoIXN5c2RpcikgewotICAgICAgICByZXQg PSAtZXJybm87Ci0gICAgICAgIGdvdG8gZnJlZV9sb2NhbHM7Ci0gICAgfQorICAgIGlmICghc3lz ZGlyKQorICAgICAgICByZXR1cm4gLWVycm5vOwogCiAgICAgaSA9IDA7CiAgICAgd2hpbGUgKChk ZW50ID0gcmVhZGRpcihzeXNkaXIpKSkgewpAQCAtMzg5MywxNiArMzg5MywxMiBAQCBpbnQgZHJt R2V0RGV2aWNlMihpbnQgZmQsIHVpbnQzMl90IGZsYWdzLCBkcm1EZXZpY2VQdHIgKmRldmljZSkK ICAgICAgICAgaWYgKHJldCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChp ID49IG1heF9jb3VudCkgewotICAgICAgICAgICAgZHJtRGV2aWNlUHRyICp0ZW1wOwotCi0gICAg ICAgICAgICBtYXhfY291bnQgKz0gMTY7Ci0gICAgICAgICAgICB0ZW1wID0gcmVhbGxvYyhsb2Nh bF9kZXZpY2VzLCBtYXhfY291bnQgKiBzaXplb2YoZHJtRGV2aWNlUHRyKSk7Ci0gICAgICAgICAg ICBpZiAoIXRlbXApCi0gICAgICAgICAgICAgICAgZ290byBmcmVlX2RldmljZXM7Ci0gICAgICAg ICAgICBsb2NhbF9kZXZpY2VzID0gdGVtcDsKKyAgICAgICAgaWYgKGkgPj0gTUFYX0RSTV9OT0RF UykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJNb3JlIHRoYW4gJWQgZHJtIG5vZGVz IGRldGVjdGVkLiAiCisgICAgICAgICAgICAgICAgICAgICJQbGVhc2UgcmVwb3J0IGEgYnVnIC0g dGhhdCBzaG91bGQgbm90IGhhcHBlbi5cbiIKKyAgICAgICAgICAgICAgICAgICAgIlNraXBwaW5n IGV4dHJhIG5vZGVzXG4iLCBNQVhfRFJNX05PREVTKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAg ICAgICB9Ci0KICAgICAgICAgbG9jYWxfZGV2aWNlc1tpXSA9IGQ7CiAgICAgICAgIGkrKzsKICAg ICB9CkBAIC0zOTIxLDE4ICszOTE3LDkgQEAgaW50IGRybUdldERldmljZTIoaW50IGZkLCB1aW50 MzJfdCBmbGFncywgZHJtRGV2aWNlUHRyICpkZXZpY2UpCiAgICAgfQogCiAgICAgY2xvc2VkaXIo c3lzZGlyKTsKLSAgICBmcmVlKGxvY2FsX2RldmljZXMpOwogICAgIGlmICgqZGV2aWNlID09IE5V TEwpCiAgICAgICAgIHJldHVybiAtRU5PREVWOwogICAgIHJldHVybiAwOwotCi1mcmVlX2Rldmlj ZXM6Ci0gICAgZHJtRnJlZURldmljZXMobG9jYWxfZGV2aWNlcywgaSk7Ci0gICAgY2xvc2VkaXIo c3lzZGlyKTsKLQotZnJlZV9sb2NhbHM6Ci0gICAgZnJlZShsb2NhbF9kZXZpY2VzKTsKLSAgICBy ZXR1cm4gcmV0OwogI2VuZGlmCiB9CiAKQEAgLTM5NjgsMjUgKzM5NTUsMTggQEAgaW50IGRybUdl dERldmljZShpbnQgZmQsIGRybURldmljZVB0ciAqZGV2aWNlKQogICovCiBpbnQgZHJtR2V0RGV2 aWNlczIodWludDMyX3QgZmxhZ3MsIGRybURldmljZVB0ciBkZXZpY2VzW10sIGludCBtYXhfZGV2 aWNlcykKIHsKLSAgICBkcm1EZXZpY2VQdHIgKmxvY2FsX2RldmljZXM7CisgICAgZHJtRGV2aWNl UHRyIGxvY2FsX2RldmljZXNbTUFYX0RSTV9OT0RFU107CiAgICAgZHJtRGV2aWNlUHRyIGRldmlj ZTsKICAgICBESVIgKnN5c2RpcjsKICAgICBzdHJ1Y3QgZGlyZW50ICpkZW50OwogICAgIGludCBy ZXQsIGksIG5vZGVfY291bnQsIGRldmljZV9jb3VudDsKLSAgICBpbnQgbWF4X2NvdW50ID0gMTY7 CiAKICAgICBpZiAoZHJtX2RldmljZV92YWxpZGF0ZV9mbGFncyhmbGFncykpCiAgICAgICAgIHJl dHVybiAtRUlOVkFMOwogCi0gICAgbG9jYWxfZGV2aWNlcyA9IGNhbGxvYyhtYXhfY291bnQsIHNp emVvZihkcm1EZXZpY2VQdHIpKTsKLSAgICBpZiAobG9jYWxfZGV2aWNlcyA9PSBOVUxMKQotICAg ICAgICByZXR1cm4gLUVOT01FTTsKLQogICAgIHN5c2RpciA9IG9wZW5kaXIoRFJNX0RJUl9OQU1F KTsKLSAgICBpZiAoIXN5c2RpcikgewotICAgICAgICByZXQgPSAtZXJybm87Ci0gICAgICAgIGdv dG8gZnJlZV9sb2NhbHM7Ci0gICAgfQorICAgIGlmICghc3lzZGlyKQorICAgICAgICByZXR1cm4g LWVycm5vOwogCiAgICAgaSA9IDA7CiAgICAgd2hpbGUgKChkZW50ID0gcmVhZGRpcihzeXNkaXIp KSkgewpAQCAtMzk5NCwxNiArMzk3NCwxMiBAQCBpbnQgZHJtR2V0RGV2aWNlczIodWludDMyX3Qg ZmxhZ3MsIGRybURldmljZVB0ciBkZXZpY2VzW10sIGludCBtYXhfZGV2aWNlcykKICAgICAgICAg aWYgKHJldCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChpID49IG1heF9j b3VudCkgewotICAgICAgICAgICAgZHJtRGV2aWNlUHRyICp0ZW1wOwotCi0gICAgICAgICAgICBt YXhfY291bnQgKz0gMTY7Ci0gICAgICAgICAgICB0ZW1wID0gcmVhbGxvYyhsb2NhbF9kZXZpY2Vz LCBtYXhfY291bnQgKiBzaXplb2YoZHJtRGV2aWNlUHRyKSk7Ci0gICAgICAgICAgICBpZiAoIXRl bXApCi0gICAgICAgICAgICAgICAgZ290byBmcmVlX2RldmljZXM7Ci0gICAgICAgICAgICBsb2Nh bF9kZXZpY2VzID0gdGVtcDsKKyAgICAgICAgaWYgKGkgPj0gTUFYX0RSTV9OT0RFUykgeworICAg ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJNb3JlIHRoYW4gJWQgZHJtIG5vZGVzIGRldGVjdGVk LiAiCisgICAgICAgICAgICAgICAgICAgICJQbGVhc2UgcmVwb3J0IGEgYnVnIC0gdGhhdCBzaG91 bGQgbm90IGhhcHBlbi5cbiIKKyAgICAgICAgICAgICAgICAgICAgIlNraXBwaW5nIGV4dHJhIG5v ZGVzXG4iLCBNQVhfRFJNX05PREVTKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0K ICAgICAgICAgbG9jYWxfZGV2aWNlc1tpXSA9IGRldmljZTsKICAgICAgICAgaSsrOwogICAgIH0K QEAgLTQwMjUsMTYgKzQwMDEsNyBAQCBpbnQgZHJtR2V0RGV2aWNlczIodWludDMyX3QgZmxhZ3Ms IGRybURldmljZVB0ciBkZXZpY2VzW10sIGludCBtYXhfZGV2aWNlcykKICAgICB9CiAKICAgICBj bG9zZWRpcihzeXNkaXIpOwotICAgIGZyZWUobG9jYWxfZGV2aWNlcyk7CiAgICAgcmV0dXJuIGRl dmljZV9jb3VudDsKLQotZnJlZV9kZXZpY2VzOgotICAgIGRybUZyZWVEZXZpY2VzKGxvY2FsX2Rl dmljZXMsIGkpOwotICAgIGNsb3NlZGlyKHN5c2Rpcik7Ci0KLWZyZWVfbG9jYWxzOgotICAgIGZy ZWUobG9jYWxfZGV2aWNlcyk7Ci0gICAgcmV0dXJuIHJldDsKIH0KIAogLyoqCi0tIAoyLjE4LjAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=