From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH] drm: allow property validation for refcnted props Date: Thu, 27 Nov 2014 12:17:35 -0500 Message-ID: <1417108655-32144-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-f177.google.com (mail-qc0-f177.google.com [209.85.216.177]) by gabe.freedesktop.org (Postfix) with ESMTP id BB9D96E9F7 for ; Thu, 27 Nov 2014 09:17:39 -0800 (PST) Received: by mail-qc0-f177.google.com with SMTP id x3so3803427qcv.36 for ; Thu, 27 Nov 2014 09:17:39 -0800 (PST) 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 cm9iZGNsYXJrQGdtYWlsLmNvbT4KLS0tCkFsdGVybmF0aXZlIGFwcHJvYWNoIHRvOgpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE0LU5vdmVtYmVyLzA3 MjkyNS5odG1sCgpUaGlzIGFsbG93cyB1cyB0byB0YWtlIGEgcmVmIHRvIHRoZSBwcm9wZXJ0eSBh cyBwYXJ0IG9mIHRoZSB2YWxpZGF0ZQpzdGVwLCBhbmQgZHJvcCB0aGUgcmVmIGFmdGVyIGl0IGhh cyBiZWVuIHB1c2hlZCBkb3duIHRvIGRyaXZlci4KCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMu YyB8IDU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0 Yy5jCmluZGV4IDgyMTU4YzYuLmM0OGM4YzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCkBAIC00MTYyLDEyICs0 MTYyLDIyIEBAIGludCBkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIH0KIEVYUE9SVF9TWU1CT0woZHJtX21vZGVf Y29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KTsKIAotc3RhdGljIGJvb2wgZHJtX3Byb3Bl cnR5X2NoYW5nZV9pc192YWxpZChzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKLQkJCQkJ IHVpbnQ2NF90IHZhbHVlKQorLyogU29tZSBwcm9wZXJ0aWVzIGNvdWxkIHJlZmVyIHRvIGR5bmFt aWMgcmVmY250J2Qgb2JqZWN0cywgb3IgdGhpbmdzIHRoYXQKKyAqIG5lZWQgc3BlY2lhbCBsb2Nr aW5nIHRvIGhhbmRsZSBsaWZldGltZSBpc3N1ZXMgKGllLiB0byBlbnN1cmUgdGhlIHByb3AKKyAq IHZhbHVlIGRvZXNuJ3QgYmVjb21lIGludmFsaWQgcGFydCB3YXkgdGhyb3VnaCB0aGUgcHJvcGVy dHkgdXBkYXRlIGR1ZSB0bworICogcmFjZSkuICBUaGUgdmFsdWUgcmV0dXJuZWQgYnkgcmVmZXJl bmNlIHZpYSAnb2JqJyBzaG91bGQgYmUgcGFzc2VkIGJhY2sKKyAqIHRvIGRybV9wcm9wZXJ0eV9j aGFuZ2VfdmFsaWRfcHV0KCkgYWZ0ZXIgdGhlIHByb3BlcnR5IGlzIHNldCAoYW5kIHRoZQorICog b2JqZWN0IHRvIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBhdHRhY2hlZCBoYXMgYSBjaGFuY2UgdG8g dGFrZSBpdCdzIG93bgorICogcmVmZXJlbmNlKS4KKyAqLworc3RhdGljIGJvb2wgZHJtX3Byb3Bl cnR5X2NoYW5nZV92YWxpZF9nZXQoc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCisJCQkJ CSB1aW50NjRfdCB2YWx1ZSwgdm9pZCAqKnJlZikKIHsKIAlpZiAocHJvcGVydHktPmZsYWdzICYg RFJNX01PREVfUFJPUF9JTU1VVEFCTEUpCiAJCXJldHVybiBmYWxzZTsKIAorCSpyZWYgPSBOVUxM OworCiAJaWYgKGRybV9wcm9wZXJ0eV90eXBlX2lzKHByb3BlcnR5LCBEUk1fTU9ERV9QUk9QX1JB TkdFKSkgewogCQlpZiAodmFsdWUgPCBwcm9wZXJ0eS0+dmFsdWVzWzBdIHx8IHZhbHVlID4gcHJv cGVydHktPnZhbHVlc1sxXSkKIAkJCXJldHVybiBmYWxzZTsKQEAgLTQxODgsMTkgKzQxOTgsMjMg QEAgc3RhdGljIGJvb2wgZHJtX3Byb3BlcnR5X2NoYW5nZV9pc192YWxpZChzdHJ1Y3QgZHJtX3By b3BlcnR5ICpwcm9wZXJ0eSwKIAkJLyogT25seSB0aGUgZHJpdmVyIGtub3dzICovCiAJCXJldHVy biB0cnVlOwogCX0gZWxzZSBpZiAoZHJtX3Byb3BlcnR5X3R5cGVfaXMocHJvcGVydHksIERSTV9N T0RFX1BST1BfT0JKRUNUKSkgewotCQlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmo7CiAJCS8q IGEgemVybyB2YWx1ZSBmb3IgYW4gb2JqZWN0IHByb3BlcnR5IHRyYW5zbGF0ZXMgdG8gbnVsbDog Ki8KIAkJaWYgKHZhbHVlID09IDApCiAJCQlyZXR1cm4gdHJ1ZTsKLQkJLyoKLQkJICogTk9URTog dXNlIF9vYmplY3RfZmluZCgpIGRpcmVjdGx5IHRvIGJ5cGFzcyByZXN0cmljdGlvbiBvbgotCQkg KiBsb29raW5nIHVwIHJlZmNudCdkIG9iamVjdHMgKGllLiBmYidzKS4gIEZvciBhIHJlZmNudCdk Ci0JCSAqIG9iamVjdCB0aGlzIGNvdWxkIHJhY2UgYWdhaW5zdCBvYmplY3QgZmluYWxpemF0aW9u LCBzbyBpdAotCQkgKiBzaW1wbHkgdGVsbHMgdXMgdGhhdCB0aGUgb2JqZWN0ICp3YXMqIHZhbGlk LiAgV2hpY2ggaXMgZ29vZAotCQkgKiBlbm91Z2guCi0JCSAqLwotCQlvYmogPSBfb2JqZWN0X2Zp bmQocHJvcGVydHktPmRldiwgdmFsdWUsIHByb3BlcnR5LT52YWx1ZXNbMF0pOwotCQlyZXR1cm4g b2JqICE9IE5VTEw7CisKKwkJLyogaGFuZGxlIHJlZmNudCdkIG9iamVjdHMgc3BlY2lhbGx5OiAq LworCQlpZiAocHJvcGVydHktPnZhbHVlc1swXSA9PSBEUk1fTU9ERV9PQkpFQ1RfRkIpIHsKKwkJ CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOworCQkJZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9v a3VwKHByb3BlcnR5LT5kZXYsIHZhbHVlKTsKKwkJCWlmIChmYikgeworCQkJCSpyZWYgPSBmYjsK KwkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0gZWxzZSB7CisJCQkJcmV0dXJuIGZhbHNlOworCQkJfQor CQl9IGVsc2UgeworCQkJcmV0dXJuIF9vYmplY3RfZmluZChwcm9wZXJ0eS0+ZGV2LCB2YWx1ZSwg cHJvcGVydHktPnZhbHVlc1swXSkgIT0gTlVMTDsKKwkJfQogCX0gZWxzZSB7CiAJCWludCBpOwog CQlmb3IgKGkgPSAwOyBpIDwgcHJvcGVydHktPm51bV92YWx1ZXM7IGkrKykKQEAgLTQyMTAsNiAr NDIyNCwxNyBAQCBzdGF0aWMgYm9vbCBkcm1fcHJvcGVydHlfY2hhbmdlX2lzX3ZhbGlkKHN0cnVj dCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAogCX0KIH0KIAorc3RhdGljIHZvaWQgZHJtX3Byb3Bl cnR5X2NoYW5nZV92YWxpZF9wdXQoc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksIHZvaWQg KnJlZikKK3sKKwlpZiAoIXJlZikKKwkJcmV0dXJuOworCisJaWYgKGRybV9wcm9wZXJ0eV90eXBl X2lzKHByb3BlcnR5LCBEUk1fTU9ERV9QUk9QX09CSkVDVCkpIHsKKwkJaWYgKHByb3BlcnR5LT52 YWx1ZXNbMF0gPT0gRFJNX01PREVfT0JKRUNUX0ZCKQorCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVm ZXJlbmNlKHJlZik7CisJfQorfQorCiAvKioKICAqIGRybV9tb2RlX2Nvbm5lY3Rvcl9wcm9wZXJ0 eV9zZXRfaW9jdGwgLSBzZXQgdGhlIGN1cnJlbnQgdmFsdWUgb2YgYSBjb25uZWN0b3IgcHJvcGVy dHkKICAqIEBkZXY6IERSTSBkZXZpY2UKQEAgLTQ0MDQsOCArNDQyOSw4IEBAIGludCBkcm1fbW9k ZV9vYmpfc2V0X3Byb3BlcnR5X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJc3RydWN0IGRybV9tb2RlX29iamVjdCAqYXJnX29iajsKIAlzdHJ1Y3QgZHJtX21vZGVf b2JqZWN0ICpwcm9wX29iajsKIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eTsKLQlpbnQg cmV0ID0gLUVJTlZBTDsKLQlpbnQgaTsKKwlpbnQgaSwgcmV0ID0gLUVJTlZBTDsKKwl2b2lkICpy ZWY7CiAKIAlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkp CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNDQzNSw3ICs0NDYwLDcgQEAgaW50IGRybV9tb2RlX29i al9zZXRfcHJvcGVydHlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK IAl9CiAJcHJvcGVydHkgPSBvYmpfdG9fcHJvcGVydHkocHJvcF9vYmopOwogCi0JaWYgKCFkcm1f cHJvcGVydHlfY2hhbmdlX2lzX3ZhbGlkKHByb3BlcnR5LCBhcmctPnZhbHVlKSkKKwlpZiAoIWRy bV9wcm9wZXJ0eV9jaGFuZ2VfdmFsaWRfZ2V0KHByb3BlcnR5LCBhcmctPnZhbHVlLCAmcmVmKSkK IAkJZ290byBvdXQ7CiAKIAlzd2l0Y2ggKGFyZ19vYmotPnR5cGUpIHsKQEAgLTQ0NTIsNiArNDQ3 Nyw4IEBAIGludCBkcm1fbW9kZV9vYmpfc2V0X3Byb3BlcnR5X2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWJyZWFrOwogCX0KIAorCWRybV9wcm9wZXJ0eV9jaGFu Z2VfdmFsaWRfcHV0KHByb3BlcnR5LCByZWYpOworCiBvdXQ6CiAJZHJtX21vZGVzZXRfdW5sb2Nr X2FsbChkZXYpOwogCXJldHVybiByZXQ7Ci0tIAoxLjkuMwoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK