From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 6/6] drm: Introduce drm_property_blob_{get,put}() Date: Wed, 8 Feb 2017 19:24:08 +0100 Message-ID: <20170208182408.5442-7-thierry.reding@gmail.com> References: <20170208182408.5442-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 72A016E974 for ; Wed, 8 Feb 2017 18:24:23 +0000 (UTC) Received: by mail-wr0-x244.google.com with SMTP id i10so9516091wrb.0 for ; Wed, 08 Feb 2017 10:24:23 -0800 (PST) In-Reply-To: <20170208182408.5442-1-thierry.reding@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: Daniel Vetter List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkZvciBjb25zaXN0ZW5j eSB3aXRoIG90aGVyIHJlZmVyZW5jZSBjb3VudGluZyBBUElzIGluIHRoZSBrZXJuZWwsIGFkZApk cm1fcHJvcGVydHlfYmxvYl9nZXQoKSBhbmQgZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KCkgdG8gcmVm ZXJlbmNlIGNvdW50CkRSTSBibG9iIHByb3BlcnRpZXMuCgpDb21wYXRpYmlsaXR5IGFsaWFzZXMg YXJlIGFkZGVkIHRvIGtlZXAgZXhpc3RpbmcgY29kZSB3b3JraW5nLiBUbyBoZWxwCnNwZWVkIHVw IHRoZSB0cmFuc2l0aW9uLCBhbGwgdGhlIGluc3RhbmNlcyBvZiB0aGUgb2xkIGZ1bmN0aW9ucyBp biB0aGUKRFJNIGNvcmUgYXJlIGFscmVhZHkgcmVwbGFjZWQgaW4gdGhpcyBjb21taXQuCgpBIHNl bWFudGljIHBhdGNoIGlzIHByb3ZpZGVkIHRoYXQgY2FuIGJlIHVzZWQgdG8gY29udmVydCBhbGwg ZHJpdmVycyB0bwp0aGUgbmV3IGhlbHBlcnMuCgpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGlu ZyA8dHJlZGluZ0BudmlkaWEuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMg ICAgICAgICAgICAgfCAxNiArKysrKystLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYyAgICAgIHwgMTggKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1f bW9kZV9jb25maWcuYyAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0 eS5jICAgICAgICAgICB8IDQwICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBpbmNs dWRlL2RybS9kcm1fcHJvcGVydHkuaCAgICAgICAgICAgICAgIHwgMzUgKysrKysrKysrKysrKysr KysrKysrKysrLS0tLQogc2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaSB8 IDEwICsrKysrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDc4IGluc2VydGlvbnMoKyksIDQzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCmluZGV4IDc0MDY1MGI0NTBjNS4uZmY1ZjE3NTZhN2Zm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljLmMKQEAgLTMyMiw3ICszMjIsNyBAQCBpbnQgZHJtX2F0b21pY19z ZXRfbW9kZV9mb3JfY3J0YyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLAogCWlmIChtb2Rl ICYmIG1lbWNtcCgmc3RhdGUtPm1vZGUsIG1vZGUsIHNpemVvZigqbW9kZSkpID09IDApCiAJCXJl dHVybiAwOwogCi0JZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2Ioc3RhdGUtPm1vZGVfYmxv Yik7CisJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KHN0YXRlLT5tb2RlX2Jsb2IpOwogCXN0YXRlLT5t b2RlX2Jsb2IgPSBOVUxMOwogCiAJaWYgKG1vZGUpIHsKQEAgLTM2OCw3ICszNjgsNyBAQCBpbnQg ZHJtX2F0b21pY19zZXRfbW9kZV9wcm9wX2Zvcl9jcnRjKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq c3RhdGUsCiAJaWYgKGJsb2IgPT0gc3RhdGUtPm1vZGVfYmxvYikKIAkJcmV0dXJuIDA7CiAKLQlk cm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdGF0ZS0+bW9kZV9ibG9iKTsKKwlkcm1fcHJv cGVydHlfYmxvYl9wdXQoc3RhdGUtPm1vZGVfYmxvYik7CiAJc3RhdGUtPm1vZGVfYmxvYiA9IE5V TEw7CiAKIAltZW1zZXQoJnN0YXRlLT5tb2RlLCAwLCBzaXplb2Yoc3RhdGUtPm1vZGUpKTsKQEAg LTM4MCw3ICszODAsNyBAQCBpbnQgZHJtX2F0b21pY19zZXRfbW9kZV9wcm9wX2Zvcl9jcnRjKHN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUsCiAJCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBibG9iLT5kYXRhKSkKIAkJCXJldHVybiAtRUlOVkFMOwogCi0JCXN0YXRlLT5tb2RlX2Jsb2Ig PSBkcm1fcHJvcGVydHlfcmVmZXJlbmNlX2Jsb2IoYmxvYik7CisJCXN0YXRlLT5tb2RlX2Jsb2Ig PSBkcm1fcHJvcGVydHlfYmxvYl9nZXQoYmxvYik7CiAJCXN0YXRlLT5lbmFibGUgPSB0cnVlOwog CQlEUk1fREVCVUdfQVRPTUlDKCJTZXQgW01PREU6JXNdIGZvciBDUlRDIHN0YXRlICVwXG4iLAog CQkJCSBzdGF0ZS0+bW9kZS5uYW1lLCBzdGF0ZSk7CkBAIC00MTMsOSArNDEzLDkgQEAgZHJtX2F0 b21pY19yZXBsYWNlX3Byb3BlcnR5X2Jsb2Ioc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICoqYmxv YiwKIAlpZiAob2xkX2Jsb2IgPT0gbmV3X2Jsb2IpCiAJCXJldHVybjsKIAotCWRybV9wcm9wZXJ0 eV91bnJlZmVyZW5jZV9ibG9iKG9sZF9ibG9iKTsKKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQob2xk X2Jsb2IpOwogCWlmIChuZXdfYmxvYikKLQkJZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9iKG5l d19ibG9iKTsKKwkJZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0KG5ld19ibG9iKTsKIAkqYmxvYiA9IG5l d19ibG9iOwogCSpyZXBsYWNlZCA9IHRydWU7CiAKQEAgLTQzNywxMyArNDM3LDEzIEBAIGRybV9h dG9taWNfcmVwbGFjZV9wcm9wZXJ0eV9ibG9iX2Zyb21faWQoc3RydWN0IGRybV9jcnRjICpjcnRj LAogCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJaWYgKGV4cGVjdGVkX3NpemUgPiAwICYmIGV4cGVj dGVkX3NpemUgIT0gbmV3X2Jsb2ItPmxlbmd0aCkgewotCQkJZHJtX3Byb3BlcnR5X3VucmVmZXJl bmNlX2Jsb2IobmV3X2Jsb2IpOworCQkJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KG5ld19ibG9iKTsK IAkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAJfQogCiAJZHJtX2F0b21pY19yZXBsYWNlX3Byb3Bl cnR5X2Jsb2IoYmxvYiwgbmV3X2Jsb2IsIHJlcGxhY2VkKTsKLQlkcm1fcHJvcGVydHlfdW5yZWZl cmVuY2VfYmxvYihuZXdfYmxvYik7CisJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KG5ld19ibG9iKTsK IAogCXJldHVybiAwOwogfQpAQCAtNDc4LDcgKzQ3OCw3IEBAIGludCBkcm1fYXRvbWljX2NydGNf c2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJc3RydWN0IGRybV9wcm9wZXJ0 eV9ibG9iICptb2RlID0KIAkJCWRybV9wcm9wZXJ0eV9sb29rdXBfYmxvYihkZXYsIHZhbCk7CiAJ CXJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfcHJvcF9mb3JfY3J0YyhzdGF0ZSwgbW9kZSk7Ci0J CWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKG1vZGUpOworCQlkcm1fcHJvcGVydHlfYmxv Yl9wdXQobW9kZSk7CiAJCXJldHVybiByZXQ7CiAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25m aWctPmRlZ2FtbWFfbHV0X3Byb3BlcnR5KSB7CiAJCXJldCA9IGRybV9hdG9taWNfcmVwbGFjZV9w cm9wZXJ0eV9ibG9iX2Zyb21faWQoY3J0YywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMK aW5kZXggNGRjZDY0Y2EzNGM4Li44NjNmMzAyYjViZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jCkBAIC0zMDQyLDEzICszMDQyLDEzIEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBl cl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJbWVtY3B5KHN0 YXRlLCBjcnRjLT5zdGF0ZSwgc2l6ZW9mKCpzdGF0ZSkpOwogCiAJaWYgKHN0YXRlLT5tb2RlX2Js b2IpCi0JCWRybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxvYihzdGF0ZS0+bW9kZV9ibG9iKTsKKwkJ ZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0KHN0YXRlLT5tb2RlX2Jsb2IpOwogCWlmIChzdGF0ZS0+ZGVn YW1tYV9sdXQpCi0JCWRybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxvYihzdGF0ZS0+ZGVnYW1tYV9s dXQpOworCQlkcm1fcHJvcGVydHlfYmxvYl9nZXQoc3RhdGUtPmRlZ2FtbWFfbHV0KTsKIAlpZiAo c3RhdGUtPmN0bSkKLQkJZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9iKHN0YXRlLT5jdG0pOwor CQlkcm1fcHJvcGVydHlfYmxvYl9nZXQoc3RhdGUtPmN0bSk7CiAJaWYgKHN0YXRlLT5nYW1tYV9s dXQpCi0JCWRybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxvYihzdGF0ZS0+Z2FtbWFfbHV0KTsKKwkJ ZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0KHN0YXRlLT5nYW1tYV9sdXQpOwogCXN0YXRlLT5tb2RlX2No YW5nZWQgPSBmYWxzZTsKIAlzdGF0ZS0+YWN0aXZlX2NoYW5nZWQgPSBmYWxzZTsKIAlzdGF0ZS0+ cGxhbmVzX2NoYW5nZWQgPSBmYWxzZTsKQEAgLTMwOTIsMTAgKzMwOTIsMTAgQEAgRVhQT1JUX1NZ TUJPTChkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZSk7CiAgKi8KIHZvaWQg X19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9jcnRjX3N0 YXRlICpzdGF0ZSkKIHsKLQlkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdGF0ZS0+bW9k ZV9ibG9iKTsKLQlkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdGF0ZS0+ZGVnYW1tYV9s dXQpOwotCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKHN0YXRlLT5jdG0pOwotCWRybV9w cm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKHN0YXRlLT5nYW1tYV9sdXQpOworCWRybV9wcm9wZXJ0 eV9ibG9iX3B1dChzdGF0ZS0+bW9kZV9ibG9iKTsKKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQoc3Rh dGUtPmRlZ2FtbWFfbHV0KTsKKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQoc3RhdGUtPmN0bSk7CisJ ZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KHN0YXRlLT5nYW1tYV9sdXQpOwogfQogRVhQT1JUX1NZTUJP TChfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSk7CiAKQEAgLTM0OTMsNyAr MzQ5Myw3IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAkJZ290byBiYWNrb2ZmOwogCiAJZHJtX2F0b21pY19zdGF0ZV9wdXQo c3RhdGUpOwotCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKGJsb2IpOworCWRybV9wcm9w ZXJ0eV9ibG9iX3B1dChibG9iKTsKIAlyZXR1cm4gcmV0OwogCiBiYWNrb2ZmOgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9tb2RlX2NvbmZpZy5jCmluZGV4IDIwYWVjMTY1YWJkNy4uMzc3NzliOWYwYzFlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9tb2RlX2NvbmZpZy5jCkBAIC00NDQsNyArNDQ0LDcgQEAgdm9pZCBkcm1fbW9kZV9j b25maWdfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJbGlzdF9mb3JfZWFjaF9l bnRyeV9zYWZlKGJsb2IsIGJ0LCAmZGV2LT5tb2RlX2NvbmZpZy5wcm9wZXJ0eV9ibG9iX2xpc3Qs CiAJCQkJIGhlYWRfZ2xvYmFsKSB7Ci0JCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKGJs b2IpOworCQlkcm1fcHJvcGVydHlfYmxvYl9wdXQoYmxvYik7CiAJfQogCiAJLyoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvcGVydHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f cHJvcGVydHkuYwppbmRleCAxNWFmMGQ0MmU4YmUuLmIxNzk1OWMzZTA5OSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f cHJvcGVydHkuYwpAQCAtNTg3LDE5ICs1ODcsMTkgQEAgZHJtX3Byb3BlcnR5X2NyZWF0ZV9ibG9i KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHNpemVfdCBsZW5ndGgsCiBFWFBPUlRfU1lNQk9MKGRy bV9wcm9wZXJ0eV9jcmVhdGVfYmxvYik7CiAKIC8qKgotICogZHJtX3Byb3BlcnR5X3VucmVmZXJl bmNlX2Jsb2IgLSBVbnJlZmVyZW5jZSBhIGJsb2IgcHJvcGVydHkKLSAqIEBibG9iOiBQb2ludGVy IHRvIGJsb2IgcHJvcGVydHkKKyAqIGRybV9wcm9wZXJ0eV9ibG9iX3B1dCAtIHJlbGVhc2UgYSBi bG9iIHByb3BlcnR5IHJlZmVyZW5jZQorICogQGJsb2I6IERSTSBibG9iIHByb3BlcnR5CiAgKgot ICogRHJvcCBhIHJlZmVyZW5jZSBvbiBhIGJsb2IgcHJvcGVydHkuIE1heSBmcmVlIHRoZSBvYmpl Y3QuCisgKiBSZWxlYXNlcyBhIHJlZmVyZW5jZSB0byBhIGJsb2IgcHJvcGVydHkuIE1heSBmcmVl IHRoZSBvYmplY3QuCiAgKi8KLXZvaWQgZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2Ioc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKQordm9pZCBkcm1fcHJvcGVydHlfYmxvYl9wdXQo c3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKQogewogCWlmICghYmxvYikKIAkJcmV0dXJu OwogCiAJZHJtX21vZGVfb2JqZWN0X3B1dCgmYmxvYi0+YmFzZSk7CiB9Ci1FWFBPUlRfU1lNQk9M KGRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKTsKK0VYUE9SVF9TWU1CT0woZHJtX3Byb3Bl cnR5X2Jsb2JfcHV0KTsKIAogdm9pZCBkcm1fcHJvcGVydHlfZGVzdHJveV91c2VyX2Jsb2JzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dikKQEAgLTYxMiwyMyArNjEyLDIzIEBAIHZvaWQgZHJtX3Byb3BlcnR5X2Rlc3Ryb3lfdXNlcl9i bG9icyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCSAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnlf c2FmZShibG9iLCBidCwgJmZpbGVfcHJpdi0+YmxvYnMsIGhlYWRfZmlsZSkgewogCQlsaXN0X2Rl bF9pbml0KCZibG9iLT5oZWFkX2ZpbGUpOwotCQlkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxv YihibG9iKTsKKwkJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KGJsb2IpOwogCX0KIH0KIAogLyoqCi0g KiBkcm1fcHJvcGVydHlfcmVmZXJlbmNlX2Jsb2IgLSBUYWtlIGEgcmVmZXJlbmNlIG9uIGFuIGV4 aXN0aW5nIHByb3BlcnR5Ci0gKiBAYmxvYjogUG9pbnRlciB0byBibG9iIHByb3BlcnR5CisgKiBk cm1fcHJvcGVydHlfYmxvYl9nZXQgLSBhY3F1aXJlIGJsb2IgcHJvcGVydHkgcmVmZXJlbmNlCisg KiBAYmxvYjogRFJNIGJsb2IgcHJvcGVydHkKICAqCi0gKiBUYWtlIGEgbmV3IHJlZmVyZW5jZSBv biBhbiBleGlzdGluZyBibG9iIHByb3BlcnR5LiBSZXR1cm5zIEBibG9iLCB3aGljaAorICogQWNx dWlyZXMgYSByZWZlcmVuY2UgdG8gYW4gZXhpc3RpbmcgYmxvYiBwcm9wZXJ0eS4gUmV0dXJucyBA YmxvYiwgd2hpY2gKICAqIGFsbG93cyB0aGlzIHRvIGJlIHVzZWQgYXMgYSBzaG9ydGhhbmQgaW4g YXNzaWdubWVudHMuCiAgKi8KLXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZHJtX3Byb3BlcnR5 X3JlZmVyZW5jZV9ibG9iKHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYikKK3N0cnVjdCBk cm1fcHJvcGVydHlfYmxvYiAqZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0KHN0cnVjdCBkcm1fcHJvcGVy dHlfYmxvYiAqYmxvYikKIHsKIAlkcm1fbW9kZV9vYmplY3RfZ2V0KCZibG9iLT5iYXNlKTsKIAly ZXR1cm4gYmxvYjsKIH0KLUVYUE9SVF9TWU1CT0woZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9i KTsKK0VYUE9SVF9TWU1CT0woZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0KTsKIAogLyoqCiAgKiBkcm1f cHJvcGVydHlfbG9va3VwX2Jsb2IgLSBsb29rIHVwIGEgYmxvYiBwcm9wZXJ0eSBhbmQgdGFrZSBh IHJlZmVyZW5jZQpAQCAtNjM3LDcgKzYzNyw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX3Byb3BlcnR5 X3JlZmVyZW5jZV9ibG9iKTsKICAqCiAgKiBJZiBzdWNjZXNzZnVsLCB0aGlzIHRha2VzIGFuIGFk ZGl0aW9uYWwgcmVmZXJlbmNlIHRvIHRoZSBibG9iIHByb3BlcnR5LgogICogY2FsbGVycyBuZWVk IHRvIG1ha2Ugc3VyZSB0byBldmVudHVhbGx5IHVucmVmZXJlbmNlIHRoZSByZXR1cm5lZCBwcm9w ZXJ0eQotICogYWdhaW4sIHVzaW5nIEBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYi4KKyAq IGFnYWluLCB1c2luZyBkcm1fcHJvcGVydHlfYmxvYl9wdXQoKS4KICAqCiAgKiBSZXR1cm46CiAg KiBOVUxMIG9uIGZhaWx1cmUsIHBvaW50ZXIgdG8gdGhlIGJsb2Igb24gc3VjY2Vzcy4KQEAgLTcx MiwxMyArNzEyLDEzIEBAIGludCBkcm1fcHJvcGVydHlfcmVwbGFjZV9nbG9iYWxfYmxvYihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJZ290byBlcnJfY3JlYXRlZDsKIAl9CiAKLQlkcm1fcHJv cGVydHlfdW5yZWZlcmVuY2VfYmxvYihvbGRfYmxvYik7CisJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0 KG9sZF9ibG9iKTsKIAkqcmVwbGFjZSA9IG5ld19ibG9iOwogCiAJcmV0dXJuIDA7CiAKIGVycl9j cmVhdGVkOgotCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKG5ld19ibG9iKTsKKwlkcm1f cHJvcGVydHlfYmxvYl9wdXQobmV3X2Jsb2IpOwogCXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lN Qk9MKGRybV9wcm9wZXJ0eV9yZXBsYWNlX2dsb2JhbF9ibG9iKTsKQEAgLTc0Nyw3ICs3NDcsNyBA QCBpbnQgZHJtX21vZGVfZ2V0YmxvYl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCX0K IAlvdXRfcmVzcC0+bGVuZ3RoID0gYmxvYi0+bGVuZ3RoOwogdW5yZWY6Ci0JZHJtX3Byb3BlcnR5 X3VucmVmZXJlbmNlX2Jsb2IoYmxvYik7CisJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KGJsb2IpOwog CiAJcmV0dXJuIHJldDsKIH0KQEAgLTc4NCw3ICs3ODQsNyBAQCBpbnQgZHJtX21vZGVfY3JlYXRl YmxvYl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXJldHVybiAwOwogCiBvdXRfYmxv YjoKLQlkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihibG9iKTsKKwlkcm1fcHJvcGVydHlf YmxvYl9wdXQoYmxvYik7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtODIzLDE0ICs4MjMsMTQgQEAg aW50IGRybV9tb2RlX2Rlc3Ryb3libG9iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ bXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmJsb2JfbG9jayk7CiAKIAkvKiBPbmUgcmVm ZXJlbmNlIGZyb20gbG9va3VwLCBhbmQgb25lIGZyb20gdGhlIGZpbHAuICovCi0JZHJtX3Byb3Bl cnR5X3VucmVmZXJlbmNlX2Jsb2IoYmxvYik7Ci0JZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Js b2IoYmxvYik7CisJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KGJsb2IpOworCWRybV9wcm9wZXJ0eV9i bG9iX3B1dChibG9iKTsKIAogCXJldHVybiAwOwogCiBlcnI6CiAJbXV0ZXhfdW5sb2NrKCZkZXYt Pm1vZGVfY29uZmlnLmJsb2JfbG9jayk7Ci0JZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2Io YmxvYik7CisJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KGJsb2IpOwogCiAJcmV0dXJuIHJldDsKIH0K QEAgLTkwOCw1ICs5MDgsNSBAQCB2b2lkIGRybV9wcm9wZXJ0eV9jaGFuZ2VfdmFsaWRfcHV0KHN0 cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAogCWlmIChkcm1fcHJvcGVydHlfdHlwZV9pcyhw cm9wZXJ0eSwgRFJNX01PREVfUFJPUF9PQkpFQ1QpKSB7CiAJCWRybV9tb2RlX29iamVjdF9wdXQo cmVmKTsKIAl9IGVsc2UgaWYgKGRybV9wcm9wZXJ0eV90eXBlX2lzKHByb3BlcnR5LCBEUk1fTU9E RV9QUk9QX0JMT0IpKQotCQlkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihvYmpfdG9fYmxv YihyZWYpKTsKKwkJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KG9ial90b19ibG9iKHJlZikpOwogfQpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3Byb3BlcnR5LmggYi9pbmNsdWRlL2RybS9kcm1f cHJvcGVydHkuaAppbmRleCBmNjZmZGI0NzU1MWMuLjEzZThjMTdkMWM3OSAxMDA2NDQKLS0tIGEv aW5jbHVkZS9kcm0vZHJtX3Byb3BlcnR5LmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3Byb3BlcnR5 LmgKQEAgLTIwMCw5ICsyMDAsOCBAQCBzdHJ1Y3QgZHJtX3Byb3BlcnR5IHsKICAqIEJsb2JzIGFy ZSB1c2VkIHRvIHN0b3JlIGJpZ2dlciB2YWx1ZXMgdGhhbiB3aGF0IGZpdHMgZGlyZWN0bHkgaW50 byB0aGUgNjQKICAqIGJpdHMgYXZhaWxhYmxlIGZvciBhICZkcm1fcHJvcGVydHkuCiAgKgotICog QmxvYnMgYXJlIHJlZmVyZW5jZSBjb3VudGVkIHVzaW5nIGRybV9wcm9wZXJ0eV9yZWZlcmVuY2Vf YmxvYigpIGFuZAotICogZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2IoKS4gVGhleSBhcmUg Y3JlYXRlZCB1c2luZwotICogZHJtX3Byb3BlcnR5X2NyZWF0ZV9ibG9iKCkuCisgKiBCbG9icyBh cmUgcmVmZXJlbmNlIGNvdW50ZWQgdXNpbmcgZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0KCkgYW5kCisg KiBkcm1fcHJvcGVydHlfYmxvYl9wdXQoKS4gVGhleSBhcmUgY3JlYXRlZCB1c2luZyBkcm1fcHJv cGVydHlfY3JlYXRlX2Jsb2IoKS4KICAqLwogc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iIHsKIAlz dHJ1Y3QgZHJtX21vZGVfb2JqZWN0IGJhc2U7CkBAIC0yNzQsOCArMjczLDM0IEBAIGludCBkcm1f cHJvcGVydHlfcmVwbGFjZV9nbG9iYWxfYmxvYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJ CSAgICAgY29uc3Qgdm9pZCAqZGF0YSwKIAkJCQkgICAgIHN0cnVjdCBkcm1fbW9kZV9vYmplY3Qg Km9ial9ob2xkc19pZCwKIAkJCQkgICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BfaG9sZHNf aWQpOwotc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkcm1fcHJvcGVydHlfcmVmZXJlbmNlX2Js b2Ioc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKTsKLXZvaWQgZHJtX3Byb3BlcnR5X3Vu cmVmZXJlbmNlX2Jsb2Ioc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKTsKK3N0cnVjdCBk cm1fcHJvcGVydHlfYmxvYiAqZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0KHN0cnVjdCBkcm1fcHJvcGVy dHlfYmxvYiAqYmxvYik7Cit2b2lkIGRybV9wcm9wZXJ0eV9ibG9iX3B1dChzdHJ1Y3QgZHJtX3By b3BlcnR5X2Jsb2IgKmJsb2IpOworCisvKioKKyAqIGRybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxv YiAtIGFjcXVpcmUgYSBibG9iIHByb3BlcnR5IHJlZmVyZW5jZQorICogQGJsb2I6IERSTSBibG9i IHByb3BlcnR5CisgKgorICogVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgYWxpYXMgZm9yIGRybV9w cm9wZXJ0eV9ibG9iX2dldCgpIGFuZCBzaG91bGQgbm90IGJlCisgKiB1c2VkIGJ5IG5ldyBjb2Rl LgorICovCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqCitkcm1fcHJv cGVydHlfcmVmZXJlbmNlX2Jsb2Ioc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKQorewor CXJldHVybiBkcm1fcHJvcGVydHlfYmxvYl9nZXQoYmxvYik7Cit9CisKKy8qKgorICogZHJtX3By b3BlcnR5X3VucmVmZXJlbmNlX2Jsb2IgLSByZWxlYXNlIGEgYmxvYiBwcm9wZXJ0eSByZWZlcmVu Y2UKKyAqIEBibG9iOiBEUk0gYmxvYiBwcm9wZXJ0eQorICoKKyAqIFRoaXMgaXMgYSBjb21wYXRp YmlsaXR5IGFsaWFzIGZvciBkcm1fcHJvcGVydHlfYmxvYl9wdXQoKSBhbmQgc2hvdWxkIG5vdCBi ZQorICogdXNlZCBieSBuZXcgY29kZS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkCitkcm1fcHJv cGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IpCit7 CisJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KGJsb2IpOworfQogCiAvKioKICAqIGRybV9jb25uZWN0 b3JfZmluZCAtIGZpbmQgcHJvcGVydHkgb2JqZWN0CmRpZmYgLS1naXQgYS9zY3JpcHRzL2NvY2Np bmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpIGIvc2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0t Z2V0LXB1dC5jb2NjaQppbmRleCAyNDg4MjU0N2I0ZDEuLjBjN2E5MjY1YzA3ZSAxMDA2NDQKLS0t IGEvc2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaQorKysgYi9zY3JpcHRz L2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpCkBAIC00NCw2ICs0NCwxMiBAQCBleHBy ZXNzaW9uIG9iamVjdDsKIHwKIC0gZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQo b2JqZWN0KQogKyBkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQob2JqZWN0KQorfAorLSBkcm1f cHJvcGVydHlfcmVmZXJlbmNlX2Jsb2Iob2JqZWN0KQorKyBkcm1fcHJvcGVydHlfYmxvYl9nZXQo b2JqZWN0KQorfAorLSBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihvYmplY3QpCisrIGRy bV9wcm9wZXJ0eV9ibG9iX3B1dChvYmplY3QpCiApCiAKIEByIGRlcGVuZHMgb24gcmVwb3J0QApA QCAtNzEsNiArNzcsMTAgQEAgZHJtX2dlbV9vYmplY3RfcmVmZXJlbmNlQHAob2JqZWN0KQogX19k cm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZShvYmplY3QpCiB8CiBkcm1fZ2VtX29iamVjdF91bnJl ZmVyZW5jZV91bmxvY2tlZChvYmplY3QpCit8Citkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxv YkBwKG9iamVjdCkKK3wKK2RybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxvYkBwKG9iamVjdCkKICkK IAogQHNjcmlwdDpweXRob24gZGVwZW5kcyBvbiByZXBvcnRACi0tIAoyLjExLjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=