From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v3 4/7] drm: Introduce drm_framebuffer_{get,put}() Date: Tue, 28 Feb 2017 15:46:40 +0100 Message-ID: <20170228144643.5668-5-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-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 593FB6E744 for ; Tue, 28 Feb 2017 14:46:55 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id v77so2757847wmv.0 for ; Tue, 28 Feb 2017 06:46:55 -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 cm1fZnJhbWVidWZmZXJfZ2V0KCkgYW5kIGRybV9mcmFtZWJ1ZmZlcl9wdXQoKSB0byByZWZlcmVu Y2UgY291bnQgRFJNCmZyYW1lYnVmZmVycy4KCkNvbXBhdGliaWxpdHkgYWxpYXNlcyBhcmUgYWRk ZWQgdG8ga2VlcCBleGlzdGluZyBjb2RlIHdvcmtpbmcuIFRvIGhlbHAKc3BlZWQgdXAgdGhlIHRy YW5zaXRpb24sIGFsbCB0aGUgaW5zdGFuY2VzIG9mIHRoZSBvbGQgZnVuY3Rpb25zIGluIHRoZQpE Uk0gY29yZSBhcmUgYWxyZWFkeSByZXBsYWNlZCBpbiB0aGlzIGNvbW1pdC4KClRoZSBleGlzdGlu ZyBzZW1hbnRpYyBwYXRjaCBmb3IgdGhlIERSTSBzdWJzeXN0ZW0td2lkZSBjb252ZXJzaW9uIGlz CmV4dGVuZGVkIHRvIGFjY291bnQgZm9yIHRoZXNlIG5ldyBoZWxwZXJzLgoKUmV2aWV3ZWQtYnk6 IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgpBY2tlZC1ieTogQ2hyaXN0aWFuIEvD tm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJl ZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj LmMgICAgICAgICAgICAgfCAgNiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYyAgICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyAgICAgICAgICAg ICAgIHwgIDggKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgICAgICAg IHwgMzQgKysrKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5j ICAgICAgICAgICAgICB8IDEyICsrKystLS0tCiBpbmNsdWRlL2RybS9kcm1fZnJhbWVidWZmZXIu aCAgICAgICAgICAgIHwgNDkgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KIHNjcmlw dHMvY29jY2luZWxsZS9hcGkvZHJtLWdldC1wdXQuY29jY2kgfCAxMCArKysrKysrCiA3IGZpbGVz IGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Yy5jCmluZGV4IDgyYmFkNDBiMmYzZS4uNzQwNjUwYjQ1MGM1IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMK QEAgLTczMyw3ICs3MzMsNyBAQCBpbnQgZHJtX2F0b21pY19wbGFuZV9zZXRfcHJvcGVydHkoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gZHJt X2ZyYW1lYnVmZmVyX2xvb2t1cChkZXYsIHZhbCk7CiAJCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9w bGFuZShzdGF0ZSwgZmIpOwogCQlpZiAoZmIpCi0JCQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVu Y2UoZmIpOworCQkJZHJtX2ZyYW1lYnVmZmVyX3B1dChmYik7CiAJfSBlbHNlIGlmIChwcm9wZXJ0 eSA9PSBjb25maWctPnByb3BfaW5fZmVuY2VfZmQpIHsKIAkJaWYgKHN0YXRlLT5mZW5jZSkKIAkJ CXJldHVybiAtRUlOVkFMOwpAQCAtMTgzNywxMiArMTgzNywxMiBAQCB2b2lkIGRybV9hdG9taWNf Y2xlYW5fb2xkX2ZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWlmIChyZXQgPT0gMCkgewog CQkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqbmV3X2ZiID0gcGxhbmUtPnN0YXRlLT5mYjsKIAkJ CWlmIChuZXdfZmIpCi0JCQkJZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShuZXdfZmIpOworCQkJ CWRybV9mcmFtZWJ1ZmZlcl9nZXQobmV3X2ZiKTsKIAkJCXBsYW5lLT5mYiA9IG5ld19mYjsKIAkJ CXBsYW5lLT5jcnRjID0gcGxhbmUtPnN0YXRlLT5jcnRjOwogCiAJCQlpZiAocGxhbmUtPm9sZF9m YikKLQkJCQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UocGxhbmUtPm9sZF9mYik7CisJCQkJ ZHJtX2ZyYW1lYnVmZmVyX3B1dChwbGFuZS0+b2xkX2ZiKTsKIAkJfQogCQlwbGFuZS0+b2xkX2Zi ID0gTlVMTDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IDQ1Yzk5ZGUz NTBjMS4uMTU5OWEyYWNmN2FhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpAQCAt MzE1MSw3ICszMTUxLDcgQEAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0 ZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAltZW1jcHkoc3RhdGUsIHBsYW5lLT5z dGF0ZSwgc2l6ZW9mKCpzdGF0ZSkpOwogCiAJaWYgKHN0YXRlLT5mYikKLQkJZHJtX2ZyYW1lYnVm ZmVyX3JlZmVyZW5jZShzdGF0ZS0+ZmIpOworCQlkcm1fZnJhbWVidWZmZXJfZ2V0KHN0YXRlLT5m Yik7CiAKIAlzdGF0ZS0+ZmVuY2UgPSBOVUxMOwogfQpAQCAtMzE5MSw3ICszMTkxLDcgQEAgRVhQ T1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUpOwogdm9p ZCBfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqc3RhdGUpCiB7CiAJaWYgKHN0YXRlLT5mYikKLQkJZHJtX2ZyYW1lYnVmZmVyX3Vu cmVmZXJlbmNlKHN0YXRlLT5mYik7CisJCWRybV9mcmFtZWJ1ZmZlcl9wdXQoc3RhdGUtPmZiKTsK IAogCWlmIChzdGF0ZS0+ZmVuY2UpCiAJCWRtYV9mZW5jZV9wdXQoc3RhdGUtPmZlbmNlKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9jcnRjLmMKaW5kZXggOTU5NGM2MjM3OTliLi5lMjk3NGQzYzkyZTcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5j CkBAIC00NzEsOSArNDcxLDkgQEAgaW50IGRybV9tb2RlX3NldF9jb25maWdfaW50ZXJuYWwoc3Ry dWN0IGRybV9tb2RlX3NldCAqc2V0KQogCiAJZHJtX2Zvcl9lYWNoX2NydGModG1wLCBjcnRjLT5k ZXYpIHsKIAkJaWYgKHRtcC0+cHJpbWFyeS0+ZmIpCi0JCQlkcm1fZnJhbWVidWZmZXJfcmVmZXJl bmNlKHRtcC0+cHJpbWFyeS0+ZmIpOworCQkJZHJtX2ZyYW1lYnVmZmVyX2dldCh0bXAtPnByaW1h cnktPmZiKTsKIAkJaWYgKHRtcC0+cHJpbWFyeS0+b2xkX2ZiKQotCQkJZHJtX2ZyYW1lYnVmZmVy X3VucmVmZXJlbmNlKHRtcC0+cHJpbWFyeS0+b2xkX2ZiKTsKKwkJCWRybV9mcmFtZWJ1ZmZlcl9w dXQodG1wLT5wcmltYXJ5LT5vbGRfZmIpOwogCQl0bXAtPnByaW1hcnktPm9sZF9mYiA9IE5VTEw7 CiAJfQogCkBAIC01NjcsNyArNTY3LDcgQEAgaW50IGRybV9tb2RlX3NldGNydGMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCX0KIAkJCWZiID0gY3J0Yy0+cHJpbWFyeS0+ ZmI7CiAJCQkvKiBNYWtlIHJlZmNvdW50aW5nIHN5bW1ldHJpYyB3aXRoIHRoZSBsb29rdXAgcGF0 aC4gKi8KLQkJCWRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2UoZmIpOworCQkJZHJtX2ZyYW1lYnVm ZmVyX2dldChmYik7CiAJCX0gZWxzZSB7CiAJCQlmYiA9IGRybV9mcmFtZWJ1ZmZlcl9sb29rdXAo ZGV2LCBjcnRjX3JlcS0+ZmJfaWQpOwogCQkJaWYgKCFmYikgewpAQCAtNjgwLDcgKzY4MCw3IEBA IGludCBkcm1fbW9kZV9zZXRjcnRjKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs CiAKIG91dDoKIAlpZiAoZmIpCi0JCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShmYik7CisJ CWRybV9mcmFtZWJ1ZmZlcl9wdXQoZmIpOwogCiAJaWYgKGNvbm5lY3Rvcl9zZXQpIHsKIAkJZm9y IChpID0gMDsgaSA8IGNydGNfcmVxLT5jb3VudF9jb25uZWN0b3JzOyBpKyspIHsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZnJhbWVidWZmZXIuYwppbmRleCAxMWRhYTI0NjkyYWEuLjVlOGUxZDA2ODY2YSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZnJhbWVidWZmZXIuYwpAQCAtNTIsMTMgKzUyLDEzIEBACiAgKiBtZXRhZGF0YSBm aWVsZHMuCiAgKgogICogVGhlIGxpZmV0aW1lIG9mIGEgZHJtIGZyYW1lYnVmZmVyIGlzIGNvbnRy b2xsZWQgd2l0aCBhIHJlZmVyZW5jZSBjb3VudCwKLSAqIGRyaXZlcnMgY2FuIGdyYWIgYWRkaXRp b25hbCByZWZlcmVuY2VzIHdpdGggZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZSgpIGFuZAotICog ZHJvcCB0aGVtIGFnYWluIHdpdGggZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKCkuIEZvciBk cml2ZXItcHJpdmF0ZQotICogZnJhbWVidWZmZXJzIGZvciB3aGljaCB0aGUgbGFzdCByZWZlcmVu Y2UgaXMgbmV2ZXIgZHJvcHBlZCAoZS5nLiBmb3IgdGhlCi0gKiBmYmRldiBmcmFtZWJ1ZmZlciB3 aGVuIHRoZSBzdHJ1Y3QgJnN0cnVjdCBkcm1fZnJhbWVidWZmZXIgaXMgZW1iZWRkZWQgaW50bwot ICogdGhlIGZiZGV2IGhlbHBlciBzdHJ1Y3QpIGRyaXZlcnMgY2FuIG1hbnVhbGx5IGNsZWFuIHVw IGEgZnJhbWVidWZmZXIgYXQKLSAqIG1vZHVsZSB1bmxvYWQgdGltZSB3aXRoIGRybV9mcmFtZWJ1 ZmZlcl91bnJlZ2lzdGVyX3ByaXZhdGUoKS4gQnV0IGRvaW5nIHRoaXMKLSAqIGlzIG5vdCByZWNv bW1lbmRlZCwgYW5kIGl0J3MgYmV0dGVyIHRvIGhhdmUgYSBub3JtYWwgZnJlZS1zdGFuZGluZyAm c3RydWN0CisgKiBkcml2ZXJzIGNhbiBncmFiIGFkZGl0aW9uYWwgcmVmZXJlbmNlcyB3aXRoIGRy bV9mcmFtZWJ1ZmZlcl9nZXQoKSBhbmQgZHJvcAorICogdGhlbSBhZ2FpbiB3aXRoIGRybV9mcmFt ZWJ1ZmZlcl9wdXQoKS4gRm9yIGRyaXZlci1wcml2YXRlIGZyYW1lYnVmZmVycyBmb3IKKyAqIHdo aWNoIHRoZSBsYXN0IHJlZmVyZW5jZSBpcyBuZXZlciBkcm9wcGVkIChlLmcuIGZvciB0aGUgZmJk ZXYgZnJhbWVidWZmZXIKKyAqIHdoZW4gdGhlIHN0cnVjdCAmc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciBpcyBlbWJlZGRlZCBpbnRvIHRoZSBmYmRldiBoZWxwZXIKKyAqIHN0cnVjdCkgZHJpdmVycyBj YW4gbWFudWFsbHkgY2xlYW4gdXAgYSBmcmFtZWJ1ZmZlciBhdCBtb2R1bGUgdW5sb2FkIHRpbWUK KyAqIHdpdGggZHJtX2ZyYW1lYnVmZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZSgpLiBCdXQgZG9pbmcg dGhpcyBpcyBub3QKKyAqIHJlY29tbWVuZGVkLCBhbmQgaXQncyBiZXR0ZXIgdG8gaGF2ZSBhIG5v cm1hbCBmcmVlLXN0YW5kaW5nICZzdHJ1Y3QKICAqIGRybV9mcmFtZWJ1ZmZlci4KICAqLwogCkBA IC0zNzQsNyArMzc0LDcgQEAgaW50IGRybV9tb2RlX3JtZmIoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAltdXRleF91bmxvY2soJmZpbGVfcHJpdi0+ZmJzX2xvY2spOwogCiAJLyogZHJvcCB0aGUg cmVmZXJlbmNlIHdlIHBpY2tlZCB1cCBpbiBmcmFtZWJ1ZmZlciBsb29rdXAgKi8KLQlkcm1fZnJh bWVidWZmZXJfdW5yZWZlcmVuY2UoZmIpOworCWRybV9mcmFtZWJ1ZmZlcl9wdXQoZmIpOwogCiAJ LyoKIAkgKiB3ZSBub3cgb3duIHRoZSByZWZlcmVuY2UgdGhhdCB3YXMgc3RvcmVkIGluIHRoZSBm YnMgbGlzdApAQCAtMzk0LDEyICszOTQsMTIgQEAgaW50IGRybV9tb2RlX3JtZmIoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJZmx1c2hfd29yaygmYXJnLndvcmspOwogCQlkZXN0cm95X3dvcmtf b25fc3RhY2soJmFyZy53b3JrKTsKIAl9IGVsc2UKLQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJl bmNlKGZiKTsKKwkJZHJtX2ZyYW1lYnVmZmVyX3B1dChmYik7CiAKIAlyZXR1cm4gMDsKIAogZmFp bF91bnJlZjoKLQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UoZmIpOworCWRybV9mcmFtZWJ1 ZmZlcl9wdXQoZmIpOwogCXJldHVybiAtRU5PRU5UOwogfQogCkBAIC00NTMsNyArNDUzLDcgQEAg aW50IGRybV9tb2RlX2dldGZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXJldCA9IC1FTk9E RVY7CiAJfQogCi0JZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGZiKTsKKwlkcm1fZnJhbWVi dWZmZXJfcHV0KGZiKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC01NDAsNyArNTQwLDcgQEAgaW50 IGRybV9tb2RlX2RpcnR5ZmJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIG91dF9lcnIy OgogCWtmcmVlKGNsaXBzKTsKIG91dF9lcnIxOgotCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5j ZShmYik7CisJZHJtX2ZyYW1lYnVmZmVyX3B1dChmYik7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAt NTgwLDcgKzU4MCw3IEBAIHZvaWQgZHJtX2ZiX3JlbGVhc2Uoc3RydWN0IGRybV9maWxlICpwcml2 KQogCQkJbGlzdF9kZWxfaW5pdCgmZmItPmZpbHBfaGVhZCk7CiAKIAkJCS8qIFRoaXMgZHJvcHMg dGhlIGZwcml2LT5mYnMgcmVmZXJlbmNlLiAqLwotCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJl bmNlKGZiKTsKKwkJCWRybV9mcmFtZWJ1ZmZlcl9wdXQoZmIpOwogCQl9CiAJfQogCkBAIC02NjEs NyArNjYxLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fZnJhbWVidWZmZXJfaW5pdCk7CiAgKgogICog SWYgc3VjY2Vzc2Z1bCwgdGhpcyBncmFicyBhbiBhZGRpdGlvbmFsIHJlZmVyZW5jZSB0byB0aGUg ZnJhbWVidWZmZXIgLQogICogY2FsbGVycyBuZWVkIHRvIG1ha2Ugc3VyZSB0byBldmVudHVhbGx5 IHVucmVmZXJlbmNlIHRoZSByZXR1cm5lZCBmcmFtZWJ1ZmZlcgotICogYWdhaW4sIHVzaW5nIEBk cm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UuCisgKiBhZ2FpbiwgdXNpbmcgZHJtX2ZyYW1lYnVm ZmVyX3B1dCgpLgogICovCiBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpkcm1fZnJhbWVidWZmZXJf bG9va3VwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCSAgICAgICB1aW50MzJfdCBpZCkK QEAgLTY4Nyw4ICs2ODcsOCBAQCBFWFBPUlRfU1lNQk9MKGRybV9mcmFtZWJ1ZmZlcl9sb29rdXAp OwogICoKICAqIE5PVEU6IFRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4gRm9yIGRyaXZlci1w cml2YXRlIGZyYW1lYnVmZmVycyBpdCBpcyBub3QKICAqIHJlY29tbWVuZGVkIHRvIGVtYmVkIGEg ZnJhbWVidWZmZXIgc3RydWN0IGluZm8gZmJkZXYgc3RydWN0LCBpbnN0ZWFkLCBhCi0gKiBmcmFt ZWJ1ZmZlciBwb2ludGVyIGlzIHByZWZlcnJlZCBhbmQgZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJl bmNlKCkgc2hvdWxkIGJlCi0gKiBjYWxsZWQgd2hlbiB0aGUgZnJhbWVidWZmZXIgaXMgdG8gYmUg Y2xlYW5lZCB1cC4KKyAqIGZyYW1lYnVmZmVyIHBvaW50ZXIgaXMgcHJlZmVycmVkIGFuZCBkcm1f ZnJhbWVidWZmZXJfcHV0KCkgc2hvdWxkIGJlIGNhbGxlZAorICogd2hlbiB0aGUgZnJhbWVidWZm ZXIgaXMgdG8gYmUgY2xlYW5lZCB1cC4KICAqLwogdm9pZCBkcm1fZnJhbWVidWZmZXJfdW5yZWdp c3Rlcl9wcml2YXRlKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQogewpAQCAtNzkwLDcgKzc5 MCw3IEBAIHZvaWQgZHJtX2ZyYW1lYnVmZmVyX3JlbW92ZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYikKIAkJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOwogCX0KIAotCWRybV9mcmFtZWJ1 ZmZlcl91bnJlZmVyZW5jZShmYik7CisJZHJtX2ZyYW1lYnVmZmVyX3B1dChmYik7CiB9CiBFWFBP UlRfU1lNQk9MKGRybV9mcmFtZWJ1ZmZlcl9yZW1vdmUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKaW5kZXgg ZjQyNTkwMDQ5YTNhLi5hMjJlNzY4MzcwNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKQEAgLTI5Myw3ICsy OTMsNyBAQCB2b2lkIGRybV9wbGFuZV9mb3JjZV9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lKQogCQlyZXR1cm47CiAJfQogCS8qIGRpc2Nvbm5lY3QgdGhlIHBsYW5lIGZyb20gdGhlIGZi IGFuZCBjcnRjOiAqLwotCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShwbGFuZS0+b2xkX2Zi KTsKKwlkcm1fZnJhbWVidWZmZXJfcHV0KHBsYW5lLT5vbGRfZmIpOwogCXBsYW5lLT5vbGRfZmIg PSBOVUxMOwogCXBsYW5lLT5mYiA9IE5VTEw7CiAJcGxhbmUtPmNydGMgPSBOVUxMOwpAQCAtNTIw LDkgKzUyMCw5IEBAIHN0YXRpYyBpbnQgX19zZXRwbGFuZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKIAogb3V0OgogCWlmIChmYikKLQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJl bmNlKGZiKTsKKwkJZHJtX2ZyYW1lYnVmZmVyX3B1dChmYik7CiAJaWYgKHBsYW5lLT5vbGRfZmIp Ci0JCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShwbGFuZS0+b2xkX2ZiKTsKKwkJZHJtX2Zy YW1lYnVmZmVyX3B1dChwbGFuZS0+b2xkX2ZiKTsKIAlwbGFuZS0+b2xkX2ZiID0gTlVMTDsKIAog CXJldHVybiByZXQ7CkBAIC02MzgsNyArNjM4LDcgQEAgc3RhdGljIGludCBkcm1fbW9kZV9jdXJz b3JfdW5pdmVyc2FsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl9IGVsc2UgewogCQlmYiA9IGNy dGMtPmN1cnNvci0+ZmI7CiAJCWlmIChmYikKLQkJCWRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2Uo ZmIpOworCQkJZHJtX2ZyYW1lYnVmZmVyX2dldChmYik7CiAJfQogCiAJaWYgKHJlcS0+ZmxhZ3Mg JiBEUk1fTU9ERV9DVVJTT1JfTU9WRSkgewpAQCAtOTAyLDkgKzkwMiw5IEBAIGludCBkcm1fbW9k ZV9wYWdlX2ZsaXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAocmV0ICYmIGNy dGMtPmZ1bmNzLT5wYWdlX2ZsaXBfdGFyZ2V0KQogCQlkcm1fY3J0Y192YmxhbmtfcHV0KGNydGMp OwogCWlmIChmYikKLQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGZiKTsKKwkJZHJtX2Zy YW1lYnVmZmVyX3B1dChmYik7CiAJaWYgKGNydGMtPnByaW1hcnktPm9sZF9mYikKLQkJZHJtX2Zy YW1lYnVmZmVyX3VucmVmZXJlbmNlKGNydGMtPnByaW1hcnktPm9sZF9mYik7CisJCWRybV9mcmFt ZWJ1ZmZlcl9wdXQoY3J0Yy0+cHJpbWFyeS0+b2xkX2ZiKTsKIAljcnRjLT5wcmltYXJ5LT5vbGRf ZmIgPSBOVUxMOwogCWRybV9tb2Rlc2V0X3VubG9ja19jcnRjKGNydGMpOwogCmRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9kcm1fZnJhbWVidWZmZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9mcmFtZWJ1 ZmZlci5oCmluZGV4IGRkMWUzZTk5ZGNmZi4uNTI0NGYwNTlkMjNhIDEwMDY0NAotLS0gYS9pbmNs dWRlL2RybS9kcm1fZnJhbWVidWZmZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZnJhbWVidWZm ZXIuaApAQCAtMTAxLDggKzEwMSw4IEBAIHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3Mgewog ICogY2xlYW51cCAobGlrZSByZWxlYXNpbmcgdGhlIHJlZmVyZW5jZShzKSBvbiB0aGUgYmFja2lu ZyBHRU0gYm8ocykpCiAgKiBzaG91bGQgYmUgZGVmZXJyZWQuICBJbiBjYXNlcyBsaWtlIHRoaXMs IHRoZSBkcml2ZXIgd291bGQgbGlrZSB0bwogICogaG9sZCBhIHJlZiB0byB0aGUgZmIgZXZlbiB0 aG91Z2ggaXQgaGFzIGFscmVhZHkgYmVlbiByZW1vdmVkIGZyb20KLSAqIHVzZXJzcGFjZSBwZXJz cGVjdGl2ZS4gU2VlIGRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2UoKSBhbmQKLSAqIGRybV9mcmFt ZWJ1ZmZlcl91bnJlZmVyZW5jZSgpLgorICogdXNlcnNwYWNlIHBlcnNwZWN0aXZlLiBTZWUgZHJt X2ZyYW1lYnVmZmVyX2dldCgpIGFuZAorICogZHJtX2ZyYW1lYnVmZmVyX3B1dCgpLgogICoKICAq IFRoZSByZWZjb3VudCBpcyBzdG9yZWQgaW5zaWRlIHRoZSBtb2RlIG9iamVjdCBAYmFzZS4KICAq LwpAQCAtMjA0LDI1ICsyMDQsNTAgQEAgdm9pZCBkcm1fZnJhbWVidWZmZXJfY2xlYW51cChzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYik7CiB2b2lkIGRybV9mcmFtZWJ1ZmZlcl91bnJlZ2lzdGVy X3ByaXZhdGUoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpOwogCiAvKioKLSAqIGRybV9mcmFt ZWJ1ZmZlcl9yZWZlcmVuY2UgLSBpbmNyIHRoZSBmYiByZWZjbnQKLSAqIEBmYjogZnJhbWVidWZm ZXIKKyAqIGRybV9mcmFtZWJ1ZmZlcl9nZXQgLSBhY3F1aXJlIGEgZnJhbWVidWZmZXIgcmVmZXJl bmNlCisgKiBAZmI6IERSTSBmcmFtZWJ1ZmZlcgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaW5jcmVt ZW50cyB0aGUgZnJhbWVidWZmZXIncyByZWZlcmVuY2UgY291bnQuCisgKi8KK3N0YXRpYyBpbmxp bmUgdm9pZCBkcm1fZnJhbWVidWZmZXJfZ2V0KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQor eworCWRybV9tb2RlX29iamVjdF9nZXQoJmZiLT5iYXNlKTsKK30KKworLyoqCisgKiBkcm1fZnJh bWVidWZmZXJfcHV0IC0gcmVsZWFzZSBhIGZyYW1lYnVmZmVyIHJlZmVyZW5jZQorICogQGZiOiBE Uk0gZnJhbWVidWZmZXIKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGRlY3JlbWVudHMgdGhlIGZyYW1l YnVmZmVyJ3MgcmVmZXJlbmNlIGNvdW50IGFuZCBmcmVlcyB0aGUKKyAqIGZyYW1lYnVmZmVyIGlm IHRoZSByZWZlcmVuY2UgY291bnQgZHJvcHMgdG8gemVyby4KKyAqLworc3RhdGljIGlubGluZSB2 b2lkIGRybV9mcmFtZWJ1ZmZlcl9wdXQoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCit7CisJ ZHJtX21vZGVfb2JqZWN0X3B1dCgmZmItPmJhc2UpOworfQorCisvKioKKyAqIGRybV9mcmFtZWJ1 ZmZlcl9yZWZlcmVuY2UgLSBhY3F1aXJlIGEgZnJhbWVidWZmZXIgcmVmZXJlbmNlCisgKiBAZmI6 IERSTSBmcmFtZWJ1ZmZlcgogICoKLSAqIFRoaXMgZnVuY3Rpb25zIGluY3JlbWVudHMgdGhlIGZi J3MgcmVmY291bnQuCisgKiBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBhbGlhcyBmb3IgZHJtX2Zy YW1lYnVmZmVyX2dldCgpIGFuZCBzaG91bGQgbm90IGJlCisgKiB1c2VkIGJ5IG5ldyBjb2RlLgog ICovCiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYikKIHsKLQlkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlKCZmYi0+ YmFzZSk7CisJZHJtX2ZyYW1lYnVmZmVyX2dldChmYik7CiB9CiAKIC8qKgotICogZHJtX2ZyYW1l YnVmZmVyX3VucmVmZXJlbmNlIC0gdW5yZWYgYSBmcmFtZWJ1ZmZlcgotICogQGZiOiBmcmFtZWJ1 ZmZlciB0byB1bnJlZgorICogZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlIC0gcmVsZWFzZSBh IGZyYW1lYnVmZmVyIHJlZmVyZW5jZQorICogQGZiOiBEUk0gZnJhbWVidWZmZXIKICAqCi0gKiBU aGlzIGZ1bmN0aW9ucyBkZWNyZW1lbnRzIHRoZSBmYidzIHJlZmNvdW50IGFuZCBmcmVlcyBpdCBp ZiBpdCBkcm9wcyB0byB6ZXJvLgorICogVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgYWxpYXMgZm9y IGRybV9mcmFtZWJ1ZmZlcl9wdXQoKSBhbmQgc2hvdWxkIG5vdCBiZQorICogdXNlZCBieSBuZXcg Y29kZS4KICAqLwogc3RhdGljIGlubGluZSB2b2lkIGRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5j ZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKIHsKLQlkcm1fbW9kZV9vYmplY3RfdW5yZWZl cmVuY2UoJmZiLT5iYXNlKTsKKwlkcm1fZnJhbWVidWZmZXJfcHV0KGZiKTsKIH0KIAogLyoqCkBA IC0yNDgsOSArMjczLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGRybV9mcmFtZWJ1ZmZlcl9hc3Np Z24oc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqKnAsCiAJCQkJCSAgc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIpCiB7CiAJaWYgKGZiKQotCQlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlKGZiKTsK KwkJZHJtX2ZyYW1lYnVmZmVyX2dldChmYik7CiAJaWYgKCpwKQotCQlkcm1fZnJhbWVidWZmZXJf dW5yZWZlcmVuY2UoKnApOworCQlkcm1fZnJhbWVidWZmZXJfcHV0KCpwKTsKIAkqcCA9IGZiOwog fQogCmRpZmYgLS1naXQgYS9zY3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2Np IGIvc2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaQppbmRleCA4YTRjMmNi Nzg4OWUuLmZkMjk4YzI0YTQ2NSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9k cm0tZ2V0LXB1dC5jb2NjaQorKysgYi9zY3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0 LmNvY2NpCkBAIC0yNiw2ICsyNiwxMiBAQCBleHByZXNzaW9uIG9iamVjdDsKIHwKIC0gZHJtX2Nv bm5lY3Rvcl91bnJlZmVyZW5jZShvYmplY3QpCiArIGRybV9jb25uZWN0b3JfcHV0KG9iamVjdCkK K3wKKy0gZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShvYmplY3QpCisrIGRybV9mcmFtZWJ1ZmZl cl9nZXQob2JqZWN0KQorfAorLSBkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uob2JqZWN0KQor KyBkcm1fZnJhbWVidWZmZXJfcHV0KG9iamVjdCkKICkKIAogQHIgZGVwZW5kcyBvbiByZXBvcnRA CkBAIC00MSw2ICs0NywxMCBAQCBkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlQHAob2JqZWN0KQog ZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5jZUBwKG9iamVjdCkKIHwKIGRybV9jb25uZWN0b3JfcmVm ZXJlbmNlQHAob2JqZWN0KQorfAorZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlQHAob2JqZWN0 KQorfAorZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZUBwKG9iamVjdCkKICkKIAogQHNjcmlwdDpw eXRob24gZGVwZW5kcyBvbiByZXBvcnRACi0tIAoyLjExLjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=