From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 2/4] drm/i915: Eliminate the RMW sprite colorkey management Date: Thu, 19 Mar 2015 17:57:12 +0200 Message-ID: <1426780634-26609-2-git-send-email-ville.syrjala@linux.intel.com> References: <1426780634-26609-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id EFCA06E29D for ; Thu, 19 Mar 2015 08:57:20 -0700 (PDT) In-Reply-To: <1426780634-26609-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClN0 b3JlIHRoZSBjb2xvcmtleSBpbiBpbnRlbF9wbGFuZSBhbmQga2lsbCBvZmYgYWxsIHRoZSBSTVcg c3R1ZmYKaGFuZGxpbmcgaXQuCgpUaGlzIGlzIGp1c3QgYW4gaW50ZXJtZWRpYXRlIHN0ZXAgYW5k IGV2ZW50dWFsbHkgdGhlIGNvbG9ya2V5IG5lZWRzIHRvCmJlIGNvbnZlcnRlZCBpbnRvIHNvbWUg cHJvcGVydGllcy4KClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg ICAgfCAgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIHwgMjg5ICsr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA2MSBp bnNlcnRpb25zKCspLCAyMzUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApp bmRleCBjMDY4NTRkLi42ZjIwZjNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtNTEw LDYgKzUxMCw5IEBAIHN0cnVjdCBpbnRlbF9wbGFuZSB7CiAJYm9vbCBjYW5fc2NhbGU7CiAJaW50 IG1heF9kb3duc2NhbGU7CiAKKwkvKiBGSVhNRSBjb252ZXJ0IHRvIHByb3BlcnRpZXMgKi8KKwlz dHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSBja2V5OworCiAJLyogU2luY2Ugd2UgbmVl ZCB0byBjaGFuZ2UgdGhlIHdhdGVybWFya3MgYmVmb3JlL2FmdGVyCiAJICogZW5hYmxpbmcvZGlz YWJsaW5nIHRoZSBwbGFuZXMsIHdlIG5lZWQgdG8gc3RvcmUgdGhlIHBhcmFtZXRlcnMgaGVyZQog CSAqIGFzIHRoZSBvdGhlciBwaWVjZXMgb2YgdGhlIHN0cnVjdCBtYXkgbm90IHJlZmxlY3QgdGhl IHZhbHVlcyB3ZSB3YW50CkBAIC01MzYsMTAgKzUzOSw2IEBAIHN0cnVjdCBpbnRlbF9wbGFuZSB7 CiAJCQkgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKTsKIAl2b2lkICgqY29tbWl0 X3BsYW5lKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCSAgICAgc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpzdGF0ZSk7Ci0JaW50ICgqdXBkYXRlX2NvbG9ya2V5KShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKLQkJCSAgICAgICBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAq a2V5KTsKLQl2b2lkICgqZ2V0X2NvbG9ya2V5KShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJ CSAgICAgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSk7CiB9OwogCiBzdHJ1 Y3QgaW50ZWxfd2F0ZXJtYXJrX3BhcmFtcyB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j CmluZGV4IDY0ODFjNGIuLmY3NGEwZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j CkBAIC0xOTIsNiArMTkyLDcgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpk cm1fcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAljb25zdCBpbnQgcGxhbmUgPSBpbnRl bF9wbGFuZS0+cGxhbmUgKyAxOwogCXUzMiBwbGFuZV9jdGwsIHN0cmlkZV9kaXY7CiAJaW50IHBp eGVsX3NpemUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKKwlj b25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJmludGVsX3BsYW5l LT5ja2V5OwogCiAJcGxhbmVfY3RsID0gSTkxNV9SRUFEKFBMQU5FX0NUTChwaXBlLCBwbGFuZSkp OwogCkBAIC0yMDIsNiArMjAzLDcgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpkcm1fcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlwbGFuZV9jdGwgJj0gflBMQU5F X0NUTF9USUxFRF9NQVNLOwogCXBsYW5lX2N0bCAmPSB+UExBTkVfQ1RMX0FMUEhBX01BU0s7CiAJ cGxhbmVfY3RsICY9IH5QTEFORV9DVExfUk9UQVRFX01BU0s7CisJcGxhbmVfY3RsICY9IH5QTEFO RV9DVExfS0VZX0VOQUJMRV9NQVNLOwogCiAJLyogVHJpY2tsZSBmZWVkIGhhcyB0byBiZSBlbmFi bGVkICovCiAJcGxhbmVfY3RsICY9IH5QTEFORV9DVExfVFJJQ0tMRV9GRUVEX0RJU0FCTEU7CkBA IC0yODEsNiArMjgzLDE3IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJt X3BsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJY3J0Y193LS07CiAJY3J0Y19oLS07CiAK KwlpZiAoa2V5LT5mbGFncykgeworCQlJOTE1X1dSSVRFKFBMQU5FX0tFWVZBTChwaXBlLCBwbGFu ZSksIGtleS0+bWluX3ZhbHVlKTsKKwkJSTkxNV9XUklURShQTEFORV9LRVlNQVgocGlwZSwgcGxh bmUpLCBrZXktPm1heF92YWx1ZSk7CisJCUk5MTVfV1JJVEUoUExBTkVfS0VZTVNLKHBpcGUsIHBs YW5lKSwga2V5LT5jaGFubmVsX21hc2spOworCX0KKworCWlmIChrZXktPmZsYWdzICYgSTkxNV9T RVRfQ09MT1JLRVlfREVTVElOQVRJT04pCisJCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfS0VZX0VO QUJMRV9ERVNUSU5BVElPTjsKKwllbHNlIGlmIChrZXktPmZsYWdzICYgSTkxNV9TRVRfQ09MT1JL RVlfU09VUkNFKQorCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX0tFWV9FTkFCTEVfU09VUkNFOwor CiAJSTkxNV9XUklURShQTEFORV9PRkZTRVQocGlwZSwgcGxhbmUpLCAoeSA8PCAxNikgfCB4KTsK IAlJOTE1X1dSSVRFKFBMQU5FX1NUUklERShwaXBlLCBwbGFuZSksIGZiLT5waXRjaGVzWzBdIC8g c3RyaWRlX2Rpdik7CiAJSTkxNV9XUklURShQTEFORV9QT1MocGlwZSwgcGxhbmUpLCAoY3J0Y195 IDw8IDE2KSB8IGNydGNfeCk7CkBAIC0zMDksNjMgKzMyMiw2IEBAIHNrbF9kaXNhYmxlX3BsYW5l KHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWlu dGVsX3VwZGF0ZV9zcHJpdGVfd2F0ZXJtYXJrcyhkcm1fcGxhbmUsIGNydGMsIDAsIDAsIDAsIGZh bHNlLCBmYWxzZSk7CiB9CiAKLXN0YXRpYyBpbnQKLXNrbF91cGRhdGVfY29sb3JrZXkoc3RydWN0 IGRybV9wbGFuZSAqZHJtX3BsYW5lLAotCQkgICAgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29s b3JrZXkgKmtleSkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZHJtX3BsYW5lLT5kZXY7 Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK LQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUoZHJtX3Bs YW5lKTsKLQljb25zdCBpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwotCWNvbnN0IGludCBw bGFuZSA9IGludGVsX3BsYW5lLT5wbGFuZTsKLQl1MzIgcGxhbmVfY3RsOwotCi0JSTkxNV9XUklU RShQTEFORV9LRVlWQUwocGlwZSwgcGxhbmUpLCBrZXktPm1pbl92YWx1ZSk7Ci0JSTkxNV9XUklU RShQTEFORV9LRVlNQVgocGlwZSwgcGxhbmUpLCBrZXktPm1heF92YWx1ZSk7Ci0JSTkxNV9XUklU RShQTEFORV9LRVlNU0socGlwZSwgcGxhbmUpLCBrZXktPmNoYW5uZWxfbWFzayk7Ci0KLQlwbGFu ZV9jdGwgPSBJOTE1X1JFQUQoUExBTkVfQ1RMKHBpcGUsIHBsYW5lKSk7Ci0JcGxhbmVfY3RsICY9 IH5QTEFORV9DVExfS0VZX0VOQUJMRV9NQVNLOwotCWlmIChrZXktPmZsYWdzICYgSTkxNV9TRVRf Q09MT1JLRVlfREVTVElOQVRJT04pCi0JCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfS0VZX0VOQUJM RV9ERVNUSU5BVElPTjsKLQllbHNlIGlmIChrZXktPmZsYWdzICYgSTkxNV9TRVRfQ09MT1JLRVlf U09VUkNFKQotCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX0tFWV9FTkFCTEVfU09VUkNFOwotCUk5 MTVfV1JJVEUoUExBTkVfQ1RMKHBpcGUsIHBsYW5lKSwgcGxhbmVfY3RsKTsKLQotCVBPU1RJTkdf UkVBRChQTEFORV9DVEwocGlwZSwgcGxhbmUpKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMg dm9pZAotc2tsX2dldF9jb2xvcmtleShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCi0JCSBz dHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5KQotewotCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBkcm1fcGxhbmUtPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxh bmUgPSB0b19pbnRlbF9wbGFuZShkcm1fcGxhbmUpOwotCWNvbnN0IGludCBwaXBlID0gaW50ZWxf cGxhbmUtPnBpcGU7Ci0JY29uc3QgaW50IHBsYW5lID0gaW50ZWxfcGxhbmUtPnBsYW5lOwotCXUz MiBwbGFuZV9jdGw7Ci0KLQlrZXktPm1pbl92YWx1ZSA9IEk5MTVfUkVBRChQTEFORV9LRVlWQUwo cGlwZSwgcGxhbmUpKTsKLQlrZXktPm1heF92YWx1ZSA9IEk5MTVfUkVBRChQTEFORV9LRVlNQVgo cGlwZSwgcGxhbmUpKTsKLQlrZXktPmNoYW5uZWxfbWFzayA9IEk5MTVfUkVBRChQTEFORV9LRVlN U0socGlwZSwgcGxhbmUpKTsKLQotCXBsYW5lX2N0bCA9IEk5MTVfUkVBRChQTEFORV9DVEwocGlw ZSwgcGxhbmUpKTsKLQotCXN3aXRjaCAocGxhbmVfY3RsICYgUExBTkVfQ1RMX0tFWV9FTkFCTEVf TUFTSykgewotCWNhc2UgUExBTkVfQ1RMX0tFWV9FTkFCTEVfREVTVElOQVRJT046Ci0JCWtleS0+ ZmxhZ3MgPSBJOTE1X1NFVF9DT0xPUktFWV9ERVNUSU5BVElPTjsKLQkJYnJlYWs7Ci0JY2FzZSBQ TEFORV9DVExfS0VZX0VOQUJMRV9TT1VSQ0U6Ci0JCWtleS0+ZmxhZ3MgPSBJOTE1X1NFVF9DT0xP UktFWV9TT1VSQ0U7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCWtleS0+ZmxhZ3MgPSBJOTE1X1NF VF9DT0xPUktFWV9OT05FOwotCX0KLX0KLQogc3RhdGljIHZvaWQKIGNodl91cGRhdGVfY3NjKHN0 cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUsIHVpbnQzMl90IGZvcm1hdCkKIHsKQEAgLTQy Myw2ICszNzksNyBAQCB2bHZfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwg c3RydWN0IGRybV9jcnRjICpjcnRjLAogCXUzMiBzcHJjdGw7CiAJdW5zaWduZWQgbG9uZyBzcHJz dXJmX29mZnNldCwgbGluZWFyX29mZnNldDsKIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRf cGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOworCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxf c3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmaW50ZWxfcGxhbmUtPmNrZXk7CiAKIAlzcHJjdGwgPSBJ OTE1X1JFQUQoU1BDTlRSKHBpcGUsIHBsYW5lKSk7CiAKQEAgLTQzMSw2ICszODgsNyBAQCB2bHZf dXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpj cnRjLAogCXNwcmN0bCAmPSB+U1BfWVVWX0JZVEVfT1JERVJfTUFTSzsKIAlzcHJjdGwgJj0gflNQ X1RJTEVEOwogCXNwcmN0bCAmPSB+U1BfUk9UQVRFXzE4MDsKKwlzcHJjdGwgJj0gflNQX1NPVVJD RV9LRVk7CiAKIAlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRf WVVZVjoKQEAgLTUxMyw2ICs0NzEsMTUgQEAgdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3Bs YW5lICpkcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCWludGVsX3VwZGF0ZV9wcmlt YXJ5X3BsYW5lKGludGVsX2NydGMpOwogCisJaWYgKGtleS0+ZmxhZ3MpIHsKKwkJSTkxNV9XUklU RShTUEtFWU1JTlZBTChwaXBlLCBwbGFuZSksIGtleS0+bWluX3ZhbHVlKTsKKwkJSTkxNV9XUklU RShTUEtFWU1BWFZBTChwaXBlLCBwbGFuZSksIGtleS0+bWF4X3ZhbHVlKTsKKwkJSTkxNV9XUklU RShTUEtFWU1TSyhwaXBlLCBwbGFuZSksIGtleS0+Y2hhbm5lbF9tYXNrKTsKKwl9CisKKwlpZiAo a2V5LT5mbGFncyAmIEk5MTVfU0VUX0NPTE9SS0VZX1NPVVJDRSkKKwkJc3ByY3RsIHw9IFNQX1NP VVJDRV9LRVk7CisKIAlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpICYmIHBpcGUgPT0gUElQRV9CKQog CQljaHZfdXBkYXRlX2NzYyhpbnRlbF9wbGFuZSwgZmItPnBpeGVsX2Zvcm1hdCk7CiAKQEAgLTU1 Niw1NiArNTIzLDYgQEAgdmx2X2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5l LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJaW50ZWxfdXBkYXRlX3Nwcml0ZV93YXRlcm1hcmtz KGRwbGFuZSwgY3J0YywgMCwgMCwgMCwgZmFsc2UsIGZhbHNlKTsKIH0KIAotc3RhdGljIGludAot dmx2X3VwZGF0ZV9jb2xvcmtleShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsCi0JCSAgICBzdHJ1 Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5KQotewotCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBkcGxhbmUtPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0 b19pbnRlbF9wbGFuZShkcGxhbmUpOwotCWludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7Ci0J aW50IHBsYW5lID0gaW50ZWxfcGxhbmUtPnBsYW5lOwotCXUzMiBzcHJjdGw7Ci0KLQlpZiAoa2V5 LT5mbGFncyAmIEk5MTVfU0VUX0NPTE9SS0VZX0RFU1RJTkFUSU9OKQotCQlyZXR1cm4gLUVJTlZB TDsKLQotCUk5MTVfV1JJVEUoU1BLRVlNSU5WQUwocGlwZSwgcGxhbmUpLCBrZXktPm1pbl92YWx1 ZSk7Ci0JSTkxNV9XUklURShTUEtFWU1BWFZBTChwaXBlLCBwbGFuZSksIGtleS0+bWF4X3ZhbHVl KTsKLQlJOTE1X1dSSVRFKFNQS0VZTVNLKHBpcGUsIHBsYW5lKSwga2V5LT5jaGFubmVsX21hc2sp OwotCi0Jc3ByY3RsID0gSTkxNV9SRUFEKFNQQ05UUihwaXBlLCBwbGFuZSkpOwotCXNwcmN0bCAm PSB+U1BfU09VUkNFX0tFWTsKLQlpZiAoa2V5LT5mbGFncyAmIEk5MTVfU0VUX0NPTE9SS0VZX1NP VVJDRSkKLQkJc3ByY3RsIHw9IFNQX1NPVVJDRV9LRVk7Ci0JSTkxNV9XUklURShTUENOVFIocGlw ZSwgcGxhbmUpLCBzcHJjdGwpOwotCi0JUE9TVElOR19SRUFEKFNQS0VZTVNLKHBpcGUsIHBsYW5l KSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQKLXZsdl9nZXRfY29sb3JrZXkoc3Ry dWN0IGRybV9wbGFuZSAqZHBsYW5lLAotCQkgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3Jr ZXkgKmtleSkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZHBsYW5lLT5kZXY7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1 Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUoZHBsYW5lKTsKLQlp bnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwotCWludCBwbGFuZSA9IGludGVsX3BsYW5lLT5w bGFuZTsKLQl1MzIgc3ByY3RsOwotCi0Ja2V5LT5taW5fdmFsdWUgPSBJOTE1X1JFQUQoU1BLRVlN SU5WQUwocGlwZSwgcGxhbmUpKTsKLQlrZXktPm1heF92YWx1ZSA9IEk5MTVfUkVBRChTUEtFWU1B WFZBTChwaXBlLCBwbGFuZSkpOwotCWtleS0+Y2hhbm5lbF9tYXNrID0gSTkxNV9SRUFEKFNQS0VZ TVNLKHBpcGUsIHBsYW5lKSk7Ci0KLQlzcHJjdGwgPSBJOTE1X1JFQUQoU1BDTlRSKHBpcGUsIHBs YW5lKSk7Ci0JaWYgKHNwcmN0bCAmIFNQX1NPVVJDRV9LRVkpCi0JCWtleS0+ZmxhZ3MgPSBJOTE1 X1NFVF9DT0xPUktFWV9TT1VSQ0U7Ci0JZWxzZQotCQlrZXktPmZsYWdzID0gSTkxNV9TRVRfQ09M T1JLRVlfTk9ORTsKLX0KIAogc3RhdGljIHZvaWQKIGl2Yl91cGRhdGVfcGxhbmUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKQEAgLTYyMCwxMCArNTM3LDEx IEBAIGl2Yl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxf cGxhbmUocGxhbmUpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJf b2JqKGZiKTsKLQlpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOworCWVudW0gcGlwZSBwaXBl ID0gaW50ZWxfcGxhbmUtPnBpcGU7CiAJdTMyIHNwcmN0bCwgc3Byc2NhbGUgPSAwOwogCXVuc2ln bmVkIGxvbmcgc3Byc3VyZl9vZmZzZXQsIGxpbmVhcl9vZmZzZXQ7CiAJaW50IHBpeGVsX3NpemUg PSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKKwljb25zdCBzdHJ1 Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJmludGVsX3BsYW5lLT5ja2V5Owog CiAJc3ByY3RsID0gSTkxNV9SRUFEKFNQUkNUTChwaXBlKSk7CiAKQEAgLTYzMyw2ICs1NTEsNyBA QCBpdmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAJc3ByY3RsICY9IH5TUFJJVEVfWVVWX0JZVEVfT1JERVJfTUFTSzsKIAlzcHJj dGwgJj0gflNQUklURV9USUxFRDsKIAlzcHJjdGwgJj0gflNQUklURV9ST1RBVEVfMTgwOworCXNw cmN0bCAmPSB+KFNQUklURV9TT1VSQ0VfS0VZIHwgU1BSSVRFX0RFU1RfS0VZKTsKIAogCXN3aXRj aCAoZmItPnBpeGVsX2Zvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoKQEAgLTcw OSw2ICs2MjgsMTcgQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwg c3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJaW50ZWxfdXBkYXRlX3ByaW1hcnlfcGxhbmUoaW50 ZWxfY3J0Yyk7CiAKKwlpZiAoa2V5LT5mbGFncykgeworCQlJOTE1X1dSSVRFKFNQUktFWVZBTChw aXBlKSwga2V5LT5taW5fdmFsdWUpOworCQlJOTE1X1dSSVRFKFNQUktFWU1BWChwaXBlKSwga2V5 LT5tYXhfdmFsdWUpOworCQlJOTE1X1dSSVRFKFNQUktFWU1TSyhwaXBlKSwga2V5LT5jaGFubmVs X21hc2spOworCX0KKworCWlmIChrZXktPmZsYWdzICYgSTkxNV9TRVRfQ09MT1JLRVlfREVTVElO QVRJT04pCisJCXNwcmN0bCB8PSBTUFJJVEVfREVTVF9LRVk7CisJZWxzZSBpZiAoa2V5LT5mbGFn cyAmIEk5MTVfU0VUX0NPTE9SS0VZX1NPVVJDRSkKKwkJc3ByY3RsIHw9IFNQUklURV9TT1VSQ0Vf S0VZOworCiAJSTkxNV9XUklURShTUFJTVFJJREUocGlwZSksIGZiLT5waXRjaGVzWzBdKTsKIAlJ OTE1X1dSSVRFKFNQUlBPUyhwaXBlKSwgKGNydGNfeSA8PCAxNikgfCBjcnRjX3gpOwogCkBAIC03 NTksNjAgKzY4OSw2IEBAIGl2Yl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJaW50ZWxfY3J0Yy0+YXRvbWljLnVwZGF0ZV9zcHJp dGVfd2F0ZXJtYXJrcyB8PSAoMSA8PCBkcm1fcGxhbmVfaW5kZXgocGxhbmUpKTsKIH0KIAotc3Rh dGljIGludAotaXZiX3VwZGF0ZV9jb2xvcmtleShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJ ICAgIHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkpCi17Ci0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3Bs YW5lOwotCXUzMiBzcHJjdGw7Ci0JaW50IHJldCA9IDA7Ci0KLQlpbnRlbF9wbGFuZSA9IHRvX2lu dGVsX3BsYW5lKHBsYW5lKTsKLQotCUk5MTVfV1JJVEUoU1BSS0VZVkFMKGludGVsX3BsYW5lLT5w aXBlKSwga2V5LT5taW5fdmFsdWUpOwotCUk5MTVfV1JJVEUoU1BSS0VZTUFYKGludGVsX3BsYW5l LT5waXBlKSwga2V5LT5tYXhfdmFsdWUpOwotCUk5MTVfV1JJVEUoU1BSS0VZTVNLKGludGVsX3Bs YW5lLT5waXBlKSwga2V5LT5jaGFubmVsX21hc2spOwotCi0Jc3ByY3RsID0gSTkxNV9SRUFEKFNQ UkNUTChpbnRlbF9wbGFuZS0+cGlwZSkpOwotCXNwcmN0bCAmPSB+KFNQUklURV9TT1VSQ0VfS0VZ IHwgU1BSSVRFX0RFU1RfS0VZKTsKLQlpZiAoa2V5LT5mbGFncyAmIEk5MTVfU0VUX0NPTE9SS0VZ X0RFU1RJTkFUSU9OKQotCQlzcHJjdGwgfD0gU1BSSVRFX0RFU1RfS0VZOwotCWVsc2UgaWYgKGtl eS0+ZmxhZ3MgJiBJOTE1X1NFVF9DT0xPUktFWV9TT1VSQ0UpCi0JCXNwcmN0bCB8PSBTUFJJVEVf U09VUkNFX0tFWTsKLQlJOTE1X1dSSVRFKFNQUkNUTChpbnRlbF9wbGFuZS0+cGlwZSksIHNwcmN0 bCk7Ci0KLQlQT1NUSU5HX1JFQUQoU1BSS0VZTVNLKGludGVsX3BsYW5lLT5waXBlKSk7Ci0KLQly ZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdm9pZAotaXZiX2dldF9jb2xvcmtleShzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSkKLXsK LQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9wbGFu ZSAqaW50ZWxfcGxhbmU7Ci0JdTMyIHNwcmN0bDsKLQotCWludGVsX3BsYW5lID0gdG9faW50ZWxf cGxhbmUocGxhbmUpOwotCi0Ja2V5LT5taW5fdmFsdWUgPSBJOTE1X1JFQUQoU1BSS0VZVkFMKGlu dGVsX3BsYW5lLT5waXBlKSk7Ci0Ja2V5LT5tYXhfdmFsdWUgPSBJOTE1X1JFQUQoU1BSS0VZTUFY KGludGVsX3BsYW5lLT5waXBlKSk7Ci0Ja2V5LT5jaGFubmVsX21hc2sgPSBJOTE1X1JFQUQoU1BS S0VZTVNLKGludGVsX3BsYW5lLT5waXBlKSk7Ci0Ja2V5LT5mbGFncyA9IDA7Ci0KLQlzcHJjdGwg PSBJOTE1X1JFQUQoU1BSQ1RMKGludGVsX3BsYW5lLT5waXBlKSk7Ci0KLQlpZiAoc3ByY3RsICYg U1BSSVRFX0RFU1RfS0VZKQotCQlrZXktPmZsYWdzID0gSTkxNV9TRVRfQ09MT1JLRVlfREVTVElO QVRJT047Ci0JZWxzZSBpZiAoc3ByY3RsICYgU1BSSVRFX1NPVVJDRV9LRVkpCi0JCWtleS0+Zmxh Z3MgPSBJOTE1X1NFVF9DT0xPUktFWV9TT1VSQ0U7Ci0JZWxzZQotCQlrZXktPmZsYWdzID0gSTkx NV9TRVRfQ09MT1JLRVlfTk9ORTsKLX0KLQogc3RhdGljIHZvaWQKIGlsa191cGRhdGVfcGxhbmUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJIHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiLApAQCAtODMwLDYgKzcwNiw3IEBAIGlsa191cGRhdGVfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl1bnNp Z25lZCBsb25nIGR2c3N1cmZfb2Zmc2V0LCBsaW5lYXJfb2Zmc2V0OwogCXUzMiBkdnNjbnRyLCBk dnNzY2FsZTsKIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhl bF9mb3JtYXQsIDApOworCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICpr ZXkgPSAmaW50ZWxfcGxhbmUtPmNrZXk7CiAKIAlkdnNjbnRyID0gSTkxNV9SRUFEKERWU0NOVFIo cGlwZSkpOwogCkBAIC04MzksNiArNzE2LDcgQEAgaWxrX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWR2c2NudHIgJj0gfkRWU19Z VVZfQllURV9PUkRFUl9NQVNLOwogCWR2c2NudHIgJj0gfkRWU19USUxFRDsKIAlkdnNjbnRyICY9 IH5EVlNfUk9UQVRFXzE4MDsKKwlkdnNjbnRyICY9IH4oRFZTX1NPVVJDRV9LRVkgfCBEVlNfREVT VF9LRVkpOwogCiAJc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFU X1hCR1I4ODg4OgpAQCAtOTA2LDYgKzc4NCwxNyBAQCBpbGtfdXBkYXRlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlpbnRlbF91cGRhdGVf cHJpbWFyeV9wbGFuZShpbnRlbF9jcnRjKTsKIAorCWlmIChrZXktPmZsYWdzKSB7CisJCUk5MTVf V1JJVEUoRFZTS0VZVkFMKHBpcGUpLCBrZXktPm1pbl92YWx1ZSk7CisJCUk5MTVfV1JJVEUoRFZT S0VZTUFYKHBpcGUpLCBrZXktPm1heF92YWx1ZSk7CisJCUk5MTVfV1JJVEUoRFZTS0VZTVNLKHBp cGUpLCBrZXktPmNoYW5uZWxfbWFzayk7CisJfQorCisJaWYgKGtleS0+ZmxhZ3MgJiBJOTE1X1NF VF9DT0xPUktFWV9ERVNUSU5BVElPTikKKwkJZHZzY250ciB8PSBEVlNfREVTVF9LRVk7CisJZWxz ZSBpZiAoa2V5LT5mbGFncyAmIEk5MTVfU0VUX0NPTE9SS0VZX1NPVVJDRSkKKwkJZHZzY250ciB8 PSBEVlNfU09VUkNFX0tFWTsKKwogCUk5MTVfV1JJVEUoRFZTU1RSSURFKHBpcGUpLCBmYi0+cGl0 Y2hlc1swXSk7CiAJSTkxNV9XUklURShEVlNQT1MocGlwZSksIChjcnRjX3kgPDwgMTYpIHwgY3J0 Y194KTsKIApAQCAtMTAxOCw2NyArOTA3LDkgQEAgaW50ZWxfcHJlX2Rpc2FibGVfcHJpbWFyeShz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJaHN3X2Rpc2FibGVfaXBzKGludGVsX2NydGMpOwogfQog Ci1zdGF0aWMgaW50Ci1pbGtfdXBkYXRlX2NvbG9ya2V5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAotCQkgICAgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSkKLXsKLQlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50 ZWxfcGxhbmU7Ci0JdTMyIGR2c2NudHI7Ci0JaW50IHJldCA9IDA7Ci0KLQlpbnRlbF9wbGFuZSA9 IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKLQotCUk5MTVfV1JJVEUoRFZTS0VZVkFMKGludGVsX3Bs YW5lLT5waXBlKSwga2V5LT5taW5fdmFsdWUpOwotCUk5MTVfV1JJVEUoRFZTS0VZTUFYKGludGVs X3BsYW5lLT5waXBlKSwga2V5LT5tYXhfdmFsdWUpOwotCUk5MTVfV1JJVEUoRFZTS0VZTVNLKGlu dGVsX3BsYW5lLT5waXBlKSwga2V5LT5jaGFubmVsX21hc2spOwotCi0JZHZzY250ciA9IEk5MTVf UkVBRChEVlNDTlRSKGludGVsX3BsYW5lLT5waXBlKSk7Ci0JZHZzY250ciAmPSB+KERWU19TT1VS Q0VfS0VZIHwgRFZTX0RFU1RfS0VZKTsKLQlpZiAoa2V5LT5mbGFncyAmIEk5MTVfU0VUX0NPTE9S S0VZX0RFU1RJTkFUSU9OKQotCQlkdnNjbnRyIHw9IERWU19ERVNUX0tFWTsKLQllbHNlIGlmIChr ZXktPmZsYWdzICYgSTkxNV9TRVRfQ09MT1JLRVlfU09VUkNFKQotCQlkdnNjbnRyIHw9IERWU19T T1VSQ0VfS0VZOwotCUk5MTVfV1JJVEUoRFZTQ05UUihpbnRlbF9wbGFuZS0+cGlwZSksIGR2c2Nu dHIpOwotCi0JUE9TVElOR19SRUFEKERWU0tFWU1TSyhpbnRlbF9wbGFuZS0+cGlwZSkpOwotCi0J cmV0dXJuIHJldDsKLX0KLQotc3RhdGljIHZvaWQKLWlsa19nZXRfY29sb3JrZXkoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkpCi17 Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfcGxh bmUgKmludGVsX3BsYW5lOwotCXUzMiBkdnNjbnRyOwotCi0JaW50ZWxfcGxhbmUgPSB0b19pbnRl bF9wbGFuZShwbGFuZSk7Ci0KLQlrZXktPm1pbl92YWx1ZSA9IEk5MTVfUkVBRChEVlNLRVlWQUwo aW50ZWxfcGxhbmUtPnBpcGUpKTsKLQlrZXktPm1heF92YWx1ZSA9IEk5MTVfUkVBRChEVlNLRVlN QVgoaW50ZWxfcGxhbmUtPnBpcGUpKTsKLQlrZXktPmNoYW5uZWxfbWFzayA9IEk5MTVfUkVBRChE VlNLRVlNU0soaW50ZWxfcGxhbmUtPnBpcGUpKTsKLQlrZXktPmZsYWdzID0gMDsKLQotCWR2c2Nu dHIgPSBJOTE1X1JFQUQoRFZTQ05UUihpbnRlbF9wbGFuZS0+cGlwZSkpOwotCi0JaWYgKGR2c2Nu dHIgJiBEVlNfREVTVF9LRVkpCi0JCWtleS0+ZmxhZ3MgPSBJOTE1X1NFVF9DT0xPUktFWV9ERVNU SU5BVElPTjsKLQllbHNlIGlmIChkdnNjbnRyICYgRFZTX1NPVVJDRV9LRVkpCi0JCWtleS0+Zmxh Z3MgPSBJOTE1X1NFVF9DT0xPUktFWV9TT1VSQ0U7Ci0JZWxzZQotCQlrZXktPmZsYWdzID0gSTkx NV9TRVRfQ09MT1JLRVlfTk9ORTsKLX0KLQogc3RhdGljIGJvb2wgY29sb3JrZXlfZW5hYmxlZChz dHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lKQogewotCXN0cnVjdCBkcm1faW50ZWxfc3By aXRlX2NvbG9ya2V5IGtleTsKLQotCWludGVsX3BsYW5lLT5nZXRfY29sb3JrZXkoJmludGVsX3Bs YW5lLT5iYXNlLCAma2V5KTsKLQotCXJldHVybiBrZXkuZmxhZ3MgIT0gSTkxNV9TRVRfQ09MT1JL RVlfTk9ORTsKKwlyZXR1cm4gaW50ZWxfcGxhbmUtPmNrZXkuZmxhZ3MgIT0gSTkxNV9TRVRfQ09M T1JLRVlfTk9ORTsKIH0KIAogc3RhdGljIGludApAQCAtMTMyMyw2ICsxMTU0LDEwIEBAIGludCBp bnRlbF9zcHJpdGVfc2V0X2NvbG9ya2V5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJaWYgKChzZXQtPmZsYWdzICYgKEk5MTVfU0VUX0NPTE9SS0VZX0RFU1RJTkFUSU9OIHwg STkxNV9TRVRfQ09MT1JLRVlfU09VUkNFKSkgPT0gKEk5MTVfU0VUX0NPTE9SS0VZX0RFU1RJTkFU SU9OIHwgSTkxNV9TRVRfQ09MT1JLRVlfU09VUkNFKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKKwlp ZiAoSVNfVkFMTEVZVklFVyhkZXYpICYmCisJICAgIHNldC0+ZmxhZ3MgJiBJOTE1X1NFVF9DT0xP UktFWV9ERVNUSU5BVElPTikKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlkcm1fbW9kZXNldF9sb2Nr X2FsbChkZXYpOwogCiAJcGxhbmUgPSBkcm1fcGxhbmVfZmluZChkZXYsIHNldC0+cGxhbmVfaWQp OwpAQCAtMTMzMiw3ICsxMTY3LDcgQEAgaW50IGludGVsX3Nwcml0ZV9zZXRfY29sb3JrZXkoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAl9CiAKIAlpbnRlbF9wbGFuZSA9IHRv X2ludGVsX3BsYW5lKHBsYW5lKTsKLQlyZXQgPSBpbnRlbF9wbGFuZS0+dXBkYXRlX2NvbG9ya2V5 KHBsYW5lLCBzZXQpOworCWludGVsX3BsYW5lLT5ja2V5ID0gKnNldDsKIAogb3V0X3VubG9jazoK IAlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7CkBAIC0xMzU2LDcgKzExOTEsNyBAQCBpbnQg aW50ZWxfc3ByaXRlX2dldF9jb2xvcmtleShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAogCX0KIAogCWludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwotCWludGVs X3BsYW5lLT5nZXRfY29sb3JrZXkocGxhbmUsIGdldCk7CisJKmdldCA9IGludGVsX3BsYW5lLT5j a2V5OwogCiBvdXRfdW5sb2NrOgogCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKQEAgLTE0 NDksOCArMTI4NCw2IEBAIGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg ZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKIAkJaW50ZWxfcGxhbmUtPm1heF9kb3duc2NhbGUg PSAxNjsKIAkJaW50ZWxfcGxhbmUtPnVwZGF0ZV9wbGFuZSA9IGlsa191cGRhdGVfcGxhbmU7CiAJ CWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gaWxrX2Rpc2FibGVfcGxhbmU7Ci0JCWludGVs X3BsYW5lLT51cGRhdGVfY29sb3JrZXkgPSBpbGtfdXBkYXRlX2NvbG9ya2V5OwotCQlpbnRlbF9w bGFuZS0+Z2V0X2NvbG9ya2V5ID0gaWxrX2dldF9jb2xvcmtleTsKIAogCQlpZiAoSVNfR0VONihk ZXYpKSB7CiAJCQlwbGFuZV9mb3JtYXRzID0gc25iX3BsYW5lX2Zvcm1hdHM7CkBAIC0xNDc0LDE2 ICsxMzA3LDEyIEBAIGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51 bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKIAkJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewogCQkJ aW50ZWxfcGxhbmUtPnVwZGF0ZV9wbGFuZSA9IHZsdl91cGRhdGVfcGxhbmU7CiAJCQlpbnRlbF9w bGFuZS0+ZGlzYWJsZV9wbGFuZSA9IHZsdl9kaXNhYmxlX3BsYW5lOwotCQkJaW50ZWxfcGxhbmUt PnVwZGF0ZV9jb2xvcmtleSA9IHZsdl91cGRhdGVfY29sb3JrZXk7Ci0JCQlpbnRlbF9wbGFuZS0+ Z2V0X2NvbG9ya2V5ID0gdmx2X2dldF9jb2xvcmtleTsKIAogCQkJcGxhbmVfZm9ybWF0cyA9IHZs dl9wbGFuZV9mb3JtYXRzOwogCQkJbnVtX3BsYW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHZsdl9w bGFuZV9mb3JtYXRzKTsKIAkJfSBlbHNlIHsKIAkJCWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUg PSBpdmJfdXBkYXRlX3BsYW5lOwogCQkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUgPSBpdmJf ZGlzYWJsZV9wbGFuZTsKLQkJCWludGVsX3BsYW5lLT51cGRhdGVfY29sb3JrZXkgPSBpdmJfdXBk YXRlX2NvbG9ya2V5OwotCQkJaW50ZWxfcGxhbmUtPmdldF9jb2xvcmtleSA9IGl2Yl9nZXRfY29s b3JrZXk7CiAKIAkJCXBsYW5lX2Zvcm1hdHMgPSBzbmJfcGxhbmVfZm9ybWF0czsKIAkJCW51bV9w bGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShzbmJfcGxhbmVfZm9ybWF0cyk7CkBAIC0xNDk4LDgg KzEzMjcsNiBAQCBpbnRlbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0g cGlwZSBwaXBlLCBpbnQgcGxhbmUpCiAJCWludGVsX3BsYW5lLT5tYXhfZG93bnNjYWxlID0gMTsK IAkJaW50ZWxfcGxhbmUtPnVwZGF0ZV9wbGFuZSA9IHNrbF91cGRhdGVfcGxhbmU7CiAJCWludGVs X3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gc2tsX2Rpc2FibGVfcGxhbmU7Ci0JCWludGVsX3BsYW5l LT51cGRhdGVfY29sb3JrZXkgPSBza2xfdXBkYXRlX2NvbG9ya2V5OwotCQlpbnRlbF9wbGFuZS0+ Z2V0X2NvbG9ya2V5ID0gc2tsX2dldF9jb2xvcmtleTsKIAogCQlwbGFuZV9mb3JtYXRzID0gc2ts X3BsYW5lX2Zvcm1hdHM7CiAJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShza2xfcGxh bmVfZm9ybWF0cyk7Ci0tIAoyLjAuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK