From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 3/6] drm: Introduce drm_connector_{get,put}() Date: Wed, 8 Feb 2017 19:24:05 +0100 Message-ID: <20170208182408.5442-4-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-x242.google.com (mail-wr0-x242.google.com [IPv6:2a00:1450:400c:c0c::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id B31FF6E961 for ; Wed, 8 Feb 2017 18:24:17 +0000 (UTC) Received: by mail-wr0-x242.google.com with SMTP id o16so9523813wra.2 for ; Wed, 08 Feb 2017 10:24:17 -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 cm1fY29ubmVjdG9yX2dldCgpIGFuZCBkcm1fY29ubmVjdG9yX3B1dCgpIGZ1bmN0aW9ucyB0byBy ZWZlcmVuY2UgY291bnQKY29ubmVjdG9ycy4KCkNvbXBhdGliaWxpdHkgYWxpYXNlcyBhcmUgYWRk ZWQgdG8ga2VlcCBleGlzdGluZyBjb2RlIHdvcmtpbmcuIFRvIGhlbHAKc3BlZWQgdXAgdGhlIHRy YW5zaXRpb24sIGFsbCB0aGUgaW5zdGFuY2VzIG9mIHRoZSBvbGQgZnVuY3Rpb25zIGluIHRoZQpE Uk0gY29yZSBhcmUgYWxyZWFkeSByZXBsYWNlZCBpbiB0aGlzIGNvbW1pdC4KClRoZSBleGlzdGlu ZyBzZW1hbnRpYyBwYXRjaCBmb3IgbW9kZSBvYmplY3QgcmVmZXJlbmNlIGNvdW50IGNvbnZlcnNp b24KaXMgZXh0ZW5kZWQgZm9yIHRoZXNlIG5ldyBoZWxwZXJzLgoKU2lnbmVkLW9mZi1ieTogVGhp ZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jICAgICAgICAgICAgIHwgIDggKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfaGVscGVyLmMgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVj dG9yLmMgICAgICAgICAgfCAxMCArKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMg ICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMg ICAgICAgIHwgIDYgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgICAgICAg ICAgfCAxMiArKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMgICAg ICAgIHwgIDIgKy0KIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgICAgICAgICAgfCA0 MSArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogc2NyaXB0cy9jb2NjaW5lbGxlL2Fw aS9kcm0tZ2V0LXB1dC5jb2NjaSB8IDEwICsrKysrKysrCiA5IGZpbGVzIGNoYW5nZWQsIDY1IGlu c2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCmluZGV4IDJiYjBh NzU5ZThlYy4uODJiYWQ0MGIyZjNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKQEAgLTE1MCw3ICsxNTAs NyBAQCB2b2lkIGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9jbGVhcihzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpCiAJCQkJCQkgICAgICAgc3RhdGUtPmNvbm5lY3RvcnNbaV0uc3RhdGUp OwogCQlzdGF0ZS0+Y29ubmVjdG9yc1tpXS5wdHIgPSBOVUxMOwogCQlzdGF0ZS0+Y29ubmVjdG9y c1tpXS5zdGF0ZSA9IE5VTEw7Ci0JCWRybV9jb25uZWN0b3JfdW5yZWZlcmVuY2UoY29ubmVjdG9y KTsKKwkJZHJtX2Nvbm5lY3Rvcl9wdXQoY29ubmVjdG9yKTsKIAl9CiAKIAlmb3IgKGkgPSAwOyBp IDwgY29uZmlnLT5udW1fY3J0YzsgaSsrKSB7CkBAIC0xMDI2LDcgKzEwMjYsNyBAQCBkcm1fYXRv bWljX2dldF9jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAog CWlmICghY29ubmVjdG9yX3N0YXRlKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAotCWRy bV9jb25uZWN0b3JfcmVmZXJlbmNlKGNvbm5lY3Rvcik7CisJZHJtX2Nvbm5lY3Rvcl9nZXQoY29u bmVjdG9yKTsKIAlzdGF0ZS0+Y29ubmVjdG9yc1tpbmRleF0uc3RhdGUgPSBjb25uZWN0b3Jfc3Rh dGU7CiAJc3RhdGUtPmNvbm5lY3RvcnNbaW5kZXhdLnB0ciA9IGNvbm5lY3RvcjsKIAljb25uZWN0 b3Jfc3RhdGUtPnN0YXRlID0gc3RhdGU7CkBAIC0xMzU3LDcgKzEzNTcsNyBAQCBkcm1fYXRvbWlj X3NldF9jcnRjX2Zvcl9jb25uZWN0b3Ioc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5f c3RhdGUsCiAJCWNydGNfc3RhdGUtPmNvbm5lY3Rvcl9tYXNrICY9CiAJCQl+KDEgPDwgZHJtX2Nv bm5lY3Rvcl9pbmRleChjb25uX3N0YXRlLT5jb25uZWN0b3IpKTsKIAotCQlkcm1fY29ubmVjdG9y X3VucmVmZXJlbmNlKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7CisJCWRybV9jb25uZWN0b3JfcHV0 KGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7CiAJCWNvbm5fc3RhdGUtPmNydGMgPSBOVUxMOwogCX0K IApAQCAtMTM2OSw3ICsxMzY5LDcgQEAgZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVjdG9y KHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAogCQljcnRjX3N0YXRlLT5j b25uZWN0b3JfbWFzayB8PQogCQkJMSA8PCBkcm1fY29ubmVjdG9yX2luZGV4KGNvbm5fc3RhdGUt PmNvbm5lY3Rvcik7CiAKLQkJZHJtX2Nvbm5lY3Rvcl9yZWZlcmVuY2UoY29ubl9zdGF0ZS0+Y29u bmVjdG9yKTsKKwkJZHJtX2Nvbm5lY3Rvcl9nZXQoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKIAkJ Y29ubl9zdGF0ZS0+Y3J0YyA9IGNydGM7CiAKIAkJRFJNX0RFQlVHX0FUT01JQygiTGluayBjb25u ZWN0b3Igc3RhdGUgJXAgdG8gW0NSVEM6JWQ6JXNdXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuYwppbmRleCA5YTA4NDQ1YTdhN2EuLjlmMmMyOGRkZjk0OCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMKQEAgLTMyNzIsNyArMzI3Miw3IEBAIF9fZHJtX2F0b21pY19oZWxw ZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAogewogCW1lbWNweShzdGF0ZSwgY29ubmVjdG9yLT5zdGF0ZSwgc2l6ZW9mKCpzdGF0ZSkp OwogCWlmIChzdGF0ZS0+Y3J0YykKLQkJZHJtX2Nvbm5lY3Rvcl9yZWZlcmVuY2UoY29ubmVjdG9y KTsKKwkJZHJtX2Nvbm5lY3Rvcl9nZXQoY29ubmVjdG9yKTsKIH0KIEVYUE9SVF9TWU1CT0woX19k cm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlKTsKIApAQCAtMzM5OCw3 ICszMzk4LDcgQEAgdm9pZAogX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9z dGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUpCiB7CiAJaWYgKHN0YXRlLT5j cnRjKQotCQlkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNlKHN0YXRlLT5jb25uZWN0b3IpOworCQlk cm1fY29ubmVjdG9yX3B1dChzdGF0ZS0+Y29ubmVjdG9yKTsKIH0KIEVYUE9SVF9TWU1CT0woX19k cm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSk7CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nv bm5lY3Rvci5jCmluZGV4IDA2MTYwNjJiMDU1YS4uMGRjMGU1YjMzZjhhIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y29ubmVjdG9yLmMKQEAgLTM1LDggKzM1LDggQEAKICAqIGFscyBmaXhlZCBwYW5lbHMgb3IgYW55 dGhpbmcgZWxzZSB0aGF0IGNhbiBkaXNwbGF5IHBpeGVscyBpbiBzb21lIGZvcm0uIEFzCiAgKiBv cHBvc2VkIHRvIGFsbCBvdGhlciBLTVMgb2JqZWN0cyByZXByZXNlbnRpbmcgaGFyZHdhcmUgKGxp a2UgQ1JUQywgZW5jb2RlciBvcgogICogcGxhbmUgYWJzdHJhY3Rpb25zKSBjb25uZWN0b3JzIGNh biBiZSBob3RwbHVnZ2VkIGFuZCB1bnBsdWdnZWQgYXQgcnVudGltZS4KLSAqIEhlbmNlIHRoZXkg YXJlIHJlZmVyZW5jZS1jb3VudGVkIHVzaW5nIGRybV9jb25uZWN0b3JfcmVmZXJlbmNlKCkgYW5k Ci0gKiBkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNlKCkuCisgKiBIZW5jZSB0aGV5IGFyZSByZWZl cmVuY2UtY291bnRlZCB1c2luZyBkcm1fY29ubmVjdG9yX2dldCgpIGFuZAorICogZHJtX2Nvbm5l Y3Rvcl9wdXQoKS4KICAqCiAgKiBLTVMgZHJpdmVyIG11c3QgY3JlYXRlLCBpbml0aWFsaXplLCBy ZWdpc3RlciBhbmQgYXR0YWNoIGF0IGEgJnN0cnVjdAogICogZHJtX2Nvbm5lY3RvciBmb3IgZWFj aCBzdWNoIHNpbmsuIFRoZSBpbnN0YW5jZSBpcyBjcmVhdGVkIGFzIG90aGVyIEtNUwpAQCAtNTQ1 LDcgKzU0NSw3IEBAIGRybV9jb25uZWN0b3JfbGlzdF9pdGVyX25leHQoc3RydWN0IGRybV9jb25u ZWN0b3JfbGlzdF9pdGVyICppdGVyKQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvbmZpZy0+ Y29ubmVjdG9yX2xpc3RfbG9jaywgZmxhZ3MpOwogCiAJaWYgKG9sZF9jb25uKQotCQlkcm1fY29u bmVjdG9yX3VucmVmZXJlbmNlKG9sZF9jb25uKTsKKwkJZHJtX2Nvbm5lY3Rvcl9wdXQob2xkX2Nv bm4pOwogCiAJcmV0dXJuIGl0ZXItPmNvbm47CiB9CkBAIC01NjQsNyArNTY0LDcgQEAgdm9pZCBk cm1fY29ubmVjdG9yX2xpc3RfaXRlcl9wdXQoc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVy ICppdGVyKQogewogCWl0ZXItPmRldiA9IE5VTEw7CiAJaWYgKGl0ZXItPmNvbm4pCi0JCWRybV9j b25uZWN0b3JfdW5yZWZlcmVuY2UoaXRlci0+Y29ubik7CisJCWRybV9jb25uZWN0b3JfcHV0KGl0 ZXItPmNvbm4pOwogCWxvY2tfcmVsZWFzZSgmY29ubmVjdG9yX2xpc3RfaXRlcl9kZXBfbWFwLCAw LCBfUkVUX0lQXyk7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9jb25uZWN0b3JfbGlzdF9pdGVyX3B1 dCk7CkBAIC0xMjQ5LDcgKzEyNDksNyBAQCBpbnQgZHJtX21vZGVfZ2V0Y29ubmVjdG9yKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZkZXYt Pm1vZGVfY29uZmlnLm11dGV4KTsKIG91dF91bnJlZjoKLQlkcm1fY29ubmVjdG9yX3VucmVmZXJl bmNlKGNvbm5lY3Rvcik7CisJZHJtX2Nvbm5lY3Rvcl9wdXQoY29ubmVjdG9yKTsKIAogCXJldHVy biByZXQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fY3J0Yy5jCmluZGV4IGUyMjg0NTM5ZjgyYy4uOTU5NGM2MjM3OTliIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2NydGMuYwpAQCAtNjg1LDcgKzY4NSw3IEBAIGludCBkcm1fbW9kZV9zZXRjcnRjKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJaWYgKGNvbm5lY3Rvcl9zZXQpIHsK IAkJZm9yIChpID0gMDsgaSA8IGNydGNfcmVxLT5jb3VudF9jb25uZWN0b3JzOyBpKyspIHsKIAkJ CWlmIChjb25uZWN0b3Jfc2V0W2ldKQotCQkJCWRybV9jb25uZWN0b3JfdW5yZWZlcmVuY2UoY29u bmVjdG9yX3NldFtpXSk7CisJCQkJZHJtX2Nvbm5lY3Rvcl9wdXQoY29ubmVjdG9yX3NldFtpXSk7 CiAJCX0KIAl9CiAJa2ZyZWUoY29ubmVjdG9yX3NldCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2NydGNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVy LmMKaW5kZXggNDRiYTBlOTkwZDZjLi41MzYwNTFjNjI3ZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNf aGVscGVyLmMKQEAgLTQ2NSw3ICs0NjUsNyBAQCBkcm1fY3J0Y19oZWxwZXJfZGlzYWJsZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCiAJCQljb25uZWN0b3ItPmRwbXMgPSBEUk1fTU9ERV9EUE1TX09G RjsKIAogCQkJLyogd2Uga2VlcCBhIHJlZmVyZW5jZSB3aGlsZSB0aGUgZW5jb2RlciBpcyBib3Vu ZCAqLwotCQkJZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5jZShjb25uZWN0b3IpOworCQkJZHJtX2Nv bm5lY3Rvcl9wdXQoY29ubmVjdG9yKTsKIAkJfQogCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9w dXQoJmNvbm5faXRlcik7CiAJfQpAQCAtNjIzLDcgKzYyMyw3IEBAIGludCBkcm1fY3J0Y19oZWxw ZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCiAJZm9yIChybyA9IDA7IHJv IDwgc2V0LT5udW1fY29ubmVjdG9yczsgcm8rKykgewogCQlpZiAoc2V0LT5jb25uZWN0b3JzW3Jv XS0+ZW5jb2RlcikKIAkJCWNvbnRpbnVlOwotCQlkcm1fY29ubmVjdG9yX3JlZmVyZW5jZShzZXQt PmNvbm5lY3RvcnNbcm9dKTsKKwkJZHJtX2Nvbm5lY3Rvcl9nZXQoc2V0LT5jb25uZWN0b3JzW3Jv XSk7CiAJfQogCiAJLyogYSkgdHJhdmVyc2UgcGFzc2VkIGluIGNvbm5lY3RvciBsaXN0IGFuZCBn ZXQgZW5jb2RlcnMgZm9yIHRoZW0gKi8KQEAgLTc3Miw3ICs3NzIsNyBAQCBpbnQgZHJtX2NydGNf aGVscGVyX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0KQogCWZvciAocm8gPSAw OyBybyA8IHNldC0+bnVtX2Nvbm5lY3RvcnM7IHJvKyspIHsKIAkJaWYgKHNldC0+Y29ubmVjdG9y c1tyb10tPmVuY29kZXIpCiAJCQljb250aW51ZTsKLQkJZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5j ZShzZXQtPmNvbm5lY3RvcnNbcm9dKTsKKwkJZHJtX2Nvbm5lY3Rvcl9wdXQoc2V0LT5jb25uZWN0 b3JzW3JvXSk7CiAJfQogCiAJLyogVHJ5IHRvIHJlc3RvcmUgdGhlIGNvbmZpZyAqLwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZmJfaGVscGVyLmMKaW5kZXggZjZkNGQ5NzAwNzM0Li5lZTEzNjFhMjRiM2EgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2RybV9mYl9oZWxwZXIuYwpAQCAtMTQxLDcgKzE0MSw3IEBAIGludCBkcm1fZmJfaGVscGVyX3Np bmdsZV9hZGRfYWxsX2Nvbm5lY3RvcnMoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikK IAkJc3RydWN0IGRybV9mYl9oZWxwZXJfY29ubmVjdG9yICpmYl9oZWxwZXJfY29ubmVjdG9yID0K IAkJCWZiX2hlbHBlci0+Y29ubmVjdG9yX2luZm9baV07CiAKLQkJZHJtX2Nvbm5lY3Rvcl91bnJl ZmVyZW5jZShmYl9oZWxwZXJfY29ubmVjdG9yLT5jb25uZWN0b3IpOworCQlkcm1fY29ubmVjdG9y X3B1dChmYl9oZWxwZXJfY29ubmVjdG9yLT5jb25uZWN0b3IpOwogCiAJCWtmcmVlKGZiX2hlbHBl cl9jb25uZWN0b3IpOwogCQlmYl9oZWxwZXItPmNvbm5lY3Rvcl9pbmZvW2ldID0gTlVMTDsKQEAg LTE3OCw3ICsxNzgsNyBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9hZGRfb25lX2Nvbm5lY3RvcihzdHJ1 Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLCBzdHJ1Y3QgZHJtXwogCWlmICghZmJfaGVscGVy X2Nvbm5lY3RvcikKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlkcm1fY29ubmVjdG9yX3JlZmVyZW5j ZShjb25uZWN0b3IpOworCWRybV9jb25uZWN0b3JfZ2V0KGNvbm5lY3Rvcik7CiAJZmJfaGVscGVy X2Nvbm5lY3Rvci0+Y29ubmVjdG9yID0gY29ubmVjdG9yOwogCWZiX2hlbHBlci0+Y29ubmVjdG9y X2luZm9bZmJfaGVscGVyLT5jb25uZWN0b3JfY291bnQrK10gPSBmYl9oZWxwZXJfY29ubmVjdG9y OwogCXJldHVybiAwOwpAQCAtMjA0LDcgKzIwNCw3IEBAIGludCBkcm1fZmJfaGVscGVyX3JlbW92 ZV9vbmVfY29ubmVjdG9yKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCiAJaWYgKGkg PT0gZmJfaGVscGVyLT5jb25uZWN0b3JfY291bnQpCiAJCXJldHVybiAtRUlOVkFMOwogCWZiX2hl bHBlcl9jb25uZWN0b3IgPSBmYl9oZWxwZXItPmNvbm5lY3Rvcl9pbmZvW2ldOwotCWRybV9jb25u ZWN0b3JfdW5yZWZlcmVuY2UoZmJfaGVscGVyX2Nvbm5lY3Rvci0+Y29ubmVjdG9yKTsKKwlkcm1f Y29ubmVjdG9yX3B1dChmYl9oZWxwZXJfY29ubmVjdG9yLT5jb25uZWN0b3IpOwogCiAJZm9yIChq ID0gaSArIDE7IGogPCBmYl9oZWxwZXItPmNvbm5lY3Rvcl9jb3VudDsgaisrKSB7CiAJCWZiX2hl bHBlci0+Y29ubmVjdG9yX2luZm9baiAtIDFdID0gZmJfaGVscGVyLT5jb25uZWN0b3JfaW5mb1tq XTsKQEAgLTYyNiw3ICs2MjYsNyBAQCBzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX21vZGVzZXRf cmVsZWFzZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAogCWludCBpOwogCiAJZm9yIChp ID0gMDsgaSA8IG1vZGVzZXQtPm51bV9jb25uZWN0b3JzOyBpKyspIHsKLQkJZHJtX2Nvbm5lY3Rv cl91bnJlZmVyZW5jZShtb2Rlc2V0LT5jb25uZWN0b3JzW2ldKTsKKwkJZHJtX2Nvbm5lY3Rvcl9w dXQobW9kZXNldC0+Y29ubmVjdG9yc1tpXSk7CiAJCW1vZGVzZXQtPmNvbm5lY3RvcnNbaV0gPSBO VUxMOwogCX0KIAltb2Rlc2V0LT5udW1fY29ubmVjdG9ycyA9IDA7CkBAIC02NDMsNyArNjQzLDcg QEAgc3RhdGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9jcnRjX2ZyZWUoc3RydWN0IGRybV9mYl9oZWxw ZXIgKmhlbHBlcikKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBoZWxwZXItPmNvbm5lY3Rv cl9jb3VudDsgaSsrKSB7Ci0JCWRybV9jb25uZWN0b3JfdW5yZWZlcmVuY2UoaGVscGVyLT5jb25u ZWN0b3JfaW5mb1tpXS0+Y29ubmVjdG9yKTsKKwkJZHJtX2Nvbm5lY3Rvcl9wdXQoaGVscGVyLT5j b25uZWN0b3JfaW5mb1tpXS0+Y29ubmVjdG9yKTsKIAkJa2ZyZWUoaGVscGVyLT5jb25uZWN0b3Jf aW5mb1tpXSk7CiAJfQogCWtmcmVlKGhlbHBlci0+Y29ubmVjdG9yX2luZm8pOwpAQCAtMjE4NCw3 ICsyMTg0LDcgQEAgc3RhdGljIHZvaWQgZHJtX3NldHVwX2NydGNzKHN0cnVjdCBkcm1fZmJfaGVs cGVyICpmYl9oZWxwZXIsCiAJCQlmYl9jcnRjLT55ID0gb2Zmc2V0LT55OwogCQkJbW9kZXNldC0+ bW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShkZXYsCiAJCQkJCQkJICAgZmJfY3J0Yy0+ZGVzaXJl ZF9tb2RlKTsKLQkJCWRybV9jb25uZWN0b3JfcmVmZXJlbmNlKGNvbm5lY3Rvcik7CisJCQlkcm1f Y29ubmVjdG9yX2dldChjb25uZWN0b3IpOwogCQkJbW9kZXNldC0+Y29ubmVjdG9yc1ttb2Rlc2V0 LT5udW1fY29ubmVjdG9ycysrXSA9IGNvbm5lY3RvcjsKIAkJCW1vZGVzZXQtPmZiID0gZmJfaGVs cGVyLT5mYjsKIAkJCW1vZGVzZXQtPnggPSBvZmZzZXQtPng7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29u ZmlnLmMKaW5kZXggODg0Y2M0ZDI2ZmI1Li4yMGFlYzE2NWFiZDcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21v ZGVfY29uZmlnLmMKQEAgLTQxOCw3ICs0MTgsNyBAQCB2b2lkIGRybV9tb2RlX2NvbmZpZ19jbGVh bnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCSAqIGN1cnJlbnQgY29ubmVjdG9yIGl0c2Vs Ziwgd2hpY2ggbWVhbnMgaXQgaXMgaW5oZXJlbnRseSBzYWZlCiAJCSAqIGFnYWluc3QgdW5yZWZl cmVuY2luZyB0aGUgY3VycmVudCBjb25uZWN0b3IgLSBidXQgbm90IGFnYWluc3QKIAkJICogZGVs ZXRpbmcgaXQgcmlnaHQgYXdheS4gKi8KLQkJZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5jZShjb25u ZWN0b3IpOworCQlkcm1fY29ubmVjdG9yX3B1dChjb25uZWN0b3IpOwogCX0KIAlkcm1fY29ubmVj dG9yX2xpc3RfaXRlcl9wdXQoJmNvbm5faXRlcik7CiAJaWYgKFdBUk5fT04oIWxpc3RfZW1wdHko JmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QpKSkgewpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCmluZGV4 IGU1ZTFlZGRkMTlmYi4uZDY0OWJlYzk2OTM3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1f Y29ubmVjdG9yLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCkBAIC03OTUsMjUg Kzc5NSw1MCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1fY29ubmVjdG9yICpkcm1fY29ubmVj dG9yX2xvb2t1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogfQogCiAvKioKLSAqIGRybV9jb25u ZWN0b3JfcmVmZXJlbmNlIC0gaW5jciB0aGUgY29ubmVjdG9yIHJlZmNudAotICogQGNvbm5lY3Rv cjogY29ubmVjdG9yCisgKiBkcm1fY29ubmVjdG9yX2dldCAtIGFjcXVpcmUgYSBjb25uZWN0b3Ig cmVmZXJlbmNlCisgKiBAY29ubmVjdG9yOiBEUk0gY29ubmVjdG9yCiAgKgogICogVGhpcyBmdW5j dGlvbiBpbmNyZW1lbnRzIHRoZSBjb25uZWN0b3IncyByZWZjb3VudC4KICAqLworc3RhdGljIGlu bGluZSB2b2lkIGRybV9jb25uZWN0b3JfZ2V0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCit7CisJZHJtX21vZGVfb2JqZWN0X2dldCgmY29ubmVjdG9yLT5iYXNlKTsKK30KKworLyoq CisgKiBkcm1fY29ubmVjdG9yX3B1dCAtIHJlbGVhc2UgYSBjb25uZWN0b3IgcmVmZXJlbmNlCisg KiBAY29ubmVjdG9yOiBEUk0gY29ubmVjdG9yCisgKgorICogVGhpcyBmdW5jdGlvbiBkZWNyZW1l bnRzIHRoZSBjb25uZWN0b3IncyByZWZlcmVuY2UgY291bnQgYW5kIGZyZWVzIHRoZQorICogb2Jq ZWN0IGlmIHRoZSByZWZlcmVuY2UgY291bnQgZHJvcHMgdG8gemVyby4KKyAqLworc3RhdGljIGlu bGluZSB2b2lkIGRybV9jb25uZWN0b3JfcHV0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCit7CisJZHJtX21vZGVfb2JqZWN0X3B1dCgmY29ubmVjdG9yLT5iYXNlKTsKK30KKworLyoq CisgKiBkcm1fY29ubmVjdG9yX3JlZmVyZW5jZSAtIGFjcXVpcmUgYSBjb25uZWN0b3IgcmVmZXJl bmNlCisgKiBAY29ubmVjdG9yOiBEUk0gY29ubmVjdG9yCisgKgorICogVGhpcyBpcyBhIGNvbXBh dGliaWxpdHkgYWxpYXMgZm9yIGRybV9jb25uZWN0b3JfZ2V0KCkgYW5kIHNob3VsZCBub3QgYmUK KyAqIHVzZWQgYnkgbmV3IGNvZGUuCisgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBkcm1fY29ubmVj dG9yX3JlZmVyZW5jZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCWRybV9t b2RlX29iamVjdF9yZWZlcmVuY2UoJmNvbm5lY3Rvci0+YmFzZSk7CisJZHJtX2Nvbm5lY3Rvcl9n ZXQoY29ubmVjdG9yKTsKIH0KIAogLyoqCi0gKiBkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNlIC0g dW5yZWYgYSBjb25uZWN0b3IKLSAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciB0byB1bnJlZgorICog ZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5jZSAtIHJlbGVhc2UgYSBjb25uZWN0b3IgcmVmZXJlbmNl CisgKiBAY29ubmVjdG9yOiBEUk0gY29ubmVjdG9yCiAgKgotICogVGhpcyBmdW5jdGlvbiBkZWNy ZW1lbnRzIHRoZSBjb25uZWN0b3IncyByZWZjb3VudCBhbmQgZnJlZXMgaXQgaWYgaXQgZHJvcHMg dG8gemVyby4KKyAqIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IGFsaWFzIGZvciBkcm1fY29ubmVj dG9yX3B1dCgpIGFuZCBzaG91bGQgbm90IGJlCisgKiB1c2VkIGJ5IG5ldyBjb2RlLgogICovCiBz dGF0aWMgaW5saW5lIHZvaWQgZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5jZShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yKQogewotCWRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZSgmY29u bmVjdG9yLT5iYXNlKTsKKwlkcm1fY29ubmVjdG9yX3B1dChjb25uZWN0b3IpOwogfQogCiBjb25z dCBjaGFyICpkcm1fZ2V0X2Nvbm5lY3Rvcl9zdGF0dXNfbmFtZShlbnVtIGRybV9jb25uZWN0b3Jf c3RhdHVzIHN0YXR1cyk7CkBAIC05MDUsNyArOTMwLDcgQEAgdm9pZCBkcm1fY29ubmVjdG9yX2xp c3RfaXRlcl9wdXQoc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyICppdGVyKTsKICAqCiAg KiBOb3RlIHRoYXQgQGNvbm5lY3RvciBpcyBvbmx5IHZhbGlkIHdpdGhpbiB0aGUgbGlzdCBib2R5 LCBpZiB5b3Ugd2FudCB0byB1c2UKICAqIEBjb25uZWN0b3IgYWZ0ZXIgY2FsbGluZyBkcm1fY29u bmVjdG9yX2xpc3RfaXRlcl9wdXQoKSB0aGVuIHlvdSBuZWVkIHRvIGdyYWIKLSAqIHlvdXIgb3du IHJlZmVyZW5jZSBmaXJzdCB1c2luZyBkcm1fY29ubmVjdG9yX3JlZmVyZW5jZSgpLgorICogeW91 ciBvd24gcmVmZXJlbmNlIGZpcnN0IHVzaW5nIGRybV9jb25uZWN0b3JfZ2V0KCkuCiAgKi8KICNk ZWZpbmUgZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgaXRlcikgXAogCXdo aWxlICgoY29ubmVjdG9yID0gZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfbmV4dChpdGVyKSkpCmRp ZmYgLS1naXQgYS9zY3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpIGIvc2Ny aXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaQppbmRleCBhMzc0MjQ0N2M5ODEu LjhhNGMyY2I3ODg5ZSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0 LXB1dC5jb2NjaQorKysgYi9zY3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2Np CkBAIC0yMCw2ICsyMCwxMiBAQCBleHByZXNzaW9uIG9iamVjdDsKIHwKIC0gZHJtX21vZGVfb2Jq ZWN0X3VucmVmZXJlbmNlKG9iamVjdCkKICsgZHJtX21vZGVfb2JqZWN0X3B1dChvYmplY3QpCit8 CistIGRybV9jb25uZWN0b3JfcmVmZXJlbmNlKG9iamVjdCkKKysgZHJtX2Nvbm5lY3Rvcl9nZXQo b2JqZWN0KQorfAorLSBkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNlKG9iamVjdCkKKysgZHJtX2Nv bm5lY3Rvcl9wdXQob2JqZWN0KQogKQogCiBAciBkZXBlbmRzIG9uIHJlcG9ydEAKQEAgLTMxLDYg KzM3LDEwIEBAIHBvc2l0aW9uIHA7CiBkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2VAcChvYmpl Y3QpCiB8CiBkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlQHAob2JqZWN0KQorfAorZHJtX2Nvbm5l Y3Rvcl91bnJlZmVyZW5jZUBwKG9iamVjdCkKK3wKK2RybV9jb25uZWN0b3JfcmVmZXJlbmNlQHAo b2JqZWN0KQogKQogCiBAc2NyaXB0OnB5dGhvbiBkZXBlbmRzIG9uIHJlcG9ydEAKLS0gCjIuMTEu MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==