From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 14/15] drm/i915: Convert intel_dp to use atomic state Date: Tue, 9 Aug 2016 17:04:13 +0200 Message-ID: <1470755054-32699-15-git-send-email-maarten.lankhorst@linux.intel.com> References: <1470755054-32699-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 129D46E251 for ; Tue, 9 Aug 2016 15:04:21 +0000 (UTC) In-Reply-To: <1470755054-32699-1-git-send-email-maarten.lankhorst@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 U2xpZ2h0bHkgbGVzcyBzdHJhaWdodGZvcndhcmQuIFNvbWUgb2YgdGhlIGRycnMgY2FsbHMgYXJl IGRvbmUgZnJvbQp3b3JrZXJzIG9yIGZyb20gaW50ZWxfZGRpLmMsIHBhc3MgYWxvbmcgY3J0Y19z dGF0ZSB3aGVuIHdlIGNhbiwKb3IgY3J0Yy0+Y29uZmlnIHdoZW4gd2UgY2FuJ3QuCgpTaWduZWQt b2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIHwgICA0ICstCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICB8IDEyMyArKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIHwgICA2 ICstCiAzIGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDY5IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKaW5kZXggYjIzODcyODM5ZmUwLi4zMDliYTdiYzE5YWQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCkBAIC0xNzQ1LDcgKzE3NDUsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9lbmFibGVfZGRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy LAogCiAJCWludGVsX2VkcF9iYWNrbGlnaHRfb24oaW50ZWxfZHApOwogCQlpbnRlbF9wc3JfZW5h YmxlKGludGVsX2RwKTsKLQkJaW50ZWxfZWRwX2RycnNfZW5hYmxlKGludGVsX2RwKTsKKwkJaW50 ZWxfZWRwX2RycnNfZW5hYmxlKGludGVsX2RwLCBwaXBlX2NvbmZpZyk7CiAJfQogCiAJaWYgKGlu dGVsX2NydGMtPmNvbmZpZy0+aGFzX2F1ZGlvKSB7CkBAIC0xNzczLDcgKzE3NzMsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5j b2RlciwKIAlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7CiAJCXN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7CiAKLQkJaW50ZWxfZWRwX2Ry cnNfZGlzYWJsZShpbnRlbF9kcCk7CisJCWludGVsX2VkcF9kcnJzX2Rpc2FibGUoaW50ZWxfZHAs IG9sZF9jcnRjX3N0YXRlKTsKIAkJaW50ZWxfcHNyX2Rpc2FibGUoaW50ZWxfZHApOwogCQlpbnRl bF9lZHBfYmFja2xpZ2h0X29mZihpbnRlbF9kcCk7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMK aW5kZXggMjM0MGMyYjg3YTVkLi44YTRmMzRkMmUxMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YwpAQCAtMTY1NSwxNiArMTY1NSwxNyBAQCB2b2lkIGludGVsX2RwX3NldF9saW5rX3BhcmFtcyhz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCWludGVsX2RwLT5saW5rX21zdCA9IGludGVsX2Ny dGNfaGFzX3R5cGUocGlwZV9jb25maWcsIElOVEVMX09VVFBVVF9EUF9NU1QpOwogfQogCi1zdGF0 aWMgdm9pZCBpbnRlbF9kcF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQor c3RhdGljIHZvaWQgaW50ZWxfZHBfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKKwkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7CiAJZW51bSBwb3J0IHBv cnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7CiAJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Yy0+Y29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKIAotCWludGVsX2RwX3NldF9s aW5rX3BhcmFtcyhpbnRlbF9kcCwgY3J0Yy0+Y29uZmlnKTsKKwlpbnRlbF9kcF9zZXRfbGlua19w YXJhbXMoaW50ZWxfZHAsIHBpcGVfY29uZmlnKTsKIAogCS8qCiAJICogVGhlcmUgYXJlIGZvdXIg a2luZHMgb2YgRFAgcmVnaXN0ZXJzOgpAQCAtMTY5MCw3ICsxNjkxLDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfZHBfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAogCS8qIEhh bmRsZSBEUCBiaXRzIGluIGNvbW1vbiBiZXR3ZWVuIGFsbCB0aHJlZSByZWdpc3RlciBmb3JtYXRz ICovCiAJaW50ZWxfZHAtPkRQIHw9IERQX1ZPTFRBR0VfMF80IHwgRFBfUFJFX0VNUEhBU0lTXzA7 Ci0JaW50ZWxfZHAtPkRQIHw9IERQX1BPUlRfV0lEVEgoY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50 KTsKKwlpbnRlbF9kcC0+RFAgfD0gRFBfUE9SVF9XSURUSChwaXBlX2NvbmZpZy0+bGFuZV9jb3Vu dCk7CiAKIAkvKiBTcGxpdCBvdXQgdGhlIElCWC9DUFUgdnMgQ1BUIHNldHRpbmdzICovCiAKQEAg LTE3MTgsNyArMTcxOSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX3ByZXBhcmUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpCiAJCUk5MTVfV1JJVEUoVFJBTlNfRFBfQ1RMKGNydGMtPnBp cGUpLCB0cmFuc19kcCk7CiAJfSBlbHNlIHsKIAkJaWYgKCFIQVNfUENIX1NQTElUKGRldikgJiYg IUlTX1ZBTExFWVZJRVcoZGV2KSAmJgotCQkgICAgIUlTX0NIRVJSWVZJRVcoZGV2KSAmJiBjcnRj LT5jb25maWctPmxpbWl0ZWRfY29sb3JfcmFuZ2UpCisJCSAgICAhSVNfQ0hFUlJZVklFVyhkZXYp ICYmIHBpcGVfY29uZmlnLT5saW1pdGVkX2NvbG9yX3JhbmdlKQogCQkJaW50ZWxfZHAtPkRQIHw9 IERQX0NPTE9SX1JBTkdFXzE2XzIzNTsKIAogCQlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBE Uk1fTU9ERV9GTEFHX1BIU1lOQykKQEAgLTIyNTYsMTAgKzIyNTcsMTAgQEAgc3RhdGljIHZvaWQg YXNzZXJ0X2VkcF9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHN0 YXRlKQogI2RlZmluZSBhc3NlcnRfZWRwX3BsbF9lbmFibGVkKGQpIGFzc2VydF9lZHBfcGxsKChk KSwgdHJ1ZSkKICNkZWZpbmUgYXNzZXJ0X2VkcF9wbGxfZGlzYWJsZWQoZCkgYXNzZXJ0X2VkcF9w bGwoKGQpLCBmYWxzZSkKIAotc3RhdGljIHZvaWQgaXJvbmxha2VfZWRwX3BsbF9vbihzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQorc3RhdGljIHZvaWQgaXJvbmxha2VfZWRwX3BsbF9vbihzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLAorCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZykKIHsKLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9 IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7CiAKIAlhc3NlcnRfcGlwZV9kaXNhYmxlZChkZXZfcHJpdiwgY3J0Yy0+cGlwZSk7CkBAIC0y MjY3LDExICsyMjY4LDExIEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2VkcF9wbGxfb24oc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKIAlhc3NlcnRfZWRwX3BsbF9kaXNhYmxlZChkZXZfcHJpdik7 CiAKIAlEUk1fREVCVUdfS01TKCJlbmFibGluZyBlRFAgUExMIGZvciBjbG9jayAlZFxuIiwKLQkJ ICAgICAgY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrKTsKKwkJICAgICAgcGlwZV9jb25maWctPnBv cnRfY2xvY2spOwogCiAJaW50ZWxfZHAtPkRQICY9IH5EUF9QTExfRlJFUV9NQVNLOwogCi0JaWYg KGNydGMtPmNvbmZpZy0+cG9ydF9jbG9jayA9PSAxNjIwMDApCisJaWYgKHBpcGVfY29uZmlnLT5w b3J0X2Nsb2NrID09IDE2MjAwMCkKIAkJaW50ZWxfZHAtPkRQIHw9IERQX1BMTF9GUkVRXzE2Mk1I WjsKIAllbHNlCiAJCWludGVsX2RwLT5EUCB8PSBEUF9QTExfRlJFUV8yNzBNSFo7CkBAIC0yNDg1 LDEzICsyNDg2LDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZHAoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpv bGRfY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2lu dGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rl ci0+YmFzZS5kZXY7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVu Y29kZXItPmJhc2UuY3J0Yyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAKLQlpZiAoY3J0Yy0+Y29uZmlnLT5oYXNfYXVk aW8pCisJaWYgKG9sZF9jcnRjX3N0YXRlLT5oYXNfYXVkaW8pCiAJCWludGVsX2F1ZGlvX2NvZGVj X2Rpc2FibGUoZW5jb2Rlcik7CiAKLQlpZiAoSEFTX1BTUihkZXYpICYmICFIQVNfRERJKGRldikp CisJaWYgKEhBU19QU1IoZGV2X3ByaXYpICYmICFIQVNfRERJKGRldl9wcml2KSkKIAkJaW50ZWxf cHNyX2Rpc2FibGUoaW50ZWxfZHApOwogCiAJLyogTWFrZSBzdXJlIHRoZSBwYW5lbCBpcyBvZmYg YmVmb3JlIHRyeWluZyB0byBjaGFuZ2UgdGhlIG1vZGUuIEJ1dCBhbHNvCkBAIC0yNTAyLDcgKzI1 MDIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCWludGVsX2VkcF9wYW5lbF9vZmYoaW50ZWxfZHApOwogCiAJLyogZGlzYWJs ZSB0aGUgcG9ydCBiZWZvcmUgdGhlIHBpcGUgb24gZzR4ICovCi0JaWYgKElOVEVMX0lORk8oZGV2 KS0+Z2VuIDwgNSkKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDUpCiAJCWludGVsX2RwX2xp bmtfZG93bihpbnRlbF9kcCk7CiB9CiAKQEAgLTI2MzEsMTIgKzI2MzEsMTEgQEAgX2ludGVsX2Rw X3NldF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJfQogfQogCi1zdGF0 aWMgdm9pZCBpbnRlbF9kcF9lbmFibGVfcG9ydChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQor c3RhdGljIHZvaWQgaW50ZWxfZHBfZW5hYmxlX3BvcnQoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwKKwkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogewogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9Ci0JCXRvX2ludGVsX2NydGMoZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHAp LT5iYXNlLmJhc2UuY3J0Yyk7CiAKIAkvKiBlbmFibGUgd2l0aCBwYXR0ZXJuIDEgKGFzIHBlciBz cGVjKSAqLwogCV9pbnRlbF9kcF9zZXRfbGlua190cmFpbihpbnRlbF9kcCwgJmludGVsX2RwLT5E UCwKQEAgLTI2NTIsMTQgKzI2NTEsMTUgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfZW5hYmxlX3Bv cnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAkgKiBmYWlsIHdoZW4gdGhlIHBvd2VyIHNl cXVlbmNlciBpcyBmcmVzaGx5IHVzZWQgZm9yIHRoaXMgcG9ydC4KIAkgKi8KIAlpbnRlbF9kcC0+ RFAgfD0gRFBfUE9SVF9FTjsKLQlpZiAoY3J0Yy0+Y29uZmlnLT5oYXNfYXVkaW8pCisJaWYgKG9s ZF9jcnRjX3N0YXRlLT5oYXNfYXVkaW8pCiAJCWludGVsX2RwLT5EUCB8PSBEUF9BVURJT19PVVRQ VVRfRU5BQkxFOwogCiAJSTkxNV9XUklURShpbnRlbF9kcC0+b3V0cHV0X3JlZywgaW50ZWxfZHAt PkRQKTsKIAlQT1NUSU5HX1JFQUQoaW50ZWxfZHAtPm91dHB1dF9yZWcpOwogfQogCi1zdGF0aWMg dm9pZCBpbnRlbF9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCitzdGF0 aWMgdm9pZCBpbnRlbF9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJ CQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKQEAgLTI2NzYsNyArMjY3 Niw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlcikKIAlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkK IAkJdmx2X2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyKGludGVsX2RwKTsKIAotCWludGVsX2Rw X2VuYWJsZV9wb3J0KGludGVsX2RwKTsKKwlpbnRlbF9kcF9lbmFibGVfcG9ydChpbnRlbF9kcCwg cGlwZV9jb25maWcpOwogCiAJZWRwX3BhbmVsX3ZkZF9vbihpbnRlbF9kcCk7CiAJZWRwX3BhbmVs X29uKGludGVsX2RwKTsKQEAgLTI2ODgsNyArMjY4OCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Vu YWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkJdW5zaWduZWQgaW50IGxh bmVfbWFzayA9IDB4MDsKIAogCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKQotCQkJbGFuZV9tYXNr ID0gaW50ZWxfZHBfdW51c2VkX2xhbmVfbWFzayhjcnRjLT5jb25maWctPmxhbmVfY291bnQpOwor CQkJbGFuZV9tYXNrID0gaW50ZWxfZHBfdW51c2VkX2xhbmVfbWFzayhwaXBlX2NvbmZpZy0+bGFu ZV9jb3VudCk7CiAKIAkJdmx2X3dhaXRfcG9ydF9yZWFkeShkZXZfcHJpdiwgZHBfdG9fZGlnX3Bv cnQoaW50ZWxfZHApLAogCQkJCSAgICBsYW5lX21hc2spOwpAQCAtMjY5OCw3ICsyNjk4LDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQogCWludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oaW50ZWxfZHApOwogCWludGVsX2RwX3N0b3Bf bGlua190cmFpbihpbnRlbF9kcCk7CiAKLQlpZiAoY3J0Yy0+Y29uZmlnLT5oYXNfYXVkaW8pIHsK KwlpZiAocGlwZV9jb25maWctPmhhc19hdWRpbykgewogCQlEUk1fREVCVUdfRFJJVkVSKCJFbmFi bGluZyBEUCBhdWRpbyBvbiBwaXBlICVjXG4iLAogCQkJCSBwaXBlX25hbWUocGlwZSkpOwogCQlp bnRlbF9hdWRpb19jb2RlY19lbmFibGUoZW5jb2Rlcik7CkBAIC0yNzExLDcgKzI3MTEsNyBAQCBz dGF0aWMgdm9pZCBnNHhfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog ewogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXIt PmJhc2UpOwogCi0JaW50ZWxfZW5hYmxlX2RwKGVuY29kZXIpOworCWludGVsX2VuYWJsZV9kcChl bmNvZGVyLCBwaXBlX2NvbmZpZyk7CiAJaW50ZWxfZWRwX2JhY2tsaWdodF9vbihpbnRlbF9kcCk7 CiB9CiAKQEAgLTI3MzIsMTEgKzI3MzIsMTEgQEAgc3RhdGljIHZvaWQgZzR4X3ByZV9lbmFibGVf ZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2RwICppbnRl bF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7CiAJZW51bSBwb3J0IHBvcnQg PSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7CiAKLQlpbnRlbF9kcF9wcmVwYXJlKGVu Y29kZXIpOworCWludGVsX2RwX3ByZXBhcmUoZW5jb2RlciwgcGlwZV9jb25maWcpOwogCiAJLyog T25seSBpbGsrIGhhcyBwb3J0IEEgKi8KIAlpZiAocG9ydCA9PSBQT1JUX0EpCi0JCWlyb25sYWtl X2VkcF9wbGxfb24oaW50ZWxfZHApOworCQlpcm9ubGFrZV9lZHBfcGxsX29uKGludGVsX2RwLCBw aXBlX2NvbmZpZyk7CiB9CiAKIHN0YXRpYyB2b2lkIHZsdl9kZXRhY2hfcG93ZXJfc2VxdWVuY2Vy KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCkBAIC0yODQ4LDE0ICsyODQ4LDE0IEBAIHN0YXRp YyB2b2lkIHZsdl9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog ewogCXZsdl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKGVuY29kZXIpOwogCi0JaW50ZWxfZW5hYmxl X2RwKGVuY29kZXIpOworCWludGVsX2VuYWJsZV9kcChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7CiB9 CiAKIHN0YXRpYyB2b2lkIHZsdl9kcF9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIAkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywK IAkJCQkgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewotCWludGVs X2RwX3ByZXBhcmUoZW5jb2Rlcik7CisJaW50ZWxfZHBfcHJlcGFyZShlbmNvZGVyLCBwaXBlX2Nv bmZpZyk7CiAKIAl2bHZfcGh5X3ByZV9wbGxfZW5hYmxlKGVuY29kZXIpOwogfQpAQCAtMjg2Niw3 ICsyODY2LDcgQEAgc3RhdGljIHZvaWQgY2h2X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiB7CiAJY2h2X3BoeV9wcmVfZW5jb2Rlcl9lbmFibGUoZW5jb2Rlcik7 CiAKLQlpbnRlbF9lbmFibGVfZHAoZW5jb2Rlcik7CisJaW50ZWxfZW5hYmxlX2RwKGVuY29kZXIs IHBpcGVfY29uZmlnKTsKIAogCS8qIFNlY29uZCBjb21tb24gbGFuZSB3aWxsIHN0YXkgYWxpdmUg b24gaXRzIG93biBub3cgKi8KIAljaHZfcGh5X3JlbGVhc2VfY2wyX292ZXJyaWRlKGVuY29kZXIp OwpAQCAtMjg3Niw3ICsyODc2LDcgQEAgc3RhdGljIHZvaWQgY2h2X2RwX3ByZV9wbGxfZW5hYmxl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnLAogCQkJCSAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5fc3RhdGUpCiB7Ci0JaW50ZWxfZHBfcHJlcGFyZShlbmNvZGVyKTsKKwlpbnRlbF9kcF9wcmVw YXJlKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKIAogCWNodl9waHlfcHJlX3BsbF9lbmFibGUoZW5j b2Rlcik7CiB9CkBAIC01MDU3LDE0ICs1MDU3LDE0IEBAIGludGVsX2RwX2luaXRfcGFuZWxfcG93 ZXJfc2VxdWVuY2VyX3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogICoKICAqIFRo ZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbiBuZWVkcyB0byB0YWtlIGEgbG9jayBvbiBkZXZfcHJp di0+ZHJycy4KICAqLwotc3RhdGljIHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgaW50IHJlZnJlc2hfcmF0ZSkKK3N0YXRpYyB2b2lkIGludGVsX2Rw X3NldF9kcnJzX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkg ICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkJICAgIGludCByZWZy ZXNoX3JhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOwogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwogCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gTlVMTDsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw ID0gZGV2X3ByaXYtPmRycnMuZHA7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNvbmZpZyA9 IE5VTEw7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSBOVUxMOworCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOwogCWVudW0gZHJyc19yZWZyZXNoX3JhdGVfdHlwZSBpbmRleCA9IERSUlNfSElHSF9SUjsK IAogCWlmIChyZWZyZXNoX3JhdGUgPD0gMCkgewpAQCAtNTA5MSw4ICs1MDkxLDYgQEAgc3RhdGlj IHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50 IHJlZnJlc2hfcmF0ZSkKIAkJcmV0dXJuOwogCX0KIAotCWNvbmZpZyA9IGludGVsX2NydGMtPmNv bmZpZzsKLQogCWlmIChkZXZfcHJpdi0+ZHJycy50eXBlIDwgU0VBTUxFU1NfRFJSU19TVVBQT1JU KSB7CiAJCURSTV9ERUJVR19LTVMoIk9ubHkgU2VhbWxlc3MgRFJSUyBzdXBwb3J0ZWQuXG4iKTsK IAkJcmV0dXJuOwpAQCAtNTEwOCwxMiArNTEwNiwxMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9z ZXRfZHJyc19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcmVmcmVzaF9yYXRlKQog CQlyZXR1cm47CiAJfQogCi0JaWYgKCFpbnRlbF9jcnRjLT5hY3RpdmUpIHsKKwlpZiAoIWNydGNf c3RhdGUtPmJhc2UuYWN0aXZlKSB7CiAJCURSTV9ERUJVR19LTVMoImVEUCBlbmNvZGVyIGRpc2Fi bGVkLiBDUlRDIG5vdCBBY3RpdmVcbiIpOwogCQlyZXR1cm47CiAJfQogCi0JaWYgKElOVEVMX0lO Rk8oZGV2KS0+Z2VuID49IDggJiYgIUlTX0NIRVJSWVZJRVcoZGV2KSkgeworCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpID49IDggJiYgIUlTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCXN3aXRj aCAoaW5kZXgpIHsKIAkJY2FzZSBEUlJTX0hJR0hfUlI6CiAJCQlpbnRlbF9kcF9zZXRfbV9uKGlu dGVsX2NydGMsIE0xX04xKTsKQEAgLTUxMjUsMTggKzUxMjMsMTggQEAgc3RhdGljIHZvaWQgaW50 ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHJlZnJlc2hf cmF0ZSkKIAkJZGVmYXVsdDoKIAkJCURSTV9FUlJPUigiVW5zdXBwb3J0ZWQgcmVmcmVzaHJhdGUg dHlwZVxuIik7CiAJCX0KLQl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID4gNikgewot CQlpOTE1X3JlZ190IHJlZyA9IFBJUEVDT05GKGludGVsX2NydGMtPmNvbmZpZy0+Y3B1X3RyYW5z Y29kZXIpOworCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+IDYpIHsKKwkJaTkxNV9y ZWdfdCByZWcgPSBQSVBFQ09ORihjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2Rlcik7CiAJCXUzMiB2 YWw7CiAKIAkJdmFsID0gSTkxNV9SRUFEKHJlZyk7CiAJCWlmIChpbmRleCA+IERSUlNfSElHSF9S UikgewotCQkJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpCisJ CQlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikp CiAJCQkJdmFsIHw9IFBJUEVDT05GX0VEUF9SUl9NT0RFX1NXSVRDSF9WTFY7CiAJCQllbHNlCiAJ CQkJdmFsIHw9IFBJUEVDT05GX0VEUF9SUl9NT0RFX1NXSVRDSDsKIAkJfSBlbHNlIHsKLQkJCWlm IChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKQorCQkJaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQkJCXZhbCAm PSB+UElQRUNPTkZfRURQX1JSX01PREVfU1dJVENIX1ZMVjsKIAkJCWVsc2UKIAkJCQl2YWwgJj0g flBJUEVDT05GX0VEUF9SUl9NT0RFX1NXSVRDSDsKQEAgLTUxNTUsMTUgKzUxNTMsMTMgQEAgc3Rh dGljIHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg aW50IHJlZnJlc2hfcmF0ZSkKICAqCiAgKiBJbml0aWFsaXplcyBmcm9udGJ1ZmZlcl9iaXRzIGFu ZCBkcnJzLmRwCiAgKi8KLXZvaWQgaW50ZWxfZWRwX2RycnNfZW5hYmxlKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApCit2b2lkIGludGVsX2VkcF9kcnJzX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAorCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHAp OwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGRpZ19wb3J0LT5iYXNlLmJhc2UuY3J0YzsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAKLQlp ZiAoIWludGVsX2NydGMtPmNvbmZpZy0+aGFzX2RycnMpIHsKKwlpZiAoIWNydGNfc3RhdGUtPmhh c19kcnJzKSB7CiAJCURSTV9ERUJVR19LTVMoIlBhbmVsIGRvZXNuJ3Qgc3VwcG9ydCBEUlJTXG4i KTsKIAkJcmV0dXJuOwogCX0KQEAgLTUxODcsMTUgKzUxODMsMTMgQEAgdW5sb2NrOgogICogQGlu dGVsX2RwOiBEUCBzdHJ1Y3QKICAqCiAgKi8KLXZvaWQgaW50ZWxfZWRwX2RycnNfZGlzYWJsZShz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQordm9pZCBpbnRlbF9lZHBfZHJyc19kaXNhYmxlKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCisJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUg Km9sZF9jcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90 b19kZXYoaW50ZWxfZHApOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3Rv X2RpZ19wb3J0KGludGVsX2RwKTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBkaWdfcG9ydC0+ YmFzZS5iYXNlLmNydGM7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNydGMpOwogCi0JaWYgKCFpbnRlbF9jcnRjLT5jb25maWctPmhhc19kcnJzKQorCWlm ICghb2xkX2NydGNfc3RhdGUtPmhhc19kcnJzKQogCQlyZXR1cm47CiAKIAltdXRleF9sb2NrKCZk ZXZfcHJpdi0+ZHJycy5tdXRleCk7CkBAIC01MjA1LDkgKzUxOTksOCBAQCB2b2lkIGludGVsX2Vk cF9kcnJzX2Rpc2FibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAl9CiAKIAlpZiAoZGV2 X3ByaXYtPmRycnMucmVmcmVzaF9yYXRlX3R5cGUgPT0gRFJSU19MT1dfUlIpCi0JCWludGVsX2Rw X3NldF9kcnJzX3N0YXRlKCZkZXZfcHJpdi0+ZHJtLAotCQkJCQlpbnRlbF9kcC0+YXR0YWNoZWRf Y29ubmVjdG9yLT5wYW5lbC4KLQkJCQkJZml4ZWRfbW9kZS0+dnJlZnJlc2gpOworCQlpbnRlbF9k cF9zZXRfZHJyc19zdGF0ZShkZXZfcHJpdiwgb2xkX2NydGNfc3RhdGUsCisJCQlpbnRlbF9kcC0+ YXR0YWNoZWRfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlLT52cmVmcmVzaCk7CiAKIAlkZXZf cHJpdi0+ZHJycy5kcCA9IE5VTEw7CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJycy5tdXRl eCk7CkBAIC01MjM2LDEwICs1MjI5LDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX2VkcF9kcnJzX2Rv d25jbG9ja193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlpZiAoZGV2X3ByaXYtPmRy cnMuYnVzeV9mcm9udGJ1ZmZlcl9iaXRzKQogCQlnb3RvIHVubG9jazsKIAotCWlmIChkZXZfcHJp di0+ZHJycy5yZWZyZXNoX3JhdGVfdHlwZSAhPSBEUlJTX0xPV19SUikKLQkJaW50ZWxfZHBfc2V0 X2RycnNfc3RhdGUoJmRldl9wcml2LT5kcm0sCi0JCQkJCWludGVsX2RwLT5hdHRhY2hlZF9jb25u ZWN0b3ItPnBhbmVsLgotCQkJCQlkb3duY2xvY2tfbW9kZS0+dnJlZnJlc2gpOworCWlmIChkZXZf cHJpdi0+ZHJycy5yZWZyZXNoX3JhdGVfdHlwZSAhPSBEUlJTX0xPV19SUikgeworCQlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2UuYmFzZS5jcnRj OworCisJCWludGVsX2RwX3NldF9kcnJzX3N0YXRlKGRldl9wcml2LCB0b19pbnRlbF9jcnRjKGNy dGMpLT5jb25maWcsCisJCQlpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVjdG9yLT5wYW5lbC5kb3du Y2xvY2tfbW9kZS0+dnJlZnJlc2gpOworCX0KIAogdW5sb2NrOgogCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmRycnMubXV0ZXgpOwpAQCAtNTI4MCw5ICs1Mjc1LDggQEAgdm9pZCBpbnRlbF9lZHBf ZHJyc19pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCS8q IGludmFsaWRhdGUgbWVhbnMgYnVzeSBzY3JlZW4gaGVuY2UgdXBjbG9jayAqLwogCWlmIChmcm9u dGJ1ZmZlcl9iaXRzICYmIGRldl9wcml2LT5kcnJzLnJlZnJlc2hfcmF0ZV90eXBlID09IERSUlNf TE9XX1JSKQotCQlpbnRlbF9kcF9zZXRfZHJyc19zdGF0ZSgmZGV2X3ByaXYtPmRybSwKLQkJCQkJ ZGV2X3ByaXYtPmRycnMuZHAtPmF0dGFjaGVkX2Nvbm5lY3Rvci0+cGFuZWwuCi0JCQkJCWZpeGVk X21vZGUtPnZyZWZyZXNoKTsKKwkJaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoZGV2X3ByaXYsIHRv X2ludGVsX2NydGMoY3J0YyktPmNvbmZpZywKKwkJCWRldl9wcml2LT5kcnJzLmRwLT5hdHRhY2hl ZF9jb25uZWN0b3ItPnBhbmVsLmZpeGVkX21vZGUtPnZyZWZyZXNoKTsKIAogCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPmRycnMubXV0ZXgpOwogfQpAQCAtNTMyNCw5ICs1MzE4LDggQEAgdm9pZCBp bnRlbF9lZHBfZHJyc19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAK IAkvKiBmbHVzaCBtZWFucyBidXN5IHNjcmVlbiBoZW5jZSB1cGNsb2NrICovCiAJaWYgKGZyb250 YnVmZmVyX2JpdHMgJiYgZGV2X3ByaXYtPmRycnMucmVmcmVzaF9yYXRlX3R5cGUgPT0gRFJSU19M T1dfUlIpCi0JCWludGVsX2RwX3NldF9kcnJzX3N0YXRlKCZkZXZfcHJpdi0+ZHJtLAotCQkJCQlk ZXZfcHJpdi0+ZHJycy5kcC0+YXR0YWNoZWRfY29ubmVjdG9yLT5wYW5lbC4KLQkJCQkJZml4ZWRf bW9kZS0+dnJlZnJlc2gpOworCQlpbnRlbF9kcF9zZXRfZHJyc19zdGF0ZShkZXZfcHJpdiwgdG9f aW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLAorCQkJCWRldl9wcml2LT5kcnJzLmRwLT5hdHRhY2hl ZF9jb25uZWN0b3ItPnBhbmVsLmZpeGVkX21vZGUtPnZyZWZyZXNoKTsKIAogCS8qCiAJICogZmx1 c2ggYWxzbyBtZWFucyBubyBtb3JlIGFjdGl2aXR5IGhlbmNlIHNjaGVkdWxlIGRvd25jbG9jaywg aWYgYWxsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDllNWI2NzVlOGFjNS4uZDE4NGFh Mjc2MGQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMTM4Nyw4ICsxMzg3LDEwIEBA IHZvaWQgaW50ZWxfZHBfaG90X3BsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29k ZXIpOwogdm9pZCBpbnRlbF9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKIHVpbnQzMl90IGludGVsX2RwX3BhY2tfYXV4KGNvbnN0IHVpbnQ4 X3QgKnNyYywgaW50IHNyY19ieXRlcyk7CiB2b2lkIGludGVsX3BsYW5lX2Rlc3Ryb3koc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUpOwotdm9pZCBpbnRlbF9lZHBfZHJyc19lbmFibGUoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCk7Ci12b2lkIGludGVsX2VkcF9kcnJzX2Rpc2FibGUoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCk7Cit2b2lkIGludGVsX2VkcF9kcnJzX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLAorCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpOwordm9pZCBpbnRlbF9lZHBfZHJyc19kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsCisJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiB2b2lkIGlu dGVsX2VkcF9kcnJzX2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCQkJICAgICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzKTsKIHZvaWQgaW50ZWxf ZWRwX2RycnNfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotLSAKMi43 LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=