From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 5/6] drm: Introduce drm_gem_object_{get,put}() Date: Wed, 8 Feb 2017 19:24:07 +0100 Message-ID: <20170208182408.5442-6-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-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id C39176E973 for ; Wed, 8 Feb 2017 18:24:21 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id u63so34601110wmu.2 for ; Wed, 08 Feb 2017 10:24:21 -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 cm1fZ2VtX29iamVjdF9nZXQoKSBhbmQgZHJtX2dlbV9vYmplY3RfcHV0KCksIGFzIHdlbGwgYXMg YW4gdW5sb2NrZWQKdmFyaWFudCBvZiB0aGUgbGF0dGVyLCB0byByZWZlcmVuY2UgY291bnQgR0VN IGJ1ZmZlciBvYmplY3RzLgoKQ29tcGF0aWJpbGl0eSBhbGlhc2VzIGFyZSBhZGRlZCB0byBrZWVw IGV4aXN0aW5nIGNvZGUgd29ya2luZy4gVG8gaGVscApzcGVlZCB1cCB0aGUgdHJhbnNpdGlvbiwg YWxsIHRoZSBpbnN0YW5jZXMgb2YgdGhlIG9sZCBmdW5jdGlvbnMgaW4gdGhlCkRSTSBjb3JlIGFy ZSBhbHJlYWR5IHJlcGxhY2VkIGluIHRoaXMgY29tbWl0LgoKVGhlIGV4aXN0aW5nIHNlbWFudGlj IHBhdGNoIGZvciB0aGUgRFJNIHN1YnN5c3RlbS13aWRlIGNvbnZlcnNpb24gaXMKZXh0ZW5kZWQg dG8gYWNjb3VudCBmb3IgdGhlc2UgbmV3IGhlbHBlcnMuCgpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5 IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgotLS0KIERvY3VtZW50YXRpb24vZ3B1L2RybS1t bS5yc3QgICAgICAgICAgICAgfCAxNCArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21h X2hlbHBlci5jICAgICAgfCAxNiArKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jICAg ICAgICAgICAgICAgIHwgNDQgKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJt X2dlbV9jbWFfaGVscGVyLmMgICAgIHwgMTAgKystLQogZHJpdmVycy9ncHUvZHJtL2RybV9wcmlt ZS5jICAgICAgICAgICAgICB8IDEwICsrLS0KIGluY2x1ZGUvZHJtL2RybV9nZW0uaCAgICAgICAg ICAgICAgICAgICAgfCA4MCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogc2NyaXB0 cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaSB8IDIwICsrKysrKysrCiA3IGZpbGVz IGNoYW5nZWQsIDEzMCBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tbW0ucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLW1t LnJzdAppbmRleCBmNTc2MGIxNDBmMTMuLmZkMzU5OThhY2VmYyAxMDA2NDQKLS0tIGEvRG9jdW1l bnRhdGlvbi9ncHUvZHJtLW1tLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tbW0ucnN0 CkBAIC0xODMsMTQgKzE4MywxMiBAQCBHRU0gT2JqZWN0cyBMaWZldGltZQogLS0tLS0tLS0tLS0t LS0tLS0tLS0KIAogQWxsIEdFTSBvYmplY3RzIGFyZSByZWZlcmVuY2UtY291bnRlZCBieSB0aGUg R0VNIGNvcmUuIFJlZmVyZW5jZXMgY2FuIGJlCi1hY3F1aXJlZCBhbmQgcmVsZWFzZSBieSA6Yzpm dW5jOmBjYWxsaW5nCi1kcm1fZ2VtX29iamVjdF9yZWZlcmVuY2UoKWAgYW5kCi06YzpmdW5jOmBk cm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgpYCByZXNwZWN0aXZlbHkuIFRoZSBjYWxsZXIKLW11 c3QgaG9sZCB0aGUgOmM6dHlwZTpgc3RydWN0IGRybV9kZXZpY2UgPGRybV9kZXZpY2U+YAotc3Ry dWN0X211dGV4IGxvY2sgd2hlbiBjYWxsaW5nCi06YzpmdW5jOmBkcm1fZ2VtX29iamVjdF9yZWZl cmVuY2UoKWAuIEFzIGEgY29udmVuaWVuY2UsIEdFTQotcHJvdmlkZXMgOmM6ZnVuYzpgZHJtX2dl bV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQoKWAKLWZ1bmN0aW9ucyB0aGF0IGNhbiBiZSBj YWxsZWQgd2l0aG91dCBob2xkaW5nIHRoZSBsb2NrLgorYWNxdWlyZWQgYW5kIHJlbGVhc2UgYnkg OmM6ZnVuYzpgY2FsbGluZyBkcm1fZ2VtX29iamVjdF9nZXQoKWAgYW5kCis6YzpmdW5jOmBkcm1f Z2VtX29iamVjdF9wdXQoKWAgcmVzcGVjdGl2ZWx5LiBUaGUgY2FsbGVyIG11c3QgaG9sZCB0aGUK KzpjOnR5cGU6YHN0cnVjdCBkcm1fZGV2aWNlIDxkcm1fZGV2aWNlPmAgc3RydWN0X211dGV4IGxv Y2sgd2hlbiBjYWxsaW5nCis6YzpmdW5jOmBkcm1fZ2VtX29iamVjdF9nZXQoKWAuIEFzIGEgY29u dmVuaWVuY2UsIEdFTSBwcm92aWRlcworOmM6ZnVuYzpgZHJtX2dlbV9vYmplY3RfcHV0X3VubG9j a2VkKClgIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSBjYWxsZWQgd2l0aG91dAoraG9sZGluZyB0aGUg bG9jay4KIAogV2hlbiB0aGUgbGFzdCByZWZlcmVuY2UgdG8gYSBHRU0gb2JqZWN0IGlzIHJlbGVh c2VkIHRoZSBHRU0gY29yZSBjYWxscwogdGhlIDpjOnR5cGU6YHN0cnVjdCBkcm1fZHJpdmVyIDxk cm1fZHJpdmVyPmAgZ2VtX2ZyZWVfb2JqZWN0CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2ZiX2NtYV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5j CmluZGV4IDU5NmZhYmYxOGMzZS4uZWNjYzA3ZDIwOTI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2Nt YV9oZWxwZXIuYwpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgZHJtX2ZiX2NtYV9kZXN0cm95KHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQogCiAJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewog CQlpZiAoZmJfY21hLT5vYmpbaV0pCi0JCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxv Y2tlZCgmZmJfY21hLT5vYmpbaV0tPmJhc2UpOworCQkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9j a2VkKCZmYl9jbWEtPm9ialtpXS0+YmFzZSk7CiAJfQogCiAJZHJtX2ZyYW1lYnVmZmVyX2NsZWFu dXAoZmIpOwpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmRybV9m Yl9jbWFfY3JlYXRlX3dpdGhfZnVuY3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJaWYgKCFv YmopIHsKIAkJCWRldl9lcnIoZGV2LT5kZXYsICJGYWlsZWQgdG8gbG9va3VwIEdFTSBvYmplY3Rc biIpOwogCQkJcmV0ID0gLUVOWElPOwotCQkJZ290byBlcnJfZ2VtX29iamVjdF91bnJlZmVyZW5j ZTsKKwkJCWdvdG8gZXJyX2dlbV9vYmplY3RfcHV0OwogCQl9CiAKIAkJbWluX3NpemUgPSAoaGVp Z2h0IC0gMSkgKiBtb2RlX2NtZC0+cGl0Y2hlc1tpXQpAQCAtMTk4LDkgKzE5OCw5IEBAIHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmRybV9mYl9jbWFfY3JlYXRlX3dpdGhfZnVuY3Moc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJCSArIG1vZGVfY21kLT5vZmZzZXRzW2ldOwogCiAJCWlmIChvYmot PnNpemUgPCBtaW5fc2l6ZSkgewotCQkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2Nr ZWQob2JqKTsKKwkJCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmopOwogCQkJcmV0ID0g LUVJTlZBTDsKLQkJCWdvdG8gZXJyX2dlbV9vYmplY3RfdW5yZWZlcmVuY2U7CisJCQlnb3RvIGVy cl9nZW1fb2JqZWN0X3B1dDsKIAkJfQogCQlvYmpzW2ldID0gdG9fZHJtX2dlbV9jbWFfb2JqKG9i aik7CiAJfQpAQCAtMjA4LDE0ICsyMDgsMTQgQEAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZHJt X2ZiX2NtYV9jcmVhdGVfd2l0aF9mdW5jcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWZiX2Nt YSA9IGRybV9mYl9jbWFfYWxsb2MoZGV2LCBtb2RlX2NtZCwgb2JqcywgaSwgZnVuY3MpOwogCWlm IChJU19FUlIoZmJfY21hKSkgewogCQlyZXQgPSBQVFJfRVJSKGZiX2NtYSk7Ci0JCWdvdG8gZXJy X2dlbV9vYmplY3RfdW5yZWZlcmVuY2U7CisJCWdvdG8gZXJyX2dlbV9vYmplY3RfcHV0OwogCX0K IAogCXJldHVybiAmZmJfY21hLT5mYjsKIAotZXJyX2dlbV9vYmplY3RfdW5yZWZlcmVuY2U6Citl cnJfZ2VtX29iamVjdF9wdXQ6CiAJZm9yIChpLS07IGkgPj0gMDsgaS0tKQotCQlkcm1fZ2VtX29i amVjdF91bnJlZmVyZW5jZV91bmxvY2tlZCgmb2Jqc1tpXS0+YmFzZSk7CisJCWRybV9nZW1fb2Jq ZWN0X3B1dF91bmxvY2tlZCgmb2Jqc1tpXS0+YmFzZSk7CiAJcmV0dXJuIEVSUl9QVFIocmV0KTsK IH0KIEVYUE9SVF9TWU1CT0xfR1BMKGRybV9mYl9jbWFfY3JlYXRlX3dpdGhfZnVuY3MpOwpAQCAt NDc3LDcgKzQ3Nyw3IEBAIGRybV9mYmRldl9jbWFfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVy ICpoZWxwZXIsCiBlcnJfZmJfaW5mb19kZXN0cm95OgogCWRybV9mYl9oZWxwZXJfcmVsZWFzZV9m YmkoaGVscGVyKTsKIGVycl9nZW1fZnJlZV9vYmplY3Q6Ci0JZHJtX2dlbV9vYmplY3RfdW5yZWZl cmVuY2VfdW5sb2NrZWQoJm9iai0+YmFzZSk7CisJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2Vk KCZvYmotPmJhc2UpOwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jCmluZGV4IGJjOTNkZTMw ODY3My4uYjFlMjhjOTQ0NjM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMKQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0 aWMgdm9pZCBkcm1fZ2VtX29iamVjdF9leHBvcnRlZF9kbWFfYnVmX2ZyZWUoc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmopCiB9CiAKIHN0YXRpYyB2b2lkCi1kcm1fZ2VtX29iamVjdF9oYW5kbGVf dW5yZWZlcmVuY2VfdW5sb2NrZWQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCitkcm1fZ2Vt X29iamVjdF9oYW5kbGVfcHV0X3VubG9ja2VkKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQog ewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmRldjsKIAlib29sIGZpbmFsID0gZmFs c2U7CkBAIC0yNDEsNyArMjQxLDcgQEAgZHJtX2dlbV9vYmplY3RfaGFuZGxlX3VucmVmZXJlbmNl X3VubG9ja2VkKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogCW11dGV4X3VubG9jaygmZGV2 LT5vYmplY3RfbmFtZV9sb2NrKTsKIAogCWlmIChmaW5hbCkKLQkJZHJtX2dlbV9vYmplY3RfdW5y ZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsKKwkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKG9i aik7CiB9CiAKIC8qCkBAIC0yNjIsNyArMjYyLDcgQEAgZHJtX2dlbV9vYmplY3RfcmVsZWFzZV9o YW5kbGUoaW50IGlkLCB2b2lkICpwdHIsIHZvaWQgKmRhdGEpCiAJaWYgKGRldi0+ZHJpdmVyLT5n ZW1fY2xvc2Vfb2JqZWN0KQogCQlkZXYtPmRyaXZlci0+Z2VtX2Nsb3NlX29iamVjdChvYmosIGZp bGVfcHJpdik7CiAKLQlkcm1fZ2VtX29iamVjdF9oYW5kbGVfdW5yZWZlcmVuY2VfdW5sb2NrZWQo b2JqKTsKKwlkcm1fZ2VtX29iamVjdF9oYW5kbGVfcHV0X3VubG9ja2VkKG9iaik7CiAKIAlyZXR1 cm4gMDsKIH0KQEAgLTM1Miw3ICszNTIsNyBAQCBkcm1fZ2VtX2hhbmRsZV9jcmVhdGVfdGFpbChz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKIAogCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgm ZGV2LT5vYmplY3RfbmFtZV9sb2NrKSk7CiAJaWYgKG9iai0+aGFuZGxlX2NvdW50KysgPT0gMCkK LQkJZHJtX2dlbV9vYmplY3RfcmVmZXJlbmNlKG9iaik7CisJCWRybV9nZW1fb2JqZWN0X2dldChv YmopOwogCiAJLyoKIAkgKiBHZXQgdGhlIHVzZXItdmlzaWJsZSBoYW5kbGUgdXNpbmcgaWRyLiAg UHJlbG9hZCBhbmQgcGVyZm9ybQpAQCAtMzkyLDcgKzM5Miw3IEBAIGRybV9nZW1faGFuZGxlX2Ny ZWF0ZV90YWlsKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCWlkcl9yZW1vdmUoJmZpbGVf cHJpdi0+b2JqZWN0X2lkciwgaGFuZGxlKTsKIAlzcGluX3VubG9jaygmZmlsZV9wcml2LT50YWJs ZV9sb2NrKTsKIGVycl91bnJlZjoKLQlkcm1fZ2VtX29iamVjdF9oYW5kbGVfdW5yZWZlcmVuY2Vf dW5sb2NrZWQob2JqKTsKKwlkcm1fZ2VtX29iamVjdF9oYW5kbGVfcHV0X3VubG9ja2VkKG9iaik7 CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtNjA2LDcgKzYwNiw3IEBAIGRybV9nZW1fb2JqZWN0X2xv b2t1cChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHAsIHUzMiBoYW5kbGUpCiAJLyogQ2hlY2sgaWYgd2Ug Y3VycmVudGx5IGhhdmUgYSByZWZlcmVuY2Ugb24gdGhlIG9iamVjdCAqLwogCW9iaiA9IGlkcl9m aW5kKCZmaWxwLT5vYmplY3RfaWRyLCBoYW5kbGUpOwogCWlmIChvYmopCi0JCWRybV9nZW1fb2Jq ZWN0X3JlZmVyZW5jZShvYmopOworCQlkcm1fZ2VtX29iamVjdF9nZXQob2JqKTsKIAogCXNwaW5f dW5sb2NrKCZmaWxwLT50YWJsZV9sb2NrKTsKIApAQCAtNjgzLDcgKzY4Myw3IEBAIGRybV9nZW1f ZmxpbmtfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAogZXJyOgog CW11dGV4X3VubG9jaygmZGV2LT5vYmplY3RfbmFtZV9sb2NrKTsKLQlkcm1fZ2VtX29iamVjdF91 bnJlZmVyZW5jZV91bmxvY2tlZChvYmopOworCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChv YmopOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTcxMyw3ICs3MTMsNyBAQCBkcm1fZ2VtX29wZW5f aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAltdXRleF9sb2NrKCZk ZXYtPm9iamVjdF9uYW1lX2xvY2spOwogCW9iaiA9IGlkcl9maW5kKCZkZXYtPm9iamVjdF9uYW1l X2lkciwgKGludCkgYXJncy0+bmFtZSk7CiAJaWYgKG9iaikgewotCQlkcm1fZ2VtX29iamVjdF9y ZWZlcmVuY2Uob2JqKTsKKwkJZHJtX2dlbV9vYmplY3RfZ2V0KG9iaik7CiAJfSBlbHNlIHsKIAkJ bXV0ZXhfdW5sb2NrKCZkZXYtPm9iamVjdF9uYW1lX2xvY2spOwogCQlyZXR1cm4gLUVOT0VOVDsK QEAgLTcyMSw3ICs3MjEsNyBAQCBkcm1fZ2VtX29wZW5faW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIAogCS8qIGRybV9nZW1faGFuZGxlX2NyZWF0ZV90YWlsIHVubG9j a3MgZGV2LT5vYmplY3RfbmFtZV9sb2NrLiAqLwogCXJldCA9IGRybV9nZW1faGFuZGxlX2NyZWF0 ZV90YWlsKGZpbGVfcHJpdiwgb2JqLCAmaGFuZGxlKTsKLQlkcm1fZ2VtX29iamVjdF91bnJlZmVy ZW5jZV91bmxvY2tlZChvYmopOworCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmopOwog CWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTgwOSwxNiArODA5LDE2IEBAIGRybV9nZW1f b2JqZWN0X2ZyZWUoc3RydWN0IGtyZWYgKmtyZWYpCiBFWFBPUlRfU1lNQk9MKGRybV9nZW1fb2Jq ZWN0X2ZyZWUpOwogCiAvKioKLSAqIGRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2Vk IC0gcmVsZWFzZSBhIEdFTSBCTyByZWZlcmVuY2UKKyAqIGRybV9nZW1fb2JqZWN0X3B1dF91bmxv Y2tlZCAtIGRyb3AgYSBHRU0gYnVmZmVyIG9iamVjdCByZWZlcmVuY2UKICAqIEBvYmo6IEdFTSBi dWZmZXIgb2JqZWN0CiAgKgogICogVGhpcyByZWxlYXNlcyBhIHJlZmVyZW5jZSB0byBAb2JqLiBD YWxsZXJzIG11c3Qgbm90IGhvbGQgdGhlCiAgKiAmZHJtX2RldmljZS5zdHJ1Y3RfbXV0ZXggbG9j ayB3aGVuIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KICAqCi0gKiBTZWUgYWxzbyBfX2RybV9nZW1f b2JqZWN0X3VucmVmZXJlbmNlKCkuCisgKiBTZWUgYWxzbyBfX2RybV9nZW1fb2JqZWN0X3B1dCgp LgogICovCiB2b2lkCi1kcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKm9iaikKK2RybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKm9iaikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwogCkBAIC04 MzQsMTAgKzgzNCwxMCBAQCBkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIAkJCQkmZGV2LT5zdHJ1Y3RfbXV0ZXgpKQogCQltdXRl eF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIH0KLUVYUE9SVF9TWU1CT0woZHJtX2dlbV9v YmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQpOworRVhQT1JUX1NZTUJPTChkcm1fZ2VtX29iamVj dF9wdXRfdW5sb2NrZWQpOwogCiAvKioKLSAqIGRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlIC0g cmVsZWFzZSBhIEdFTSBCTyByZWZlcmVuY2UKKyAqIGRybV9nZW1fb2JqZWN0X3B1dCAtIHJlbGVh c2UgYSBHRU0gYnVmZmVyIG9iamVjdCByZWZlcmVuY2UKICAqIEBvYmo6IEdFTSBidWZmZXIgb2Jq ZWN0CiAgKgogICogVGhpcyByZWxlYXNlcyBhIHJlZmVyZW5jZSB0byBAb2JqLiBDYWxsZXJzIG11 c3QgaG9sZCB0aGUKQEAgLTg0NSwxMCArODQ1LDEwIEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9v YmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQpOwogICogZHJpdmVyIGRvZXNuJ3QgdXNlICZkcm1f ZGV2aWNlLnN0cnVjdF9tdXRleCBmb3IgYW55dGhpbmcuCiAgKgogICogRm9yIGRyaXZlcnMgbm90 IGVuY3VtYmVyZWQgd2l0aCBsZWdhY3kgbG9ja2luZyB1c2UKLSAqIGRybV9nZW1fb2JqZWN0X3Vu cmVmZXJlbmNlX3VubG9ja2VkKCkgaW5zdGVhZC4KKyAqIGRybV9nZW1fb2JqZWN0X3B1dF91bmxv Y2tlZCgpIGluc3RlYWQuCiAgKi8KIHZvaWQKLWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQorZHJtX2dlbV9vYmplY3RfcHV0KHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqb2JqKQogewogCWlmIChvYmopIHsKIAkJV0FSTl9PTighbXV0ZXhfaXNfbG9j a2VkKCZvYmotPmRldi0+c3RydWN0X211dGV4KSk7CkBAIC04NTYsNyArODU2LDcgQEAgZHJtX2dl bV9vYmplY3RfdW5yZWZlcmVuY2Uoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiAJCWtyZWZf cHV0KCZvYmotPnJlZmNvdW50LCBkcm1fZ2VtX29iamVjdF9mcmVlKTsKIAl9CiB9Ci1FWFBPUlRf U1lNQk9MKGRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKTsKK0VYUE9SVF9TWU1CT0woZHJtX2dl bV9vYmplY3RfcHV0KTsKIAogLyoqCiAgKiBkcm1fZ2VtX3ZtX29wZW4gLSB2bWEtPm9wcy0+b3Bl biBpbXBsZW1lbnRhdGlvbiBmb3IgR0VNCkBAIC04NjksNyArODY5LDcgQEAgdm9pZCBkcm1fZ2Vt X3ZtX29wZW4oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiB7CiAJc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmogPSB2bWEtPnZtX3ByaXZhdGVfZGF0YTsKIAotCWRybV9nZW1fb2JqZWN0X3Jl ZmVyZW5jZShvYmopOworCWRybV9nZW1fb2JqZWN0X2dldChvYmopOwogfQogRVhQT1JUX1NZTUJP TChkcm1fZ2VtX3ZtX29wZW4pOwogCkBAIC04ODQsNyArODg0LDcgQEAgdm9pZCBkcm1fZ2VtX3Zt X2Nsb3NlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogewogCXN0cnVjdCBkcm1fZ2VtX29i amVjdCAqb2JqID0gdm1hLT52bV9wcml2YXRlX2RhdGE7CiAKLQlkcm1fZ2VtX29iamVjdF91bnJl ZmVyZW5jZV91bmxvY2tlZChvYmopOworCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmop OwogfQogRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ZtX2Nsb3NlKTsKIApAQCAtOTM1LDcgKzkzNSw3 IEBAIGludCBkcm1fZ2VtX21tYXBfb2JqKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCB1bnNp Z25lZCBsb25nIG9ial9zaXplLAogCSAqICh3aGljaCBzaG91bGQgaGFwcGVuIHdoZXRoZXIgdGhl IHZtYSB3YXMgY3JlYXRlZCBieSB0aGlzIGNhbGwsIG9yCiAJICogYnkgYSB2bV9vcGVuIGR1ZSB0 byBtcmVtYXAgb3IgcGFydGlhbCB1bm1hcCBvciB3aGF0ZXZlcikuCiAJICovCi0JZHJtX2dlbV9v YmplY3RfcmVmZXJlbmNlKG9iaik7CisJZHJtX2dlbV9vYmplY3RfZ2V0KG9iaik7CiAKIAlyZXR1 cm4gMDsKIH0KQEAgLTk5MiwxNCArOTkyLDE0IEBAIGludCBkcm1fZ2VtX21tYXAoc3RydWN0IGZp bGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogCQlyZXR1cm4gLUVJTlZBTDsK IAogCWlmICghZHJtX3ZtYV9ub2RlX2lzX2FsbG93ZWQobm9kZSwgcHJpdikpIHsKLQkJZHJtX2dl bV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsKKwkJZHJtX2dlbV9vYmplY3RfcHV0 X3VubG9ja2VkKG9iaik7CiAJCXJldHVybiAtRUFDQ0VTOwogCX0KIAogCXJldCA9IGRybV9nZW1f bW1hcF9vYmoob2JqLCBkcm1fdm1hX25vZGVfc2l6ZShub2RlKSA8PCBQQUdFX1NISUZULAogCQkJ ICAgICAgIHZtYSk7CiAKLQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChvYmop OworCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmopOwogCiAJcmV0dXJuIHJldDsKIH0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX2NtYV9oZWxwZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZ2VtX2NtYV9oZWxwZXIuYwppbmRleCBmN2JhMzJiZmUzOWIuLmJiOTY4 ZTc2Nzc5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX2NtYV9oZWxwZXIuYwpAQCAtMTIxLDcgKzEy MSw3IEBAIHN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmRybV9nZW1fY21hX2NyZWF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZHJtLAogCXJldHVybiBjbWFfb2JqOwogCiBlcnJvcjoKLQlkcm1fZ2Vt X29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZCgmY21hX29iai0+YmFzZSk7CisJZHJtX2dlbV9v YmplY3RfcHV0X3VubG9ja2VkKCZjbWFfb2JqLT5iYXNlKTsKIAlyZXR1cm4gRVJSX1BUUihyZXQp OwogfQogRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2dlbV9jbWFfY3JlYXRlKTsKQEAgLTE2Myw3ICsx NjMsNyBAQCBkcm1fZ2VtX2NtYV9jcmVhdGVfd2l0aF9oYW5kbGUoc3RydWN0IGRybV9maWxlICpm aWxlX3ByaXYsCiAJICovCiAJcmV0ID0gZHJtX2dlbV9oYW5kbGVfY3JlYXRlKGZpbGVfcHJpdiwg Z2VtX29iaiwgaGFuZGxlKTsKIAkvKiBkcm9wIHJlZmVyZW5jZSBmcm9tIGFsbG9jYXRlIC0gaGFu ZGxlIGhvbGRzIGl0IG5vdy4gKi8KLQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tl ZChnZW1fb2JqKTsKKwlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoZ2VtX29iaik7CiAJaWYg KHJldCkKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIApAQCAtMjkzLDcgKzI5Myw3IEBAIGludCBk cm1fZ2VtX2NtYV9kdW1iX21hcF9vZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCiAK IAkqb2Zmc2V0ID0gZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZnZW1fb2JqLT52bWFfbm9kZSk7 CiAKLQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChnZW1fb2JqKTsKKwlkcm1f Z2VtX29iamVjdF9wdXRfdW5sb2NrZWQoZ2VtX29iaik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTQx NiwxMyArNDE2LDEzIEBAIHVuc2lnbmVkIGxvbmcgZHJtX2dlbV9jbWFfZ2V0X3VubWFwcGVkX2Fy ZWEoc3RydWN0IGZpbGUgKmZpbHAsCiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKCFkcm1fdm1h X25vZGVfaXNfYWxsb3dlZChub2RlLCBwcml2KSkgewotCQlkcm1fZ2VtX29iamVjdF91bnJlZmVy ZW5jZV91bmxvY2tlZChvYmopOworCQlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQob2JqKTsK IAkJcmV0dXJuIC1FQUNDRVM7CiAJfQogCiAJY21hX29iaiA9IHRvX2RybV9nZW1fY21hX29iaihv YmopOwogCi0JZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsKKwlkcm1f Z2VtX29iamVjdF9wdXRfdW5sb2NrZWQob2JqKTsKIAogCXJldHVybiBjbWFfb2JqLT52YWRkciA/ ICh1bnNpZ25lZCBsb25nKWNtYV9vYmotPnZhZGRyIDogLUVJTlZBTDsKIH0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUu YwppbmRleCAyNWFhNDU1OGYxYjUuLjg2NmIyOTRlN2M2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9wcmltZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwpAQCAt MzE4LDcgKzMxOCw3IEBAIHN0cnVjdCBkbWFfYnVmICpkcm1fZ2VtX2RtYWJ1Zl9leHBvcnQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJcmV0dXJuIGRtYV9idWY7CiAKIAlkcm1fZGV2X3JlZihk ZXYpOwotCWRybV9nZW1fb2JqZWN0X3JlZmVyZW5jZShleHBfaW5mby0+cHJpdik7CisJZHJtX2dl bV9vYmplY3RfZ2V0KGV4cF9pbmZvLT5wcml2KTsKIAogCXJldHVybiBkbWFfYnVmOwogfQpAQCAt MzM5LDcgKzMzOSw3IEBAIHZvaWQgZHJtX2dlbV9kbWFidWZfcmVsZWFzZShzdHJ1Y3QgZG1hX2J1 ZiAqZG1hX2J1ZikKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5kZXY7CiAKIAkvKiBk cm9wIHRoZSByZWZlcmVuY2Ugb24gdGhlIGV4cG9ydCBmZCBob2xkcyAqLwotCWRybV9nZW1fb2Jq ZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKG9iaik7CisJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9j a2VkKG9iaik7CiAKIAlkcm1fZGV2X3VucmVmKGRldik7CiB9CkBAIC01ODUsNyArNTg1LDcgQEAg aW50IGRybV9nZW1fcHJpbWVfaGFuZGxlX3RvX2ZkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiBm YWlsX3B1dF9kbWFidWY6CiAJZG1hX2J1Zl9wdXQoZG1hYnVmKTsKIG91dDoKLQlkcm1fZ2VtX29i amVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChvYmopOworCWRybV9nZW1fb2JqZWN0X3B1dF91bmxv Y2tlZChvYmopOwogb3V0X3VubG9jazoKIAltdXRleF91bmxvY2soJmZpbGVfcHJpdi0+cHJpbWUu bG9jayk7CiAKQEAgLTYxNiw3ICs2MTYsNyBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmRybV9n ZW1fcHJpbWVfaW1wb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgKiBJbXBvcnRpbmcg ZG1hYnVmIGV4cG9ydGVkIGZyb20gb3V0IG93biBnZW0gaW5jcmVhc2VzCiAJCQkgKiByZWZjb3Vu dCBvbiBnZW0gaXRzZWxmIGluc3RlYWQgb2YgZl9jb3VudCBvZiBkbWFidWYuCiAJCQkgKi8KLQkJ CWRybV9nZW1fb2JqZWN0X3JlZmVyZW5jZShvYmopOworCQkJZHJtX2dlbV9vYmplY3RfZ2V0KG9i aik7CiAJCQlyZXR1cm4gb2JqOwogCQl9CiAJfQpAQCAtNzA0LDcgKzcwNCw3IEBAIGludCBkcm1f Z2VtX3ByaW1lX2ZkX3RvX2hhbmRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJLyogX2hh bmRsZV9jcmVhdGVfdGFpbCB1bmNvbmRpdGlvbmFsbHkgdW5sb2NrcyBkZXYtPm9iamVjdF9uYW1l X2xvY2suICovCiAJcmV0ID0gZHJtX2dlbV9oYW5kbGVfY3JlYXRlX3RhaWwoZmlsZV9wcml2LCBv YmosIGhhbmRsZSk7Ci0JZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsK Kwlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQob2JqKTsKIAlpZiAocmV0KQogCQlnb3RvIG91 dF9wdXQ7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9nZW0uaCBiL2luY2x1ZGUvZHJt L2RybV9nZW0uaAppbmRleCA0NDlhNDFiNTZmZmMuLjNiMmEyOGY3ZjQ5ZiAxMDA2NDQKLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2dlbS5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9nZW0uaApAQCAtNDgs OSArNDgsOSBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgewogCSAqCiAJICogUmVmZXJlbmNlIGNv dW50IG9mIHRoaXMgb2JqZWN0CiAJICoKLQkgKiBQbGVhc2UgdXNlIGRybV9nZW1fb2JqZWN0X3Jl ZmVyZW5jZSgpIHRvIGFjcXVpcmUgYW5kCi0JICogZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uo KSBvciBkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZCgpCi0JICogdG8gcmVsZWFz ZSBhIHJlZmVyZW5jZSB0byBhIEdFTSBidWZmZXIgb2JqZWN0LgorCSAqIFBsZWFzZSB1c2UgZHJt X2dlbV9vYmplY3RfZ2V0KCkgdG8gYWNxdWlyZSBhbmQgZHJtX2dlbV9vYmplY3RfcHV0KCkKKwkg KiBvciBkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQoKSB0byByZWxlYXNlIGEgcmVmZXJlbmNl IHRvIGEgR0VNCisJICogYnVmZmVyIG9iamVjdC4KIAkgKi8KIAlzdHJ1Y3Qga3JlZiByZWZjb3Vu dDsKIApAQCAtMTg3LDQyICsxODcsOTAgQEAgaW50IGRybV9nZW1fbW1hcF9vYmooc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmosIHVuc2lnbmVkIGxvbmcgb2JqX3NpemUsCiBpbnQgZHJtX2dlbV9t bWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CiAKIC8q KgotICogZHJtX2dlbV9vYmplY3RfcmVmZXJlbmNlIC0gYWNxdWlyZSBhIEdFTSBCTyByZWZlcmVu Y2UKKyAqIGRybV9nZW1fb2JqZWN0X2dldCAtIGFjcXVpcmUgYSBHRU0gYnVmZmVyIG9iamVjdCBy ZWZlcmVuY2UKICAqIEBvYmo6IEdFTSBidWZmZXIgb2JqZWN0CiAgKgotICogVGhpcyBhY3F1aXJl cyBhZGRpdGlvbmFsIHJlZmVyZW5jZSB0byBAb2JqLiBJdCBpcyBpbGxlZ2FsIHRvIGNhbGwgdGhp cwotICogd2l0aG91dCBhbHJlYWR5IGhvbGRpbmcgYSByZWZlcmVuY2UuIE5vIGxvY2tzIHJlcXVp cmVkLgorICogVGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBhbiBhZGRpdGlvbmFsIHJlZmVyZW5jZSB0 byBAb2JqLiBJdCBpcyBpbGxlZ2FsIHRvCisgKiBjYWxsIHRoaXMgd2l0aG91dCBhbHJlYWR5IGhv bGRpbmcgYSByZWZlcmVuY2UuIE5vIGxvY2tzIHJlcXVpcmVkLgogICovCi1zdGF0aWMgaW5saW5l IHZvaWQKLWRybV9nZW1fb2JqZWN0X3JlZmVyZW5jZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aikKK3N0YXRpYyBpbmxpbmUgdm9pZCBkcm1fZ2VtX29iamVjdF9nZXQoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmopCiB7CiAJa3JlZl9nZXQoJm9iai0+cmVmY291bnQpOwogfQogCiAvKioKLSAq IF9fZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UgLSByYXcgZnVuY3Rpb24gdG8gcmVsZWFzZSBh IEdFTSBCTyByZWZlcmVuY2UKKyAqIF9fZHJtX2dlbV9vYmplY3RfcHV0IC0gcmF3IGZ1bmN0aW9u IHRvIHJlbGVhc2UgYSBHRU0gYnVmZmVyIG9iamVjdCByZWZlcmVuY2UKICAqIEBvYmo6IEdFTSBi dWZmZXIgb2JqZWN0CiAgKgogICogVGhpcyBmdW5jdGlvbiBpcyBtZWFudCB0byBiZSB1c2VkIGJ5 IGRyaXZlcnMgd2hpY2ggYXJlIG5vdCBlbmN1bWJlcmVkIHdpdGgKICAqICZkcm1fZGV2aWNlLnN0 cnVjdF9tdXRleCBsZWdhY3kgbG9ja2luZyBhbmQgd2hpY2ggYXJlIHVzaW5nIHRoZQogICogZ2Vt X2ZyZWVfb2JqZWN0X3VubG9ja2VkIGNhbGxiYWNrLiBJdCBhdm9pZHMgYWxsIHRoZSBsb2NraW5n IGNoZWNrcyBhbmQKLSAqIGxvY2tpbmcgb3ZlcmhlYWQgb2YgZHJtX2dlbV9vYmplY3RfdW5yZWZl cmVuY2UoKSBhbmQKLSAqIGRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKCkuCisg KiBsb2NraW5nIG92ZXJoZWFkIG9mIGRybV9nZW1fb2JqZWN0X3B1dCgpIGFuZCBkcm1fZ2VtX29i amVjdF9wdXRfdW5sb2NrZWQoKS4KICAqCiAgKiBEcml2ZXJzIHNob3VsZCBuZXZlciBjYWxsIHRo aXMgZGlyZWN0bHkgaW4gdGhlaXIgY29kZS4gSW5zdGVhZCB0aGV5IHNob3VsZAotICogd3JhcCBp dCB1cCBpbnRvIGEgYGBkcml2ZXJfZ2VtX29iamVjdF91bnJlZmVyZW5jZShzdHJ1Y3QgZHJpdmVy X2dlbV9vYmplY3QKLSAqICpvYmopYGAgd3JhcHBlciBmdW5jdGlvbiwgYW5kIHVzZSB0aGF0LiBT aGFyZWQgY29kZSBzaG91bGQgbmV2ZXIgY2FsbCB0aGlzLCB0bworICogd3JhcCBpdCB1cCBpbnRv IGEgYGBkcml2ZXJfZ2VtX29iamVjdF9wdXQoc3RydWN0IGRyaXZlcl9nZW1fb2JqZWN0ICpvYmop YGAKKyAqIHdyYXBwZXIgZnVuY3Rpb24sIGFuZCB1c2UgdGhhdC4gU2hhcmVkIGNvZGUgc2hvdWxk IG5ldmVyIGNhbGwgdGhpcywgdG8KICAqIGF2b2lkIGJyZWFraW5nIGRyaXZlcnMgYnkgYWNjaWRl bnQgd2hpY2ggc3RpbGwgZGVwZW5kIHVwb24KICAqICZkcm1fZGV2aWNlLnN0cnVjdF9tdXRleCBs b2NraW5nLgogICovCiBzdGF0aWMgaW5saW5lIHZvaWQKLV9fZHJtX2dlbV9vYmplY3RfdW5yZWZl cmVuY2Uoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCitfX2RybV9nZW1fb2JqZWN0X3B1dChz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIHsKIAlrcmVmX3B1dCgmb2JqLT5yZWZjb3VudCwg ZHJtX2dlbV9vYmplY3RfZnJlZSk7CiB9CiAKLXZvaWQgZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVu Y2VfdW5sb2NrZWQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwotdm9pZCBkcm1fZ2VtX29i amVjdF91bnJlZmVyZW5jZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cit2b2lkIGRybV9n ZW1fb2JqZWN0X3B1dF91bmxvY2tlZChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cit2b2lk IGRybV9nZW1fb2JqZWN0X3B1dChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CisKKy8qKgor ICogZHJtX2dlbV9vYmplY3RfcmVmZXJlbmNlIC0gYWNxdWlyZSBhIEdFTSBidWZmZXIgb2JqZWN0 IHJlZmVyZW5jZQorICogQG9iajogR0VNIGJ1ZmZlciBvYmplY3QKKyAqCisgKiBUaGlzIGlzIGEg Y29tcGF0aWJpbGl0eSBhbGlhcyBmb3IgZHJtX2dlbV9vYmplY3RfZ2V0KCkgYW5kIHNob3VsZCBu b3QgYmUKKyAqIHVzZWQgYnkgbmV3IGNvZGUuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBkcm1f Z2VtX29iamVjdF9yZWZlcmVuY2Uoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCit7CisJZHJt X2dlbV9vYmplY3RfZ2V0KG9iaik7Cit9CisKKy8qKgorICogX19kcm1fZ2VtX29iamVjdF91bnJl ZmVyZW5jZSAtIHJhdyBmdW5jdGlvbiB0byByZWxlYXNlIGEgR0VNIGJ1ZmZlciBvYmplY3QKKyAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2UKKyAqIEBvYmo6IEdFTSBi dWZmZXIgb2JqZWN0CisgKgorICogVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgYWxpYXMgZm9yIF9f ZHJtX2dlbV9vYmplY3RfcHV0KCkgYW5kIHNob3VsZCBub3QgYmUKKyAqIHVzZWQgYnkgbmV3IGNv ZGUuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2RybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNl KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQoreworCV9fZHJtX2dlbV9vYmplY3RfcHV0KG9i aik7Cit9CisKKy8qKgorICogZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQgLSBy ZWxlYXNlIGEgR0VNIGJ1ZmZlciBvYmplY3QgcmVmZXJlbmNlCisgKiBAb2JqOiBHRU0gYnVmZmVy IG9iamVjdAorICoKKyAqIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IGFsaWFzIGZvciBkcm1fZ2Vt X29iamVjdF9wdXRfdW5sb2NrZWQoKSBhbmQgc2hvdWxkCisgKiBub3QgYmUgdXNlZCBieSBuZXcg Y29kZS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkCitkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5j ZV91bmxvY2tlZChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKK3sKKwlkcm1fZ2VtX29iamVj dF9wdXRfdW5sb2NrZWQob2JqKTsKK30KKworLyoqCisgKiBkcm1fZ2VtX29iamVjdF91bnJlZmVy ZW5jZSAtIHJlbGVhc2UgYSBHRU0gYnVmZmVyIG9iamVjdCByZWZlcmVuY2UKKyAqIEBvYmo6IEdF TSBidWZmZXIgb2JqZWN0CisgKgorICogVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgYWxpYXMgZm9y IGRybV9nZW1fb2JqZWN0X3B1dCgpIGFuZCBzaG91bGQgbm90IGJlCisgKiB1c2VkIGJ5IG5ldyBj b2RlLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uo c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCit7CisJZHJtX2dlbV9vYmplY3RfcHV0KG9iaik7 Cit9CiAKIGludCBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYsCiAJCQkgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLApkaWZmIC0tZ2l0IGEvc2NyaXB0 cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaSBiL3NjcmlwdHMvY29jY2luZWxsZS9h cGkvZHJtLWdldC1wdXQuY29jY2kKaW5kZXggZmQyOThjMjRhNDY1Li4yNDg4MjU0N2I0ZDEgMTAw NjQ0Ci0tLSBhL3NjcmlwdHMvY29jY2luZWxsZS9hcGkvZHJtLWdldC1wdXQuY29jY2kKKysrIGIv c2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaQpAQCAtMzIsNiArMzIsMTgg QEAgZXhwcmVzc2lvbiBvYmplY3Q7CiB8CiAtIGRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShv YmplY3QpCiArIGRybV9mcmFtZWJ1ZmZlcl9wdXQob2JqZWN0KQorfAorLSBkcm1fZ2VtX29iamVj dF9yZWZlcmVuY2Uob2JqZWN0KQorKyBkcm1fZ2VtX29iamVjdF9nZXQob2JqZWN0KQorfAorLSBk cm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZShvYmplY3QpCisrIGRybV9nZW1fb2JqZWN0X3B1dChv YmplY3QpCit8CistIF9fZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uob2JqZWN0KQorKyBfX2Ry bV9nZW1fb2JqZWN0X3B1dChvYmplY3QpCit8CistIGRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNl X3VubG9ja2VkKG9iamVjdCkKKysgZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKG9iamVjdCkK ICkKIAogQHIgZGVwZW5kcyBvbiByZXBvcnRACkBAIC01MSw2ICs2MywxNCBAQCBkcm1fY29ubmVj dG9yX3JlZmVyZW5jZUBwKG9iamVjdCkKIGRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZUBwKG9i amVjdCkKIHwKIGRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2VAcChvYmplY3QpCit8Citkcm1fZ2Vt X29iamVjdF91bnJlZmVyZW5jZUBwKG9iamVjdCkKK3wKK2RybV9nZW1fb2JqZWN0X3JlZmVyZW5j ZUBwKG9iamVjdCkKK3wKK19fZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uob2JqZWN0KQorfAor ZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqZWN0KQogKQogCiBAc2NyaXB0 OnB5dGhvbiBkZXBlbmRzIG9uIHJlcG9ydEAKLS0gCjIuMTEuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==