From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH 02/13] drm/i915: Split the gamma/csc enable bits from the plane_ctl() function Date: Fri, 11 Jan 2019 19:08:12 +0200 Message-ID: <20190111170823.4441-3-ville.syrjala@linux.intel.com> References: <20190111170823.4441-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id AE0B56F87A for ; Fri, 11 Jan 2019 17:08:33 +0000 (UTC) In-Reply-To: <20190111170823.4441-1-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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCk9u IGc0eCsgdGhlIHBpcGUgZ2FtbWEgZW5hYmxlIGJpdCBmb3IgdGhlIHByaW1hcnkgcGxhbmUgYWZm ZWN0cwp0aGUgcGlwZSBib3R0b20gY29sb3IgYXMgd2VsbC4gVGhlIHNhbWUgZm9yIHRoZSBwaXBl IGNzYyBlbmFibGUKYml0IG9uIGlsaysuIFRodXMgd2UgbXVzdCBjb25maWd1cmUgdGhvc2UgYml0 cyBjb3JyZWN0bHkgZXZlbgp3aGVuIHRoZSBwcmltYXJ5IHBsYW5lIGlzIGRpc2FibGVkLgoKVG8g bWFrZSB0aGUgZmVhc2libGUgbGV0J3Mgc3BsaXQgdGhvc2Ugc2V0dGluZ3MgZnJvbSB0aGUKcGxh bmVfY3RsKCkgZnVuY3Rpb24gaW50byBhIHNlcHJhdGUgZnVuY2l0b24gdGhhdCB3ZSBjYW4KY2Fs bCBmcm9tIHRoZSAtPmRpc2FibGVfcGxhbmUoKSBob29rIGFzIHdlbGwuCgpGb3IgY29uc2lzdGVu Y3kgd2UnbGwgZG8gdGhhdCBvbiBhbGwgdGhlIHBsYW5lIHR5cGVzLiBXaGlsZQp0aGF0IGhhcyBu byByZWFsIGJlbmVmaXRzIGF0IHRoaXMgdGltZSwgaXQnbGwgYmVjb21lIHVzZWZ1bAp3aGVuIHdl IHN0YXJ0IHRvIGNvbnRyb2wgdGhlIHBpcGUgZ2FtbWEvY3NjIGVuYWJsZSBiaXRzCmR5bmFtaWNh bGx5IHdoZW4gd2Ugb3ZlcmhhdWwgdGhlIGNvbG9yIG1hbmFnZW1lbnQgY29kZS4KCk9uIHByZS1n NHggdGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYW55IHdheSB0byBnYW1tYQpjb3JyZWN0IHRo ZSBwaXBlIGJvdHRvbSBjb2xvciwgYnV0IHN0aWNraW5nIHRvIHRoZSBzYW1lCnBhdHRlcm4gZG9l c24ndCBodXJ0LiBBbmQgaXQnbGwgc3RpbGwgaGVscCB1cyB0byBkbwpjcnRjIHN0YXRlIHJlYWRv dXQgY29ycmVjdGx5IGZvciB0aGUgcGlwZSBnYW1tYSBlbmFibGUKYml0IGZvciB0aGUgY29sb3Ig bWFuYWdlbWVudCBvdmVyaGF1bC4KCkFuIGFsdGVybmF0aXZlIGFwcG9yYWNoIHdvdWxkIGJlIHRv IHN0aWxsIHByZWNvbXB1dGUgdGhlc2UKYml0cyBpbnRvIHBsYW5lX3N0YXRlLT5jdGwsIGJ1dCB0 aGF0IHdvdWxkIHJlcXVpcmUgdGhhdCB3ZQpydW4gdGhyb3VnaCB0aGUgcGxhbmUgY2hlY2sgZXZl biB3aGVuIHRoZSBwbGFuZSBpc24ndCBsb2dpY2FsbHkKZW5hYmxlZCBvbiBhbnkgY3J0Yy4gQ3Vy cmVudGx5IHRoYXQgY29uZGl0aW9uIGNhdXNlcyB1cyB0bwpzaG9ydCBjaXJjdWl0IHRoZSBlbnRp cmUgdGhpbmcgYW5kIG5vdCBjYWxsIC0+Y2hlY2tfcGxhbmUoKS4KVGhlcmUgd291bGQgYWxzbyBi ZSBzb21lIGNoaWNrZW4gYW5kIGVnZyBwcm9ibGVtcyB3aXRoCi0+Y2hlY2tfcGxhbmUoKSB2cy4g Y3J0YyBjb2xvciBzdGF0ZSBjaGVjayB0aGF0IHdvdWxkCnJlcXVpdGUgc3BsaXR0aW5nIGNlcnRh aW4gdGhpbmdzIGludG8gbXVsdGlwbGUgc3RlcHMuClNvIGFsbCBpbiBhbGwgdGhpcyBzZWVtcyBs aWtlIHRoZSBlYXNpZXIgcm91dGUuCgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyB8IDEyOCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc3ByaXRlLmMgIHwgIDU0ICsrKysrKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDEz OSBpbnNlcnRpb25zKCspLCA0NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKaW5kZXggNWRjMGRlODljNDllLi5hMzg3MWRiNDcwM2IgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTMxODAsMjggKzMxODAsMzggQEAgaTl4eF9wbGFuZV9t YXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJfQogfQogCitzdGF0aWMgdTMy IGk5eHhfcGxhbmVfY3RsX2NydGMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCit7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjLT5iYXNlLmRldik7CisJdTMyIGRzcGNudHIgPSAwOworCisJZHNwY250ciB8 PSBESVNQUExBTkVfR0FNTUFfRU5BQkxFOworCisJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8 IElTX0JST0FEV0VMTChkZXZfcHJpdikpCisJCWRzcGNudHIgfD0gRElTUFBMQU5FX1BJUEVfQ1ND X0VOQUJMRTsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNSkKKwkJZHNwY250ciB8PSBE SVNQUExBTkVfU0VMX1BJUEUoY3J0Yy0+cGlwZSk7CisKKwlyZXR1cm4gZHNwY250cjsKK30KKwog c3RhdGljIHUzMiBpOXh4X3BsYW5lX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIAkJCSAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQogCQl0b19pOTE1 KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCWNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CiAJdW5zaWduZWQgaW50 IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CiAJdTMyIGRzcGNudHI7CiAK LQlkc3BjbnRyID0gRElTUExBWV9QTEFORV9FTkFCTEUgfCBESVNQUExBTkVfR0FNTUFfRU5BQkxF OworCWRzcGNudHIgPSBESVNQTEFZX1BMQU5FX0VOQUJMRTsKIAogCWlmIChJU19HNFgoZGV2X3By aXYpIHx8IElTX0dFTihkZXZfcHJpdiwgNSkgfHwKIAkgICAgSVNfR0VOKGRldl9wcml2LCA2KSB8 fCBJU19JVllCUklER0UoZGV2X3ByaXYpKQogCQlkc3BjbnRyIHw9IERJU1BQTEFORV9UUklDS0xF X0ZFRURfRElTQUJMRTsKIAotCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdF TEwoZGV2X3ByaXYpKQotCQlkc3BjbnRyIHw9IERJU1BQTEFORV9QSVBFX0NTQ19FTkFCTEU7Ci0K LQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDUpCi0JCWRzcGNudHIgfD0gRElTUFBMQU5FX1NF TF9QSVBFKGNydGMtPnBpcGUpOwotCiAJc3dpdGNoIChmYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAlj YXNlIERSTV9GT1JNQVRfQzg6CiAJCWRzcGNudHIgfD0gRElTUFBMQU5FXzhCUFA7CkBAIC0zMzI5 LDExICszMzM5LDEzIEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3BsYW5lKHN0cnVjdCBpbnRl bF9wbGFuZSAqcGxhbmUsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShwbGFuZS0+YmFzZS5kZXYpOwogCWVudW0gaTl4eF9wbGFuZV9pZCBpOXh4X3BsYW5lID0g cGxhbmUtPmk5eHhfcGxhbmU7CiAJdTMyIGxpbmVhcl9vZmZzZXQ7Ci0JdTMyIGRzcGNudHIgPSBw bGFuZV9zdGF0ZS0+Y3RsOwogCWludCB4ID0gcGxhbmVfc3RhdGUtPmNvbG9yX3BsYW5lWzBdLng7 CiAJaW50IHkgPSBwbGFuZV9zdGF0ZS0+Y29sb3JfcGxhbmVbMF0ueTsKIAl1bnNpZ25lZCBsb25n IGlycWZsYWdzOwogCXUzMiBkc3BhZGRyX29mZnNldDsKKwl1MzIgZHNwY250cjsKKworCWRzcGNu dHIgPSBwbGFuZV9zdGF0ZS0+Y3RsIHwgaTl4eF9wbGFuZV9jdGxfY3J0YyhjcnRjX3N0YXRlKTsK IAogCWxpbmVhcl9vZmZzZXQgPSBpbnRlbF9mYl94eV90b19saW5lYXIoeCwgeSwgcGxhbmVfc3Rh dGUsIDApOwogCkBAIC0zMzkzLDEwICszNDA1LDIzIEBAIHN0YXRpYyB2b2lkIGk5eHhfZGlzYWJs ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKIAllbnVtIGk5eHhfcGxh bmVfaWQgaTl4eF9wbGFuZSA9IHBsYW5lLT5pOXh4X3BsYW5lOwogCXVuc2lnbmVkIGxvbmcgaXJx ZmxhZ3M7CisJdTMyIGRzcGNudHI7CisKKwkvKgorCSAqIERTUENOVFIgcGlwZSBnYW1tYSBlbmFi bGUgb24gZzR4KyBhbmQgcGlwZSBjc2MKKwkgKiBlbmFibGUgb24gaWxrKyBhZmZlY3QgdGhlIHBp cGUgYm90dG9tIGNvbG9yIGFzCisJICogd2VsbCwgc28gd2UgbXVzdCBjb25maWd1cmUgdGhlbSBl dmVuIGlmIHRoZSBwbGFuZQorCSAqIGlzIGRpc2FibGVkLgorCSAqCisJICogT24gcHJlLWc0eCB0 aGVyZSBpcyBubyB3YXkgdG8gZ2FtbWEgY29ycmVjdCB0aGUKKwkgKiBwaXBlIGJvdHRvbSBjb2xv ciBidXQgd2UnbGwga2VlcCBvbiBkb2luZyB0aGlzCisJICogYW55d2F5LgorCSAqLworCWRzcGNu dHIgPSBpOXh4X3BsYW5lX2N0bF9jcnRjKGNydGNfc3RhdGUpOwogCiAJc3Bpbl9sb2NrX2lycXNh dmUoJmRldl9wcml2LT51bmNvcmUubG9jaywgaXJxZmxhZ3MpOwogCi0JSTkxNV9XUklURV9GVyhE U1BDTlRSKGk5eHhfcGxhbmUpLCAwKTsKKwlJOTE1X1dSSVRFX0ZXKERTUENOVFIoaTl4eF9wbGFu ZSksIGRzcGNudHIpOwogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpCiAJCUk5MTVfV1JJ VEVfRlcoRFNQU1VSRihpOXh4X3BsYW5lKSwgMCk7CiAJZWxzZQpAQCAtMzYzMSw2ICszNjU2LDIw IEBAIHN0YXRpYyB1MzIgY25sX3BsYW5lX2N0bF9mbGlwKHVuc2lnbmVkIGludCByZWZsZWN0KQog CXJldHVybiAwOwogfQogCit1MzIgc2tsX3BsYW5lX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXUzMiBwbGFu ZV9jdGwgPSAwOworCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAgfHwgSVNfR0VNSU5J TEFLRShkZXZfcHJpdikpCisJCXJldHVybiBwbGFuZV9jdGw7CisKKwlwbGFuZV9jdGwgfD0gUExB TkVfQ1RMX1BJUEVfR0FNTUFfRU5BQkxFOworCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUElQRV9D U0NfRU5BQkxFOworCisJcmV0dXJuIHBsYW5lX2N0bDsKK30KKwogdTMyIHNrbF9wbGFuZV9jdGwo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgY29uc3Qgc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKQEAgLTM2NDUsMTAgKzM2ODQs NyBAQCB1MzIgc2tsX3BsYW5lX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTAgJiYgIUlTX0dFTUlOSUxB S0UoZGV2X3ByaXYpKSB7CiAJCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX2FscGhhKHBsYW5l X3N0YXRlKTsKLQkJcGxhbmVfY3RsIHw9Ci0JCQlQTEFORV9DVExfUElQRV9HQU1NQV9FTkFCTEUg fAotCQkJUExBTkVfQ1RMX1BJUEVfQ1NDX0VOQUJMRSB8Ci0JCQlQTEFORV9DVExfUExBTkVfR0FN TUFfRElTQUJMRTsKKwkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9QTEFORV9HQU1NQV9ESVNBQkxF OwogCiAJCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9lbmNvZGluZyA9PSBEUk1fQ09MT1Jf WUNCQ1JfQlQ3MDkpCiAJCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1lVVl9UT19SR0JfQ1NDX0ZP Uk1BVF9CVDcwOTsKQEAgLTM2NzMsMTkgKzM3MDksMjcgQEAgdTMyIHNrbF9wbGFuZV9jdGwoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJcmV0dXJuIHBsYW5lX2N0 bDsKIH0KIAordTMyIGdsa19wbGFuZV9jb2xvcl9jdGxfY3J0Yyhjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwl1MzIgcGxhbmVf Y29sb3JfY3RsID0gMDsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQorCQlyZXR1 cm4gcGxhbmVfY29sb3JfY3RsOworCisJcGxhbmVfY29sb3JfY3RsIHw9IFBMQU5FX0NPTE9SX1BJ UEVfR0FNTUFfRU5BQkxFOworCXBsYW5lX2NvbG9yX2N0bCB8PSBQTEFORV9DT0xPUl9QSVBFX0NT Q19FTkFCTEU7CisKKwlyZXR1cm4gcGxhbmVfY29sb3JfY3RsOworfQorCiB1MzIgZ2xrX3BsYW5l X2NvbG9yX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJ CWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KLQkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFz ZS5wbGFuZS0+ZGV2KTsKIAljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5l X3N0YXRlLT5iYXNlLmZiOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9w bGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJdTMyIHBsYW5lX2NvbG9yX2N0bCA9IDA7 CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKSB7Ci0JCXBsYW5lX2NvbG9yX2N0bCB8 PSBQTEFORV9DT0xPUl9QSVBFX0dBTU1BX0VOQUJMRTsKLQkJcGxhbmVfY29sb3JfY3RsIHw9IFBM QU5FX0NPTE9SX1BJUEVfQ1NDX0VOQUJMRTsKLQl9CiAJcGxhbmVfY29sb3JfY3RsIHw9IFBMQU5F X0NPTE9SX1BMQU5FX0dBTU1BX0RJU0FCTEU7CiAJcGxhbmVfY29sb3JfY3RsIHw9IGdsa19wbGFu ZV9jb2xvcl9jdGxfYWxwaGEocGxhbmVfc3RhdGUpOwogCkBAIC05ODY3LDExICs5OTExLDE1IEBA IGk4NDVfY3Vyc29yX21heF9zdHJpZGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAlyZXR1 cm4gMjA0ODsKIH0KIAorc3RhdGljIHUzMiBpODQ1X2N1cnNvcl9jdGxfY3J0Yyhjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlyZXR1cm4gQ1VSU09SX0dBTU1B X0VOQUJMRTsKK30KKwogc3RhdGljIHUzMiBpODQ1X2N1cnNvcl9jdGwoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXJldHVybiBDVVJTT1JfRU5BQkxFIHwKLQkJQ1VS U09SX0dBTU1BX0VOQUJMRSB8CiAJCUNVUlNPUl9GT1JNQVRfQVJHQiB8CiAJCUNVUlNPUl9TVFJJ REUocGxhbmVfc3RhdGUtPmNvbG9yX3BsYW5lWzBdLnN0cmlkZSk7CiB9CkBAIC05OTQxLDcgKzk5 ODksOSBAQCBzdGF0aWMgdm9pZCBpODQ1X3VwZGF0ZV9jdXJzb3Ioc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSwKIAkJdW5zaWduZWQgaW50IHdpZHRoID0gcGxhbmVfc3RhdGUtPmJhc2UuY3J0Y193 OwogCQl1bnNpZ25lZCBpbnQgaGVpZ2h0ID0gcGxhbmVfc3RhdGUtPmJhc2UuY3J0Y19oOwogCi0J CWNudGwgPSBwbGFuZV9zdGF0ZS0+Y3RsOworCQljbnRsID0gcGxhbmVfc3RhdGUtPmN0bCB8CisJ CQlpODQ1X2N1cnNvcl9jdGxfY3J0YyhjcnRjX3N0YXRlKTsKKwogCQlzaXplID0gKGhlaWdodCA8 PCAxMikgfCB3aWR0aDsKIAogCQliYXNlID0gaW50ZWxfY3Vyc29yX2Jhc2UocGxhbmVfc3RhdGUp OwpAQCAtMTAwMDYsMjcgKzEwMDU2LDM2IEBAIGk5eHhfY3Vyc29yX21heF9zdHJpZGUoc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSwKIAlyZXR1cm4gcGxhbmUtPmJhc2UuZGV2LT5tb2RlX2NvbmZp Zy5jdXJzb3Jfd2lkdGggKiA0OwogfQogCi1zdGF0aWMgdTMyIGk5eHhfY3Vyc29yX2N0bChjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkJCSAgIGNvbnN0IHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCitzdGF0aWMgdTMyIGk5eHhfY3Vyc29y X2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Ci0JCXRvX2k5MTUocGxhbmVfc3Rh dGUtPmJhc2UucGxhbmUtPmRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJdTMyIGNudGwgPSAwOwogCi0J aWYgKElTX0dFTihkZXZfcHJpdiwgNikgfHwgSVNfSVZZQlJJREdFKGRldl9wcml2KSkKLQkJY250 bCB8PSBNQ1VSU09SX1RSSUNLTEVfRkVFRF9ESVNBQkxFOworCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDExKQorCQlyZXR1cm4gY250bDsKIAotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDw9 IDEwKSB7Ci0JCWNudGwgfD0gTUNVUlNPUl9HQU1NQV9FTkFCTEU7CisJY250bCB8PSBNQ1VSU09S X0dBTU1BX0VOQUJMRTsKIAotCQlpZiAoSEFTX0RESShkZXZfcHJpdikpCi0JCQljbnRsIHw9IE1D VVJTT1JfUElQRV9DU0NfRU5BQkxFOwotCX0KKwlpZiAoSEFTX0RESShkZXZfcHJpdikpCisJCWNu dGwgfD0gTUNVUlNPUl9QSVBFX0NTQ19FTkFCTEU7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA8IDUgJiYgIUlTX0c0WChkZXZfcHJpdikpCiAJCWNudGwgfD0gTUNVUlNPUl9QSVBFX1NFTEVD VChjcnRjLT5waXBlKTsKIAorCXJldHVybiBjbnRsOworfQorCitzdGF0aWMgdTMyIGk5eHhfY3Vy c29yX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCSAg IGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCit7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KKwkJdG9faTkxNShwbGFuZV9zdGF0ZS0+YmFz ZS5wbGFuZS0+ZGV2KTsKKwl1MzIgY250bCA9IDA7CisKKwlpZiAoSVNfR0VOKGRldl9wcml2LCA2 KSB8fCBJU19JVllCUklER0UoZGV2X3ByaXYpKQorCQljbnRsIHw9IE1DVVJTT1JfVFJJQ0tMRV9G RUVEX0RJU0FCTEU7CisKIAlzd2l0Y2ggKHBsYW5lX3N0YXRlLT5iYXNlLmNydGNfdykgewogCWNh c2UgNjQ6CiAJCWNudGwgfD0gTUNVUlNPUl9NT0RFXzY0X0FSR0JfQVg7CkBAIC0xMDE1MSw3ICsx MDIxMCw4IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgaW50ZWxfcGxh bmUgKnBsYW5lLAogCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7CiAKIAlpZiAocGxhbmVfc3RhdGUg JiYgcGxhbmVfc3RhdGUtPmJhc2UudmlzaWJsZSkgewotCQljbnRsID0gcGxhbmVfc3RhdGUtPmN0 bDsKKwkJY250bCA9IHBsYW5lX3N0YXRlLT5jdGwgfAorCQkJaTl4eF9jdXJzb3JfY3RsX2NydGMo Y3J0Y19zdGF0ZSk7CiAKIAkJaWYgKHBsYW5lX3N0YXRlLT5iYXNlLmNydGNfaCAhPSBwbGFuZV9z dGF0ZS0+YmFzZS5jcnRjX3cpCiAJCQlmYmNfY3RsID0gQ1VSX0ZCQ19DVExfRU4gfCAocGxhbmVf c3RhdGUtPmJhc2UuY3J0Y19oIC0gMSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDNi MDUxZmRkMGZjZS4uODhhYzQyYjJkN2VkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAt MTc1Miw5ICsxNzUyLDEwIEBAIHN0YXRpYyBpbmxpbmUgdTMyIGludGVsX3BsYW5lX2dndHRfb2Zm c2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCiAKIHUzMiBnbGtfcGxh bmVfY29sb3JfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CQkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cit1MzIgZ2xr X3BsYW5lX2NvbG9yX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKTsKIHUzMiBza2xfcGxhbmVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUpOwotdTMyIGdsa19jb2xvcl9jdGwoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpwbGFuZV9zdGF0ZSk7Cit1MzIgc2tsX3BsYW5lX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKIHUzMiBza2xfcGxhbmVfc3RyaWRlKGNvbnN0IHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCiAJCSAgICAgaW50IHBsYW5lKTsK IGludCBza2xfY2hlY2tfcGxhbmVfc3VyZmFjZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKaW5kZXggOGYzOTgyYzAz OTI1Li5hNDVlZjk4YjJmOGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCkBAIC00 ODQsOSArNDg0LDE2IEBAIHNrbF9wcm9ncmFtX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxh bmUsCiAJc3RydWN0IGludGVsX3BsYW5lICpsaW5rZWQgPSBwbGFuZV9zdGF0ZS0+bGlua2VkX3Bs YW5lOwogCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJh c2UuZmI7CiAJdTggYWxwaGEgPSBwbGFuZV9zdGF0ZS0+YmFzZS5hbHBoYSA+PiA4OworCXUzMiBw bGFuZV9jb2xvcl9jdGwgPSAwOwogCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7CiAJdTMyIGtleW1z aywga2V5bWF4OwogCisJcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxfY3J0YyhjcnRjX3N0YXRl KTsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwIHx8IElTX0dFTUlOSUxBS0UoZGV2 X3ByaXYpKQorCQlwbGFuZV9jb2xvcl9jdGwgPSBwbGFuZV9zdGF0ZS0+Y29sb3JfY3RsIHwKKwkJ CWdsa19wbGFuZV9jb2xvcl9jdGxfY3J0YyhjcnRjX3N0YXRlKTsKKwogCS8qIFNpemVzIGFyZSAw IGJhc2VkICovCiAJc3JjX3ctLTsKIAlzcmNfaC0tOwpAQCAtNTMzLDggKzU0MCw3IEBAIHNrbF9w cm9ncmFtX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJfQogCiAJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gMTAgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCi0JCUk5MTVf V1JJVEVfRlcoUExBTkVfQ09MT1JfQ1RMKHBpcGUsIHBsYW5lX2lkKSwKLQkJCSAgICAgIHBsYW5l X3N0YXRlLT5jb2xvcl9jdGwpOworCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0NPTE9SX0NUTChwaXBl LCBwbGFuZV9pZCksIHBsYW5lX2NvbG9yX2N0bCk7CiAKIAlpZiAoZmItPmZvcm1hdC0+aXNfeXV2 ICYmIGljbF9pc19oZHJfcGxhbmUocGxhbmUpKQogCQlpY2xfcHJvZ3JhbV9pbnB1dF9jc2MocGxh bmUsIGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKTsKQEAgLTczMSw2ICs3MzcsMTEgQEAgdmx2X3Vw ZGF0ZV9jbHJjKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAJ CSAgICAgIFNQX1NIX1NJTihzaF9zaW4pIHwgU1BfU0hfQ09TKHNoX2NvcykpOwogfQogCitzdGF0 aWMgdTMyIHZsdl9zcHJpdGVfY3RsX2NydGMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCit7CisJcmV0dXJuIFNQX0dBTU1BX0VOQUJMRTsKK30KKwogc3RhdGljIHUz MiB2bHZfc3ByaXRlX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKIAkJCSAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsK QEAgLTczOSw3ICs3NTAsNyBAQCBzdGF0aWMgdTMyIHZsdl9zcHJpdGVfY3RsKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxf c3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNrZXk7CiAJdTMyIHNwcmN0bDsK IAotCXNwcmN0bCA9IFNQX0VOQUJMRSB8IFNQX0dBTU1BX0VOQUJMRTsKKwlzcHJjdGwgPSBTUF9F TkFCTEU7CiAKIAlzd2l0Y2ggKGZiLT5mb3JtYXQtPmZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1B VF9ZVVlWOgpAQCAtODA2LDcgKzgxNyw2IEBAIHZsdl91cGRhdGVfcGxhbmUoc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KHBsYW5lLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKIAll bnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gcGxhbmUtPmlkOwotCXUzMiBzcHJjdGwgPSBwbGFuZV9z dGF0ZS0+Y3RsOwogCXUzMiBzcHJzdXJmX29mZnNldCA9IHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFu ZVswXS5vZmZzZXQ7CiAJdTMyIGxpbmVhcl9vZmZzZXQ7CiAJY29uc3Qgc3RydWN0IGRybV9pbnRl bF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZwbGFuZV9zdGF0ZS0+Y2tleTsKQEAgLTgxNyw2ICs4 MjcsOSBAQCB2bHZfdXBkYXRlX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJdWlu dDMyX3QgeCA9IHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVswXS54OwogCXVpbnQzMl90IHkgPSBw bGFuZV9zdGF0ZS0+Y29sb3JfcGxhbmVbMF0ueTsKIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwor CXUzMiBzcHJjdGw7CisKKwlzcHJjdGwgPSBwbGFuZV9zdGF0ZS0+Y3RsIHwgdmx2X3Nwcml0ZV9j dGxfY3J0YyhjcnRjX3N0YXRlKTsKIAogCS8qIFNpemVzIGFyZSAwIGJhc2VkICovCiAJY3J0Y193 LS07CkBAIC04OTcsNiArOTEwLDE5IEBAIHZsdl9wbGFuZV9nZXRfaHdfc3RhdGUoc3RydWN0IGlu dGVsX3BsYW5lICpwbGFuZSwKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgdTMyIGl2Yl9zcHJp dGVfY3RsX2NydGMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCit7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRl LT5iYXNlLmNydGMtPmRldik7CisJdTMyIHNwcmN0bCA9IDA7CisKKwlzcHJjdGwgfD0gU1BSSVRF X0dBTU1BX0VOQUJMRTsKKworCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdF TEwoZGV2X3ByaXYpKQorCQlzcHJjdGwgfD0gU1BSSVRFX1BJUEVfQ1NDX0VOQUJMRTsKKworCXJl dHVybiBzcHJjdGw7Cit9CisKIHN0YXRpYyB1MzIgaXZiX3Nwcml0ZV9jdGwoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CkBAIC05MDcsMTQgKzkzMywxMSBAQCBzdGF0aWMg dTMyIGl2Yl9zcHJpdGVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAogCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmcGxh bmVfc3RhdGUtPmNrZXk7CiAJdTMyIHNwcmN0bDsKIAotCXNwcmN0bCA9IFNQUklURV9FTkFCTEUg fCBTUFJJVEVfR0FNTUFfRU5BQkxFOworCXNwcmN0bCA9IFNQUklURV9FTkFCTEU7CiAKIAlpZiAo SVNfSVZZQlJJREdFKGRldl9wcml2KSkKIAkJc3ByY3RsIHw9IFNQUklURV9UUklDS0xFX0ZFRURf RElTQUJMRTsKIAotCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2 X3ByaXYpKQotCQlzcHJjdGwgfD0gU1BSSVRFX1BJUEVfQ1NDX0VOQUJMRTsKLQogCXN3aXRjaCAo ZmItPmZvcm1hdC0+Zm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFUX1hCR1I4ODg4OgogCQlzcHJj dGwgfD0gU1BSSVRFX0ZPUk1BVF9SR0JYODg4IHwgU1BSSVRFX1JHQl9PUkRFUl9SR0JYOwpAQCAt OTY2LDcgKzk4OSw2IEBAIGl2Yl91cGRhdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFu ZSwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5l LT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKLQl1MzIgc3ByY3Rs ID0gcGxhbmVfc3RhdGUtPmN0bCwgc3Byc2NhbGUgPSAwOwogCXUzMiBzcHJzdXJmX29mZnNldCA9 IHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVswXS5vZmZzZXQ7CiAJdTMyIGxpbmVhcl9vZmZzZXQ7 CiAJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZwbGFuZV9z dGF0ZS0+Y2tleTsKQEAgLTk3OCw4ICsxMDAwLDExIEBAIGl2Yl91cGRhdGVfcGxhbmUoc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSwKIAl1aW50MzJfdCB5ID0gcGxhbmVfc3RhdGUtPmNvbG9yX3Bs YW5lWzBdLnk7CiAJdWludDMyX3Qgc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUt PmJhc2Uuc3JjKSA+PiAxNjsKIAl1aW50MzJfdCBzcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxh bmVfc3RhdGUtPmJhc2Uuc3JjKSA+PiAxNjsKKwl1MzIgc3ByY3RsLCBzcHJzY2FsZSA9IDA7CiAJ dW5zaWduZWQgbG9uZyBpcnFmbGFnczsKIAorCXNwcmN0bCA9IHBsYW5lX3N0YXRlLT5jdGwgfCBp dmJfc3ByaXRlX2N0bF9jcnRjKGNydGNfc3RhdGUpOworCiAJLyogU2l6ZXMgYXJlIDAgYmFzZWQg Ki8KIAlzcmNfdy0tOwogCXNyY19oLS07CkBAIC0xMDc0LDYgKzEwOTksMTEgQEAgZzR4X3Nwcml0 ZV9tYXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJcmV0dXJuIDE2Mzg0Owog fQogCitzdGF0aWMgdTMyIGc0eF9zcHJpdGVfY3RsX2NydGMoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCit7CisJcmV0dXJuIERWU19HQU1NQV9FTkFCTEU7Cit9CisK IHN0YXRpYyB1MzIgZzR4X3Nwcml0ZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUpCiB7CkBAIC0xMDg0LDcgKzExMTQsNyBAQCBzdGF0aWMgdTMyIGc0eF9zcHJpdGVfY3Rs KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWNvbnN0IHN0cnVj dCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNrZXk7CiAJ dTMyIGR2c2NudHI7CiAKLQlkdnNjbnRyID0gRFZTX0VOQUJMRSB8IERWU19HQU1NQV9FTkFCTEU7 CisJZHZzY250ciA9IERWU19FTkFCTEU7CiAKIAlpZiAoSVNfR0VOKGRldl9wcml2LCA2KSkKIAkJ ZHZzY250ciB8PSBEVlNfVFJJQ0tMRV9GRUVEX0RJU0FCTEU7CkBAIC0xMTQwLDcgKzExNzAsNiBA QCBnNHhfdXBkYXRlX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwog CWVudW0gcGlwZSBwaXBlID0gcGxhbmUtPnBpcGU7Ci0JdTMyIGR2c2NudHIgPSBwbGFuZV9zdGF0 ZS0+Y3RsLCBkdnNzY2FsZSA9IDA7CiAJdTMyIGR2c3N1cmZfb2Zmc2V0ID0gcGxhbmVfc3RhdGUt PmNvbG9yX3BsYW5lWzBdLm9mZnNldDsKIAl1MzIgbGluZWFyX29mZnNldDsKIAljb25zdCBzdHJ1 Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5OwpA QCAtMTE1Miw4ICsxMTgxLDExIEBAIGc0eF91cGRhdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSwKIAl1aW50MzJfdCB5ID0gcGxhbmVfc3RhdGUtPmNvbG9yX3BsYW5lWzBdLnk7CiAJ dWludDMyX3Qgc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmJhc2Uuc3JjKSA+ PiAxNjsKIAl1aW50MzJfdCBzcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmJh c2Uuc3JjKSA+PiAxNjsKKwl1MzIgZHZzY250ciwgZHZzc2NhbGUgPSAwOwogCXVuc2lnbmVkIGxv bmcgaXJxZmxhZ3M7CiAKKwlkdnNjbnRyID0gcGxhbmVfc3RhdGUtPmN0bCB8IGc0eF9zcHJpdGVf Y3RsX2NydGMoY3J0Y19zdGF0ZSk7CisKIAkvKiBTaXplcyBhcmUgMCBiYXNlZCAqLwogCXNyY193 LS07CiAJc3JjX2gtLTsKLS0gCjIuMTkuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==