From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 01/13] drm: allow property validation for refcnted props Date: Tue, 16 Dec 2014 18:05:29 -0500 Message-ID: <1418771141-16954-2-git-send-email-robdclark@gmail.com> References: <1418771141-16954-1-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qc0-f180.google.com (mail-qc0-f180.google.com [209.85.216.180]) by gabe.freedesktop.org (Postfix) with ESMTP id 3AD916E3F3 for ; Tue, 16 Dec 2014 15:05:52 -0800 (PST) Received: by mail-qc0-f180.google.com with SMTP id i8so11065255qcq.39 for ; Tue, 16 Dec 2014 15:05:51 -0800 (PST) In-Reply-To: <1418771141-16954-1-git-send-email-robdclark@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 List-Id: dri-devel@lists.freedesktop.org V2UgY2FuIGFscmVhZHkgaGF2ZSBvYmplY3QgcHJvcGVydGllcywgd2hpY2ggdGVjaG5pY2FsbHkg Y2FuIGJlIGZiJ3MuClN3aXRjaCB0aGUgcHJvcGVydHkgdmFsaWRhdGlvbiBsb2dpYyBvdmVyIHRv IGEgZ2V0L3B1dCBzdHlsZSBpbnRlcmZhY2UKc28gaXQgY2FuIHRha2UgYSByZWYgdG8gcmVmY250 J2Qgb2JqZWN0cywgYW5kIHRoZW4gZHJvcCB0aGF0IHJlZiBhZnRlcgp0aGUgZHJpdmVyIGhhcyBh IGNoYW5jZSB0byB0YWtlIGl0J3Mgb3duIHJlZi4KClNpZ25lZC1vZmYtYnk6IFJvYiBDbGFyayA8 cm9iZGNsYXJrQGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyB8IDU4 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCmlu ZGV4IDUyMTNkYTQuLjVlZTRiODggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0 Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCkBAIC00MTkzLDEyICs0MTkzLDIy IEBAIGludCBkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIH0KIEVYUE9SVF9TWU1CT0woZHJtX21vZGVfY29ubmVj dG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KTsKIAotc3RhdGljIGJvb2wgZHJtX3Byb3BlcnR5X2No YW5nZV9pc192YWxpZChzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKLQkJCQkJIHVpbnQ2 NF90IHZhbHVlKQorLyogU29tZSBwcm9wZXJ0aWVzIGNvdWxkIHJlZmVyIHRvIGR5bmFtaWMgcmVm Y250J2Qgb2JqZWN0cywgb3IgdGhpbmdzIHRoYXQKKyAqIG5lZWQgc3BlY2lhbCBsb2NraW5nIHRv IGhhbmRsZSBsaWZldGltZSBpc3N1ZXMgKGllLiB0byBlbnN1cmUgdGhlIHByb3AKKyAqIHZhbHVl IGRvZXNuJ3QgYmVjb21lIGludmFsaWQgcGFydCB3YXkgdGhyb3VnaCB0aGUgcHJvcGVydHkgdXBk YXRlIGR1ZSB0bworICogcmFjZSkuICBUaGUgdmFsdWUgcmV0dXJuZWQgYnkgcmVmZXJlbmNlIHZp YSAnb2JqJyBzaG91bGQgYmUgcGFzc2VkIGJhY2sKKyAqIHRvIGRybV9wcm9wZXJ0eV9jaGFuZ2Vf dmFsaWRfcHV0KCkgYWZ0ZXIgdGhlIHByb3BlcnR5IGlzIHNldCAoYW5kIHRoZQorICogb2JqZWN0 IHRvIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBhdHRhY2hlZCBoYXMgYSBjaGFuY2UgdG8gdGFrZSBp dCdzIG93bgorICogcmVmZXJlbmNlKS4KKyAqLworc3RhdGljIGJvb2wgZHJtX3Byb3BlcnR5X2No YW5nZV92YWxpZF9nZXQoc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCisJCQkJCSB1aW50 NjRfdCB2YWx1ZSwgc3RydWN0IGRybV9tb2RlX29iamVjdCAqKnJlZikKIHsKIAlpZiAocHJvcGVy dHktPmZsYWdzICYgRFJNX01PREVfUFJPUF9JTU1VVEFCTEUpCiAJCXJldHVybiBmYWxzZTsKIAor CSpyZWYgPSBOVUxMOworCiAJaWYgKGRybV9wcm9wZXJ0eV90eXBlX2lzKHByb3BlcnR5LCBEUk1f TU9ERV9QUk9QX1JBTkdFKSkgewogCQlpZiAodmFsdWUgPCBwcm9wZXJ0eS0+dmFsdWVzWzBdIHx8 IHZhbHVlID4gcHJvcGVydHktPnZhbHVlc1sxXSkKIAkJCXJldHVybiBmYWxzZTsKQEAgLTQyMTks MTkgKzQyMjksMjMgQEAgc3RhdGljIGJvb2wgZHJtX3Byb3BlcnR5X2NoYW5nZV9pc192YWxpZChz dHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKIAkJLyogT25seSB0aGUgZHJpdmVyIGtub3dz ICovCiAJCXJldHVybiB0cnVlOwogCX0gZWxzZSBpZiAoZHJtX3Byb3BlcnR5X3R5cGVfaXMocHJv cGVydHksIERSTV9NT0RFX1BST1BfT0JKRUNUKSkgewotCQlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0 ICpvYmo7CiAJCS8qIGEgemVybyB2YWx1ZSBmb3IgYW4gb2JqZWN0IHByb3BlcnR5IHRyYW5zbGF0 ZXMgdG8gbnVsbDogKi8KIAkJaWYgKHZhbHVlID09IDApCiAJCQlyZXR1cm4gdHJ1ZTsKLQkJLyoK LQkJICogTk9URTogdXNlIF9vYmplY3RfZmluZCgpIGRpcmVjdGx5IHRvIGJ5cGFzcyByZXN0cmlj dGlvbiBvbgotCQkgKiBsb29raW5nIHVwIHJlZmNudCdkIG9iamVjdHMgKGllLiBmYidzKS4gIEZv ciBhIHJlZmNudCdkCi0JCSAqIG9iamVjdCB0aGlzIGNvdWxkIHJhY2UgYWdhaW5zdCBvYmplY3Qg ZmluYWxpemF0aW9uLCBzbyBpdAotCQkgKiBzaW1wbHkgdGVsbHMgdXMgdGhhdCB0aGUgb2JqZWN0 ICp3YXMqIHZhbGlkLiAgV2hpY2ggaXMgZ29vZAotCQkgKiBlbm91Z2guCi0JCSAqLwotCQlvYmog PSBfb2JqZWN0X2ZpbmQocHJvcGVydHktPmRldiwgdmFsdWUsIHByb3BlcnR5LT52YWx1ZXNbMF0p OwotCQlyZXR1cm4gb2JqICE9IE5VTEw7CisKKwkJLyogaGFuZGxlIHJlZmNudCdkIG9iamVjdHMg c3BlY2lhbGx5OiAqLworCQlpZiAocHJvcGVydHktPnZhbHVlc1swXSA9PSBEUk1fTU9ERV9PQkpF Q1RfRkIpIHsKKwkJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOworCQkJZmIgPSBkcm1fZnJh bWVidWZmZXJfbG9va3VwKHByb3BlcnR5LT5kZXYsIHZhbHVlKTsKKwkJCWlmIChmYikgeworCQkJ CSpyZWYgPSAmZmItPmJhc2U7CisJCQkJcmV0dXJuIHRydWU7CisJCQl9IGVsc2UgeworCQkJCXJl dHVybiBmYWxzZTsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCXJldHVybiBfb2JqZWN0X2ZpbmQocHJv cGVydHktPmRldiwgdmFsdWUsIHByb3BlcnR5LT52YWx1ZXNbMF0pICE9IE5VTEw7CisJCX0KIAl9 IGVsc2UgewogCQlpbnQgaTsKIAkJZm9yIChpID0gMDsgaSA8IHByb3BlcnR5LT5udW1fdmFsdWVz OyBpKyspCkBAIC00MjQxLDYgKzQyNTUsMTggQEAgc3RhdGljIGJvb2wgZHJtX3Byb3BlcnR5X2No YW5nZV9pc192YWxpZChzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKIAl9CiB9CiAKK3N0 YXRpYyB2b2lkIGRybV9wcm9wZXJ0eV9jaGFuZ2VfdmFsaWRfcHV0KHN0cnVjdCBkcm1fcHJvcGVy dHkgKnByb3BlcnR5LAorCQlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpyZWYpCit7CisJaWYgKCFy ZWYpCisJCXJldHVybjsKKworCWlmIChkcm1fcHJvcGVydHlfdHlwZV9pcyhwcm9wZXJ0eSwgRFJN X01PREVfUFJPUF9PQkpFQ1QpKSB7CisJCWlmIChwcm9wZXJ0eS0+dmFsdWVzWzBdID09IERSTV9N T0RFX09CSkVDVF9GQikKKwkJCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShvYmpfdG9fZmIo cmVmKSk7CisJfQorfQorCiAvKioKICAqIGRybV9tb2RlX2Nvbm5lY3Rvcl9wcm9wZXJ0eV9zZXRf aW9jdGwgLSBzZXQgdGhlIGN1cnJlbnQgdmFsdWUgb2YgYSBjb25uZWN0b3IgcHJvcGVydHkKICAq IEBkZXY6IERSTSBkZXZpY2UKQEAgLTQ0MjksOCArNDQ1NSw4IEBAIGludCBkcm1fbW9kZV9vYmpf c2V0X3Byb3BlcnR5X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJ c3RydWN0IGRybV9tb2RlX29iamVjdCAqYXJnX29iajsKIAlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0 ICpwcm9wX29iajsKIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eTsKLQlpbnQgcmV0ID0g LUVJTlZBTDsKLQlpbnQgaTsKKwlpbnQgaSwgcmV0ID0gLUVJTlZBTDsKKwlzdHJ1Y3QgZHJtX21v ZGVfb2JqZWN0ICpyZWY7CiAKIAlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklW RVJfTU9ERVNFVCkpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNDQ2MCw3ICs0NDg2LDcgQEAgaW50 IGRybV9tb2RlX29ial9zZXRfcHJvcGVydHlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKIAl9CiAJcHJvcGVydHkgPSBvYmpfdG9fcHJvcGVydHkocHJvcF9vYmopOwog Ci0JaWYgKCFkcm1fcHJvcGVydHlfY2hhbmdlX2lzX3ZhbGlkKHByb3BlcnR5LCBhcmctPnZhbHVl KSkKKwlpZiAoIWRybV9wcm9wZXJ0eV9jaGFuZ2VfdmFsaWRfZ2V0KHByb3BlcnR5LCBhcmctPnZh bHVlLCAmcmVmKSkKIAkJZ290byBvdXQ7CiAKIAlzd2l0Y2ggKGFyZ19vYmotPnR5cGUpIHsKQEAg LTQ0NzcsNiArNDUwMyw4IEBAIGludCBkcm1fbW9kZV9vYmpfc2V0X3Byb3BlcnR5X2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWJyZWFrOwogCX0KIAorCWRybV9w cm9wZXJ0eV9jaGFuZ2VfdmFsaWRfcHV0KHByb3BlcnR5LCByZWYpOworCiBvdXQ6CiAJZHJtX21v ZGVzZXRfdW5sb2NrX2FsbChkZXYpOwogCXJldHVybiByZXQ7Ci0tIAoyLjEuMAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK