From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 4/6] drm: Introduce drm_framebuffer_{get,put}() Date: Wed, 8 Feb 2017 19:24:06 +0100 Message-ID: <20170208182408.5442-5-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 6654F6E969 for ; Wed, 8 Feb 2017 18:24:19 +0000 (UTC) Received: by mail-wr0-x244.google.com with SMTP id i10so9515946wrb.0 for ; Wed, 08 Feb 2017 10:24:19 -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 cm1fZnJhbWVidWZmZXJfZ2V0KCkgYW5kIGRybV9mcmFtZWJ1ZmZlcl9wdXQoKSB0byByZWZlcmVu Y2UgY291bnQgRFJNCmZyYW1lYnVmZmVycy4KCkNvbXBhdGliaWxpdHkgYWxpYXNlcyBhcmUgYWRk ZWQgdG8ga2VlcCBleGlzdGluZyBjb2RlIHdvcmtpbmcuIFRvIGhlbHAKc3BlZWQgdXAgdGhlIHRy YW5zaXRpb24sIGFsbCB0aGUgaW5zdGFuY2VzIG9mIHRoZSBvbGQgZnVuY3Rpb25zIGluIHRoZQpE Uk0gY29yZSBhcmUgYWxyZWFkeSByZXBsYWNlZCBpbiB0aGlzIGNvbW1pdC4KClRoZSBleGlzdGlu ZyBzZW1hbnRpYyBwYXRjaCBmb3IgdGhlIERSTSBzdWJzeXN0ZW0td2lkZSBjb252ZXJzaW9uIGlz CmV4dGVuZGVkIHRvIGFjY291bnQgZm9yIHRoZXNlIG5ldyBoZWxwZXJzLgoKU2lnbmVkLW9mZi1i eTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pYy5jICAgICAgICAgICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRj LmMgICAgICAgICAgICAgICB8ICA4ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1 ZmZlci5jICAgICAgICB8IDM0ICsrKysrKysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9kcm1fcGxhbmUuYyAgICAgICAgICAgICAgfCAxMiArKysrLS0tLQogaW5jbHVkZS9kcm0vZHJt X2ZyYW1lYnVmZmVyLmggICAgICAgICAgICB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tCiBzY3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpIHwgMTAgKysr KysrKwogNyBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWMuYwppbmRleCA4MmJhZDQwYjJmM2UuLjc0MDY1MGI0NTBjNSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pYy5jCkBAIC03MzMsNyArNzMzLDcgQEAgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0 X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiA9IGRybV9mcmFtZWJ1ZmZlcl9sb29rdXAoZGV2LCB2YWwpOwogCQlkcm1fYXRvbWlj X3NldF9mYl9mb3JfcGxhbmUoc3RhdGUsIGZiKTsKIAkJaWYgKGZiKQotCQkJZHJtX2ZyYW1lYnVm ZmVyX3VucmVmZXJlbmNlKGZiKTsKKwkJCWRybV9mcmFtZWJ1ZmZlcl9wdXQoZmIpOwogCX0gZWxz ZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2luX2ZlbmNlX2ZkKSB7CiAJCWlmIChzdGF0 ZS0+ZmVuY2UpCiAJCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTE4MzcsMTIgKzE4MzcsMTIgQEAgdm9p ZCBkcm1fYXRvbWljX2NsZWFuX29sZF9mYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlpZiAo cmV0ID09IDApIHsKIAkJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm5ld19mYiA9IHBsYW5lLT5z dGF0ZS0+ZmI7CiAJCQlpZiAobmV3X2ZiKQotCQkJCWRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2Uo bmV3X2ZiKTsKKwkJCQlkcm1fZnJhbWVidWZmZXJfZ2V0KG5ld19mYik7CiAJCQlwbGFuZS0+ZmIg PSBuZXdfZmI7CiAJCQlwbGFuZS0+Y3J0YyA9IHBsYW5lLT5zdGF0ZS0+Y3J0YzsKIAogCQkJaWYg KHBsYW5lLT5vbGRfZmIpCi0JCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKHBsYW5lLT5v bGRfZmIpOworCQkJCWRybV9mcmFtZWJ1ZmZlcl9wdXQocGxhbmUtPm9sZF9mYik7CiAJCX0KIAkJ cGxhbmUtPm9sZF9mYiA9IE5VTEw7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpp bmRleCA5ZjJjMjhkZGY5NDguLjRkY2Q2NGNhMzRjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMKQEAgLTMxNTEsNyArMzE1MSw3IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9w bGFuZV9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJbWVtY3B5KHN0 YXRlLCBwbGFuZS0+c3RhdGUsIHNpemVvZigqc3RhdGUpKTsKIAogCWlmIChzdGF0ZS0+ZmIpCi0J CWRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2Uoc3RhdGUtPmZiKTsKKwkJZHJtX2ZyYW1lYnVmZmVy X2dldChzdGF0ZS0+ZmIpOwogCiAJc3RhdGUtPmZlbmNlID0gTlVMTDsKIH0KQEAgLTMxOTEsNyAr MzE5MSw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRl X3N0YXRlKTsKIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKHN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQogewogCWlmIChzdGF0ZS0+ZmIpCi0JCWRybV9m cmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShzdGF0ZS0+ZmIpOworCQlkcm1fZnJhbWVidWZmZXJfcHV0 KHN0YXRlLT5mYik7CiAKIAlpZiAoc3RhdGUtPmZlbmNlKQogCQlkbWFfZmVuY2VfcHV0KHN0YXRl LT5mZW5jZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fY3J0Yy5jCmluZGV4IDk1OTRjNjIzNzk5Yi4uZTI5NzRkM2M5MmU3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2NydGMuYwpAQCAtNDcxLDkgKzQ3MSw5IEBAIGludCBkcm1fbW9kZV9zZXRfY29uZmln X2ludGVybmFsKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKIAogCWRybV9mb3JfZWFjaF9jcnRj KHRtcCwgY3J0Yy0+ZGV2KSB7CiAJCWlmICh0bXAtPnByaW1hcnktPmZiKQotCQkJZHJtX2ZyYW1l YnVmZmVyX3JlZmVyZW5jZSh0bXAtPnByaW1hcnktPmZiKTsKKwkJCWRybV9mcmFtZWJ1ZmZlcl9n ZXQodG1wLT5wcmltYXJ5LT5mYik7CiAJCWlmICh0bXAtPnByaW1hcnktPm9sZF9mYikKLQkJCWRy bV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZSh0bXAtPnByaW1hcnktPm9sZF9mYik7CisJCQlkcm1f ZnJhbWVidWZmZXJfcHV0KHRtcC0+cHJpbWFyeS0+b2xkX2ZiKTsKIAkJdG1wLT5wcmltYXJ5LT5v bGRfZmIgPSBOVUxMOwogCX0KIApAQCAtNTY3LDcgKzU2Nyw3IEBAIGludCBkcm1fbW9kZV9zZXRj cnRjKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQl9CiAJCQlmYiA9IGNy dGMtPnByaW1hcnktPmZiOwogCQkJLyogTWFrZSByZWZjb3VudGluZyBzeW1tZXRyaWMgd2l0aCB0 aGUgbG9va3VwIHBhdGguICovCi0JCQlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlKGZiKTsKKwkJ CWRybV9mcmFtZWJ1ZmZlcl9nZXQoZmIpOwogCQl9IGVsc2UgewogCQkJZmIgPSBkcm1fZnJhbWVi dWZmZXJfbG9va3VwKGRldiwgY3J0Y19yZXEtPmZiX2lkKTsKIAkJCWlmICghZmIpIHsKQEAgLTY4 MCw3ICs2ODAsNyBAQCBpbnQgZHJtX21vZGVfc2V0Y3J0YyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCiBvdXQ6CiAJaWYgKGZiKQotCQlkcm1fZnJhbWVidWZmZXJfdW5yZWZl cmVuY2UoZmIpOworCQlkcm1fZnJhbWVidWZmZXJfcHV0KGZiKTsKIAogCWlmIChjb25uZWN0b3Jf c2V0KSB7CiAJCWZvciAoaSA9IDA7IGkgPCBjcnRjX3JlcS0+Y291bnRfY29ubmVjdG9yczsgaSsr KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMKaW5kZXggMTFkYWEyNDY5MmFhLi41ZThlMWQw Njg2NmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMKQEAgLTUyLDEzICs1MiwxMyBAQAog ICogbWV0YWRhdGEgZmllbGRzLgogICoKICAqIFRoZSBsaWZldGltZSBvZiBhIGRybSBmcmFtZWJ1 ZmZlciBpcyBjb250cm9sbGVkIHdpdGggYSByZWZlcmVuY2UgY291bnQsCi0gKiBkcml2ZXJzIGNh biBncmFiIGFkZGl0aW9uYWwgcmVmZXJlbmNlcyB3aXRoIGRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVu Y2UoKSBhbmQKLSAqIGRyb3AgdGhlbSBhZ2FpbiB3aXRoIGRybV9mcmFtZWJ1ZmZlcl91bnJlZmVy ZW5jZSgpLiBGb3IgZHJpdmVyLXByaXZhdGUKLSAqIGZyYW1lYnVmZmVycyBmb3Igd2hpY2ggdGhl IGxhc3QgcmVmZXJlbmNlIGlzIG5ldmVyIGRyb3BwZWQgKGUuZy4gZm9yIHRoZQotICogZmJkZXYg ZnJhbWVidWZmZXIgd2hlbiB0aGUgc3RydWN0ICZzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyIGlzIGVt YmVkZGVkIGludG8KLSAqIHRoZSBmYmRldiBoZWxwZXIgc3RydWN0KSBkcml2ZXJzIGNhbiBtYW51 YWxseSBjbGVhbiB1cCBhIGZyYW1lYnVmZmVyIGF0Ci0gKiBtb2R1bGUgdW5sb2FkIHRpbWUgd2l0 aCBkcm1fZnJhbWVidWZmZXJfdW5yZWdpc3Rlcl9wcml2YXRlKCkuIEJ1dCBkb2luZyB0aGlzCi0g KiBpcyBub3QgcmVjb21tZW5kZWQsIGFuZCBpdCdzIGJldHRlciB0byBoYXZlIGEgbm9ybWFsIGZy ZWUtc3RhbmRpbmcgJnN0cnVjdAorICogZHJpdmVycyBjYW4gZ3JhYiBhZGRpdGlvbmFsIHJlZmVy ZW5jZXMgd2l0aCBkcm1fZnJhbWVidWZmZXJfZ2V0KCkgYW5kIGRyb3AKKyAqIHRoZW0gYWdhaW4g d2l0aCBkcm1fZnJhbWVidWZmZXJfcHV0KCkuIEZvciBkcml2ZXItcHJpdmF0ZSBmcmFtZWJ1ZmZl cnMgZm9yCisgKiB3aGljaCB0aGUgbGFzdCByZWZlcmVuY2UgaXMgbmV2ZXIgZHJvcHBlZCAoZS5n LiBmb3IgdGhlIGZiZGV2IGZyYW1lYnVmZmVyCisgKiB3aGVuIHRoZSBzdHJ1Y3QgJnN0cnVjdCBk cm1fZnJhbWVidWZmZXIgaXMgZW1iZWRkZWQgaW50byB0aGUgZmJkZXYgaGVscGVyCisgKiBzdHJ1 Y3QpIGRyaXZlcnMgY2FuIG1hbnVhbGx5IGNsZWFuIHVwIGEgZnJhbWVidWZmZXIgYXQgbW9kdWxl IHVubG9hZCB0aW1lCisgKiB3aXRoIGRybV9mcmFtZWJ1ZmZlcl91bnJlZ2lzdGVyX3ByaXZhdGUo KS4gQnV0IGRvaW5nIHRoaXMgaXMgbm90CisgKiByZWNvbW1lbmRlZCwgYW5kIGl0J3MgYmV0dGVy IHRvIGhhdmUgYSBub3JtYWwgZnJlZS1zdGFuZGluZyAmc3RydWN0CiAgKiBkcm1fZnJhbWVidWZm ZXIuCiAgKi8KIApAQCAtMzc0LDcgKzM3NCw3IEBAIGludCBkcm1fbW9kZV9ybWZiKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJbXV0ZXhfdW5sb2NrKCZmaWxlX3ByaXYtPmZic19sb2NrKTsKIAog CS8qIGRyb3AgdGhlIHJlZmVyZW5jZSB3ZSBwaWNrZWQgdXAgaW4gZnJhbWVidWZmZXIgbG9va3Vw ICovCi0JZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGZiKTsKKwlkcm1fZnJhbWVidWZmZXJf cHV0KGZiKTsKIAogCS8qCiAJICogd2Ugbm93IG93biB0aGUgcmVmZXJlbmNlIHRoYXQgd2FzIHN0 b3JlZCBpbiB0aGUgZmJzIGxpc3QKQEAgLTM5NCwxMiArMzk0LDEyIEBAIGludCBkcm1fbW9kZV9y bWZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWZsdXNoX3dvcmsoJmFyZy53b3JrKTsKIAkJ ZGVzdHJveV93b3JrX29uX3N0YWNrKCZhcmcud29yayk7CiAJfSBlbHNlCi0JCWRybV9mcmFtZWJ1 ZmZlcl91bnJlZmVyZW5jZShmYik7CisJCWRybV9mcmFtZWJ1ZmZlcl9wdXQoZmIpOwogCiAJcmV0 dXJuIDA7CiAKIGZhaWxfdW5yZWY6Ci0JZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKGZiKTsK Kwlkcm1fZnJhbWVidWZmZXJfcHV0KGZiKTsKIAlyZXR1cm4gLUVOT0VOVDsKIH0KIApAQCAtNDUz LDcgKzQ1Myw3IEBAIGludCBkcm1fbW9kZV9nZXRmYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CQlyZXQgPSAtRU5PREVWOwogCX0KIAotCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShmYik7 CisJZHJtX2ZyYW1lYnVmZmVyX3B1dChmYik7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtNTQwLDcg KzU0MCw3IEBAIGludCBkcm1fbW9kZV9kaXJ0eWZiX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiBvdXRfZXJyMjoKIAlrZnJlZShjbGlwcyk7CiBvdXRfZXJyMToKLQlkcm1fZnJhbWVidWZm ZXJfdW5yZWZlcmVuY2UoZmIpOworCWRybV9mcmFtZWJ1ZmZlcl9wdXQoZmIpOwogCiAJcmV0dXJu IHJldDsKIH0KQEAgLTU4MCw3ICs1ODAsNyBAQCB2b2lkIGRybV9mYl9yZWxlYXNlKHN0cnVjdCBk cm1fZmlsZSAqcHJpdikKIAkJCWxpc3RfZGVsX2luaXQoJmZiLT5maWxwX2hlYWQpOwogCiAJCQkv KiBUaGlzIGRyb3BzIHRoZSBmcHJpdi0+ZmJzIHJlZmVyZW5jZS4gKi8KLQkJCWRybV9mcmFtZWJ1 ZmZlcl91bnJlZmVyZW5jZShmYik7CisJCQlkcm1fZnJhbWVidWZmZXJfcHV0KGZiKTsKIAkJfQog CX0KIApAQCAtNjYxLDcgKzY2MSw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX2ZyYW1lYnVmZmVyX2lu aXQpOwogICoKICAqIElmIHN1Y2Nlc3NmdWwsIHRoaXMgZ3JhYnMgYW4gYWRkaXRpb25hbCByZWZl cmVuY2UgdG8gdGhlIGZyYW1lYnVmZmVyIC0KICAqIGNhbGxlcnMgbmVlZCB0byBtYWtlIHN1cmUg dG8gZXZlbnR1YWxseSB1bnJlZmVyZW5jZSB0aGUgcmV0dXJuZWQgZnJhbWVidWZmZXIKLSAqIGFn YWluLCB1c2luZyBAZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlLgorICogYWdhaW4sIHVzaW5n IGRybV9mcmFtZWJ1ZmZlcl9wdXQoKS4KICAqLwogc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZHJt X2ZyYW1lYnVmZmVyX2xvb2t1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkgICAgICAg dWludDMyX3QgaWQpCkBAIC02ODcsOCArNjg3LDggQEAgRVhQT1JUX1NZTUJPTChkcm1fZnJhbWVi dWZmZXJfbG9va3VwKTsKICAqCiAgKiBOT1RFOiBUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQu IEZvciBkcml2ZXItcHJpdmF0ZSBmcmFtZWJ1ZmZlcnMgaXQgaXMgbm90CiAgKiByZWNvbW1lbmRl ZCB0byBlbWJlZCBhIGZyYW1lYnVmZmVyIHN0cnVjdCBpbmZvIGZiZGV2IHN0cnVjdCwgaW5zdGVh ZCwgYQotICogZnJhbWVidWZmZXIgcG9pbnRlciBpcyBwcmVmZXJyZWQgYW5kIGRybV9mcmFtZWJ1 ZmZlcl91bnJlZmVyZW5jZSgpIHNob3VsZCBiZQotICogY2FsbGVkIHdoZW4gdGhlIGZyYW1lYnVm ZmVyIGlzIHRvIGJlIGNsZWFuZWQgdXAuCisgKiBmcmFtZWJ1ZmZlciBwb2ludGVyIGlzIHByZWZl cnJlZCBhbmQgZHJtX2ZyYW1lYnVmZmVyX3B1dCgpIHNob3VsZCBiZSBjYWxsZWQKKyAqIHdoZW4g dGhlIGZyYW1lYnVmZmVyIGlzIHRvIGJlIGNsZWFuZWQgdXAuCiAgKi8KIHZvaWQgZHJtX2ZyYW1l YnVmZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKIHsK QEAgLTc5MCw3ICs3OTAsNyBAQCB2b2lkIGRybV9mcmFtZWJ1ZmZlcl9yZW1vdmUoc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIpCiAJCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKIAl9CiAK LQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UoZmIpOworCWRybV9mcmFtZWJ1ZmZlcl9wdXQo ZmIpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fZnJhbWVidWZmZXJfcmVtb3ZlKTsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9w bGFuZS5jCmluZGV4IGY0MjU5MDA0OWEzYS4uYTIyZTc2ODM3MDY1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5j CkBAIC0yOTMsNyArMjkzLDcgQEAgdm9pZCBkcm1fcGxhbmVfZm9yY2VfZGlzYWJsZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSkKIAkJcmV0dXJuOwogCX0KIAkvKiBkaXNjb25uZWN0IHRoZSBwbGFu ZSBmcm9tIHRoZSBmYiBhbmQgY3J0YzogKi8KLQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uo cGxhbmUtPm9sZF9mYik7CisJZHJtX2ZyYW1lYnVmZmVyX3B1dChwbGFuZS0+b2xkX2ZiKTsKIAlw bGFuZS0+b2xkX2ZiID0gTlVMTDsKIAlwbGFuZS0+ZmIgPSBOVUxMOwogCXBsYW5lLT5jcnRjID0g TlVMTDsKQEAgLTUyMCw5ICs1MjAsOSBAQCBzdGF0aWMgaW50IF9fc2V0cGxhbmVfaW50ZXJuYWwo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAKIG91dDoKIAlpZiAoZmIpCi0JCWRybV9mcmFtZWJ1 ZmZlcl91bnJlZmVyZW5jZShmYik7CisJCWRybV9mcmFtZWJ1ZmZlcl9wdXQoZmIpOwogCWlmIChw bGFuZS0+b2xkX2ZiKQotCQlkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UocGxhbmUtPm9sZF9m Yik7CisJCWRybV9mcmFtZWJ1ZmZlcl9wdXQocGxhbmUtPm9sZF9mYik7CiAJcGxhbmUtPm9sZF9m YiA9IE5VTEw7CiAKIAlyZXR1cm4gcmV0OwpAQCAtNjM4LDcgKzYzOCw3IEBAIHN0YXRpYyBpbnQg ZHJtX21vZGVfY3Vyc29yX3VuaXZlcnNhbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJfSBlbHNl IHsKIAkJZmIgPSBjcnRjLT5jdXJzb3ItPmZiOwogCQlpZiAoZmIpCi0JCQlkcm1fZnJhbWVidWZm ZXJfcmVmZXJlbmNlKGZiKTsKKwkJCWRybV9mcmFtZWJ1ZmZlcl9nZXQoZmIpOwogCX0KIAogCWlm IChyZXEtPmZsYWdzICYgRFJNX01PREVfQ1VSU09SX01PVkUpIHsKQEAgLTkwMiw5ICs5MDIsOSBA QCBpbnQgZHJtX21vZGVfcGFnZV9mbGlwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ aWYgKHJldCAmJiBjcnRjLT5mdW5jcy0+cGFnZV9mbGlwX3RhcmdldCkKIAkJZHJtX2NydGNfdmJs YW5rX3B1dChjcnRjKTsKIAlpZiAoZmIpCi0JCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShm Yik7CisJCWRybV9mcmFtZWJ1ZmZlcl9wdXQoZmIpOwogCWlmIChjcnRjLT5wcmltYXJ5LT5vbGRf ZmIpCi0JCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShjcnRjLT5wcmltYXJ5LT5vbGRfZmIp OworCQlkcm1fZnJhbWVidWZmZXJfcHV0KGNydGMtPnByaW1hcnktPm9sZF9mYik7CiAJY3J0Yy0+ cHJpbWFyeS0+b2xkX2ZiID0gTlVMTDsKIAlkcm1fbW9kZXNldF91bmxvY2tfY3J0YyhjcnRjKTsK IApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmggYi9pbmNsdWRlL2Ry bS9kcm1fZnJhbWVidWZmZXIuaAppbmRleCBkZDFlM2U5OWRjZmYuLjUyNDRmMDU5ZDIzYSAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmgKKysrIGIvaW5jbHVkZS9kcm0v ZHJtX2ZyYW1lYnVmZmVyLmgKQEAgLTEwMSw4ICsxMDEsOCBAQCBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyX2Z1bmNzIHsKICAqIGNsZWFudXAgKGxpa2UgcmVsZWFzaW5nIHRoZSByZWZlcmVuY2Uocykg b24gdGhlIGJhY2tpbmcgR0VNIGJvKHMpKQogICogc2hvdWxkIGJlIGRlZmVycmVkLiAgSW4gY2Fz ZXMgbGlrZSB0aGlzLCB0aGUgZHJpdmVyIHdvdWxkIGxpa2UgdG8KICAqIGhvbGQgYSByZWYgdG8g dGhlIGZiIGV2ZW4gdGhvdWdoIGl0IGhhcyBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBmcm9tCi0gKiB1 c2Vyc3BhY2UgcGVyc3BlY3RpdmUuIFNlZSBkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlKCkgYW5k Ci0gKiBkcm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UoKS4KKyAqIHVzZXJzcGFjZSBwZXJzcGVj dGl2ZS4gU2VlIGRybV9mcmFtZWJ1ZmZlcl9nZXQoKSBhbmQKKyAqIGRybV9mcmFtZWJ1ZmZlcl9w dXQoKS4KICAqCiAgKiBUaGUgcmVmY291bnQgaXMgc3RvcmVkIGluc2lkZSB0aGUgbW9kZSBvYmpl Y3QgQGJhc2UuCiAgKi8KQEAgLTIwNCwyNSArMjA0LDUwIEBAIHZvaWQgZHJtX2ZyYW1lYnVmZmVy X2NsZWFudXAoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpOwogdm9pZCBkcm1fZnJhbWVidWZm ZXJfdW5yZWdpc3Rlcl9wcml2YXRlKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKTsKIAogLyoq Ci0gKiBkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlIC0gaW5jciB0aGUgZmIgcmVmY250Ci0gKiBA ZmI6IGZyYW1lYnVmZmVyCisgKiBkcm1fZnJhbWVidWZmZXJfZ2V0IC0gYWNxdWlyZSBhIGZyYW1l YnVmZmVyIHJlZmVyZW5jZQorICogQGZiOiBEUk0gZnJhbWVidWZmZXIKKyAqCisgKiBUaGlzIGZ1 bmN0aW9uIGluY3JlbWVudHMgdGhlIGZyYW1lYnVmZmVyJ3MgcmVmZXJlbmNlIGNvdW50LgorICov CitzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2ZyYW1lYnVmZmVyX2dldChzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYikKK3sKKwlkcm1fbW9kZV9vYmplY3RfZ2V0KCZmYi0+YmFzZSk7Cit9CisKKy8q KgorICogZHJtX2ZyYW1lYnVmZmVyX3B1dCAtIHJlbGVhc2UgYSBmcmFtZWJ1ZmZlciByZWZlcmVu Y2UKKyAqIEBmYjogRFJNIGZyYW1lYnVmZmVyCisgKgorICogVGhpcyBmdW5jdGlvbiBkZWNyZW1l bnRzIHRoZSBmcmFtZWJ1ZmZlcidzIHJlZmVyZW5jZSBjb3VudCBhbmQgZnJlZXMgdGhlCisgKiBm cmFtZWJ1ZmZlciBpZiB0aGUgcmVmZXJlbmNlIGNvdW50IGRyb3BzIHRvIHplcm8uCisgKi8KK3N0 YXRpYyBpbmxpbmUgdm9pZCBkcm1fZnJhbWVidWZmZXJfcHV0KHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiKQoreworCWRybV9tb2RlX29iamVjdF9wdXQoJmZiLT5iYXNlKTsKK30KKworLyoqCisg KiBkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlIC0gYWNxdWlyZSBhIGZyYW1lYnVmZmVyIHJlZmVy ZW5jZQorICogQGZiOiBEUk0gZnJhbWVidWZmZXIKICAqCi0gKiBUaGlzIGZ1bmN0aW9ucyBpbmNy ZW1lbnRzIHRoZSBmYidzIHJlZmNvdW50LgorICogVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgYWxp YXMgZm9yIGRybV9mcmFtZWJ1ZmZlcl9nZXQoKSBhbmQgc2hvdWxkIG5vdCBiZQorICogdXNlZCBi eSBuZXcgY29kZS4KICAqLwogc3RhdGljIGlubGluZSB2b2lkIGRybV9mcmFtZWJ1ZmZlcl9yZWZl cmVuY2Uoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCiB7Ci0JZHJtX21vZGVfb2JqZWN0X3Jl ZmVyZW5jZSgmZmItPmJhc2UpOworCWRybV9mcmFtZWJ1ZmZlcl9nZXQoZmIpOwogfQogCiAvKioK LSAqIGRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZSAtIHVucmVmIGEgZnJhbWVidWZmZXIKLSAq IEBmYjogZnJhbWVidWZmZXIgdG8gdW5yZWYKKyAqIGRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5j ZSAtIHJlbGVhc2UgYSBmcmFtZWJ1ZmZlciByZWZlcmVuY2UKKyAqIEBmYjogRFJNIGZyYW1lYnVm ZmVyCiAgKgotICogVGhpcyBmdW5jdGlvbnMgZGVjcmVtZW50cyB0aGUgZmIncyByZWZjb3VudCBh bmQgZnJlZXMgaXQgaWYgaXQgZHJvcHMgdG8gemVyby4KKyAqIFRoaXMgaXMgYSBjb21wYXRpYmls aXR5IGFsaWFzIGZvciBkcm1fZnJhbWVidWZmZXJfcHV0KCkgYW5kIHNob3VsZCBub3QgYmUKKyAq IHVzZWQgYnkgbmV3IGNvZGUuCiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBkcm1fZnJhbWVidWZm ZXJfdW5yZWZlcmVuY2Uoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCiB7Ci0JZHJtX21vZGVf b2JqZWN0X3VucmVmZXJlbmNlKCZmYi0+YmFzZSk7CisJZHJtX2ZyYW1lYnVmZmVyX3B1dChmYik7 CiB9CiAKIC8qKgpAQCAtMjQ4LDkgKzI3Myw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkcm1fZnJh bWVidWZmZXJfYXNzaWduKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKipwLAogCQkJCQkgIHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiKQogewogCWlmIChmYikKLQkJZHJtX2ZyYW1lYnVmZmVyX3Jl ZmVyZW5jZShmYik7CisJCWRybV9mcmFtZWJ1ZmZlcl9nZXQoZmIpOwogCWlmICgqcCkKLQkJZHJt X2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKCpwKTsKKwkJZHJtX2ZyYW1lYnVmZmVyX3B1dCgqcCk7 CiAJKnAgPSBmYjsKIH0KIApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0t Z2V0LXB1dC5jb2NjaSBiL3NjcmlwdHMvY29jY2luZWxsZS9hcGkvZHJtLWdldC1wdXQuY29jY2kK aW5kZXggOGE0YzJjYjc4ODllLi5mZDI5OGMyNGE0NjUgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvY29j Y2luZWxsZS9hcGkvZHJtLWdldC1wdXQuY29jY2kKKysrIGIvc2NyaXB0cy9jb2NjaW5lbGxlL2Fw aS9kcm0tZ2V0LXB1dC5jb2NjaQpAQCAtMjYsNiArMjYsMTIgQEAgZXhwcmVzc2lvbiBvYmplY3Q7 CiB8CiAtIGRybV9jb25uZWN0b3JfdW5yZWZlcmVuY2Uob2JqZWN0KQogKyBkcm1fY29ubmVjdG9y X3B1dChvYmplY3QpCit8CistIGRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2Uob2JqZWN0KQorKyBk cm1fZnJhbWVidWZmZXJfZ2V0KG9iamVjdCkKK3wKKy0gZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJl bmNlKG9iamVjdCkKKysgZHJtX2ZyYW1lYnVmZmVyX3B1dChvYmplY3QpCiApCiAKIEByIGRlcGVu ZHMgb24gcmVwb3J0QApAQCAtNDEsNiArNDcsMTAgQEAgZHJtX21vZGVfb2JqZWN0X3JlZmVyZW5j ZUBwKG9iamVjdCkKIGRybV9jb25uZWN0b3JfdW5yZWZlcmVuY2VAcChvYmplY3QpCiB8CiBkcm1f Y29ubmVjdG9yX3JlZmVyZW5jZUBwKG9iamVjdCkKK3wKK2RybV9mcmFtZWJ1ZmZlcl91bnJlZmVy ZW5jZUBwKG9iamVjdCkKK3wKK2RybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2VAcChvYmplY3QpCiAp CiAKIEBzY3JpcHQ6cHl0aG9uIGRlcGVuZHMgb24gcmVwb3J0QAotLSAKMi4xMS4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK