From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v3 3/7] drm: Introduce drm_connector_{get,put}() Date: Tue, 28 Feb 2017 15:46:39 +0100 Message-ID: <20170228144643.5668-4-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-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 601276E740 for ; Tue, 28 Feb 2017 14:46:53 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id r18so2755603wmd.3 for ; Tue, 28 Feb 2017 06:46:53 -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 cm1fY29ubmVjdG9yX2dldCgpIGFuZCBkcm1fY29ubmVjdG9yX3B1dCgpIGZ1bmN0aW9ucyB0byBy ZWZlcmVuY2UgY291bnQKY29ubmVjdG9ycy4KCkNvbXBhdGliaWxpdHkgYWxpYXNlcyBhcmUgYWRk ZWQgdG8ga2VlcCBleGlzdGluZyBjb2RlIHdvcmtpbmcuIFRvIGhlbHAKc3BlZWQgdXAgdGhlIHRy YW5zaXRpb24sIGFsbCB0aGUgaW5zdGFuY2VzIG9mIHRoZSBvbGQgZnVuY3Rpb25zIGluIHRoZQpE Uk0gY29yZSBhcmUgYWxyZWFkeSByZXBsYWNlZCBpbiB0aGlzIGNvbW1pdC4KClRoZSBleGlzdGlu ZyBzZW1hbnRpYyBwYXRjaCBmb3IgbW9kZSBvYmplY3QgcmVmZXJlbmNlIGNvdW50IGNvbnZlcnNp b24KaXMgZXh0ZW5kZWQgZm9yIHRoZXNlIG5ldyBoZWxwZXJzLgoKUmV2aWV3ZWQtYnk6IFNlYW4g UGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgpBY2tlZC1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8 Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8 dHJlZGluZ0BudmlkaWEuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAg ICAgICAgICAgfCAgOCArKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu YyAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgICAgICAg ICB8IDEwICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyAgICAgICAgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYyAgICAgICAgfCAgNiAr Ky0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyAgICAgICAgICB8IDEyICsrKysr LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYyAgICAgICAgfCAgMiArLQog aW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAgICAgICAgICB8IDQxICsrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tCiBzY3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0 LmNvY2NpIHwgMTAgKysrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwg MzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKaW5kZXggMmJiMGE3NTllOGVjLi44MmJh ZDQwYjJmM2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgZHJt X2F0b21pY19zdGF0ZV9kZWZhdWx0X2NsZWFyKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSkKIAkJCQkJCSAgICAgICBzdGF0ZS0+Y29ubmVjdG9yc1tpXS5zdGF0ZSk7CiAJCXN0YXRlLT5j b25uZWN0b3JzW2ldLnB0ciA9IE5VTEw7CiAJCXN0YXRlLT5jb25uZWN0b3JzW2ldLnN0YXRlID0g TlVMTDsKLQkJZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5jZShjb25uZWN0b3IpOworCQlkcm1fY29u bmVjdG9yX3B1dChjb25uZWN0b3IpOwogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBjb25maWctPm51 bV9jcnRjOyBpKyspIHsKQEAgLTEwMjYsNyArMTAyNiw3IEBAIGRybV9hdG9taWNfZ2V0X2Nvbm5l Y3Rvcl9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJaWYgKCFjb25uZWN0 b3Jfc3RhdGUpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JZHJtX2Nvbm5lY3Rvcl9y ZWZlcmVuY2UoY29ubmVjdG9yKTsKKwlkcm1fY29ubmVjdG9yX2dldChjb25uZWN0b3IpOwogCXN0 YXRlLT5jb25uZWN0b3JzW2luZGV4XS5zdGF0ZSA9IGNvbm5lY3Rvcl9zdGF0ZTsKIAlzdGF0ZS0+ Y29ubmVjdG9yc1tpbmRleF0ucHRyID0gY29ubmVjdG9yOwogCWNvbm5lY3Rvcl9zdGF0ZS0+c3Rh dGUgPSBzdGF0ZTsKQEAgLTEzNTcsNyArMTM1Nyw3IEBAIGRybV9hdG9taWNfc2V0X2NydGNfZm9y X2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKIAkJY3J0 Y19zdGF0ZS0+Y29ubmVjdG9yX21hc2sgJj0KIAkJCX4oMSA8PCBkcm1fY29ubmVjdG9yX2luZGV4 KGNvbm5fc3RhdGUtPmNvbm5lY3RvcikpOwogCi0JCWRybV9jb25uZWN0b3JfdW5yZWZlcmVuY2Uo Y29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKKwkJZHJtX2Nvbm5lY3Rvcl9wdXQoY29ubl9zdGF0ZS0+ Y29ubmVjdG9yKTsKIAkJY29ubl9zdGF0ZS0+Y3J0YyA9IE5VTEw7CiAJfQogCkBAIC0xMzY5LDcg KzEzNjksNyBAQCBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9jb25uZWN0b3Ioc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUsCiAJCWNydGNfc3RhdGUtPmNvbm5lY3Rvcl9tYXNr IHw9CiAJCQkxIDw8IGRybV9jb25uZWN0b3JfaW5kZXgoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsK IAotCQlkcm1fY29ubmVjdG9yX3JlZmVyZW5jZShjb25uX3N0YXRlLT5jb25uZWN0b3IpOworCQlk cm1fY29ubmVjdG9yX2dldChjb25uX3N0YXRlLT5jb25uZWN0b3IpOwogCQljb25uX3N0YXRlLT5j cnRjID0gY3J0YzsKIAogCQlEUk1fREVCVUdfQVRPTUlDKCJMaW5rIGNvbm5lY3RvciBzdGF0ZSAl cCB0byBbQ1JUQzolZDolc11cbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4 IDAxZDkzNmI3YmU0My4uNDVjOTlkZTM1MGMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYwpAQCAtMzI3Miw3ICszMjcyLDcgQEAgX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3Jf ZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiB7CiAJbWVt Y3B5KHN0YXRlLCBjb25uZWN0b3ItPnN0YXRlLCBzaXplb2YoKnN0YXRlKSk7CiAJaWYgKHN0YXRl LT5jcnRjKQotCQlkcm1fY29ubmVjdG9yX3JlZmVyZW5jZShjb25uZWN0b3IpOworCQlkcm1fY29u bmVjdG9yX2dldChjb25uZWN0b3IpOwogfQogRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVs cGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUpOwogCkBAIC0zMzk4LDcgKzMzOTgsNyBAQCB2 b2lkCiBfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlKHN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSkKIHsKIAlpZiAoc3RhdGUtPmNydGMpCi0JCWRybV9j b25uZWN0b3JfdW5yZWZlcmVuY2Uoc3RhdGUtPmNvbm5lY3Rvcik7CisJCWRybV9jb25uZWN0b3Jf cHV0KHN0YXRlLT5jb25uZWN0b3IpOwogfQogRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVs cGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKaW5k ZXggMDYxNjA2MmIwNTVhLi4wZGMwZTViMzNmOGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fY29ubmVjdG9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwpA QCAtMzUsOCArMzUsOCBAQAogICogYWxzIGZpeGVkIHBhbmVscyBvciBhbnl0aGluZyBlbHNlIHRo YXQgY2FuIGRpc3BsYXkgcGl4ZWxzIGluIHNvbWUgZm9ybS4gQXMKICAqIG9wcG9zZWQgdG8gYWxs IG90aGVyIEtNUyBvYmplY3RzIHJlcHJlc2VudGluZyBoYXJkd2FyZSAobGlrZSBDUlRDLCBlbmNv ZGVyIG9yCiAgKiBwbGFuZSBhYnN0cmFjdGlvbnMpIGNvbm5lY3RvcnMgY2FuIGJlIGhvdHBsdWdn ZWQgYW5kIHVucGx1Z2dlZCBhdCBydW50aW1lLgotICogSGVuY2UgdGhleSBhcmUgcmVmZXJlbmNl LWNvdW50ZWQgdXNpbmcgZHJtX2Nvbm5lY3Rvcl9yZWZlcmVuY2UoKSBhbmQKLSAqIGRybV9jb25u ZWN0b3JfdW5yZWZlcmVuY2UoKS4KKyAqIEhlbmNlIHRoZXkgYXJlIHJlZmVyZW5jZS1jb3VudGVk IHVzaW5nIGRybV9jb25uZWN0b3JfZ2V0KCkgYW5kCisgKiBkcm1fY29ubmVjdG9yX3B1dCgpLgog ICoKICAqIEtNUyBkcml2ZXIgbXVzdCBjcmVhdGUsIGluaXRpYWxpemUsIHJlZ2lzdGVyIGFuZCBh dHRhY2ggYXQgYSAmc3RydWN0CiAgKiBkcm1fY29ubmVjdG9yIGZvciBlYWNoIHN1Y2ggc2luay4g VGhlIGluc3RhbmNlIGlzIGNyZWF0ZWQgYXMgb3RoZXIgS01TCkBAIC01NDUsNyArNTQ1LDcgQEAg ZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfbmV4dChzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0 ZXIgKml0ZXIpCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY29uZmlnLT5jb25uZWN0b3JfbGlz dF9sb2NrLCBmbGFncyk7CiAKIAlpZiAob2xkX2Nvbm4pCi0JCWRybV9jb25uZWN0b3JfdW5yZWZl cmVuY2Uob2xkX2Nvbm4pOworCQlkcm1fY29ubmVjdG9yX3B1dChvbGRfY29ubik7CiAKIAlyZXR1 cm4gaXRlci0+Y29ubjsKIH0KQEAgLTU2NCw3ICs1NjQsNyBAQCB2b2lkIGRybV9jb25uZWN0b3Jf bGlzdF9pdGVyX3B1dChzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgKml0ZXIpCiB7CiAJ aXRlci0+ZGV2ID0gTlVMTDsKIAlpZiAoaXRlci0+Y29ubikKLQkJZHJtX2Nvbm5lY3Rvcl91bnJl ZmVyZW5jZShpdGVyLT5jb25uKTsKKwkJZHJtX2Nvbm5lY3Rvcl9wdXQoaXRlci0+Y29ubik7CiAJ bG9ja19yZWxlYXNlKCZjb25uZWN0b3JfbGlzdF9pdGVyX2RlcF9tYXAsIDAsIF9SRVRfSVBfKTsK IH0KIEVYUE9SVF9TWU1CT0woZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfcHV0KTsKQEAgLTEyNDks NyArMTI0OSw3IEBAIGludCBkcm1fbW9kZV9nZXRjb25uZWN0b3Ioc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIG91dDoKIAltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25maWcu bXV0ZXgpOwogb3V0X3VucmVmOgotCWRybV9jb25uZWN0b3JfdW5yZWZlcmVuY2UoY29ubmVjdG9y KTsKKwlkcm1fY29ubmVjdG9yX3B1dChjb25uZWN0b3IpOwogCiAJcmV0dXJuIHJldDsKIH0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9jcnRjLmMKaW5kZXggZTIyODQ1MzlmODJjLi45NTk0YzYyMzc5OWIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5j CkBAIC02ODUsNyArNjg1LDcgQEAgaW50IGRybV9tb2RlX3NldGNydGMoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAoY29ubmVjdG9yX3NldCkgewogCQlmb3IgKGkgPSAw OyBpIDwgY3J0Y19yZXEtPmNvdW50X2Nvbm5lY3RvcnM7IGkrKykgewogCQkJaWYgKGNvbm5lY3Rv cl9zZXRbaV0pCi0JCQkJZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5jZShjb25uZWN0b3Jfc2V0W2ld KTsKKwkJCQlkcm1fY29ubmVjdG9yX3B1dChjb25uZWN0b3Jfc2V0W2ldKTsKIAkJfQogCX0KIAlr ZnJlZShjb25uZWN0b3Jfc2V0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0 Y19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwppbmRleCA0NGJh MGU5OTBkNmMuLjUzNjA1MWM2MjdkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9j cnRjX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwpAQCAt NDY1LDcgKzQ2NSw3IEBAIGRybV9jcnRjX2hlbHBlcl9kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKIAkJCWNvbm5lY3Rvci0+ZHBtcyA9IERSTV9NT0RFX0RQTVNfT0ZGOwogCiAJCQkvKiB3 ZSBrZWVwIGEgcmVmZXJlbmNlIHdoaWxlIHRoZSBlbmNvZGVyIGlzIGJvdW5kICovCi0JCQlkcm1f Y29ubmVjdG9yX3VucmVmZXJlbmNlKGNvbm5lY3Rvcik7CisJCQlkcm1fY29ubmVjdG9yX3B1dChj b25uZWN0b3IpOwogCQl9CiAJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX3B1dCgmY29ubl9pdGVy KTsKIAl9CkBAIC02MjMsNyArNjIzLDcgQEAgaW50IGRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmln KHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKIAlmb3IgKHJvID0gMDsgcm8gPCBzZXQtPm51bV9j b25uZWN0b3JzOyBybysrKSB7CiAJCWlmIChzZXQtPmNvbm5lY3RvcnNbcm9dLT5lbmNvZGVyKQog CQkJY29udGludWU7Ci0JCWRybV9jb25uZWN0b3JfcmVmZXJlbmNlKHNldC0+Y29ubmVjdG9yc1ty b10pOworCQlkcm1fY29ubmVjdG9yX2dldChzZXQtPmNvbm5lY3RvcnNbcm9dKTsKIAl9CiAKIAkv KiBhKSB0cmF2ZXJzZSBwYXNzZWQgaW4gY29ubmVjdG9yIGxpc3QgYW5kIGdldCBlbmNvZGVycyBm b3IgdGhlbSAqLwpAQCAtNzcyLDcgKzc3Miw3IEBAIGludCBkcm1fY3J0Y19oZWxwZXJfc2V0X2Nv bmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCiAJZm9yIChybyA9IDA7IHJvIDwgc2V0LT5u dW1fY29ubmVjdG9yczsgcm8rKykgewogCQlpZiAoc2V0LT5jb25uZWN0b3JzW3JvXS0+ZW5jb2Rl cikKIAkJCWNvbnRpbnVlOwotCQlkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNlKHNldC0+Y29ubmVj dG9yc1tyb10pOworCQlkcm1fY29ubmVjdG9yX3B1dChzZXQtPmNvbm5lY3RvcnNbcm9dKTsKIAl9 CiAKIAkvKiBUcnkgdG8gcmVzdG9yZSB0aGUgY29uZmlnICovCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIu YwppbmRleCBmNmQ0ZDk3MDA3MzQuLmVlMTM2MWEyNGIzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9mYl9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBl ci5jCkBAIC0xNDEsNyArMTQxLDcgQEAgaW50IGRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxf Y29ubmVjdG9ycyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQogCQlzdHJ1Y3QgZHJt X2ZiX2hlbHBlcl9jb25uZWN0b3IgKmZiX2hlbHBlcl9jb25uZWN0b3IgPQogCQkJZmJfaGVscGVy LT5jb25uZWN0b3JfaW5mb1tpXTsKIAotCQlkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNlKGZiX2hl bHBlcl9jb25uZWN0b3ItPmNvbm5lY3Rvcik7CisJCWRybV9jb25uZWN0b3JfcHV0KGZiX2hlbHBl cl9jb25uZWN0b3ItPmNvbm5lY3Rvcik7CiAKIAkJa2ZyZWUoZmJfaGVscGVyX2Nvbm5lY3Rvcik7 CiAJCWZiX2hlbHBlci0+Y29ubmVjdG9yX2luZm9baV0gPSBOVUxMOwpAQCAtMTc4LDcgKzE3OCw3 IEBAIGludCBkcm1fZmJfaGVscGVyX2FkZF9vbmVfY29ubmVjdG9yKHN0cnVjdCBkcm1fZmJfaGVs cGVyICpmYl9oZWxwZXIsIHN0cnVjdCBkcm1fCiAJaWYgKCFmYl9oZWxwZXJfY29ubmVjdG9yKQog CQlyZXR1cm4gLUVOT01FTTsKIAotCWRybV9jb25uZWN0b3JfcmVmZXJlbmNlKGNvbm5lY3Rvcik7 CisJZHJtX2Nvbm5lY3Rvcl9nZXQoY29ubmVjdG9yKTsKIAlmYl9oZWxwZXJfY29ubmVjdG9yLT5j b25uZWN0b3IgPSBjb25uZWN0b3I7CiAJZmJfaGVscGVyLT5jb25uZWN0b3JfaW5mb1tmYl9oZWxw ZXItPmNvbm5lY3Rvcl9jb3VudCsrXSA9IGZiX2hlbHBlcl9jb25uZWN0b3I7CiAJcmV0dXJuIDA7 CkBAIC0yMDQsNyArMjA0LDcgQEAgaW50IGRybV9mYl9oZWxwZXJfcmVtb3ZlX29uZV9jb25uZWN0 b3Ioc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKIAlpZiAoaSA9PSBmYl9oZWxwZXIt PmNvbm5lY3Rvcl9jb3VudCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJZmJfaGVscGVyX2Nvbm5lY3Rv ciA9IGZiX2hlbHBlci0+Y29ubmVjdG9yX2luZm9baV07Ci0JZHJtX2Nvbm5lY3Rvcl91bnJlZmVy ZW5jZShmYl9oZWxwZXJfY29ubmVjdG9yLT5jb25uZWN0b3IpOworCWRybV9jb25uZWN0b3JfcHV0 KGZiX2hlbHBlcl9jb25uZWN0b3ItPmNvbm5lY3Rvcik7CiAKIAlmb3IgKGogPSBpICsgMTsgaiA8 IGZiX2hlbHBlci0+Y29ubmVjdG9yX2NvdW50OyBqKyspIHsKIAkJZmJfaGVscGVyLT5jb25uZWN0 b3JfaW5mb1tqIC0gMV0gPSBmYl9oZWxwZXItPmNvbm5lY3Rvcl9pbmZvW2pdOwpAQCAtNjI2LDcg KzYyNiw3IEBAIHN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfbW9kZXNldF9yZWxlYXNlKHN0cnVj dCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbW9k ZXNldC0+bnVtX2Nvbm5lY3RvcnM7IGkrKykgewotCQlkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNl KG1vZGVzZXQtPmNvbm5lY3RvcnNbaV0pOworCQlkcm1fY29ubmVjdG9yX3B1dChtb2Rlc2V0LT5j b25uZWN0b3JzW2ldKTsKIAkJbW9kZXNldC0+Y29ubmVjdG9yc1tpXSA9IE5VTEw7CiAJfQogCW1v ZGVzZXQtPm51bV9jb25uZWN0b3JzID0gMDsKQEAgLTY0Myw3ICs2NDMsNyBAQCBzdGF0aWMgdm9p ZCBkcm1fZmJfaGVscGVyX2NydGNfZnJlZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyKQog CWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IGhlbHBlci0+Y29ubmVjdG9yX2NvdW50OyBpKysp IHsKLQkJZHJtX2Nvbm5lY3Rvcl91bnJlZmVyZW5jZShoZWxwZXItPmNvbm5lY3Rvcl9pbmZvW2ld LT5jb25uZWN0b3IpOworCQlkcm1fY29ubmVjdG9yX3B1dChoZWxwZXItPmNvbm5lY3Rvcl9pbmZv W2ldLT5jb25uZWN0b3IpOwogCQlrZnJlZShoZWxwZXItPmNvbm5lY3Rvcl9pbmZvW2ldKTsKIAl9 CiAJa2ZyZWUoaGVscGVyLT5jb25uZWN0b3JfaW5mbyk7CkBAIC0yMTg0LDcgKzIxODQsNyBAQCBz dGF0aWMgdm9pZCBkcm1fc2V0dXBfY3J0Y3Moc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBl ciwKIAkJCWZiX2NydGMtPnkgPSBvZmZzZXQtPnk7CiAJCQltb2Rlc2V0LT5tb2RlID0gZHJtX21v ZGVfZHVwbGljYXRlKGRldiwKIAkJCQkJCQkgICBmYl9jcnRjLT5kZXNpcmVkX21vZGUpOwotCQkJ ZHJtX2Nvbm5lY3Rvcl9yZWZlcmVuY2UoY29ubmVjdG9yKTsKKwkJCWRybV9jb25uZWN0b3JfZ2V0 KGNvbm5lY3Rvcik7CiAJCQltb2Rlc2V0LT5jb25uZWN0b3JzW21vZGVzZXQtPm51bV9jb25uZWN0 b3JzKytdID0gY29ubmVjdG9yOwogCQkJbW9kZXNldC0+ZmIgPSBmYl9oZWxwZXItPmZiOwogCQkJ bW9kZXNldC0+eCA9IG9mZnNldC0+eDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f bW9kZV9jb25maWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYwppbmRleCA4 ODRjYzRkMjZmYjUuLjIwYWVjMTY1YWJkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9tb2RlX2NvbmZpZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYwpA QCAtNDE4LDcgKzQxOCw3IEBAIHZvaWQgZHJtX21vZGVfY29uZmlnX2NsZWFudXAoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAkJICogY3VycmVudCBjb25uZWN0b3IgaXRzZWxmLCB3aGljaCBtZWFu cyBpdCBpcyBpbmhlcmVudGx5IHNhZmUKIAkJICogYWdhaW5zdCB1bnJlZmVyZW5jaW5nIHRoZSBj dXJyZW50IGNvbm5lY3RvciAtIGJ1dCBub3QgYWdhaW5zdAogCQkgKiBkZWxldGluZyBpdCByaWdo dCBhd2F5LiAqLwotCQlkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNlKGNvbm5lY3Rvcik7CisJCWRy bV9jb25uZWN0b3JfcHV0KGNvbm5lY3Rvcik7CiAJfQogCWRybV9jb25uZWN0b3JfbGlzdF9pdGVy X3B1dCgmY29ubl9pdGVyKTsKIAlpZiAoV0FSTl9PTighbGlzdF9lbXB0eSgmZGV2LT5tb2RlX2Nv bmZpZy5jb25uZWN0b3JfbGlzdCkpKSB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29u bmVjdG9yLmggYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKaW5kZXggZTVlMWVkZGQxOWZi Li5kNjQ5YmVjOTY5MzcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAor KysgYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKQEAgLTc5NSwyNSArNzk1LDUwIEBAIHN0 YXRpYyBpbmxpbmUgc3RydWN0IGRybV9jb25uZWN0b3IgKmRybV9jb25uZWN0b3JfbG9va3VwKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiB9CiAKIC8qKgotICogZHJtX2Nvbm5lY3Rvcl9yZWZlcmVu Y2UgLSBpbmNyIHRoZSBjb25uZWN0b3IgcmVmY250Ci0gKiBAY29ubmVjdG9yOiBjb25uZWN0b3IK KyAqIGRybV9jb25uZWN0b3JfZ2V0IC0gYWNxdWlyZSBhIGNvbm5lY3RvciByZWZlcmVuY2UKKyAq IEBjb25uZWN0b3I6IERSTSBjb25uZWN0b3IKICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGluY3JlbWVu dHMgdGhlIGNvbm5lY3RvcidzIHJlZmNvdW50LgogICovCitzdGF0aWMgaW5saW5lIHZvaWQgZHJt X2Nvbm5lY3Rvcl9nZXQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlkcm1f bW9kZV9vYmplY3RfZ2V0KCZjb25uZWN0b3ItPmJhc2UpOworfQorCisvKioKKyAqIGRybV9jb25u ZWN0b3JfcHV0IC0gcmVsZWFzZSBhIGNvbm5lY3RvciByZWZlcmVuY2UKKyAqIEBjb25uZWN0b3I6 IERSTSBjb25uZWN0b3IKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGRlY3JlbWVudHMgdGhlIGNvbm5l Y3RvcidzIHJlZmVyZW5jZSBjb3VudCBhbmQgZnJlZXMgdGhlCisgKiBvYmplY3QgaWYgdGhlIHJl ZmVyZW5jZSBjb3VudCBkcm9wcyB0byB6ZXJvLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgZHJt X2Nvbm5lY3Rvcl9wdXQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlkcm1f bW9kZV9vYmplY3RfcHV0KCZjb25uZWN0b3ItPmJhc2UpOworfQorCisvKioKKyAqIGRybV9jb25u ZWN0b3JfcmVmZXJlbmNlIC0gYWNxdWlyZSBhIGNvbm5lY3RvciByZWZlcmVuY2UKKyAqIEBjb25u ZWN0b3I6IERSTSBjb25uZWN0b3IKKyAqCisgKiBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBhbGlh cyBmb3IgZHJtX2Nvbm5lY3Rvcl9nZXQoKSBhbmQgc2hvdWxkIG5vdCBiZQorICogdXNlZCBieSBu ZXcgY29kZS4KKyAqLwogc3RhdGljIGlubGluZSB2b2lkIGRybV9jb25uZWN0b3JfcmVmZXJlbmNl KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0JZHJtX21vZGVfb2JqZWN0X3Jl ZmVyZW5jZSgmY29ubmVjdG9yLT5iYXNlKTsKKwlkcm1fY29ubmVjdG9yX2dldChjb25uZWN0b3Ip OwogfQogCiAvKioKLSAqIGRybV9jb25uZWN0b3JfdW5yZWZlcmVuY2UgLSB1bnJlZiBhIGNvbm5l Y3RvcgotICogQGNvbm5lY3RvcjogY29ubmVjdG9yIHRvIHVucmVmCisgKiBkcm1fY29ubmVjdG9y X3VucmVmZXJlbmNlIC0gcmVsZWFzZSBhIGNvbm5lY3RvciByZWZlcmVuY2UKKyAqIEBjb25uZWN0 b3I6IERSTSBjb25uZWN0b3IKICAqCi0gKiBUaGlzIGZ1bmN0aW9uIGRlY3JlbWVudHMgdGhlIGNv bm5lY3RvcidzIHJlZmNvdW50IGFuZCBmcmVlcyBpdCBpZiBpdCBkcm9wcyB0byB6ZXJvLgorICog VGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgYWxpYXMgZm9yIGRybV9jb25uZWN0b3JfcHV0KCkgYW5k IHNob3VsZCBub3QgYmUKKyAqIHVzZWQgYnkgbmV3IGNvZGUuCiAgKi8KIHN0YXRpYyBpbmxpbmUg dm9pZCBkcm1fY29ubmVjdG9yX3VucmVmZXJlbmNlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IpCiB7Ci0JZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNlKCZjb25uZWN0b3ItPmJhc2Up OworCWRybV9jb25uZWN0b3JfcHV0KGNvbm5lY3Rvcik7CiB9CiAKIGNvbnN0IGNoYXIgKmRybV9n ZXRfY29ubmVjdG9yX3N0YXR1c19uYW1lKGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVz KTsKQEAgLTkwNSw3ICs5MzAsNyBAQCB2b2lkIGRybV9jb25uZWN0b3JfbGlzdF9pdGVyX3B1dChz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIgKml0ZXIpOwogICoKICAqIE5vdGUgdGhhdCBA Y29ubmVjdG9yIGlzIG9ubHkgdmFsaWQgd2l0aGluIHRoZSBsaXN0IGJvZHksIGlmIHlvdSB3YW50 IHRvIHVzZQogICogQGNvbm5lY3RvciBhZnRlciBjYWxsaW5nIGRybV9jb25uZWN0b3JfbGlzdF9p dGVyX3B1dCgpIHRoZW4geW91IG5lZWQgdG8gZ3JhYgotICogeW91ciBvd24gcmVmZXJlbmNlIGZp cnN0IHVzaW5nIGRybV9jb25uZWN0b3JfcmVmZXJlbmNlKCkuCisgKiB5b3VyIG93biByZWZlcmVu Y2UgZmlyc3QgdXNpbmcgZHJtX2Nvbm5lY3Rvcl9nZXQoKS4KICAqLwogI2RlZmluZSBkcm1fZm9y X2VhY2hfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9yLCBpdGVyKSBcCiAJd2hpbGUgKChjb25uZWN0 b3IgPSBkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9uZXh0KGl0ZXIpKSkKZGlmZiAtLWdpdCBhL3Nj cmlwdHMvY29jY2luZWxsZS9hcGkvZHJtLWdldC1wdXQuY29jY2kgYi9zY3JpcHRzL2NvY2NpbmVs bGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpCmluZGV4IGEzNzQyNDQ3Yzk4MS4uOGE0YzJjYjc4ODll IDEwMDY0NAotLS0gYS9zY3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpCisr KyBiL3NjcmlwdHMvY29jY2luZWxsZS9hcGkvZHJtLWdldC1wdXQuY29jY2kKQEAgLTIwLDYgKzIw LDEyIEBAIGV4cHJlc3Npb24gb2JqZWN0OwogfAogLSBkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVu Y2Uob2JqZWN0KQogKyBkcm1fbW9kZV9vYmplY3RfcHV0KG9iamVjdCkKK3wKKy0gZHJtX2Nvbm5l Y3Rvcl9yZWZlcmVuY2Uob2JqZWN0KQorKyBkcm1fY29ubmVjdG9yX2dldChvYmplY3QpCit8Cist IGRybV9jb25uZWN0b3JfdW5yZWZlcmVuY2Uob2JqZWN0KQorKyBkcm1fY29ubmVjdG9yX3B1dChv YmplY3QpCiApCiAKIEByIGRlcGVuZHMgb24gcmVwb3J0QApAQCAtMzEsNiArMzcsMTAgQEAgcG9z aXRpb24gcDsKIGRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZUBwKG9iamVjdCkKIHwKIGRybV9t b2RlX29iamVjdF9yZWZlcmVuY2VAcChvYmplY3QpCit8Citkcm1fY29ubmVjdG9yX3VucmVmZXJl bmNlQHAob2JqZWN0KQorfAorZHJtX2Nvbm5lY3Rvcl9yZWZlcmVuY2VAcChvYmplY3QpCiApCiAK IEBzY3JpcHQ6cHl0aG9uIGRlcGVuZHMgb24gcmVwb3J0QAotLSAKMi4xMS4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK