From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 23/42] drm/i915: Pass old state to encoder->(post_)disable. Date: Mon, 11 May 2015 16:24:59 +0200 Message-ID: <1431354318-11995-24-git-send-email-maarten.lankhorst@linux.intel.com> References: <1431354318-11995-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 ESMTP id F04B86E417 for ; Mon, 11 May 2015 07:25:44 -0700 (PDT) In-Reply-To: <1431354318-11995-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 Cc: Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org VGhpcyByZW1vdmVzIGEgbG90IG9mIHVzZXJzIGZvciBjcnRjLT5jb25maWcuCgpTaWduZWQtb2Zm LWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jICAgICB8IDIxICsrKysrKy0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICB8IDc4ICsrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHwgMzYgKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMgICAgICB8IDQ5ICsrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwX21zdC5jICB8ICA5ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCAgICAgfCAxMyArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5j ICAgICB8IDExICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYyAgICAgfCAx NSArKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgfCAyMCArKysr Ky0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYyAgICB8IDExICsrKy0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMgICAgfCAgMyArLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdHYuYyAgICAgIHwgIDMgKy0KIDEyIGZpbGVzIGNoYW5nZWQsIDE1MCBp bnNlcnRpb25zKCspLCAxMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfY3J0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwpp bmRleCA5M2JiNTE1OWQwOTMuLmQ5NGY2Y2I5MWQ0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfY3J0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0 LmMKQEAgLTE1MiwxMyArMTUyLDEzIEBAIHN0YXRpYyB2b2lkIGhzd19jcnRfcHJlX2VuYWJsZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAogLyogTm90ZTogVGhlIGNhbGxlciBpcyBy ZXF1aXJlZCB0byBmaWx0ZXIgb3V0IGRwbXMgbW9kZXMgbm90IHN1cHBvcnRlZCBieSB0aGUKICAq IHBsYXRmb3JtLiAqLwotc3RhdGljIHZvaWQgaW50ZWxfY3J0X3NldF9kcG1zKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLCBpbnQgbW9kZSkKK3N0YXRpYyB2b2lkIGludGVsX2NydF9zZXRf ZHBtcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50IG1vZGUsCisJCQkgICAgICAg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCiB7CiAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2NydCAqY3J0ID0g aW50ZWxfZW5jb2Rlcl90b19jcnQoZW5jb2Rlcik7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Ci0Jc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7 CiAJdTMyIGFkcGE7CiAKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNSkKQEAgLTIwMiwx MyArMjAyLDE2IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydF9zZXRfZHBtcyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwgaW50IG1vZGUpCiAJSTkxNV9XUklURShjcnQtPmFkcGFfcmVnLCBh ZHBhKTsKIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9jcnQoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIpCitzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2NydChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZykKIHsKLQlpbnRlbF9jcnRfc2V0X2RwbXMoZW5jb2RlciwgRFJNX01PREVfRFBN U19PRkYpOworCWludGVsX2NydF9zZXRfZHBtcyhlbmNvZGVyLCBEUk1fTU9ERV9EUE1TX09GRiwK KwkJCSAgICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlKTsKIH0KIAogCi1zdGF0aWMg dm9pZCBoc3dfY3J0X3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikK K3N0YXRpYyB2b2lkIGhzd19jcnRfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAorCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CkBAIC0yMjQsOCArMjI3 LDEwIEBAIHN0YXRpYyB2b2lkIGhzd19jcnRfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQogc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2NydChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0ICpjcnQgPSBpbnRlbF9lbmNv ZGVyX3RvX2NydChlbmNvZGVyKTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBlbmNvZGVyLT5i YXNlLmNydGM7CiAKLQlpbnRlbF9jcnRfc2V0X2RwbXMoZW5jb2RlciwgY3J0LT5jb25uZWN0b3It PmJhc2UuZHBtcyk7CisJaW50ZWxfY3J0X3NldF9kcG1zKGVuY29kZXIsIGNydC0+Y29ubmVjdG9y LT5iYXNlLmRwbXMsCisJCQkgICAmY3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGUpOwogfQogCiAv KiBTcGVjaWFsIGRwbXMgZnVuY3Rpb24gdG8gc3VwcG9ydCBjbG9uaW5nIGJldHdlZW4gZHZvL3Nk dm8vY3J0LiAqLwpAQCAtMjY1LDkgKzI3MCw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydF9kcG1z KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGludCBtb2RlKQogCQkvKiBGcm9tIG9m ZiB0byBvbiwgZW5hYmxlIHRoZSBwaXBlIGZpcnN0LiAqLwogCQlpbnRlbF9jcnRjX3VwZGF0ZV9k cG1zKGNydGMpOwogCi0JCWludGVsX2NydF9zZXRfZHBtcyhlbmNvZGVyLCBtb2RlKTsKKwkJaW50 ZWxfY3J0X3NldF9kcG1zKGVuY29kZXIsIG1vZGUsICZjcnRjLT5zdGF0ZS0+YWRqdXN0ZWRfbW9k ZSk7CiAJfSBlbHNlIHsKLQkJaW50ZWxfY3J0X3NldF9kcG1zKGVuY29kZXIsIG1vZGUpOworCQlp bnRlbF9jcnRfc2V0X2RwbXMoZW5jb2RlciwgbW9kZSwgJmNydGMtPnN0YXRlLT5hZGp1c3RlZF9t b2RlKTsKIAogCQlpbnRlbF9jcnRjX3VwZGF0ZV9kcG1zKGNydGMpOwogCX0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGRpLmMKaW5kZXggODA3ZTE1ZDQxYTFiLi5jNWE5ZTM2ZDZhMGUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RkaS5jCkBAIC00MzAsNyArNDMwLDggQEAgdm9pZCBoc3dfZmRpX2xpbmtfdHJh aW4oc3RydWN0IGRybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0KKwkJdG9faW50 ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAJdTMyIHRlbXAsIGksIHJ4X2N0bF92YWw7CiAK IAkvKiBTZXQgdGhlIEZESV9SWF9NSVNDIHB3cmRuIGxhbmVzIGFuZCB0aGUgMiB3b3JrYXJvdW5k cyBsaXN0ZWQgYXQgdGhlCkBAIC00NDcsNyArNDQ4LDcgQEAgdm9pZCBoc3dfZmRpX2xpbmtfdHJh aW4oc3RydWN0IGRybV9jcnRjICpjcnRjKQogCS8qIEVuYWJsZSB0aGUgUENIIFJlY2VpdmVyIEZE SSBQTEwgKi8KIAlyeF9jdGxfdmFsID0gZGV2X3ByaXYtPmZkaV9yeF9jb25maWcgfCBGRElfUlhf RU5IQU5DRV9GUkFNRV9FTkFCTEUgfAogCQkgICAgIEZESV9SWF9QTExfRU5BQkxFIHwKLQkJICAg ICBGRElfRFBfUE9SVF9XSURUSChpbnRlbF9jcnRjLT5jb25maWctPmZkaV9sYW5lcyk7CisJCSAg ICAgRkRJX0RQX1BPUlRfV0lEVEgocGlwZV9jb25maWctPmZkaV9sYW5lcyk7CiAJSTkxNV9XUklU RShfRkRJX1JYQV9DVEwsIHJ4X2N0bF92YWwpOwogCVBPU1RJTkdfUkVBRChfRkRJX1JYQV9DVEwp OwogCXVkZWxheSgyMjApOwpAQCAtNDU3LDggKzQ1OCw4IEBAIHZvaWQgaHN3X2ZkaV9saW5rX3Ry YWluKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlJOTE1X1dSSVRFKF9GRElfUlhBX0NUTCwgcnhf Y3RsX3ZhbCk7CiAKIAkvKiBDb25maWd1cmUgUG9ydCBDbG9jayBTZWxlY3QgKi8KLQlJOTE1X1dS SVRFKFBPUlRfQ0xLX1NFTChQT1JUX0UpLCBpbnRlbF9jcnRjLT5jb25maWctPmRkaV9wbGxfc2Vs KTsKLQlXQVJOX09OKGludGVsX2NydGMtPmNvbmZpZy0+ZGRpX3BsbF9zZWwgIT0gUE9SVF9DTEtf U0VMX1NQTEwpOworCUk5MTVfV1JJVEUoUE9SVF9DTEtfU0VMKFBPUlRfRSksIHBpcGVfY29uZmln LT5kZGlfcGxsX3NlbCk7CisJV0FSTl9PTihwaXBlX2NvbmZpZy0+ZGRpX3BsbF9zZWwgIT0gUE9S VF9DTEtfU0VMX1NQTEwpOwogCiAJLyogU3RhcnQgdGhlIHRyYWluaW5nIGl0ZXJhdGluZyB0aHJv dWdoIGF2YWlsYWJsZSB2b2x0YWdlcyBhbmQgZW1waGFzaXMsCiAJICogdGVzdGluZyBlYWNoIHZh bHVlIHR3aWNlLiAqLwpAQCAtNDc2LDcgKzQ3Nyw3IEBAIHZvaWQgaHN3X2ZkaV9saW5rX3RyYWlu KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJICogcG9ydCByZXZlcnNhbCBiaXQgKi8KIAkJSTkx NV9XUklURShERElfQlVGX0NUTChQT1JUX0UpLAogCQkJICAgRERJX0JVRl9DVExfRU5BQkxFIHwK LQkJCSAgICgoaW50ZWxfY3J0Yy0+Y29uZmlnLT5mZGlfbGFuZXMgLSAxKSA8PCAxKSB8CisJCQkg ICAoKHBpcGVfY29uZmlnLT5mZGlfbGFuZXMgLSAxKSA8PCAxKSB8CiAJCQkgICBERElfQlVGX1RS QU5TX1NFTEVDVChpIC8gMikpOwogCQlQT1NUSU5HX1JFQUQoRERJX0JVRl9DVEwoUE9SVF9FKSk7 CiAKQEAgLTE0ODEsMTUgKzE0ODIsMTYgQEAgYm9vbCBpbnRlbF9kZGlfcGxsX3NlbGVjdChzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIHZvaWQgaW50ZWxfZGRpX3NldF9waXBlX3NldHRp bmdzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq aW50ZWxfZW5jb2RlciA9IGludGVsX2RkaV9nZXRfY3J0Y19lbmNvZGVyKGNydGMpOwotCWVudW0g dHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGludGVsX2NydGMtPmNvbmZpZy0+Y3B1X3RyYW5z Y29kZXI7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0KKwkJdG9faW50 ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CisJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2Nv ZGVyID0gcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyOwogCWludCB0eXBlID0gaW50ZWxfZW5j b2Rlci0+dHlwZTsKIAl1aW50MzJfdCB0ZW1wOwogCiAJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVU X0RJU1BMQVlQT1JUIHx8IHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCB8fCB0eXBlID09IElOVEVM X09VVFBVVF9EUF9NU1QpIHsKIAkJdGVtcCA9IFRSQU5TX01TQV9TWU5DX0NMSzsKLQkJc3dpdGNo IChpbnRlbF9jcnRjLT5jb25maWctPnBpcGVfYnBwKSB7CisJCXN3aXRjaCAocGlwZV9jb25maWct PnBpcGVfYnBwKSB7CiAJCWNhc2UgMTg6CiAJCQl0ZW1wIHw9IFRSQU5TX01TQV82X0JQQzsKIAkJ CWJyZWFrOwpAQCAtMTUwOSwxMiArMTUxMSwxMiBAQCB2b2lkIGludGVsX2RkaV9zZXRfcGlwZV9z ZXR0aW5ncyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJfQogfQogCi12b2lkIGludGVsX2RkaV9z ZXRfdmNfcGF5bG9hZF9hbGxvYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgc3RhdGUpCit2 b2lkIGludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CisJCQkJICAgIGVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciwKKwkJCQkgICAgYm9vbCBz dGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Yyk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWVudW0gdHJhbnNj b2RlciBjcHVfdHJhbnNjb2RlciA9IGludGVsX2NydGMtPmNvbmZpZy0+Y3B1X3RyYW5zY29kZXI7 CiAJdWludDMyX3QgdGVtcDsKIAl0ZW1wID0gSTkxNV9SRUFEKFRSQU5TX0RESV9GVU5DX0NUTChj cHVfdHJhbnNjb2RlcikpOwogCWlmIChzdGF0ZSA9PSB0cnVlKQpAQCAtMTUzMiw3ICsxNTM0LDgg QEAgdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3RyYW5zY29kZXJfZnVuYyhzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCWVudW0gcGlwZSBw aXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKLQllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIg PSBpbnRlbF9jcnRjLT5jb25maWctPmNwdV90cmFuc2NvZGVyOworCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZyA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwor CWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IHBpcGVfY29uZmlnLT5jcHVfdHJhbnNj b2RlcjsKIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGludGVs X2VuY29kZXIpOwogCWludCB0eXBlID0gaW50ZWxfZW5jb2Rlci0+dHlwZTsKIAl1aW50MzJfdCB0 ZW1wOwpAQCAtMTU0MSw3ICsxNTQ0LDcgQEAgdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3RyYW5zY29k ZXJfZnVuYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJdGVtcCA9IFRSQU5TX0RESV9GVU5DX0VO QUJMRTsKIAl0ZW1wIHw9IFRSQU5TX0RESV9TRUxFQ1RfUE9SVChwb3J0KTsKIAotCXN3aXRjaCAo aW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX2JwcCkgeworCXN3aXRjaCAocGlwZV9jb25maWctPnBp cGVfYnBwKSB7CiAJY2FzZSAxODoKIAkJdGVtcCB8PSBUUkFOU19ERElfQlBDXzY7CiAJCWJyZWFr OwpAQCAtMTU1OCw5ICsxNTYxLDkgQEAgdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3RyYW5zY29kZXJf ZnVuYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCUJVRygpOwogCX0KIAotCWlmIChpbnRlbF9j cnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfUFZT WU5DKQorCWlmIChwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01P REVfRkxBR19QVlNZTkMpCiAJCXRlbXAgfD0gVFJBTlNfRERJX1BWU1lOQzsKLQlpZiAoaW50ZWxf Y3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BI U1lOQykKKwlpZiAocGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9N T0RFX0ZMQUdfUEhTWU5DKQogCQl0ZW1wIHw9IFRSQU5TX0RESV9QSFNZTkM7CiAKIAlpZiAoY3B1 X3RyYW5zY29kZXIgPT0gVFJBTlNDT0RFUl9FRFApIHsKQEAgLTE1NzEsOCArMTU3NCw4IEBAIHZv aWQgaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoc3RydWN0IGRybV9jcnRjICpjcnRj KQogCQkJICogdXNpbmcgbW90aW9uIGJsdXIgbWl0aWdhdGlvbiAod2hpY2ggd2UgZG9uJ3QKIAkJ CSAqIHN1cHBvcnQpLiAqLwogCQkJaWYgKElTX0hBU1dFTEwoZGV2KSAmJgotCQkJICAgIChpbnRl bF9jcnRjLT5jb25maWctPnBjaF9wZml0LmVuYWJsZWQgfHwKLQkJCSAgICAgaW50ZWxfY3J0Yy0+ Y29uZmlnLT5wY2hfcGZpdC5mb3JjZV90aHJ1KSkKKwkJCSAgICAocGlwZV9jb25maWctPnBjaF9w Zml0LmVuYWJsZWQgfHwKKwkJCSAgICAgcGlwZV9jb25maWctPnBjaF9wZml0LmZvcmNlX3RocnUp KQogCQkJCXRlbXAgfD0gVFJBTlNfRERJX0VEUF9JTlBVVF9BX09OT0ZGOwogCQkJZWxzZQogCQkJ CXRlbXAgfD0gVFJBTlNfRERJX0VEUF9JTlBVVF9BX09OOwpAQCAtMTU5MCwxNCArMTU5MywxNCBA QCB2b2lkIGludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKIAl9CiAKIAlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewotCQlpZiAoaW50 ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfaGRtaV9zaW5rKQorCQlpZiAocGlwZV9jb25maWctPmhhc19o ZG1pX3NpbmspCiAJCQl0ZW1wIHw9IFRSQU5TX0RESV9NT0RFX1NFTEVDVF9IRE1JOwogCQllbHNl CiAJCQl0ZW1wIHw9IFRSQU5TX0RESV9NT0RFX1NFTEVDVF9EVkk7CiAKIAl9IGVsc2UgaWYgKHR5 cGUgPT0gSU5URUxfT1VUUFVUX0FOQUxPRykgewogCQl0ZW1wIHw9IFRSQU5TX0RESV9NT0RFX1NF TEVDVF9GREk7Ci0JCXRlbXAgfD0gKGludGVsX2NydGMtPmNvbmZpZy0+ZmRpX2xhbmVzIC0gMSkg PDwgMTsKKwkJdGVtcCB8PSAocGlwZV9jb25maWctPmZkaV9sYW5lcyAtIDEpIDw8IDE7CiAKIAl9 IGVsc2UgaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0RJU1BMQVlQT1JUIHx8CiAJCSAgIHR5cGUg PT0gSU5URUxfT1VUUFVUX0VEUCkgewpAQCAtMTc0NywxNyArMTc1MCwxOSBAQCB2b2lkIGludGVs X2RkaV9lbmFibGVfcGlwZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRl OwogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gaW50ZWxfZGRpX2dldF9j cnRjX2VuY29kZXIoY3J0Yyk7CiAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kZGlfZ2V0X2VuY29k ZXJfcG9ydChpbnRlbF9lbmNvZGVyKTsKLQllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIg PSBpbnRlbF9jcnRjLT5jb25maWctPmNwdV90cmFuc2NvZGVyOworCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZyA9CisJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUp OworCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IHBpcGVfY29uZmlnLT5jcHVfdHJh bnNjb2RlcjsKIAogCWlmIChjcHVfdHJhbnNjb2RlciAhPSBUUkFOU0NPREVSX0VEUCkKIAkJSTkx NV9XUklURShUUkFOU19DTEtfU0VMKGNwdV90cmFuc2NvZGVyKSwKIAkJCSAgIFRSQU5TX0NMS19T RUxfUE9SVChwb3J0KSk7CiB9CiAKLXZvaWQgaW50ZWxfZGRpX2Rpc2FibGVfcGlwZV9jbG9jayhz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKK3ZvaWQgaW50ZWxfZGRpX2Rpc2FibGVfcGlw ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKKwkJCQkgIGVudW0gdHJhbnNj b2RlciBjcHVfdHJhbnNjb2RlcikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBpbnRlbF9jcnRjLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7Ci0JZW51bSB0cmFuc2NvZGVy IGNwdV90cmFuc2NvZGVyID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKIAog CWlmIChjcHVfdHJhbnNjb2RlciAhPSBUUkFOU0NPREVSX0VEUCkKIAkJSTkxNV9XUklURShUUkFO U19DTEtfU0VMKGNwdV90cmFuc2NvZGVyKSwKQEAgLTE5MDIsNyArMTkwNyw4IEBAIHN0YXRpYyB2 b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyKQogCX0KIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Bvc3RfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKK3N0YXRpYyB2b2lkIGludGVsX2RkaV9wb3N0 X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCisJCQkJICAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciA9ICZpbnRlbF9lbmNvZGVyLT5iYXNlOwogCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBlbmNvZGVyLT5kZXY7CkBAIC0xOTQ1LDEwICsxOTUxLDExIEBAIHN0YXRpYyB2b2lkIGlu dGVsX2VuYWJsZV9kZGkoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCiB7CiAJ c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmludGVsX2VuY29kZXItPmJhc2U7CiAJc3Ry dWN0IGRybV9jcnRjICpjcnRjID0gZW5jb2Rlci0+Y3J0YzsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGVuY29kZXItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwogCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVy X3BvcnQoaW50ZWxfZW5jb2Rlcik7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnID0KKwkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAJaW50IHR5cGUgPSBp bnRlbF9lbmNvZGVyLT50eXBlOwogCiAJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0hETUkpIHsK QEAgLTE5NzAsMjUgKzE5NzcsMjggQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2RkaShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKIAogCQlpbnRlbF9lZHBfYmFja2xpZ2h0 X29uKGludGVsX2RwKTsKIAkJaW50ZWxfcHNyX2VuYWJsZShpbnRlbF9kcCk7Ci0JCWludGVsX2Vk cF9kcnJzX2VuYWJsZShpbnRlbF9kcCk7CisKKwkJaWYgKHBpcGVfY29uZmlnLT5oYXNfZHJycykK KwkJCWludGVsX2VkcF9kcnJzX2VuYWJsZShpbnRlbF9kcCk7CisJCWVsc2UKKwkJCURSTV9ERUJV R19LTVMoIlBhbmVsIGRvZXNuJ3Qgc3VwcG9ydCBEUlJTXG4iKTsKIAl9CiAKLQlpZiAoaW50ZWxf Y3J0Yy0+Y29uZmlnLT5oYXNfYXVkaW8pIHsKKwlpZiAocGlwZV9jb25maWctPmhhc19hdWRpbykg ewogCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0FVRElP KTsKIAkJaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKGludGVsX2VuY29kZXIpOwogCX0KIH0KIAot c3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9kZGkoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIpCitzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqaW50ZWxfZW5jb2RlciwKKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZW5j b2Rlci0+YmFzZTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBlbmNvZGVyLT5jcnRjOwotCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlpbnQg dHlwZSA9IGludGVsX2VuY29kZXItPnR5cGU7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVu Y29kZXItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwogCi0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+aGFzX2F1ZGlvKSB7CisJaWYg KHBpcGVfY29uZmlnLT5oYXNfYXVkaW8pIHsKIAkJaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShp bnRlbF9lbmNvZGVyKTsKIAkJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VS X0RPTUFJTl9BVURJTyk7CiAJfQpAQCAtMTk5Niw3ICsyMDA2LDggQEAgc3RhdGljIHZvaWQgaW50 ZWxfZGlzYWJsZV9kZGkoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCiAJaWYg KHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewogCQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw ID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIpOwogCi0JCWludGVsX2VkcF9kcnJzX2Rpc2FibGUo aW50ZWxfZHApOworCQlpZiAocGlwZV9jb25maWctPmhhc19kcnJzKQorCQkJaW50ZWxfZWRwX2Ry cnNfZGlzYWJsZShpbnRlbF9kcCk7CiAJCWludGVsX3Bzcl9kaXNhYmxlKGludGVsX2RwKTsKIAkJ aW50ZWxfZWRwX2JhY2tsaWdodF9vZmYoaW50ZWxfZHApOwogCX0KQEAgLTI1NDYsMTMgKzI1NTcs MTQgQEAgdm9pZCBpbnRlbF9kZGlfcHJlcGFyZV9saW5rX3JldHJhaW4oc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQogCXVkZWxheSg2MDApOwogfQogCi12b2lkIGludGVsX2RkaV9mZGlfZGlz YWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCit2b2lkIGludGVsX2RkaV9mZGlfZGlzYWJsZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xk X3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNydGMtPmRl di0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSBp bnRlbF9kZGlfZ2V0X2NydGNfZW5jb2RlcihjcnRjKTsKIAl1aW50MzJfdCB2YWw7CiAKLQlpbnRl bF9kZGlfcG9zdF9kaXNhYmxlKGludGVsX2VuY29kZXIpOworCWludGVsX2RkaV9wb3N0X2Rpc2Fi bGUoaW50ZWxfZW5jb2Rlciwgb2xkX3N0YXRlKTsKIAogCXZhbCA9IEk5MTVfUkVBRChfRkRJX1JY QV9DVEwpOwogCXZhbCAmPSB+RkRJX1JYX0VOQUJMRTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwppbmRleCAzMTFhNGI0NGJlYmUuLjdiYzc4YjQ5ZjlmNCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNDk1Myw3ICs0OTUzLDkgQEAgc3RhdGljIHZvaWQgaGFz d2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCWxwdF9wY2hfZW5hYmxl KGNydGMpOwogCiAJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+ZHBfZW5jb2Rlcl9pc19tc3QpCi0J CWludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhjcnRjLCB0cnVlKTsKKwkJaW50ZWxfZGRp X3NldF92Y19wYXlsb2FkX2FsbG9jKGNydGMsCisJCQkJCSAgICAgICBwaXBlX2NvbmZpZy0+Y3B1 X3RyYW5zY29kZXIsCisJCQkJCSAgICAgICB0cnVlKTsKIAogCWFzc2VydF92YmxhbmtfZGlzYWJs ZWQoY3J0Yyk7CiAJZHJtX2NydGNfdmJsYW5rX29uKGNydGMpOwpAQCAtNDk5NCw3ICs0OTk2LDcg QEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAl1MzIgcmVnLCB0ZW1wOwogCiAJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0 YywgZW5jb2RlcikKLQkJZW5jb2Rlci0+ZGlzYWJsZShlbmNvZGVyKTsKKwkJZW5jb2Rlci0+ZGlz YWJsZShlbmNvZGVyLCBvbGRfc3RhdGUpOwogCiAJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsK IAlhc3NlcnRfdmJsYW5rX2Rpc2FibGVkKGNydGMpOwpAQCAtNTAwOCw3ICs1MDEwLDcgQEAgc3Rh dGljIHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAog CWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpCiAJCWlmIChlbmNv ZGVyLT5wb3N0X2Rpc2FibGUpCi0JCQllbmNvZGVyLT5wb3N0X2Rpc2FibGUoZW5jb2Rlcik7CisJ CQllbmNvZGVyLT5wb3N0X2Rpc2FibGUoZW5jb2Rlciwgb2xkX3N0YXRlKTsKIAogCWlmIChvbGRf c3RhdGUtPmhhc19wY2hfZW5jb2RlcikgewogCQlpcm9ubGFrZV9mZGlfZGlzYWJsZShjcnRjKTsK QEAgLTUwNDUsNyArNTA0Nyw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNy dGMsIGVuY29kZXIpIHsKIAkJaW50ZWxfb3ByZWdpb25fbm90aWZ5X2VuY29kZXIoZW5jb2Rlciwg ZmFsc2UpOwotCQllbmNvZGVyLT5kaXNhYmxlKGVuY29kZXIpOworCQllbmNvZGVyLT5kaXNhYmxl KGVuY29kZXIsIG9sZF9zdGF0ZSk7CiAJfQogCiAJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsK QEAgLTUwNTcsNyArNTA1OSw5IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlpbnRlbF9kaXNhYmxlX3BpcGUoaW50ZWxfY3J0Yywgb2xk X3N0YXRlKTsKIAogCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmRwX2VuY29kZXJfaXNfbXN0KQot CQlpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2MoY3J0YywgZmFsc2UpOworCQlpbnRlbF9k ZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2MoY3J0YywKKwkJCQkJICAgICAgIG9sZF9zdGF0ZS0+Y3B1 X3RyYW5zY29kZXIsCisJCQkJCSAgICAgICBmYWxzZSk7CiAKIAlpbnRlbF9kZGlfZGlzYWJsZV90 cmFuc2NvZGVyX2Z1bmMoZGV2X3ByaXYsIGNwdV90cmFuc2NvZGVyKTsKIApAQCAtNTA2OCwxNiAr NTA3MiwxNiBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAJZWxzZQogCQlNSVNTSU5HX0NBU0UoSU5URUxfSU5GTyhkZXYpLT5nZW4pOwog Ci0JaW50ZWxfZGRpX2Rpc2FibGVfcGlwZV9jbG9jayhpbnRlbF9jcnRjKTsKKwlpbnRlbF9kZGlf ZGlzYWJsZV9waXBlX2Nsb2NrKGludGVsX2NydGMsIG9sZF9zdGF0ZS0+Y3B1X3RyYW5zY29kZXIp OwogCiAJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7CiAJCWxwdF9k aXNhYmxlX3BjaF90cmFuc2NvZGVyKGRldl9wcml2KTsKLQkJaW50ZWxfZGRpX2ZkaV9kaXNhYmxl KGNydGMpOworCQlpbnRlbF9kZGlfZmRpX2Rpc2FibGUoY3J0Yywgb2xkX3N0YXRlKTsKIAl9CiAK IAlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQogCQlpZiAoZW5j b2Rlci0+cG9zdF9kaXNhYmxlKQotCQkJZW5jb2Rlci0+cG9zdF9kaXNhYmxlKGVuY29kZXIpOwor CQkJZW5jb2Rlci0+cG9zdF9kaXNhYmxlKGVuY29kZXIsIG9sZF9zdGF0ZSk7CiB9CiAKIHN0YXRp YyB2b2lkIGk5eHhfcGZpdF9lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCkBAIC01OTE0 LDcgKzU5MTgsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldiwgcGlwZSk7CiAKIAlmb3JfZWFj aF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQotCQllbmNvZGVyLT5kaXNhYmxl KGVuY29kZXIpOworCQllbmNvZGVyLT5kaXNhYmxlKGVuY29kZXIsIG9sZF9zdGF0ZSk7CiAKIAlk cm1fY3J0Y192Ymxhbmtfb2ZmKGNydGMpOwogCWFzc2VydF92YmxhbmtfZGlzYWJsZWQoY3J0Yyk7 CkBAIC01OTI1LDcgKzU5MjksNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNfZGlzYWJsZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRj LCBlbmNvZGVyKQogCQlpZiAoZW5jb2Rlci0+cG9zdF9kaXNhYmxlKQotCQkJZW5jb2Rlci0+cG9z dF9kaXNhYmxlKGVuY29kZXIpOworCQkJZW5jb2Rlci0+cG9zdF9kaXNhYmxlKGVuY29kZXIsIG9s ZF9zdGF0ZSk7CiAKIAlpZiAoIWludGVsX3BpcGVfaGFzX3R5cGUoaW50ZWxfY3J0YywgSU5URUxf T1VUUFVUX0RTSSkpIHsKIAkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKQEAgLTE0NjcyLDEyICsx NDY3NiwxMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zYW5pdGl6ZV9lbmNvZGVyKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv cjsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CisJc3RydWN0 IGRybV9jcnRjICpjcnRjID0gZW5jb2Rlci0+YmFzZS5jcnRjOwogCiAJLyogV2UgbmVlZCB0byBj aGVjayBib3RoIGZvciBhIGNydGMgbGluayAobWVhbmluZyB0aGF0IHRoZQogCSAqIGVuY29kZXIg aXMgYWN0aXZlIGFuZCB0cnlpbmcgdG8gcmVhZCBmcm9tIGEgcGlwZSkgYW5kIHRoZQogCSAqIHBp cGUgaXRzZWxmIGJlaW5nIGFjdGl2ZS4gKi8KLQlib29sIGhhc19hY3RpdmVfY3J0YyA9IGVuY29k ZXItPmJhc2UuY3J0YyAmJgotCQl0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0YyktPmFj dGl2ZTsKKwlib29sIGhhc19hY3RpdmVfY3J0YyA9IGNydGMgJiYgdG9faW50ZWxfY3J0YyhjcnRj KS0+YWN0aXZlOwogCiAJaWYgKGVuY29kZXItPmNvbm5lY3RvcnNfYWN0aXZlICYmICFoYXNfYWN0 aXZlX2NydGMpIHsKIAkJRFJNX0RFQlVHX0tNUygiW0VOQ09ERVI6JWQ6JXNdIGhhcyBhY3RpdmUg Y29ubmVjdG9ycyBidXQgbm8gYWN0aXZlIHBpcGUhXG4iLApAQCAtMTQ2ODcsMTMgKzE0NjkxLDE1 IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nhbml0aXplX2VuY29kZXIoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCiAJCS8qIENvbm5lY3RvciBpcyBhY3RpdmUsIGJ1dCBoYXMgbm8gYWN0aXZl IHBpcGUuIFRoaXMgaXMKIAkJICogZmFsbG91dCBmcm9tIG91ciByZXN1bWUgcmVnaXN0ZXIgcmVz dG9yaW5nLiBEaXNhYmxlCiAJCSAqIHRoZSBlbmNvZGVyIG1hbnVhbGx5IGFnYWluLiAqLwotCQlp ZiAoZW5jb2Rlci0+YmFzZS5jcnRjKSB7CisJCWlmIChjcnRjKSB7CisJCQlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQorCQkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+ c3RhdGUpOwogCQkJRFJNX0RFQlVHX0tNUygiW0VOQ09ERVI6JWQ6JXNdIG1hbnVhbGx5IGRpc2Fi bGVkXG4iLAogCQkJCSAgICAgIGVuY29kZXItPmJhc2UuYmFzZS5pZCwKIAkJCQkgICAgICBlbmNv ZGVyLT5iYXNlLm5hbWUpOwotCQkJZW5jb2Rlci0+ZGlzYWJsZShlbmNvZGVyKTsKKwkJCWVuY29k ZXItPmRpc2FibGUoZW5jb2RlciwgcGlwZV9jb25maWcpOwogCQkJaWYgKGVuY29kZXItPnBvc3Rf ZGlzYWJsZSkKLQkJCQllbmNvZGVyLT5wb3N0X2Rpc2FibGUoZW5jb2Rlcik7CisJCQkJZW5jb2Rl ci0+cG9zdF9kaXNhYmxlKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKIAkJfQogCQllbmNvZGVyLT5i YXNlLmNydGMgPSBOVUxMOwogCQllbmNvZGVyLT5jb25uZWN0b3JzX2FjdGl2ZSA9IGZhbHNlOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggODNkZTM2YmZkZGMxLi5lZGExYjIyYzMxMTEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtMTQ5OSwxNyArMTQ5OSwxOSBAQCBmb3VuZDoKIHN0 YXRpYyB2b2lkIGlyb25sYWtlX3NldF9wbGxfY3B1X2VkcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQogewogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGln X3BvcnQoaW50ZWxfZHApOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhkaWdfcG9ydC0+YmFzZS5iYXNlLmNydGMpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBkaWdfcG9ydC0+YmFzZS5i YXNlLmNydGM7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9CisJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0 Yy0+c3RhdGUpOwogCXUzMiBkcGFfY3RsOwogCiAJRFJNX0RFQlVHX0tNUygiZURQIFBMTCBlbmFi bGUgZm9yIGNsb2NrICVkXG4iLAotCQkgICAgICBjcnRjLT5jb25maWctPnBvcnRfY2xvY2spOwor CQkgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayk7CiAJZHBhX2N0bCA9IEk5MTVfUkVBRChE UF9BKTsKIAlkcGFfY3RsICY9IH5EUF9QTExfRlJFUV9NQVNLOwogCi0JaWYgKGNydGMtPmNvbmZp Zy0+cG9ydF9jbG9jayA9PSAxNjIwMDApIHsKKwlpZiAocGlwZV9jb25maWctPnBvcnRfY2xvY2sg PT0gMTYyMDAwKSB7CiAJCS8qIEZvciBhIGxvbmcgdGltZSB3ZSd2ZSBjYXJyaWVkIGFyb3VuZCBh IElMSy1EZXZBIHcvYSBmb3IgdGhlCiAJCSAqIDE2ME1IeiBjbG9jay4gSWYgd2UncmUgcmVhbGx5 IHVubHVja3ksIGl0J3Mgc3RpbGwgcmVxdWlyZWQuCiAJCSAqLwpAQCAtMjEwOCw3ICsyMTEwLDgg QEAgc3RhdGljIHZvaWQgaXJvbmxha2VfZWRwX3BsbF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQogCXVkZWxheSgyMDApOwogfQogCi1zdGF0aWMgdm9pZCBpcm9ubGFrZV9lZHBfcGxsX29m ZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQorc3RhdGljIHZvaWQgaXJvbmxha2VfZWRwX3Bs bF9vZmYoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJCQkgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVs X2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwogCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YyA9IGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuY3J0YzsKQEAgLTIxMTcsNyArMjEyMCw3 IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2VkcF9wbGxfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApCiAJdTMyIGRwYV9jdGw7CiAKIAlhc3NlcnRfcGlwZV9kaXNhYmxlZChkZXZfcHJpdiwK LQkJCSAgICAgdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLT5jcHVfdHJhbnNjb2RlciwKKwkJ CSAgICAgcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyLAogCQkJICAgICB0b19pbnRlbF9jcnRj KGNydGMpLT5waXBlKTsKIAogCWRwYV9jdGwgPSBJOTE1X1JFQUQoRFBfQSk7CkBAIC0yMzA4LDEz ICsyMzExLDEzIEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2dldF9jb25maWcoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJfQogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2Rw KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQorc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJs ZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCSAgICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAg PSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKIAotCWlmIChjcnRjLT5jb25maWctPmhhc19h dWRpbykKKwlpZiAocGlwZV9jb25maWctPmhhc19hdWRpbykKIAkJaW50ZWxfYXVkaW9fY29kZWNf ZGlzYWJsZShlbmNvZGVyKTsKIAogCWlmIChIQVNfUFNSKGRldikgJiYgIUhBU19EREkoZGV2KSkK QEAgLTIzMzIsMjQgKzIzMzUsMjcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9kcChzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkJaW50ZWxfZHBfbGlua19kb3duKGludGVsX2Rw KTsKIH0KIAotc3RhdGljIHZvaWQgaWxrX3Bvc3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKK3N0YXRpYyB2b2lkIGlsa19wb3N0X2Rpc2FibGVfZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKQogewogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAo JmVuY29kZXItPmJhc2UpOwogCWVudW0gcG9ydCBwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApLT5wb3J0OwogCiAJaW50ZWxfZHBfbGlua19kb3duKGludGVsX2RwKTsKIAlpZiAocG9ydCA9 PSBQT1JUX0EpCi0JCWlyb25sYWtlX2VkcF9wbGxfb2ZmKGludGVsX2RwKTsKKwkJaXJvbmxha2Vf ZWRwX3BsbF9vZmYoaW50ZWxfZHAsIHBpcGVfY29uZmlnKTsKIH0KIAotc3RhdGljIHZvaWQgdmx2 X3Bvc3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2 b2lkIHZsdl9wb3N0X2Rpc2FibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJ CQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCiAJaW50 ZWxfZHBfbGlua19kb3duKGludGVsX2RwKTsKIH0KIAotc3RhdGljIHZvaWQgY2h2X3Bvc3RfZGlz YWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2b2lkIGNodl9w b3N0X2Rpc2FibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmRwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwpAQCAtNTI0OSw3 ICs1MjU1LDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IHJlZnJlc2hfcmF0ZSkKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlcjsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IE5VTEw7CiAJ c3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGRldl9wcml2LT5kcnJzLmRwOwotCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjb25maWcgPSBOVUxMOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjID0gTlVMTDsKIAl1MzIgcmVnLCB2YWw7CiAJZW51bSBkcnJzX3JlZnJlc2hfcmF0ZV90 eXBlIGluZGV4ID0gRFJSU19ISUdIX1JSOwpAQCAtNTI3OCw4ICs1MjgzLDYgQEAgc3RhdGljIHZv aWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHJl ZnJlc2hfcmF0ZSkKIAkJcmV0dXJuOwogCX0KIAotCWNvbmZpZyA9IGludGVsX2NydGMtPmNvbmZp ZzsKLQogCWlmIChkZXZfcHJpdi0+ZHJycy50eXBlIDwgU0VBTUxFU1NfRFJSU19TVVBQT1JUKSB7 CiAJCURSTV9ERUJVR19LTVMoIk9ubHkgU2VhbWxlc3MgRFJSUyBzdXBwb3J0ZWQuXG4iKTsKIAkJ cmV0dXJuOwpAQCAtNTM0NSwxNCArNTM0OCw2IEBAIHZvaWQgaW50ZWxfZWRwX2RycnNfZW5hYmxl KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNy dGMgPSBkaWdfcG9ydC0+YmFzZS5iYXNlLmNydGM7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwotCi0JaWYgKCFpbnRlbF9jcnRjLT5jb25maWct Pmhhc19kcnJzKSB7Ci0JCURSTV9ERUJVR19LTVMoIlBhbmVsIGRvZXNuJ3Qgc3VwcG9ydCBEUlJT XG4iKTsKLQkJcmV0dXJuOwotCX0KIAogCW11dGV4X2xvY2soJmRldl9wcml2LT5kcnJzLm11dGV4 KTsKIAlpZiAoV0FSTl9PTihkZXZfcHJpdi0+ZHJycy5kcCkpIHsKQEAgLTUzNzcsMTIgKzUzNzIs NiBAQCB2b2lkIGludGVsX2VkcF9kcnJzX2Rpc2FibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2Rw KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl OwotCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQo aW50ZWxfZHApOwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGRpZ19wb3J0LT5iYXNlLmJhc2Uu Y3J0YzsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Yyk7Ci0KLQlpZiAoIWludGVsX2NydGMtPmNvbmZpZy0+aGFzX2RycnMpCi0JCXJldHVybjsKIAog CW11dGV4X2xvY2soJmRldl9wcml2LT5kcnJzLm11dGV4KTsKIAlpZiAoIWRldl9wcml2LT5kcnJz LmRwKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCmluZGV4IDZlNGNjNTMzNGY0Ny4u NDk5MmM4MDI1NTIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9t c3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwpAQCAtMTAxLDcg KzEwMSw4IEBAIHN0YXRpYyBib29sIGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9tc3RfZGlz YWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2b2lkIGludGVs X21zdF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJc3RydWN0IGludGVsX2RwX21z dF9lbmNvZGVyICppbnRlbF9tc3QgPSBlbmNfdG9fbXN0KCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGludGVsX21zdC0+cHJpbWFy eTsKQEAgLTExOCw3ICsxMTksOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tc3RfZGlzYWJsZV9kcChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGludGVs X21zdF9wb3N0X2Rpc2FibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCitzdGF0 aWMgdm9pZCBpbnRlbF9tc3RfcG9zdF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAorCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykK IHsKIAlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19tc3Qo JmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0ID0gaW50ZWxfbXN0LT5wcmltYXJ5OwpAQCAtMTM2LDcgKzEzOCw4IEBAIHN0YXRpYyB2b2lk IGludGVsX21zdF9wb3N0X2Rpc2FibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIp CiAJaW50ZWxfZHAtPmFjdGl2ZV9tc3RfbGlua3MtLTsKIAlpbnRlbF9tc3QtPnBvcnQgPSBOVUxM OwogCWlmIChpbnRlbF9kcC0+YWN0aXZlX21zdF9saW5rcyA9PSAwKSB7Ci0JCWludGVsX2RpZ19w b3J0LT5iYXNlLnBvc3RfZGlzYWJsZSgmaW50ZWxfZGlnX3BvcnQtPmJhc2UpOworCQlpbnRlbF9k aWdfcG9ydC0+YmFzZS5wb3N0X2Rpc2FibGUoJmludGVsX2RpZ19wb3J0LT5iYXNlLAorCQkJCQkJ ICBwaXBlX2NvbmZpZyk7CiAJCWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJNX01PREVf RFBNU19PRkYpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggNTgyNDBlNjM2 MzBjLi5lYjg3ZjgyYjVhZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xNDEsOCAr MTQxLDkgQEAgc3RydWN0IGludGVsX2VuY29kZXIgewogCXZvaWQgKCpwcmVfZW5hYmxlKShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqKTsKIAl2b2lkICgqZW5hYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqKTsKIAl2b2lkICgqbW9kZV9zZXQpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyKTsKLQl2b2lkICgqZGlzYWJsZSkoc3RydWN0IGludGVsX2VuY29kZXIgKik7Ci0Jdm9pZCAo KnBvc3RfZGlzYWJsZSkoc3RydWN0IGludGVsX2VuY29kZXIgKik7CisJdm9pZCAoKmRpc2FibGUp KHN0cnVjdCBpbnRlbF9lbmNvZGVyICosIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICopOworCXZv aWQgKCpwb3N0X2Rpc2FibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCisJCQkgICAgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICopOwogCS8qIFJlYWQgb3V0IHRoZSBjdXJyZW50IGh3IHN0YXRl IG9mIHRoaXMgY29ubmVjdG9yLCByZXR1cm5pbmcgdHJ1ZSBpZgogCSAqIHRoZSBlbmNvZGVyIGlz IGFjdGl2ZS4gSWYgdGhlIGVuY29kZXIgaXMgZW5hYmxlZCBpdCBhbHNvIHNldCB0aGUgcGlwZQog CSAqIGl0IGlzIGNvbm5lY3RlZCB0byBpbiB0aGUgcGlwZSBwYXJhbWV0ZXIuICovCkBAIC05MTAs MTMgKzkxMSwxNCBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKHN0cnVj dCBkcm1fY3J0YyAqY3J0Yyk7CiB2b2lkIGludGVsX2RkaV9kaXNhYmxlX3RyYW5zY29kZXJfZnVu YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICAgIGVudW0gdHJh bnNjb2RlciBjcHVfdHJhbnNjb2Rlcik7CiB2b2lkIGludGVsX2RkaV9lbmFibGVfcGlwZV9jbG9j ayhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0Yyk7Ci12b2lkIGludGVsX2RkaV9kaXNhYmxl X3BpcGVfY2xvY2soc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMpOwordm9pZCBpbnRlbF9k ZGlfZGlzYWJsZV9waXBlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAorCQkJ CSAgZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyKTsKIGJvb2wgaW50ZWxfZGRpX3BsbF9z ZWxlY3Qoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKTsKIHZvaWQgaW50ZWxfZGRpX3NldF9waXBlX3NldHRpbmdzKHN0cnVj dCBkcm1fY3J0YyAqY3J0Yyk7CiB2b2lkIGludGVsX2RkaV9wcmVwYXJlX2xpbmtfcmV0cmFpbihz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwogYm9vbCBpbnRlbF9kZGlfY29ubmVjdG9yX2dl dF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpOwotdm9p ZCBpbnRlbF9kZGlfZmRpX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKK3ZvaWQgaW50 ZWxfZGRpX2ZkaV9kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKik7CiB2b2lkIGludGVsX2RkaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcp Owogc3RydWN0IGludGVsX2VuY29kZXIgKgpAQCAtOTI1LDcgKzkyNyw4IEBAIGludGVsX2RkaV9n ZXRfY3J0Y19uZXdfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7 CiB2b2lkIGludGVsX2RkaV9pbml0X2RwX2J1Zl9yZWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIpOwogdm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAogCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Ci12b2lk IGludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJv b2wgc3RhdGUpOwordm9pZCBpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2Moc3RydWN0IGRy bV9jcnRjICpjcnRjLAorCQkJCSAgICBlbnVtIHRyYW5zY29kZXIsIGJvb2wgc3RhdGUpOwogdm9p ZCBieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgbGV2 ZWwsCiAJCQkJZW51bSBwb3J0IHBvcnQsIGludCB0eXBlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k c2kuYwppbmRleCA1MTk2NjQyNmFkZGYuLjNmMjhiMDQ2NzUxYiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHNpLmMKQEAgLTQwOSw2ICs0MDksOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlX2Vu YWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9CisJCXRvX2ludGVsX2NydGNf c3RhdGUoaW50ZWxfY3J0Yy0+YmFzZS5zdGF0ZSk7CisJCiAJZW51bSBwaXBlIHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwogCWVudW0gcG9ydCBwb3J0OwogCXUzMiB0bXA7CkBAIC00MjIsNyArNDI1 LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCiAJSTkxNV9XUklURShEUExMKHBpcGUpLCB0bXApOwogCiAJLyogdXBkYXRl IHRoZSBodyBzdGF0ZSBmb3IgRFBMTCAqLwotCWludGVsX2NydGMtPmNvbmZpZy0+ZHBsbF9od19z dGF0ZS5kcGxsID0gRFBMTF9JTlRFR1JBVEVEX0NMT0NLX1ZMViB8CisJcGlwZV9jb25maWctPmRw bGxfaHdfc3RhdGUuZHBsbCA9IERQTExfSU5URUdSQVRFRF9DTE9DS19WTFYgfAogCQlEUExMX1JF RkFfQ0xLX0VOQUJMRV9WTFY7CiAKIAl0bXAgPSBJOTE1X1JFQUQoRFNQQ0xLX0dBVEVfRCk7CkBA IC00NTQsNyArNDU3LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2VuYWJsZV9ub3Aoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJICovCiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2Rz aV9wcmVfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2b2lk IGludGVsX2RzaV9wcmVfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJ CQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgaW50 ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKIAll bnVtIHBvcnQgcG9ydDsKQEAgLTU1Niw3ICs1NjAsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lf Y2xlYXJfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCXZsdl9k aXNhYmxlX2RzaV9wbGwoZW5jb2Rlcik7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2RzaV9wb3N0 X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMgdm9pZCBpbnRl bF9kc2lfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmNvZGVyLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CiAJ c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+ YmFzZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jCmluZGV4IGVjZTViZDc1NGY4NS4uNGRhYzRj ZTU5NjNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYwpAQCAtMTY2LDcgKzE2Niw4IEBAIHN0 YXRpYyB2b2lkIGludGVsX2R2b19nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IHBpcGVf Y29uZmlnLT5wb3J0X2Nsb2NrOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2R2byhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVf ZHZvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJICAgICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGVuY29kZXItPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxf ZHZvICppbnRlbF9kdm8gPSBlbmNfdG9fZHZvKGVuY29kZXIpOwpAQCAtMTgyLDEzICsxODMsMTQg QEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2R2byhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmNvZGVyLT5i YXNlLmRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2R2byAqaW50ZWxfZHZvID0gZW5j X3RvX2R2byhlbmNvZGVyKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBlbmNvZGVy LT5iYXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9IGNydGMt PnN0YXRlOwogCXUzMiBkdm9fcmVnID0gaW50ZWxfZHZvLT5kZXYuZHZvX3JlZzsKIAl1MzIgdGVt cCA9IEk5MTVfUkVBRChkdm9fcmVnKTsKIAogCWludGVsX2R2by0+ZGV2LmRldl9vcHMtPm1vZGVf c2V0KCZpbnRlbF9kdm8tPmRldiwKLQkJCQkJICZjcnRjLT5jb25maWctPmJhc2UubW9kZSwKLQkJ CQkJICZjcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZSk7CisJCQkJCSAmcGlwZV9jb25m aWctPm1vZGUsCisJCQkJCSAmcGlwZV9jb25maWctPmFkanVzdGVkX21vZGUpOwogCiAJSTkxNV9X UklURShkdm9fcmVnLCB0ZW1wIHwgRFZPX0VOQUJMRSk7CiAJSTkxNV9SRUFEKGR2b19yZWcpOwpA QCAtMjAxLDcgKzIwMyw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2R2b19kcG1zKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsIGludCBtb2RlKQogewogCXN0cnVjdCBpbnRlbF9kdm8gKmlu dGVsX2R2byA9IGludGVsX2F0dGFjaGVkX2R2byhjb25uZWN0b3IpOwogCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YzsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnOwogCiAJLyogZHZvIHN1 cHBvcnRzIG9ubHkgMiBkcG1zIHN0YXRlcy4gKi8KIAlpZiAobW9kZSAhPSBEUk1fTU9ERV9EUE1T X09OKQpAQCAtMjIyLDggKzIyMyw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2R2b19kcG1zKHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGludCBtb2RlKQogCS8qIFdlIGNhbGwgY29ubmVj dG9yIGRwbXMgbWFudWFsbHkgYmVsb3cgaW4gY2FzZSBwaXBlIGRwbXMgZG9lc24ndAogCSAqIGNo YW5nZSBkdWUgdG8gY2xvbmluZy4gKi8KIAlpZiAobW9kZSA9PSBEUk1fTU9ERV9EUE1TX09OKSB7 Ci0JCWNvbmZpZyA9IHRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZzsKLQogCQlpbnRlbF9kdm8t PmJhc2UuY29ubmVjdG9yc19hY3RpdmUgPSB0cnVlOwogCiAJCWludGVsX2NydGNfdXBkYXRlX2Rw bXMoY3J0Yyk7CkBAIC0yOTYsNyArMjk1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHZvX3ByZV9l bmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmFkanVzdGVkX21vZGUgPSAmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Yy0+YmFzZS5zdGF0ZS0+ YWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgaW50ZWxfZHZvICppbnRlbF9kdm8gPSBlbmNfdG9fZHZv KGVuY29kZXIpOwogCWludCBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1MzIgZHZvX3ZhbDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkbWkuYwppbmRleCBkMDRlNmRjOTdmZTUuLjc2OTk0ZGMwMzNhMyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwpAQCAtODY2LDcgKzg2Niw4IEBAIHN0YXRpYyB2b2lk IHZsdl9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKIH0KIAot c3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKQorc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAorCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKQEAgLTg3 NSw3ICs4NzYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2hkbWkoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCiAJdTMyIHRlbXA7CiAJdTMyIGVuYWJsZV9iaXRzID0gU0RWT19F TkFCTEUgfCBTRFZPX0FVRElPX0VOQUJMRTsKIAotCWlmIChjcnRjLT5jb25maWctPmhhc19hdWRp bykKKwlpZiAocGlwZV9jb25maWctPmhhc19hdWRpbykKIAkJaW50ZWxfYXVkaW9fY29kZWNfZGlz YWJsZShlbmNvZGVyKTsKIAogCXRlbXAgPSBJOTE1X1JFQUQoaW50ZWxfaGRtaS0+aGRtaV9yZWcp OwpAQCAtODgzLDggKzg4NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfaGRtaShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkvKiBIVyB3b3JrYXJvdW5kIGZvciBJQlgsIHdl IG5lZWQgdG8gbW92ZSB0aGUgcG9ydCB0byB0cmFuc2NvZGVyIEEKIAkgKiBiZWZvcmUgZGlzYWJs aW5nIGl0LiAqLwogCWlmIChIQVNfUENIX0lCWChkZXYpKSB7Ci0JCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YyA9IGVuY29kZXItPmJhc2UuY3J0YzsKLQkJaW50IHBpcGUgPSBjcnRjID8gdG9faW50ZWxf Y3J0YyhjcnRjKS0+cGlwZSA6IC0xOworCQlpbnQgcGlwZSA9IGNydGMgPyBjcnRjLT5waXBlIDog LTE7CiAKIAkJaWYgKHRlbXAgJiBTRFZPX1BJUEVfQl9TRUxFQ1QpIHsKIAkJCXRlbXAgJj0gflNE Vk9fUElQRV9CX1NFTEVDVDsKQEAgLTE0MjYsNyArMTQyNiw4IEBAIHN0YXRpYyB2b2lkIGNodl9o ZG1pX3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPmRwaW9fbG9jayk7CiB9CiAKLXN0YXRpYyB2b2lkIHZsdl9oZG1p X3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2b2lk IHZsdl9oZG1pX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJ CQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5jb2Rlci0+YmFzZS5kZXYt PmRldl9wcml2YXRlOwpAQCAtMTQ0Miw3ICsxNDQzLDggQEAgc3RhdGljIHZvaWQgdmx2X2hkbWlf cG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPmRwaW9fbG9jayk7CiB9CiAKLXN0YXRpYyB2b2lkIGNodl9oZG1pX3Bvc3Rf ZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2b2lkIGNodl9o ZG1pX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCQkgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICpkcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwpAQCAtMTQ4Myw4ICsxNDg1 LDEwIEBAIHN0YXRpYyB2b2lkIGNodl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9CiAJCXRvX2ludGVs X2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcgPQorCQl0b19pbnRlbF9jcnRjX3N0YXRlKGludGVsX2NydGMtPmJhc2Uuc3RhdGUp OwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmludGVsX2Ny dGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmcGlwZV9jb25maWctPmJhc2UuYWRq dXN0ZWRfbW9kZTsKIAllbnVtIGRwaW9fY2hhbm5lbCBjaCA9IHZsdl9kcG9ydF90b19jaGFubmVs KGRwb3J0KTsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJaW50IGRhdGEsIGksIHN0 YWdnZXI7CkBAIC0xNjM2LDcgKzE2NDAsNyBAQCBzdGF0aWMgdm9pZCBjaHZfaGRtaV9wcmVfZW5h YmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCW11dGV4X3VubG9jaygmZGV2X3By aXYtPmRwaW9fbG9jayk7CiAKIAlpbnRlbF9oZG1pLT5zZXRfaW5mb2ZyYW1lcygmZW5jb2Rlci0+ YmFzZSwKLQkJCQkgICBpbnRlbF9jcnRjLT5jb25maWctPmhhc19oZG1pX3NpbmssCisJCQkJICAg cGlwZV9jb25maWctPmhhc19oZG1pX3NpbmssCiAJCQkJICAgYWRqdXN0ZWRfbW9kZSk7CiAKIAlp bnRlbF9lbmFibGVfaGRtaShlbmNvZGVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYwppbmRl eCA5YTlkZjBmYTY3ZjkuLjhhYWFhMjQxNDRmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHZkcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMu YwpAQCAtMTM5LDggKzEzOSwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfZW5hYmxlX2x2ZHMo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGVuY29kZXItPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnID0KKwkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5iYXNlLnN0YXRlKTsKIAljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjLT5jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21v ZGU7CiAJaW50IHBpcGUgPSBjcnRjLT5waXBlOwogCXUzMiB0ZW1wOwogCkBAIC0xNjgsNyArMTcw LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlX2VuYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQogCiAJLyogc2V0IHRoZSBjb3JyZXNwb25zZGluZyBMVkRTX0JPUkRFUiBi aXQgKi8KIAl0ZW1wICY9IH5MVkRTX0JPUkRFUl9FTkFCTEU7Ci0JdGVtcCB8PSBjcnRjLT5jb25m aWctPmdtY2hfcGZpdC5sdmRzX2JvcmRlcl9iaXRzOworCXRlbXAgfD0gcGlwZV9jb25maWctPmdt Y2hfcGZpdC5sdmRzX2JvcmRlcl9iaXRzOwogCS8qIFNldCB0aGUgQjAtQjMgZGF0YSBwYWlycyBj b3JyZXNwb25kaW5nIHRvIHdoZXRoZXIgd2UncmUgZ29pbmcgdG8KIAkgKiBzZXQgdGhlIERQTExz IGZvciBkdWFsLWNoYW5uZWwgbW9kZSBvciBub3QuCiAJICovCkBAIC0xOTEsNyArMTkzLDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfcHJlX2VuYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA9PSA0KSB7CiAJCS8qIEJzcGVjIHdv cmRpbmcgc3VnZ2VzdHMgdGhhdCBMVkRTIHBvcnQgZGl0aGVyaW5nIG9ubHkgZXhpc3RzCiAJCSAq IGZvciAxOGJwcCBwYW5lbHMuICovCi0JCWlmIChjcnRjLT5jb25maWctPmRpdGhlciAmJiBjcnRj LT5jb25maWctPnBpcGVfYnBwID09IDE4KQorCQlpZiAocGlwZV9jb25maWctPmRpdGhlciAmJiBw aXBlX2NvbmZpZy0+cGlwZV9icHAgPT0gMTgpCiAJCQl0ZW1wIHw9IExWRFNfRU5BQkxFX0RJVEhF UjsKIAkJZWxzZQogCQkJdGVtcCAmPSB+TFZEU19FTkFCTEVfRElUSEVSOwpAQCAtMjM1LDcgKzIz Nyw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQogCWludGVsX3BhbmVsX2VuYWJsZV9iYWNrbGlnaHQoaW50ZWxfY29ubmVjdG9y KTsKIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQorc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9sdmRzKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAorCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5k ZXY7CiAJc3RydWN0IGludGVsX2x2ZHNfZW5jb2RlciAqbHZkc19lbmNvZGVyID0gdG9fbHZkc19l bmNvZGVyKCZlbmNvZGVyLT5iYXNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nkdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwppbmRleCAw YTA2MjU3NjFmNDIuLjZhNjgwOThmOGIwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwpA QCAtMTQyNSw3ICsxNDI1LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfc2R2b19nZXRfY29uZmlnKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCSAgICAgcGlwZV9jb25maWctPnBpeGVsX211 bHRpcGxpZXIsIGVuY29kZXJfcGl4ZWxfbXVsdGlwbGllcik7CiB9CiAKLXN0YXRpYyB2b2lkIGlu dGVsX2Rpc2FibGVfc2R2byhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2 b2lkIGludGVsX2Rpc2FibGVfc2R2byhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJ CSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5jb2Rlci0+YmFzZS5kZXYtPmRldl9wcml2 YXRlOwogCXN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvID0gdG9fc2R2byhlbmNvZGVyKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF90di5jCmluZGV4IGI0YWViMjU2MTI4Zi4uOTgxNmE5Zjg4ZmY1IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3R2LmMKQEAgLTg2Myw3ICs4NjMsOCBAQCBpbnRlbF9lbmFibGVf dHYoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB9CiAKIHN0YXRpYyB2b2lkCi1pbnRl bF9kaXNhYmxlX3R2KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQoraW50ZWxfZGlzYWJs ZV90dihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rl ci0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKLS0gCjIuMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=