From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v3 6/7] drm: Introduce drm_property_blob_{get,put}() Date: Tue, 28 Feb 2017 15:46:42 +0100 Message-ID: <20170228144643.5668-7-thierry.reding@gmail.com> References: <20170228144643.5668-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 042376E747 for ; Tue, 28 Feb 2017 14:46:59 +0000 (UTC) Received: by mail-wr0-x244.google.com with SMTP id q39so1918546wrb.2 for ; Tue, 28 Feb 2017 06:46:58 -0800 (PST) In-Reply-To: <20170228144643.5668-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 , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkZvciBjb25zaXN0ZW5j eSB3aXRoIG90aGVyIHJlZmVyZW5jZSBjb3VudGluZyBBUElzIGluIHRoZSBrZXJuZWwsIGFkZApk cm1fcHJvcGVydHlfYmxvYl9nZXQoKSBhbmQgZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KCkgdG8gcmVm ZXJlbmNlIGNvdW50CkRSTSBibG9iIHByb3BlcnRpZXMuCgpDb21wYXRpYmlsaXR5IGFsaWFzZXMg YXJlIGFkZGVkIHRvIGtlZXAgZXhpc3RpbmcgY29kZSB3b3JraW5nLiBUbyBoZWxwCnNwZWVkIHVw IHRoZSB0cmFuc2l0aW9uLCBhbGwgdGhlIGluc3RhbmNlcyBvZiB0aGUgb2xkIGZ1bmN0aW9ucyBp biB0aGUKRFJNIGNvcmUgYXJlIGFscmVhZHkgcmVwbGFjZWQgaW4gdGhpcyBjb21taXQuCgpBIHNl bWFudGljIHBhdGNoIGlzIHByb3ZpZGVkIHRoYXQgY2FuIGJlIHVzZWQgdG8gY29udmVydCBhbGwg ZHJpdmVycyB0bwp0aGUgbmV3IGhlbHBlcnMuCgpSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFu cGF1bEBjaHJvbWl1bS5vcmc+CkFja2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4u a29lbmlnQGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52 aWRpYS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgICAgICB8 IDE2ICsrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jICAg ICAgfCAxOCArKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5j ICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3Byb3BlcnR5LmMgICAgICAgICAg IHwgNDAgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIGluY2x1ZGUvZHJtL2RybV9w cm9wZXJ0eS5oICAgICAgICAgICAgICAgfCAzNSArKysrKysrKysrKysrKysrKysrKysrKystLS0t CiBzY3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpIHwgMTAgKysrKysrKysK IDYgZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljLmMKaW5kZXggNzQwNjUwYjQ1MGM1Li5mZjVmMTc1NmE3ZmYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWMuYwpAQCAtMzIyLDcgKzMyMiw3IEBAIGludCBkcm1fYXRvbWljX3NldF9tb2RlX2Zvcl9j cnRjKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUsCiAJaWYgKG1vZGUgJiYgbWVtY21wKCZz dGF0ZS0+bW9kZSwgbW9kZSwgc2l6ZW9mKCptb2RlKSkgPT0gMCkKIAkJcmV0dXJuIDA7CiAKLQlk cm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdGF0ZS0+bW9kZV9ibG9iKTsKKwlkcm1fcHJv cGVydHlfYmxvYl9wdXQoc3RhdGUtPm1vZGVfYmxvYik7CiAJc3RhdGUtPm1vZGVfYmxvYiA9IE5V TEw7CiAKIAlpZiAobW9kZSkgewpAQCAtMzY4LDcgKzM2OCw3IEBAIGludCBkcm1fYXRvbWljX3Nl dF9tb2RlX3Byb3BfZm9yX2NydGMoc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSwKIAlpZiAo YmxvYiA9PSBzdGF0ZS0+bW9kZV9ibG9iKQogCQlyZXR1cm4gMDsKIAotCWRybV9wcm9wZXJ0eV91 bnJlZmVyZW5jZV9ibG9iKHN0YXRlLT5tb2RlX2Jsb2IpOworCWRybV9wcm9wZXJ0eV9ibG9iX3B1 dChzdGF0ZS0+bW9kZV9ibG9iKTsKIAlzdGF0ZS0+bW9kZV9ibG9iID0gTlVMTDsKIAogCW1lbXNl dCgmc3RhdGUtPm1vZGUsIDAsIHNpemVvZihzdGF0ZS0+bW9kZSkpOwpAQCAtMzgwLDcgKzM4MCw3 IEBAIGludCBkcm1fYXRvbWljX3NldF9tb2RlX3Byb3BfZm9yX2NydGMoc3RydWN0IGRybV9jcnRj X3N0YXRlICpzdGF0ZSwKIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2ItPmRhdGEp KQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKLQkJc3RhdGUtPm1vZGVfYmxvYiA9IGRybV9wcm9wZXJ0 eV9yZWZlcmVuY2VfYmxvYihibG9iKTsKKwkJc3RhdGUtPm1vZGVfYmxvYiA9IGRybV9wcm9wZXJ0 eV9ibG9iX2dldChibG9iKTsKIAkJc3RhdGUtPmVuYWJsZSA9IHRydWU7CiAJCURSTV9ERUJVR19B VE9NSUMoIlNldCBbTU9ERTolc10gZm9yIENSVEMgc3RhdGUgJXBcbiIsCiAJCQkJIHN0YXRlLT5t b2RlLm5hbWUsIHN0YXRlKTsKQEAgLTQxMyw5ICs0MTMsOSBAQCBkcm1fYXRvbWljX3JlcGxhY2Vf cHJvcGVydHlfYmxvYihzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKipibG9iLAogCWlmIChvbGRf YmxvYiA9PSBuZXdfYmxvYikKIAkJcmV0dXJuOwogCi0JZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNl X2Jsb2Iob2xkX2Jsb2IpOworCWRybV9wcm9wZXJ0eV9ibG9iX3B1dChvbGRfYmxvYik7CiAJaWYg KG5ld19ibG9iKQotCQlkcm1fcHJvcGVydHlfcmVmZXJlbmNlX2Jsb2IobmV3X2Jsb2IpOworCQlk cm1fcHJvcGVydHlfYmxvYl9nZXQobmV3X2Jsb2IpOwogCSpibG9iID0gbmV3X2Jsb2I7CiAJKnJl cGxhY2VkID0gdHJ1ZTsKIApAQCAtNDM3LDEzICs0MzcsMTMgQEAgZHJtX2F0b21pY19yZXBsYWNl X3Byb3BlcnR5X2Jsb2JfZnJvbV9pZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQlyZXR1cm4g LUVJTlZBTDsKIAogCQlpZiAoZXhwZWN0ZWRfc2l6ZSA+IDAgJiYgZXhwZWN0ZWRfc2l6ZSAhPSBu ZXdfYmxvYi0+bGVuZ3RoKSB7Ci0JCQlkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihuZXdf YmxvYik7CisJCQlkcm1fcHJvcGVydHlfYmxvYl9wdXQobmV3X2Jsb2IpOwogCQkJcmV0dXJuIC1F SU5WQUw7CiAJCX0KIAl9CiAKIAlkcm1fYXRvbWljX3JlcGxhY2VfcHJvcGVydHlfYmxvYihibG9i LCBuZXdfYmxvYiwgcmVwbGFjZWQpOwotCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKG5l d19ibG9iKTsKKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQobmV3X2Jsb2IpOwogCiAJcmV0dXJuIDA7 CiB9CkBAIC00NzgsNyArNDc4LDcgQEAgaW50IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHko c3RydWN0IGRybV9jcnRjICpjcnRjLAogCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKm1vZGUg PQogCQkJZHJtX3Byb3BlcnR5X2xvb2t1cF9ibG9iKGRldiwgdmFsKTsKIAkJcmV0ID0gZHJtX2F0 b21pY19zZXRfbW9kZV9wcm9wX2Zvcl9jcnRjKHN0YXRlLCBtb2RlKTsKLQkJZHJtX3Byb3BlcnR5 X3VucmVmZXJlbmNlX2Jsb2IobW9kZSk7CisJCWRybV9wcm9wZXJ0eV9ibG9iX3B1dChtb2RlKTsK IAkJcmV0dXJuIHJldDsKIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ZGVnYW1tYV9s dXRfcHJvcGVydHkpIHsKIAkJcmV0ID0gZHJtX2F0b21pY19yZXBsYWNlX3Byb3BlcnR5X2Jsb2Jf ZnJvbV9pZChjcnRjLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwppbmRleCAxNTk5YTJh Y2Y3YWEuLjZmOTRmY2E0YzYwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAg LTMwNDIsMTMgKzMwNDIsMTMgQEAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGlj YXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAltZW1jcHkoc3RhdGUsIGNydGMtPnN0 YXRlLCBzaXplb2YoKnN0YXRlKSk7CiAKIAlpZiAoc3RhdGUtPm1vZGVfYmxvYikKLQkJZHJtX3By b3BlcnR5X3JlZmVyZW5jZV9ibG9iKHN0YXRlLT5tb2RlX2Jsb2IpOworCQlkcm1fcHJvcGVydHlf YmxvYl9nZXQoc3RhdGUtPm1vZGVfYmxvYik7CiAJaWYgKHN0YXRlLT5kZWdhbW1hX2x1dCkKLQkJ ZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9iKHN0YXRlLT5kZWdhbW1hX2x1dCk7CisJCWRybV9w cm9wZXJ0eV9ibG9iX2dldChzdGF0ZS0+ZGVnYW1tYV9sdXQpOwogCWlmIChzdGF0ZS0+Y3RtKQot CQlkcm1fcHJvcGVydHlfcmVmZXJlbmNlX2Jsb2Ioc3RhdGUtPmN0bSk7CisJCWRybV9wcm9wZXJ0 eV9ibG9iX2dldChzdGF0ZS0+Y3RtKTsKIAlpZiAoc3RhdGUtPmdhbW1hX2x1dCkKLQkJZHJtX3By b3BlcnR5X3JlZmVyZW5jZV9ibG9iKHN0YXRlLT5nYW1tYV9sdXQpOworCQlkcm1fcHJvcGVydHlf YmxvYl9nZXQoc3RhdGUtPmdhbW1hX2x1dCk7CiAJc3RhdGUtPm1vZGVfY2hhbmdlZCA9IGZhbHNl OwogCXN0YXRlLT5hY3RpdmVfY2hhbmdlZCA9IGZhbHNlOwogCXN0YXRlLT5wbGFuZXNfY2hhbmdl ZCA9IGZhbHNlOwpAQCAtMzA5MiwxMCArMzA5MiwxMCBAQCBFWFBPUlRfU1lNQk9MKGRybV9hdG9t aWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0YXRlKTsKICAqLwogdm9pZCBfX2RybV9hdG9taWNf aGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQog ewotCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKHN0YXRlLT5tb2RlX2Jsb2IpOwotCWRy bV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKHN0YXRlLT5kZWdhbW1hX2x1dCk7Ci0JZHJtX3By b3BlcnR5X3VucmVmZXJlbmNlX2Jsb2Ioc3RhdGUtPmN0bSk7Ci0JZHJtX3Byb3BlcnR5X3VucmVm ZXJlbmNlX2Jsb2Ioc3RhdGUtPmdhbW1hX2x1dCk7CisJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KHN0 YXRlLT5tb2RlX2Jsb2IpOworCWRybV9wcm9wZXJ0eV9ibG9iX3B1dChzdGF0ZS0+ZGVnYW1tYV9s dXQpOworCWRybV9wcm9wZXJ0eV9ibG9iX3B1dChzdGF0ZS0+Y3RtKTsKKwlkcm1fcHJvcGVydHlf YmxvYl9wdXQoc3RhdGUtPmdhbW1hX2x1dCk7CiB9CiBFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21p Y19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKTsKIApAQCAtMzQ5Myw3ICszNDkzLDcgQEAgaW50 IGRybV9hdG9taWNfaGVscGVyX2xlZ2FjeV9nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRj LAogCQlnb3RvIGJhY2tvZmY7CiAKIAlkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7Ci0JZHJt X3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2IoYmxvYik7CisJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0 KGJsb2IpOwogCXJldHVybiByZXQ7CiAKIGJhY2tvZmY6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX21vZGVfY29uZmlnLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmln LmMKaW5kZXggMjBhZWMxNjVhYmQ3Li4zNzc3OWI5ZjBjMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fbW9kZV9jb25maWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVf Y29uZmlnLmMKQEAgLTQ0NCw3ICs0NDQsNyBAQCB2b2lkIGRybV9tb2RlX2NvbmZpZ19jbGVhbnVw KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoYmxv YiwgYnQsICZkZXYtPm1vZGVfY29uZmlnLnByb3BlcnR5X2Jsb2JfbGlzdCwKIAkJCQkgaGVhZF9n bG9iYWwpIHsKLQkJZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2IoYmxvYik7CisJCWRybV9w cm9wZXJ0eV9ibG9iX3B1dChibG9iKTsKIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9wcm9wZXJ0eS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jCmlu ZGV4IDE1YWYwZDQyZThiZS4uYjE3OTU5YzNlMDk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX3Byb3BlcnR5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jCkBA IC01ODcsMTkgKzU4NywxOSBAQCBkcm1fcHJvcGVydHlfY3JlYXRlX2Jsb2Ioc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc2l6ZV90IGxlbmd0aCwKIEVYUE9SVF9TWU1CT0woZHJtX3Byb3BlcnR5X2Ny ZWF0ZV9ibG9iKTsKIAogLyoqCi0gKiBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYiAtIFVu cmVmZXJlbmNlIGEgYmxvYiBwcm9wZXJ0eQotICogQGJsb2I6IFBvaW50ZXIgdG8gYmxvYiBwcm9w ZXJ0eQorICogZHJtX3Byb3BlcnR5X2Jsb2JfcHV0IC0gcmVsZWFzZSBhIGJsb2IgcHJvcGVydHkg cmVmZXJlbmNlCisgKiBAYmxvYjogRFJNIGJsb2IgcHJvcGVydHkKICAqCi0gKiBEcm9wIGEgcmVm ZXJlbmNlIG9uIGEgYmxvYiBwcm9wZXJ0eS4gTWF5IGZyZWUgdGhlIG9iamVjdC4KKyAqIFJlbGVh c2VzIGEgcmVmZXJlbmNlIHRvIGEgYmxvYiBwcm9wZXJ0eS4gTWF5IGZyZWUgdGhlIG9iamVjdC4K ICAqLwotdm9pZCBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdHJ1Y3QgZHJtX3Byb3Bl cnR5X2Jsb2IgKmJsb2IpCit2b2lkIGRybV9wcm9wZXJ0eV9ibG9iX3B1dChzdHJ1Y3QgZHJtX3By b3BlcnR5X2Jsb2IgKmJsb2IpCiB7CiAJaWYgKCFibG9iKQogCQlyZXR1cm47CiAKIAlkcm1fbW9k ZV9vYmplY3RfcHV0KCZibG9iLT5iYXNlKTsKIH0KLUVYUE9SVF9TWU1CT0woZHJtX3Byb3BlcnR5 X3VucmVmZXJlbmNlX2Jsb2IpOworRVhQT1JUX1NZTUJPTChkcm1fcHJvcGVydHlfYmxvYl9wdXQp OwogCiB2b2lkIGRybV9wcm9wZXJ0eV9kZXN0cm95X3VzZXJfYmxvYnMoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQpAQCAtNjEyLDIz ICs2MTIsMjMgQEAgdm9pZCBkcm1fcHJvcGVydHlfZGVzdHJveV91c2VyX2Jsb2JzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJICovCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJsb2IsIGJ0 LCAmZmlsZV9wcml2LT5ibG9icywgaGVhZF9maWxlKSB7CiAJCWxpc3RfZGVsX2luaXQoJmJsb2It PmhlYWRfZmlsZSk7Ci0JCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKGJsb2IpOworCQlk cm1fcHJvcGVydHlfYmxvYl9wdXQoYmxvYik7CiAJfQogfQogCiAvKioKLSAqIGRybV9wcm9wZXJ0 eV9yZWZlcmVuY2VfYmxvYiAtIFRha2UgYSByZWZlcmVuY2Ugb24gYW4gZXhpc3RpbmcgcHJvcGVy dHkKLSAqIEBibG9iOiBQb2ludGVyIHRvIGJsb2IgcHJvcGVydHkKKyAqIGRybV9wcm9wZXJ0eV9i bG9iX2dldCAtIGFjcXVpcmUgYmxvYiBwcm9wZXJ0eSByZWZlcmVuY2UKKyAqIEBibG9iOiBEUk0g YmxvYiBwcm9wZXJ0eQogICoKLSAqIFRha2UgYSBuZXcgcmVmZXJlbmNlIG9uIGFuIGV4aXN0aW5n IGJsb2IgcHJvcGVydHkuIFJldHVybnMgQGJsb2IsIHdoaWNoCisgKiBBY3F1aXJlcyBhIHJlZmVy ZW5jZSB0byBhbiBleGlzdGluZyBibG9iIHByb3BlcnR5LiBSZXR1cm5zIEBibG9iLCB3aGljaAog ICogYWxsb3dzIHRoaXMgdG8gYmUgdXNlZCBhcyBhIHNob3J0aGFuZCBpbiBhc3NpZ25tZW50cy4K ICAqLwotc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkcm1fcHJvcGVydHlfcmVmZXJlbmNlX2Js b2Ioc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKQorc3RydWN0IGRybV9wcm9wZXJ0eV9i bG9iICpkcm1fcHJvcGVydHlfYmxvYl9nZXQoc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9i KQogewogCWRybV9tb2RlX29iamVjdF9nZXQoJmJsb2ItPmJhc2UpOwogCXJldHVybiBibG9iOwog fQotRVhQT1JUX1NZTUJPTChkcm1fcHJvcGVydHlfcmVmZXJlbmNlX2Jsb2IpOworRVhQT1JUX1NZ TUJPTChkcm1fcHJvcGVydHlfYmxvYl9nZXQpOwogCiAvKioKICAqIGRybV9wcm9wZXJ0eV9sb29r dXBfYmxvYiAtIGxvb2sgdXAgYSBibG9iIHByb3BlcnR5IGFuZCB0YWtlIGEgcmVmZXJlbmNlCkBA IC02MzcsNyArNjM3LDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fcHJvcGVydHlfcmVmZXJlbmNlX2Js b2IpOwogICoKICAqIElmIHN1Y2Nlc3NmdWwsIHRoaXMgdGFrZXMgYW4gYWRkaXRpb25hbCByZWZl cmVuY2UgdG8gdGhlIGJsb2IgcHJvcGVydHkuCiAgKiBjYWxsZXJzIG5lZWQgdG8gbWFrZSBzdXJl IHRvIGV2ZW50dWFsbHkgdW5yZWZlcmVuY2UgdGhlIHJldHVybmVkIHByb3BlcnR5Ci0gKiBhZ2Fp biwgdXNpbmcgQGRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iLgorICogYWdhaW4sIHVzaW5n IGRybV9wcm9wZXJ0eV9ibG9iX3B1dCgpLgogICoKICAqIFJldHVybjoKICAqIE5VTEwgb24gZmFp bHVyZSwgcG9pbnRlciB0byB0aGUgYmxvYiBvbiBzdWNjZXNzLgpAQCAtNzEyLDEzICs3MTIsMTMg QEAgaW50IGRybV9wcm9wZXJ0eV9yZXBsYWNlX2dsb2JhbF9ibG9iKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJCQlnb3RvIGVycl9jcmVhdGVkOwogCX0KIAotCWRybV9wcm9wZXJ0eV91bnJlZmVy ZW5jZV9ibG9iKG9sZF9ibG9iKTsKKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQob2xkX2Jsb2IpOwog CSpyZXBsYWNlID0gbmV3X2Jsb2I7CiAKIAlyZXR1cm4gMDsKIAogZXJyX2NyZWF0ZWQ6Ci0JZHJt X3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2IobmV3X2Jsb2IpOworCWRybV9wcm9wZXJ0eV9ibG9i X3B1dChuZXdfYmxvYik7CiAJcmV0dXJuIHJldDsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX3Byb3Bl cnR5X3JlcGxhY2VfZ2xvYmFsX2Jsb2IpOwpAQCAtNzQ3LDcgKzc0Nyw3IEBAIGludCBkcm1fbW9k ZV9nZXRibG9iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJfQogCW91dF9yZXNwLT5s ZW5ndGggPSBibG9iLT5sZW5ndGg7CiB1bnJlZjoKLQlkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2Vf YmxvYihibG9iKTsKKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQoYmxvYik7CiAKIAlyZXR1cm4gcmV0 OwogfQpAQCAtNzg0LDcgKzc4NCw3IEBAIGludCBkcm1fbW9kZV9jcmVhdGVibG9iX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJcmV0dXJuIDA7CiAKIG91dF9ibG9iOgotCWRybV9wcm9w ZXJ0eV91bnJlZmVyZW5jZV9ibG9iKGJsb2IpOworCWRybV9wcm9wZXJ0eV9ibG9iX3B1dChibG9i KTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC04MjMsMTQgKzgyMywxNCBAQCBpbnQgZHJtX21vZGVf ZGVzdHJveWJsb2JfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAltdXRleF91bmxvY2so JmRldi0+bW9kZV9jb25maWcuYmxvYl9sb2NrKTsKIAogCS8qIE9uZSByZWZlcmVuY2UgZnJvbSBs b29rdXAsIGFuZCBvbmUgZnJvbSB0aGUgZmlscC4gKi8KLQlkcm1fcHJvcGVydHlfdW5yZWZlcmVu Y2VfYmxvYihibG9iKTsKLQlkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihibG9iKTsKKwlk cm1fcHJvcGVydHlfYmxvYl9wdXQoYmxvYik7CisJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KGJsb2Ip OwogCiAJcmV0dXJuIDA7CiAKIGVycjoKIAltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25maWcu YmxvYl9sb2NrKTsKLQlkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihibG9iKTsKKwlkcm1f cHJvcGVydHlfYmxvYl9wdXQoYmxvYik7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtOTA4LDUgKzkw OCw1IEBAIHZvaWQgZHJtX3Byb3BlcnR5X2NoYW5nZV92YWxpZF9wdXQoc3RydWN0IGRybV9wcm9w ZXJ0eSAqcHJvcGVydHksCiAJaWYgKGRybV9wcm9wZXJ0eV90eXBlX2lzKHByb3BlcnR5LCBEUk1f TU9ERV9QUk9QX09CSkVDVCkpIHsKIAkJZHJtX21vZGVfb2JqZWN0X3B1dChyZWYpOwogCX0gZWxz ZSBpZiAoZHJtX3Byb3BlcnR5X3R5cGVfaXMocHJvcGVydHksIERSTV9NT0RFX1BST1BfQkxPQikp Ci0JCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKG9ial90b19ibG9iKHJlZikpOworCQlk cm1fcHJvcGVydHlfYmxvYl9wdXQob2JqX3RvX2Jsb2IocmVmKSk7CiB9CmRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS9kcm1fcHJvcGVydHkuaCBiL2luY2x1ZGUvZHJtL2RybV9wcm9wZXJ0eS5oCmlu ZGV4IGY2NmZkYjQ3NTUxYy4uMTNlOGMxN2QxYzc5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9k cm1fcHJvcGVydHkuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fcHJvcGVydHkuaApAQCAtMjAwLDkg KzIwMCw4IEBAIHN0cnVjdCBkcm1fcHJvcGVydHkgewogICogQmxvYnMgYXJlIHVzZWQgdG8gc3Rv cmUgYmlnZ2VyIHZhbHVlcyB0aGFuIHdoYXQgZml0cyBkaXJlY3RseSBpbnRvIHRoZSA2NAogICog Yml0cyBhdmFpbGFibGUgZm9yIGEgJmRybV9wcm9wZXJ0eS4KICAqCi0gKiBCbG9icyBhcmUgcmVm ZXJlbmNlIGNvdW50ZWQgdXNpbmcgZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9iKCkgYW5kCi0g KiBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYigpLiBUaGV5IGFyZSBjcmVhdGVkIHVzaW5n Ci0gKiBkcm1fcHJvcGVydHlfY3JlYXRlX2Jsb2IoKS4KKyAqIEJsb2JzIGFyZSByZWZlcmVuY2Ug Y291bnRlZCB1c2luZyBkcm1fcHJvcGVydHlfYmxvYl9nZXQoKSBhbmQKKyAqIGRybV9wcm9wZXJ0 eV9ibG9iX3B1dCgpLiBUaGV5IGFyZSBjcmVhdGVkIHVzaW5nIGRybV9wcm9wZXJ0eV9jcmVhdGVf YmxvYigpLgogICovCiBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgewogCXN0cnVjdCBkcm1fbW9k ZV9vYmplY3QgYmFzZTsKQEAgLTI3NCw4ICsyNzMsMzQgQEAgaW50IGRybV9wcm9wZXJ0eV9yZXBs YWNlX2dsb2JhbF9ibG9iKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgICBjb25zdCB2 b2lkICpkYXRhLAogCQkJCSAgICAgc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqX2hvbGRzX2lk LAogCQkJCSAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9ob2xkc19pZCk7Ci1zdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKmRybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxvYihzdHJ1Y3QgZHJt X3Byb3BlcnR5X2Jsb2IgKmJsb2IpOwotdm9pZCBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxv YihzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IpOworc3RydWN0IGRybV9wcm9wZXJ0eV9i bG9iICpkcm1fcHJvcGVydHlfYmxvYl9nZXQoc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9i KTsKK3ZvaWQgZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq YmxvYik7CisKKy8qKgorICogZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9iIC0gYWNxdWlyZSBh IGJsb2IgcHJvcGVydHkgcmVmZXJlbmNlCisgKiBAYmxvYjogRFJNIGJsb2IgcHJvcGVydHkKKyAq CisgKiBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBhbGlhcyBmb3IgZHJtX3Byb3BlcnR5X2Jsb2Jf Z2V0KCkgYW5kIHNob3VsZCBub3QgYmUKKyAqIHVzZWQgYnkgbmV3IGNvZGUuCisgKi8KK3N0YXRp YyBpbmxpbmUgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICoKK2RybV9wcm9wZXJ0eV9yZWZlcmVu Y2VfYmxvYihzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IpCit7CisJcmV0dXJuIGRybV9w cm9wZXJ0eV9ibG9iX2dldChibG9iKTsKK30KKworLyoqCisgKiBkcm1fcHJvcGVydHlfdW5yZWZl cmVuY2VfYmxvYiAtIHJlbGVhc2UgYSBibG9iIHByb3BlcnR5IHJlZmVyZW5jZQorICogQGJsb2I6 IERSTSBibG9iIHByb3BlcnR5CisgKgorICogVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgYWxpYXMg Zm9yIGRybV9wcm9wZXJ0eV9ibG9iX3B1dCgpIGFuZCBzaG91bGQgbm90IGJlCisgKiB1c2VkIGJ5 IG5ldyBjb2RlLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQKK2RybV9wcm9wZXJ0eV91bnJlZmVy ZW5jZV9ibG9iKHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYikKK3sKKwlkcm1fcHJvcGVy dHlfYmxvYl9wdXQoYmxvYik7Cit9CiAKIC8qKgogICogZHJtX2Nvbm5lY3Rvcl9maW5kIC0gZmlu ZCBwcm9wZXJ0eSBvYmplY3QKZGlmZiAtLWdpdCBhL3NjcmlwdHMvY29jY2luZWxsZS9hcGkvZHJt LWdldC1wdXQuY29jY2kgYi9zY3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2Np CmluZGV4IDI0ODgyNTQ3YjRkMS4uMGM3YTkyNjVjMDdlIDEwMDY0NAotLS0gYS9zY3JpcHRzL2Nv Y2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpCisrKyBiL3NjcmlwdHMvY29jY2luZWxsZS9h cGkvZHJtLWdldC1wdXQuY29jY2kKQEAgLTQ0LDYgKzQ0LDEyIEBAIGV4cHJlc3Npb24gb2JqZWN0 OwogfAogLSBkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChvYmplY3QpCiArIGRy bV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmplY3QpCit8CistIGRybV9wcm9wZXJ0eV9yZWZl cmVuY2VfYmxvYihvYmplY3QpCisrIGRybV9wcm9wZXJ0eV9ibG9iX2dldChvYmplY3QpCit8Cist IGRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKG9iamVjdCkKKysgZHJtX3Byb3BlcnR5X2Js b2JfcHV0KG9iamVjdCkKICkKIAogQHIgZGVwZW5kcyBvbiByZXBvcnRACkBAIC03MSw2ICs3Nywx MCBAQCBkcm1fZ2VtX29iamVjdF9yZWZlcmVuY2VAcChvYmplY3QpCiBfX2RybV9nZW1fb2JqZWN0 X3VucmVmZXJlbmNlKG9iamVjdCkKIHwKIGRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9j a2VkKG9iamVjdCkKK3wKK2RybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iQHAob2JqZWN0KQor fAorZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9iQHAob2JqZWN0KQogKQogCiBAc2NyaXB0OnB5 dGhvbiBkZXBlbmRzIG9uIHJlcG9ydEAKLS0gCjIuMTEuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==