From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 1/2] drm/i915: Use intel_ types more consistently for watermark code Date: Thu, 6 Dec 2018 16:54:00 -0800 Message-ID: <20181207005401.13988-2-matthew.d.roper@intel.com> References: <20181207005401.13988-1-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id B82A16E69D for ; Fri, 7 Dec 2018 00:54:48 +0000 (UTC) In-Reply-To: <20181207005401.13988-1-matthew.d.roper@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 VHJ5IHRvIGJlIG1vcmUgY29uc2lzdGVudCBhYm91dCBpbnRlbF8qIHR5cGVzIHJhdGhlciB0aGFu IGRybV8qIHR5cGVzCmZvciBsb3dlci1sZXZlbCBkcml2ZXIgZnVuY3Rpb25zLgoKU2lnbmVkLW9m Zi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgIDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAzMiArKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggICAgIHwgIDEwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAg ICAgfCAyNTAgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hh bmdlZCwgMTM0IGluc2VydGlvbnMoKyksIDE2MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAppbmRleCAwNjg5ZTY3Yzk2NmUuLjc0NjlhNzc4NTI1MyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCkBAIC0yODEsOCArMjgxLDcgQEAgc3RydWN0IGRybV9pOTE1X2Rpc3BsYXlfZnVu Y3MgewogCWludCAoKmdldF9maWZvX3NpemUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkJCSAgICAgZW51bSBpOXh4X3BsYW5lX2lkIGk5eHhfcGxhbmUpOwogCWludCAoKmNv bXB1dGVfcGlwZV93bSkoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSk7Ci0JaW50ICgq Y29tcHV0ZV9pbnRlcm1lZGlhdGVfd20pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAg ICAgIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAorCWludCAoKmNvbXB1dGVfaW50ZXJt ZWRpYXRlX3dtKShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkJCQkgICAgICAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKm5ld3N0YXRlKTsKIAl2b2lkICgqaW5pdGlhbF93YXRlcm1h cmtzKShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKTsKQEAgLTI5MCw3ICsyODksNyBAQCBzdHJ1Y3QgZHJtX2k5 MTVfZGlzcGxheV9mdW5jcyB7CiAJCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRl KTsKIAl2b2lkICgqb3B0aW1pemVfd2F0ZXJtYXJrcykoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUsCiAJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpOwotCWlu dCAoKmNvbXB1dGVfZ2xvYmFsX3dhdGVybWFya3MpKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSk7CisJaW50ICgqY29tcHV0ZV9nbG9iYWxfd2F0ZXJtYXJrcykoc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUpOwogCXZvaWQgKCp1cGRhdGVfd20pKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjKTsKIAlpbnQgKCptb2Rlc2V0X2NhbGNfY2RjbGspKHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSk7CiAJLyogUmV0dXJucyB0aGUgYWN0aXZlIHN0YXRlIG9mIHRoZSBjcnRjLCBh bmQgaWYgdGhlIGNydGMgaXMgYWN0aXZlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CmluZGV4IDA3Yzg2MTg4NGM3MC4uZGI2MDA0YTg4M2M3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCkBAIC0xMDY2MSwxMiArMTA2NjEsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9j cnRjX2Rlc3Ryb3koc3RydWN0IGRybV9jcnRjICpjcnRjKQogICoKICAqIFJldHVybnMgdHJ1ZSBv ciBmYWxzZS4KICAqLwotc3RhdGljIGJvb2wgaW50ZWxfd21fbmVlZF91cGRhdGUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCi0JCQkJIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQorc3Rh dGljIGJvb2wgaW50ZWxfd21fbmVlZF91cGRhdGUoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpj dXIsCisJCQkJIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3KQogewotCXN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSAqbmV3ID0gdG9faW50ZWxfcGxhbmVfc3RhdGUoc3RhdGUpOwotCXN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqY3VyID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPnN0 YXRlKTsKLQogCS8qIFVwZGF0ZSB3YXRlcm1hcmtzIG9uIHRpbGluZyBvciBzaXplIGNoYW5nZXMu ICovCiAJaWYgKG5ldy0+YmFzZS52aXNpYmxlICE9IGN1ci0+YmFzZS52aXNpYmxlKQogCQlyZXR1 cm4gdHJ1ZTsKQEAgLTEwNzc1LDcgKzEwNzcyLDggQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19j YWxjX2NoYW5nZXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXQK IAkJLyogbXVzdCBkaXNhYmxlIGN4c3IgYXJvdW5kIHBsYW5lIGVuYWJsZS9kaXNhYmxlICovCiAJ CWlmIChwbGFuZS0+aWQgIT0gUExBTkVfQ1VSU09SKQogCQkJcGlwZV9jb25maWctPmRpc2FibGVf Y3hzciA9IHRydWU7Ci0JfSBlbHNlIGlmIChpbnRlbF93bV9uZWVkX3VwZGF0ZSgmcGxhbmUtPmJh c2UsIHBsYW5lX3N0YXRlKSkgeworCX0gZWxzZSBpZiAoaW50ZWxfd21fbmVlZF91cGRhdGUodG9f aW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPmJhc2Uuc3RhdGUpLAorCQkJCQl0b19pbnRlbF9wbGFu ZV9zdGF0ZShwbGFuZV9zdGF0ZSkpKSB7CiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNSAm JiAhSVNfRzRYKGRldl9wcml2KSkgewogCQkJLyogRklYTUUgYm9sbG9ja3MgKi8KIAkJCXBpcGVf Y29uZmlnLT51cGRhdGVfd21fcHJlID0gdHJ1ZTsKQEAgLTEwOTU0LDggKzEwOTUyLDcgQEAgc3Rh dGljIGludCBpY2xfY2hlY2tfbnYxMl9wbGFuZXMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCiBzdGF0aWMgaW50IGludGVsX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAkJCQkgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcgPQogCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwpAQCAt MTEwMDQsOCArMTEwMDEsNyBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfYXRvbWljX2NoZWNrKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJICogb2xkIHN0YXRlIGFuZCB0aGUgbmV3IHN0YXRlLiAg V2UgY2FuIHByb2dyYW0gdGhlc2UKIAkJICogaW1tZWRpYXRlbHkuCiAJCSAqLwotCQlyZXQgPSBk ZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX2ludGVybWVkaWF0ZV93bShkZXYsCi0JCQkJCQkJCWlu dGVsX2NydGMsCisJCXJldCA9IGRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfaW50ZXJtZWRpYXRl X3dtKGludGVsX2NydGMsCiAJCQkJCQkJCXBpcGVfY29uZmlnKTsKIAkJaWYgKHJldCkgewogCQkJ RFJNX0RFQlVHX0tNUygiTm8gdmFsaWQgaW50ZXJtZWRpYXRlIHBpcGUgd2F0ZXJtYXJrcyBhcmUg cG9zc2libGVcbiIpOwpAQCAtMTE5NjQsNyArMTE5NjAsNyBAQCBzdGF0aWMgdm9pZCB2ZXJpZnlf d21fc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgOSB8fCAhbmV3X3N0YXRlLT5hY3RpdmUpCiAJCXJldHVybjsKIAotCXNrbF9waXBlX3dtX2dl dF9od19zdGF0ZShjcnRjLCAmaHdfd20pOworCXNrbF9waXBlX3dtX2dldF9od19zdGF0ZShpbnRl bF9jcnRjLCAmaHdfd20pOwogCXN3X3dtID0gJnRvX2ludGVsX2NydGNfc3RhdGUobmV3X3N0YXRl KS0+d20uc2tsLm9wdGltYWw7CiAKIAlza2xfcGlwZV9kZGJfZ2V0X2h3X3N0YXRlKGludGVsX2Ny dGMsIGh3X2RkYl95LCBod19kZGJfdXYpOwpAQCAtMTI2MTksOSArMTI2MTUsOSBAQCBzdGF0aWMg aW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK ICAqIHBoYXNlLiAgVGhlIGNvZGUgaGVyZSBzaG91bGQgYmUgcnVuIGFmdGVyIHRoZSBwZXItY3J0 YyBhbmQgcGVyLXBsYW5lICdjaGVjaycKICAqIGhhbmRsZXJzIHRvIGVuc3VyZSB0aGF0IGFsbCBk ZXJpdmVkIHN0YXRlIGhhcyBiZWVuIHVwZGF0ZWQuCiAgKi8KLXN0YXRpYyBpbnQgY2FsY193YXRl cm1hcmtfZGF0YShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCitzdGF0aWMgaW50IGNh bGNfd2F0ZXJtYXJrX2RhdGEoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7CisJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IHN0YXRlLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7CiAKIAkvKiBJcyB0aGVyZSBwbGF0Zm9ybS1zcGVjaWZpYyB3YXRl cm1hcmsgaW5mb3JtYXRpb24gdG8gY2FsY3VsYXRlPyAqLwpAQCAtMTI3MTMsNyArMTI3MDksNyBA QCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CQlyZXR1cm4gcmV0OwogCiAJaW50ZWxfZmJjX2Nob29zZV9jcnRjKGRldl9wcml2LCBpbnRlbF9z dGF0ZSk7Ci0JcmV0dXJuIGNhbGNfd2F0ZXJtYXJrX2RhdGEoc3RhdGUpOworCXJldHVybiBjYWxj X3dhdGVybWFya19kYXRhKGludGVsX3N0YXRlKTsKIH0KIAogc3RhdGljIGludCBpbnRlbF9hdG9t aWNfcHJlcGFyZV9jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKQEAgLTE1ODQzLDE1ICsx NTgzOSwxNSBAQCBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJfQogCiAJaWYgKElTX0c0WChkZXZfcHJpdikpIHsKLQkJZzR4X3dtX2dldF9od19z dGF0ZShkZXYpOworCQlnNHhfd21fZ2V0X2h3X3N0YXRlKGRldl9wcml2KTsKIAkJZzR4X3dtX3Nh bml0aXplKGRldl9wcml2KTsKIAl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8 IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Ci0JCXZsdl93bV9nZXRfaHdfc3RhdGUoZGV2KTsK KwkJdmx2X3dtX2dldF9od19zdGF0ZShkZXZfcHJpdik7CiAJCXZsdl93bV9zYW5pdGl6ZShkZXZf cHJpdik7CiAJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKLQkJc2tsX3dt X2dldF9od19zdGF0ZShkZXYpOworCQlza2xfd21fZ2V0X2h3X3N0YXRlKGRldl9wcml2KTsKIAl9 IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKSB7Ci0JCWlsa193bV9nZXRfaHdfc3Rh dGUoZGV2KTsKKwkJaWxrX3dtX2dldF9od19zdGF0ZShkZXZfcHJpdik7CiAJfQogCiAJZm9yX2Vh Y2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXgg Zjk0YTA0YjRhZDg3Li5hODE3N2NjZjFkNGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBA IC0yMjAwLDE2ICsyMjAwLDE2IEBAIHZvaWQgZ2VuNl9ycHNfYnVzeShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBnZW42X3Jwc19yZXNldF9laShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBnZW42X3Jwc19pZGxlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGdlbjZfcnBzX2Jvb3N0KHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxLCBzdHJ1Y3QgaW50ZWxfcnBzX2NsaWVudCAqcnBzKTsKLXZvaWQgZzR4X3dtX2dl dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLXZvaWQgdmx2X3dtX2dldF9od19z dGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLXZvaWQgaWxrX3dtX2dldF9od19zdGF0ZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLXZvaWQgc2tsX3dtX2dldF9od19zdGF0ZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKK3ZvaWQgZzR4X3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCB2bHZfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGlsa193bV9nZXRfaHdfc3RhdGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgc2tsX3dtX2dldF9od19zdGF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBza2xfcGlwZV9kZGJf Z2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICAgICAgIHN0cnVjdCBz a2xfZGRiX2VudHJ5ICpkZGJfeSwKIAkJCSAgICAgICBzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAqZGRi X3V2KTsKIHZvaWQgc2tsX2RkYl9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCQkJICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIgLyogb3V0ICov KTsKLXZvaWQgc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK K3ZvaWQgc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAog CQkJICAgICAgc3RydWN0IHNrbF9waXBlX3dtICpvdXQpOwogdm9pZCBnNHhfd21fc2FuaXRpemUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgdmx2X3dtX3Nhbml0aXpl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u YwppbmRleCBhMjZiNGVkZGRhMjUuLmVmYjhiY2Y3N2ZiOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCkBAIC0xMzk5LDggKzEzOTksNyBAQCBzdGF0aWMgaW50IGc0eF9jb21wdXRlX3BpcGVfd20o c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBpbnQgZzR4X2NvbXB1dGVfaW50ZXJtZWRpYXRlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCi0JCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorc3RhdGljIGludCBnNHhf Y29tcHV0ZV9pbnRlcm1lZGlhdGVfd20oc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkJICAg ICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3Qg ZzR4X3dtX3N0YXRlICppbnRlcm1lZGlhdGUgPSAmbmV3X2NydGNfc3RhdGUtPndtLmc0eC5pbnRl cm1lZGlhdGU7CkBAIC0yMDMyLDggKzIwMzEsNyBAQCBzdGF0aWMgdm9pZCB2bHZfYXRvbWljX3Vw ZGF0ZV9maWZvKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCiAjdW5kZWYgVkxW X0ZJRk8KIAotc3RhdGljIGludCB2bHZfY29tcHV0ZV9pbnRlcm1lZGlhdGVfd20oc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKLQkJCQkgICAgICAgc3RydWN0IGludGVsX2NydGMgKmNydGMsCitzdGF0 aWMgaW50IHZsdl9jb21wdXRlX2ludGVybWVkaWF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKIAkJCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQog ewogCXN0cnVjdCB2bHZfd21fc3RhdGUgKmludGVybWVkaWF0ZSA9ICZuZXdfY3J0Y19zdGF0ZS0+ d20udmx2LmludGVybWVkaWF0ZTsKQEAgLTI2MjYsMTMgKzI2MjQsMTIgQEAgc3RhdGljIHVuc2ln bmVkIGludCBpbGtfZmJjX3dtX3JlZ19tYXgoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogfQogCiAvKiBDYWxjdWxhdGUgdGhlIG1heGltdW0gcHJpbWFyeS9zcHJpdGUg cGxhbmUgd2F0ZXJtYXJrICovCi1zdGF0aWMgdW5zaWduZWQgaW50IGlsa19wbGFuZV93bV9tYXgo Y29uc3Qgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKK3N0YXRpYyB1bnNpZ25lZCBpbnQgaWxrX3Bs YW5lX3dtX21heChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJ ICAgICBpbnQgbGV2ZWwsCiAJCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfd21fY29uZmlnICpj b25maWcsCiAJCQkJICAgICBlbnVtIGludGVsX2RkYl9wYXJ0aXRpb25pbmcgZGRiX3BhcnRpdGlv bmluZywKIAkJCQkgICAgIGJvb2wgaXNfc3ByaXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAl1bnNpZ25lZCBpbnQgZmlmb19zaXplID0g aWxrX2Rpc3BsYXlfZmlmb19zaXplKGRldl9wcml2KTsKIAogCS8qIGlmIHNwcml0ZXMgYXJlbid0 IGVuYWJsZWQsIHNwcml0ZXMgZ2V0IG5vdGhpbmcgKi8KQEAgLTI2NjgsNyArMjY2NSw3IEBAIHN0 YXRpYyB1bnNpZ25lZCBpbnQgaWxrX3BsYW5lX3dtX21heChjb25zdCBzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogfQogCiAvKiBDYWxjdWxhdGUgdGhlIG1heGltdW0gY3Vyc29yIHBsYW5lIHdhdGVy bWFyayAqLwotc3RhdGljIHVuc2lnbmVkIGludCBpbGtfY3Vyc29yX3dtX21heChjb25zdCBzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAorc3RhdGljIHVuc2lnbmVkIGludCBpbGtfY3Vyc29yX3dtX21h eChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICAgaW50 IGxldmVsLAogCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF93bV9jb25maWcgKmNvbmZpZykK IHsKQEAgLTI2NzcsMTkgKzI2NzQsMTkgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbGtfY3Vyc29y X3dtX21heChjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlyZXR1cm4gNjQ7CiAKIAkv KiBvdGhlcndpc2UganVzdCByZXBvcnQgbWF4IHRoYXQgcmVnaXN0ZXJzIGNhbiBob2xkICovCi0J cmV0dXJuIGlsa19jdXJzb3Jfd21fcmVnX21heCh0b19pOTE1KGRldiksIGxldmVsKTsKKwlyZXR1 cm4gaWxrX2N1cnNvcl93bV9yZWdfbWF4KGRldl9wcml2LCBsZXZlbCk7CiB9CiAKLXN0YXRpYyB2 b2lkIGlsa19jb21wdXRlX3dtX21heGltdW1zKGNvbnN0IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CitzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9tYXhpbXVtcyhjb25zdCBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgIGludCBsZXZlbCwKIAkJCQkgICAgY29uc3Qg c3RydWN0IGludGVsX3dtX2NvbmZpZyAqY29uZmlnLAogCQkJCSAgICBlbnVtIGludGVsX2RkYl9w YXJ0aXRpb25pbmcgZGRiX3BhcnRpdGlvbmluZywKIAkJCQkgICAgc3RydWN0IGlsa193bV9tYXhp bXVtcyAqbWF4KQogewotCW1heC0+cHJpID0gaWxrX3BsYW5lX3dtX21heChkZXYsIGxldmVsLCBj b25maWcsIGRkYl9wYXJ0aXRpb25pbmcsIGZhbHNlKTsKLQltYXgtPnNwciA9IGlsa19wbGFuZV93 bV9tYXgoZGV2LCBsZXZlbCwgY29uZmlnLCBkZGJfcGFydGl0aW9uaW5nLCB0cnVlKTsKLQltYXgt PmN1ciA9IGlsa19jdXJzb3Jfd21fbWF4KGRldiwgbGV2ZWwsIGNvbmZpZyk7Ci0JbWF4LT5mYmMg PSBpbGtfZmJjX3dtX3JlZ19tYXgodG9faTkxNShkZXYpKTsKKwltYXgtPnByaSA9IGlsa19wbGFu ZV93bV9tYXgoZGV2X3ByaXYsIGxldmVsLCBjb25maWcsIGRkYl9wYXJ0aXRpb25pbmcsIGZhbHNl KTsKKwltYXgtPnNwciA9IGlsa19wbGFuZV93bV9tYXgoZGV2X3ByaXYsIGxldmVsLCBjb25maWcs IGRkYl9wYXJ0aXRpb25pbmcsIHRydWUpOworCW1heC0+Y3VyID0gaWxrX2N1cnNvcl93bV9tYXgo ZGV2X3ByaXYsIGxldmVsLCBjb25maWcpOworCW1heC0+ZmJjID0gaWxrX2ZiY193bV9yZWdfbWF4 KGRldl9wcml2KTsKIH0KIAogc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fcmVnX21heGltdW1z KGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTMwNzMsNyArMzA3 MCw3IEBAIHN0YXRpYyB2b2lkIHNrbF9zZXR1cF93bV9sYXRlbmN5KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAlpbnRlbF9wcmludF93bV9sYXRlbmN5KGRldl9wcml2LCAiR2Vu OSBQbGFuZSIsIGRldl9wcml2LT53bS5za2xfbGF0ZW5jeSk7CiB9CiAKLXN0YXRpYyBib29sIGls a192YWxpZGF0ZV9waXBlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCitzdGF0aWMgYm9vbCBp bGtfdmFsaWRhdGVfcGlwZV93bShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCQkJIHN0cnVjdCBpbnRlbF9waXBlX3dtICpwaXBlX3dtKQogewogCS8qIExQMCB3YXRl cm1hcmsgbWF4aW11bXMgZGVwZW5kIG9uIHRoaXMgcGlwZSBhbG9uZSAqLwpAQCAtMzA4NSw3ICsz MDgyLDcgQEAgc3RhdGljIGJvb2wgaWxrX3ZhbGlkYXRlX3BpcGVfd20oc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAlzdHJ1Y3QgaWxrX3dtX21heGltdW1zIG1heDsKIAogCS8qIExQMCB3YXRlcm1h cmtzIGFsd2F5cyB1c2UgMS8yIEREQiBwYXJ0aXRpb25pbmcgKi8KLQlpbGtfY29tcHV0ZV93bV9t YXhpbXVtcyhkZXYsIDAsICZjb25maWcsIElOVEVMX0REQl9QQVJUXzFfMiwgJm1heCk7CisJaWxr X2NvbXB1dGVfd21fbWF4aW11bXMoZGV2X3ByaXYsIDAsICZjb25maWcsIElOVEVMX0REQl9QQVJU XzFfMiwgJm1heCk7CiAKIAkvKiBBdCBsZWFzdCBMUDAgbXVzdCBiZSB2YWxpZCAqLwogCWlmICgh aWxrX3ZhbGlkYXRlX3dtX2xldmVsKDAsICZtYXgsICZwaXBlX3dtLT53bVswXSkpIHsKQEAgLTMx NTAsNyArMzE0Nyw3IEBAIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQogCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19C Uk9BRFdFTEwoZGV2X3ByaXYpKQogCQlwaXBlX3dtLT5saW5ldGltZSA9IGhzd19jb21wdXRlX2xp bmV0aW1lX3dtKGNzdGF0ZSk7CiAKLQlpZiAoIWlsa192YWxpZGF0ZV9waXBlX3dtKGRldiwgcGlw ZV93bSkpCisJaWYgKCFpbGtfdmFsaWRhdGVfcGlwZV93bShkZXZfcHJpdiwgcGlwZV93bSkpCiAJ CXJldHVybiAtRUlOVkFMOwogCiAJaWxrX2NvbXB1dGVfd21fcmVnX21heGltdW1zKGRldl9wcml2 LCAxLCAmbWF4KTsKQEAgLTMxODAsMTcgKzMxNzcsMTcgQEAgc3RhdGljIGludCBpbGtfY29tcHV0 ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCiAgKiBzdGF0ZSBhbmQg dGhlIG5ldyBzdGF0ZS4gIFRoZXNlIGNhbiBiZSBwcm9ncmFtbWVkIHRvIHRoZSBoYXJkd2FyZQog ICogaW1tZWRpYXRlbHkuCiAgKi8KLXN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfaW50ZXJtZWRpYXRl X3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjLAorc3RhdGljIGludCBpbGtfY29tcHV0ZV9pbnRlcm1lZGlhdGVfd20oc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpuZXdzdGF0ZSkKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGludGVsX2NydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfcGlwZV93bSAq YSA9ICZuZXdzdGF0ZS0+d20uaWxrLmludGVybWVkaWF0ZTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICppbnRlbF9zdGF0ZSA9CiAJCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdzdGF0ZS0+ YmFzZS5zdGF0ZSk7CiAJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZHN0YXRlID0K IAkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShpbnRlbF9zdGF0ZSwgaW50ZWxfY3J0 Yyk7CiAJY29uc3Qgc3RydWN0IGludGVsX3BpcGVfd20gKmIgPSAmb2xkc3RhdGUtPndtLmlsay5v cHRpbWFsOwotCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbCh0b19pOTE1 KGRldikpOworCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJp dik7CiAKIAkvKgogCSAqIFN0YXJ0IHdpdGggdGhlIGZpbmFsLCB0YXJnZXQgd2F0ZXJtYXJrcywg dGhlbiBjb21iaW5lIHdpdGggdGhlCkBAIC0zMjIzLDcgKzMyMjAsNyBAQCBzdGF0aWMgaW50IGls a19jb21wdXRlX2ludGVybWVkaWF0ZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCSAqIHRo ZXJlJ3Mgbm8gc2FmZSB3YXkgdG8gdHJhbnNpdGlvbiBmcm9tIHRoZSBvbGQgc3RhdGUgdG8KIAkg KiB0aGUgbmV3IHN0YXRlLCBzbyB3ZSBuZWVkIHRvIGZhaWwgdGhlIGF0b21pYyB0cmFuc2FjdGlv bi4KIAkgKi8KLQlpZiAoIWlsa192YWxpZGF0ZV9waXBlX3dtKGRldiwgYSkpCisJaWYgKCFpbGtf dmFsaWRhdGVfcGlwZV93bShkZXZfcHJpdiwgYSkpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJLyoK QEAgLTMyMzksNyArMzIzNiw3IEBAIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfaW50ZXJtZWRpYXRl X3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAvKgogICogTWVyZ2UgdGhlIHdhdGVybWFya3Mg ZnJvbSBhbGwgYWN0aXZlIHBpcGVzIGZvciBhIHNwZWNpZmljIGxldmVsLgogICovCi1zdGF0aWMg dm9pZCBpbGtfbWVyZ2Vfd21fbGV2ZWwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKK3N0YXRpYyB2 b2lkIGlsa19tZXJnZV93bV9sZXZlbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJCQkgICAgICAgaW50IGxldmVsLAogCQkJICAgICAgIHN0cnVjdCBpbnRlbF93bV9sZXZlbCAq cmV0X3dtKQogewpAQCAtMzI0Nyw3ICszMjQ0LDcgQEAgc3RhdGljIHZvaWQgaWxrX21lcmdlX3dt X2xldmVsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlyZXRfd20tPmVuYWJsZSA9IHRydWU7 CiAKLQlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgaW50ZWxfY3J0YykgeworCWZvcl9lYWNoX2lu dGVsX2NydGMoJmRldl9wcml2LT5kcm0sIGludGVsX2NydGMpIHsKIAkJY29uc3Qgc3RydWN0IGlu dGVsX3BpcGVfd20gKmFjdGl2ZSA9ICZpbnRlbF9jcnRjLT53bS5hY3RpdmUuaWxrOwogCQljb25z dCBzdHJ1Y3QgaW50ZWxfd21fbGV2ZWwgKndtID0gJmFjdGl2ZS0+d21bbGV2ZWxdOwogCkBAIC0z MjcyLDEyICszMjY5LDExIEBAIHN0YXRpYyB2b2lkIGlsa19tZXJnZV93bV9sZXZlbChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogLyoKICAqIE1lcmdlIGFsbCBsb3cgcG93ZXIgd2F0ZXJtYXJrcyBm b3IgYWxsIGFjdGl2ZSBwaXBlcy4KICAqLwotc3RhdGljIHZvaWQgaWxrX3dtX21lcmdlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCitzdGF0aWMgdm9pZCBpbGtfd21fbWVyZ2Uoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF93bV9jb25maWcg KmNvbmZpZywKIAkJCSBjb25zdCBzdHJ1Y3QgaWxrX3dtX21heGltdW1zICptYXgsCiAJCQkgc3Ry dWN0IGludGVsX3BpcGVfd20gKm1lcmdlZCkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21f bWF4X2xldmVsKGRldl9wcml2KTsKIAlpbnQgbGFzdF9lbmFibGVkX2xldmVsID0gbWF4X2xldmVs OwogCkBAIC0zMjkzLDcgKzMyODksNyBAQCBzdGF0aWMgdm9pZCBpbGtfd21fbWVyZ2Uoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAlmb3IgKGxldmVsID0gMTsgbGV2ZWwgPD0gbWF4X2xldmVsOyBs ZXZlbCsrKSB7CiAJCXN0cnVjdCBpbnRlbF93bV9sZXZlbCAqd20gPSAmbWVyZ2VkLT53bVtsZXZl bF07CiAKLQkJaWxrX21lcmdlX3dtX2xldmVsKGRldiwgbGV2ZWwsIHdtKTsKKwkJaWxrX21lcmdl X3dtX2xldmVsKGRldl9wcml2LCBsZXZlbCwgd20pOwogCiAJCWlmIChsZXZlbCA+IGxhc3RfZW5h YmxlZF9sZXZlbCkKIAkJCXdtLT5lbmFibGUgPSBmYWxzZTsKQEAgLTMzMzUsMjIgKzMzMzEsMjAg QEAgc3RhdGljIGludCBpbGtfd21fbHBfdG9fbGV2ZWwoaW50IHdtX2xwLCBjb25zdCBzdHJ1Y3Qg aW50ZWxfcGlwZV93bSAqcGlwZV93bSkKIH0KIAogLyogVGhlIHZhbHVlIHdlIG5lZWQgdG8gcHJv Z3JhbSBpbnRvIHRoZSBXTV9MUHggbGF0ZW5jeSBmaWVsZCAqLwotc3RhdGljIHVuc2lnbmVkIGlu dCBpbGtfd21fbHBfbGF0ZW5jeShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgbGV2ZWwpCitz dGF0aWMgdW5zaWduZWQgaW50IGlsa193bV9scF9sYXRlbmN5KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKKwkJCQkgICAgICBpbnQgbGV2ZWwpCiB7Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCiAJaWYgKElTX0hBU1dFTEwoZGV2 X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCiAJCXJldHVybiAyICogbGV2ZWw7CiAJ ZWxzZQogCQlyZXR1cm4gZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5W2xldmVsXTsKIH0KIAotc3Rh dGljIHZvaWQgaWxrX2NvbXB1dGVfd21fcmVzdWx0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAor c3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fcmVzdWx0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX3BpcGVfd20gKm1lcmdlZCwK IAkJCQkgICBlbnVtIGludGVsX2RkYl9wYXJ0aXRpb25pbmcgcGFydGl0aW9uaW5nLAogCQkJCSAg IHN0cnVjdCBpbGtfd21fdmFsdWVzICpyZXN1bHRzKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YzsKIAlpbnQgbGV2ZWwsIHdtX2xwOwogCkBAIC0zMzcwLDcgKzMzNjQsNyBAQCBzdGF0aWMg dm9pZCBpbGtfY29tcHV0ZV93bV9yZXN1bHRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAq IGRpc2FibGVkLiBEb2luZyBvdGhlcndpc2UgY291bGQgY2F1c2UgdW5kZXJydW5zLgogCQkgKi8K IAkJcmVzdWx0cy0+d21fbHBbd21fbHAgLSAxXSA9Ci0JCQkoaWxrX3dtX2xwX2xhdGVuY3koZGV2 LCBsZXZlbCkgPDwgV00xX0xQX0xBVEVOQ1lfU0hJRlQpIHwKKwkJCShpbGtfd21fbHBfbGF0ZW5j eShkZXZfcHJpdiwgbGV2ZWwpIDw8IFdNMV9MUF9MQVRFTkNZX1NISUZUKSB8CiAJCQkoci0+cHJp X3ZhbCA8PCBXTTFfTFBfU1JfU0hJRlQpIHwKIAkJCXItPmN1cl92YWw7CiAKQEAgLTMzOTYsNyAr MzM5MCw3IEBAIHN0YXRpYyB2b2lkIGlsa19jb21wdXRlX3dtX3Jlc3VsdHMoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAl9CiAKIAkvKiBMUDAgcmVnaXN0ZXIgdmFsdWVzICovCi0JZm9yX2VhY2hf aW50ZWxfY3J0YyhkZXYsIGludGVsX2NydGMpIHsKKwlmb3JfZWFjaF9pbnRlbF9jcnRjKCZkZXZf cHJpdi0+ZHJtLCBpbnRlbF9jcnRjKSB7CiAJCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+ cGlwZTsKIAkJY29uc3Qgc3RydWN0IGludGVsX3dtX2xldmVsICpyID0KIAkJCSZpbnRlbF9jcnRj LT53bS5hY3RpdmUuaWxrLndtWzBdOwpAQCAtMzQxNSwxMSArMzQwOSwxMiBAQCBzdGF0aWMgdm9p ZCBpbGtfY29tcHV0ZV93bV9yZXN1bHRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIC8qIEZp bmQgdGhlIHJlc3VsdCB3aXRoIHRoZSBoaWdoZXN0IGxldmVsIGVuYWJsZWQuIENoZWNrIGZvciBl bmFibGVfZmJjX3dtIGluCiAgKiBjYXNlIGJvdGggYXJlIGF0IHRoZSBzYW1lIGxldmVsLiBQcmVm ZXIgcjEgaW4gY2FzZSB0aGV5J3JlIHRoZSBzYW1lLiAqLwotc3RhdGljIHN0cnVjdCBpbnRlbF9w aXBlX3dtICppbGtfZmluZF9iZXN0X3Jlc3VsdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJ CQkJICBzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqcjEsCi0JCQkJCQkgIHN0cnVjdCBpbnRlbF9waXBl X3dtICpyMikKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqCitpbGtfZmluZF9iZXN0X3Jl c3VsdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICAgc3RydWN0IGlu dGVsX3BpcGVfd20gKnIxLAorCQkgICAgIHN0cnVjdCBpbnRlbF9waXBlX3dtICpyMikKIHsKLQlp bnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwodG9faTkxNShkZXYpKTsKKwlp bnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2X3ByaXYpOwogCWludCBs ZXZlbDEgPSAwLCBsZXZlbDIgPSAwOwogCiAJZm9yIChsZXZlbCA9IDE7IGxldmVsIDw9IG1heF9s ZXZlbDsgbGV2ZWwrKykgewpAQCAtNDMwNywxMCArNDMwMiw5IEBAIGljbF9nZXRfdG90YWxfcmVs YXRpdmVfZGF0YV9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICppbnRlbF9jc3RhdGUsCiB9 CiAKIHN0YXRpYyB1aW50MTZfdAotc2tsX2RkYl9taW5fYWxsb2MoY29uc3Qgc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqcHN0YXRlLCBjb25zdCBpbnQgcGxhbmUpCitza2xfZGRiX21pbl9hbGxvYyhj b25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLCBjb25zdCBpbnQgcGxh bmUpCiB7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwc3RhdGUtPmZiOwotCXN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfcHN0YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUo cHN0YXRlKTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNl LmZiOwogCXVpbnQzMl90IHNyY193LCBzcmNfaDsKIAl1aW50MzJfdCBtaW5fc2NhbmxpbmVzID0g ODsKIAl1aW50OF90IHBsYW5lX2JwcDsKQEAgLTQzMzQsOCArNDMyOCw4IEBAIHNrbF9kZGJfbWlu X2FsbG9jKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZSwgY29uc3QgaW50IHBs YW5lKQogCSAqIHRoZSA5MC8yNzAgZGVncmVlIHBsYW5lIHJvdGF0aW9uIGNhc2VzICh0byBtYXRj aCB0aGUKIAkgKiBHVFQgbWFwcGluZyksIGhlbmNlIG5vIG5lZWQgdG8gYWNjb3VudCBmb3Igcm90 YXRpb24gaGVyZS4KIAkgKi8KLQlzcmNfdyA9IGRybV9yZWN0X3dpZHRoKCZpbnRlbF9wc3RhdGUt PmJhc2Uuc3JjKSA+PiAxNjsKLQlzcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmaW50ZWxfcHN0YXRl LT5iYXNlLnNyYykgPj4gMTY7CisJc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUt PmJhc2Uuc3JjKSA+PiAxNjsKKwlzcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUt PmJhc2Uuc3JjKSA+PiAxNjsKIAogCS8qIEhhbHZlIFVWIHBsYW5lIHdpZHRoIGFuZCBoZWlnaHQg Zm9yIE5WMTIgKi8KIAlpZiAocGxhbmUgPT0gMSkgewpAQCAtNDM0NSw3ICs0MzM5LDcgQEAgc2ts X2RkYl9taW5fYWxsb2MoY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlLCBjb25z dCBpbnQgcGxhbmUpCiAKIAlwbGFuZV9icHAgPSBmYi0+Zm9ybWF0LT5jcHBbcGxhbmVdOwogCi0J aWYgKGRybV9yb3RhdGlvbl85MF9vcl8yNzAocHN0YXRlLT5yb3RhdGlvbikpIHsKKwlpZiAoZHJt X3JvdGF0aW9uXzkwX29yXzI3MChwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbikpIHsKIAkJc3dp dGNoIChwbGFuZV9icHApIHsKIAkJY2FzZSAxOgogCQkJbWluX3NjYW5saW5lcyA9IDMyOwpAQCAt NDM4OCwxNCArNDM4MiwxNSBAQCBza2xfZGRiX2NhbGNfbWluKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjc3RhdGUsIGludCBudW1fYWN0aXZlLAogCQkJY29udGludWU7CiAKIAkJaWYg KCFwbGFuZV9zdGF0ZS0+bGlua2VkX3BsYW5lKSB7Ci0JCQltaW5pbXVtW3BsYW5lX2lkXSA9IHNr bF9kZGJfbWluX2FsbG9jKHBzdGF0ZSwgMCk7Ci0JCQl1dl9taW5pbXVtW3BsYW5lX2lkXSA9IHNr bF9kZGJfbWluX2FsbG9jKHBzdGF0ZSwgMSk7CisJCQltaW5pbXVtW3BsYW5lX2lkXSA9IHNrbF9k ZGJfbWluX2FsbG9jKHBsYW5lX3N0YXRlLCAwKTsKKwkJCXV2X21pbmltdW1bcGxhbmVfaWRdID0K KwkJCQlza2xfZGRiX21pbl9hbGxvYyhwbGFuZV9zdGF0ZSwgMSk7CiAJCX0gZWxzZSB7CiAJCQll bnVtIHBsYW5lX2lkIHlfcGxhbmVfaWQgPQogCQkJCXBsYW5lX3N0YXRlLT5saW5rZWRfcGxhbmUt PmlkOwogCi0JCQltaW5pbXVtW3lfcGxhbmVfaWRdID0gc2tsX2RkYl9taW5fYWxsb2MocHN0YXRl LCAwKTsKLQkJCW1pbmltdW1bcGxhbmVfaWRdID0gc2tsX2RkYl9taW5fYWxsb2MocHN0YXRlLCAx KTsKKwkJCW1pbmltdW1beV9wbGFuZV9pZF0gPSBza2xfZGRiX21pbl9hbGxvYyhwbGFuZV9zdGF0 ZSwgMCk7CisJCQltaW5pbXVtW3BsYW5lX2lkXSA9IHNrbF9kZGJfbWluX2FsbG9jKHBsYW5lX3N0 YXRlLCAxKTsKIAkJfQogCX0KIApAQCAtNTI1MSwxNSArNTI0NiwxNCBAQCBib29sIHNrbF9kZGJf YWxsb2NhdGlvbl9vdmVybGFwcyhjb25zdCBzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAqZGRiLAogCXJl dHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGludCBza2xfdXBkYXRlX3BpcGVfd20oc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjc3RhdGUsCitzdGF0aWMgaW50IHNrbF91cGRhdGVfcGlwZV93bShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCQkJICAgICAgY29uc3Qgc3RydWN0IHNrbF9w aXBlX3dtICpvbGRfcGlwZV93bSwKIAkJCSAgICAgIHN0cnVjdCBza2xfcGlwZV93bSAqcGlwZV93 bSwgLyogb3V0ICovCiAJCQkgICAgICBib29sICpjaGFuZ2VkIC8qIG91dCAqLykKIHsKLQlzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShj c3RhdGUpOwogCWludCByZXQ7CiAKLQlyZXQgPSBza2xfYnVpbGRfcGlwZV93bShpbnRlbF9jc3Rh dGUsIHBpcGVfd20pOworCXJldCA9IHNrbF9idWlsZF9waXBlX3dtKGNzdGF0ZSwgcGlwZV93bSk7 CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtNTI3MiwxNCArNTI2NiwxNCBAQCBzdGF0 aWMgaW50IHNrbF91cGRhdGVfcGlwZV93bShzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNzdGF0ZSwK IH0KIAogc3RhdGljIHVpbnQzMl90Ci1waXBlc19tb2RpZmllZChzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCitwaXBlc19tb2RpZmllZChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjc3RhdGU7CisJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNzdGF0ZTsKIAl1aW50MzJfdCBpLCByZXQgPSAwOwogCi0JZm9yX2VhY2hfbmV3X2Ny dGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNzdGF0ZSwgaSkKLQkJcmV0IHw9IGRybV9jcnRjX21h c2soY3J0Yyk7CisJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMs IGNzdGF0ZSwgaSkKKwkJcmV0IHw9IGRybV9jcnRjX21hc2soJmNydGMtPmJhc2UpOwogCiAJcmV0 dXJuIHJldDsKIH0KQEAgLTUzMTQsMTEgKzUzMDgsMTAgQEAgc2tsX2RkYl9hZGRfYWZmZWN0ZWRf cGxhbmVzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIH0K IAogc3RhdGljIGludAotc2tsX2NvbXB1dGVfZGRiKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKK3NrbF9jb21wdXRlX2RkYihzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkK IHsKLQljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0 YXRlLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9f aW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKLQlzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpk ZGIgPSAmaW50ZWxfc3RhdGUtPndtX3Jlc3VsdHMuZGRiOworCWNvbnN0IHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKKwlzdHJ1Y3Qg c2tsX2RkYl9hbGxvY2F0aW9uICpkZGIgPSAmc3RhdGUtPndtX3Jlc3VsdHMuZGRiOwogCXN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqbmV3X2NydGNfc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGM7CkBAIC01MzI2 LDcgKzUzMTksNyBAQCBza2xfY29tcHV0ZV9kZGIoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKQogCiAJbWVtY3B5KGRkYiwgJmRldl9wcml2LT53bS5za2xfaHcuZGRiLCBzaXplb2YoKmRk YikpOwogCi0JZm9yX2VhY2hfb2xkbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoaW50ZWxfc3RhdGUs IGNydGMsIG9sZF9jcnRjX3N0YXRlLAorCWZvcl9lYWNoX29sZG5ld19pbnRlbF9jcnRjX2luX3N0 YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwKIAkJCQkJICAgIG5ld19jcnRjX3N0YXRl LCBpKSB7CiAJCXJldCA9IHNrbF9hbGxvY2F0ZV9waXBlX2RkYihuZXdfY3J0Y19zdGF0ZSwgZGRi KTsKIAkJaWYgKHJldCkKQEAgLTUzNzIsMTQgKzUzNjUsMTIgQEAgc2tsX3ByaW50X3dtX2NoYW5n ZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB9CiAKIHN0YXRpYyBpbnQKLXNr bF9kZGJfYWRkX2FmZmVjdGVkX3BpcGVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwg Ym9vbCAqY2hhbmdlZCkKK3NrbF9kZGJfYWRkX2FmZmVjdGVkX3BpcGVzKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLCBib29sICpjaGFuZ2VkKQogewotCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBzdGF0ZS0+ZGV2OworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+YmFz ZS5kZXY7CiAJY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKLQljb25zdCBzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKmNzdGF0ZTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKLQlz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19z dGF0ZShzdGF0ZSk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisJc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGU7CiAJdWludDMyX3QgcmVhbGxvY19waXBlcyA9IHBpcGVzX21v ZGlmaWVkKHN0YXRlKTsKIAlpbnQgcmV0LCBpOwogCkBAIC01Mzk4LDcgKzUzODksNyBAQCBza2xf ZGRiX2FkZF9hZmZlY3RlZF9waXBlcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsIGJv b2wgKmNoYW5nZWQpCiAJICogc2luY2UgYW55IHJhY2luZyBjb21taXRzIHRoYXQgd2FudCB0byB1 cGRhdGUgdGhlbSB3b3VsZCBuZWVkIHRvCiAJICogaG9sZCBfYWxsXyBDUlRDIHN0YXRlIG11dGV4 ZXMuCiAJICovCi0JZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNzdGF0 ZSwgaSkKKwlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0 Y19zdGF0ZSwgaSkKIAkJKCpjaGFuZ2VkKSA9IHRydWU7CiAKIAlpZiAoISpjaGFuZ2VkKQpAQCAt NTQxMiwyMCArNTQwMywyMCBAQCBza2xfZGRiX2FkZF9hZmZlY3RlZF9waXBlcyhzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUsIGJvb2wgKmNoYW5nZWQpCiAJICovCiAJaWYgKGRldl9wcml2 LT53bS5kaXN0cnVzdF9iaW9zX3dtKSB7CiAJCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmRldi0+ bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwKLQkJCQkgICAgICAgc3RhdGUtPmFjcXVpcmVf Y3R4KTsKKwkJCQkgICAgICAgc3RhdGUtPmJhc2UuYWNxdWlyZV9jdHgpOwogCQlpZiAocmV0KQog CQkJcmV0dXJuIHJldDsKIAotCQlpbnRlbF9zdGF0ZS0+YWN0aXZlX3BpcGVfY2hhbmdlcyA9IH4w OworCQlzdGF0ZS0+YWN0aXZlX3BpcGVfY2hhbmdlcyA9IH4wOwogCiAJCS8qCi0JCSAqIFdlIHVz dWFsbHkgb25seSBpbml0aWFsaXplIGludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MgaWYgd2UKKwkJ ICogV2UgdXN1YWxseSBvbmx5IGluaXRpYWxpemUgc3RhdGUtPmFjdGl2ZV9jcnRjcyBpZiB3ZQog CQkgKiB3ZSdyZSBkb2luZyBhIG1vZGVzZXQ7IG1ha2Ugc3VyZSB0aGlzIGZpZWxkIGlzIGFsd2F5 cwogCQkgKiBpbml0aWFsaXplZCBkdXJpbmcgdGhlIHNhbml0aXphdGlvbiBwcm9jZXNzIHRoYXQg aGFwcGVucwogCQkgKiBvbiB0aGUgZmlyc3QgY29tbWl0IHRvby4KIAkJICovCi0JCWlmICghaW50 ZWxfc3RhdGUtPm1vZGVzZXQpCi0JCQlpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzID0gZGV2X3By aXYtPmFjdGl2ZV9jcnRjczsKKwkJaWYgKCFzdGF0ZS0+bW9kZXNldCkKKwkJCXN0YXRlLT5hY3Rp dmVfY3J0Y3MgPSBkZXZfcHJpdi0+YWN0aXZlX2NydGNzOwogCX0KIAogCS8qCkBAIC01NDQxLDIx ICs1NDMyLDE5IEBAIHNrbF9kZGJfYWRkX2FmZmVjdGVkX3BpcGVzKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSwgYm9vbCAqY2hhbmdlZCkKIAkgKiBhbnkgb3RoZXIgZGlzcGxheSB1cGRh dGVzIHJhY2Ugd2l0aCB0aGlzIHRyYW5zYWN0aW9uLCBzbyB3ZSBuZWVkCiAJICogdG8gZ3JhYiB0 aGUgbG9jayBvbiAqYWxsKiBDUlRDJ3MuCiAJICovCi0JaWYgKGludGVsX3N0YXRlLT5hY3RpdmVf cGlwZV9jaGFuZ2VzIHx8IGludGVsX3N0YXRlLT5tb2Rlc2V0KSB7CisJaWYgKHN0YXRlLT5hY3Rp dmVfcGlwZV9jaGFuZ2VzIHx8IHN0YXRlLT5tb2Rlc2V0KSB7CiAJCXJlYWxsb2NfcGlwZXMgPSB+ MDsKLQkJaW50ZWxfc3RhdGUtPndtX3Jlc3VsdHMuZGlydHlfcGlwZXMgPSB+MDsKKwkJc3RhdGUt PndtX3Jlc3VsdHMuZGlydHlfcGlwZXMgPSB+MDsKIAl9CiAKIAkvKgogCSAqIFdlJ3JlIG5vdCBy ZWNvbXB1dGluZyBmb3IgdGhlIHBpcGVzIG5vdCBpbmNsdWRlZCBpbiB0aGUgY29tbWl0LCBzbwog CSAqIG1ha2Ugc3VyZSB3ZSBzdGFydCB3aXRoIHRoZSBjdXJyZW50IHN0YXRlLgogCSAqLwotCWZv cl9lYWNoX2ludGVsX2NydGNfbWFzayhkZXYsIGludGVsX2NydGMsIHJlYWxsb2NfcGlwZXMpIHsK LQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZTsKLQotCQljc3RhdGUgPSBpbnRlbF9h dG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGludGVsX2NydGMpOwotCQlpZiAoSVNfRVJSKGNz dGF0ZSkpCi0JCQlyZXR1cm4gUFRSX0VSUihjc3RhdGUpOworCWZvcl9lYWNoX2ludGVsX2NydGNf bWFzayhkZXYsIGNydGMsIHJlYWxsb2NfcGlwZXMpIHsKKwkJY3J0Y19zdGF0ZSA9IGludGVsX2F0 b21pY19nZXRfY3J0Y19zdGF0ZSgmc3RhdGUtPmJhc2UsIGNydGMpOworCQlpZiAoSVNfRVJSKGNy dGNfc3RhdGUpKQorCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7CiAJfQogCiAJcmV0dXJu IDA7CkBAIC01NTIyLDEyICs1NTExLDExIEBAIHN0YXRpYyBpbnQgc2tsX3dtX2FkZF9hZmZlY3Rl ZF9wbGFuZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiB9CiAKIHN0YXRpYyBp bnQKLXNrbF9jb21wdXRlX3dtKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3NrbF9j b21wdXRlX3dtKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBk cm1fY3J0YyAqY3J0YzsKLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNzdGF0ZTsKLQlzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShz dGF0ZSk7Ci0Jc3RydWN0IHNrbF9kZGJfdmFsdWVzICpyZXN1bHRzID0gJmludGVsX3N0YXRlLT53 bV9yZXN1bHRzOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOworCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjc3RhdGU7CisJc3RydWN0IHNrbF9kZGJfdmFsdWVzICpyZXN1bHRzID0gJnN0YXRl LT53bV9yZXN1bHRzOwogCXN0cnVjdCBza2xfcGlwZV93bSAqcGlwZV93bTsKIAlib29sIGNoYW5n ZWQgPSBmYWxzZTsKIAlpbnQgcmV0LCBpOwpAQCAtNTU1MywzMyArNTU0MSwzMCBAQCBza2xfY29t cHV0ZV93bShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJICogc2hvdWxkIGFsbG93 IHNrbF91cGRhdGVfcGlwZV93bSgpIHRvIHJldHVybiBmYWlsdXJlIGluIGNhc2VzIHdoZXJlCiAJ ICogbm8gc3VpdGFibGUgd2F0ZXJtYXJrIHZhbHVlcyBjYW4gYmUgZm91bmQuCiAJICovCi0JZm9y X2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNzdGF0ZSwgaSkgewotCQlzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3N0YXRlID0KLQkJCXRvX2ludGVsX2NydGNfc3Rh dGUoY3N0YXRlKTsKKwlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0 YywgY3N0YXRlLCBpKSB7CiAJCWNvbnN0IHN0cnVjdCBza2xfcGlwZV93bSAqb2xkX3BpcGVfd20g PQotCQkJJnRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLT53bS5za2wub3B0aW1hbDsK KwkJCSZ0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpLT53bS5za2wub3B0aW1h bDsKIAotCQlwaXBlX3dtID0gJmludGVsX2NzdGF0ZS0+d20uc2tsLm9wdGltYWw7CisJCXBpcGVf d20gPSAmY3N0YXRlLT53bS5za2wub3B0aW1hbDsKIAkJcmV0ID0gc2tsX3VwZGF0ZV9waXBlX3dt KGNzdGF0ZSwgb2xkX3BpcGVfd20sIHBpcGVfd20sICZjaGFuZ2VkKTsKIAkJaWYgKHJldCkKIAkJ CXJldHVybiByZXQ7CiAKLQkJcmV0ID0gc2tsX3dtX2FkZF9hZmZlY3RlZF9wbGFuZXMoaW50ZWxf c3RhdGUsCi0JCQkJCQkgdG9faW50ZWxfY3J0YyhjcnRjKSk7CisJCXJldCA9IHNrbF93bV9hZGRf YWZmZWN0ZWRfcGxhbmVzKHN0YXRlLCBjcnRjKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7 CiAKIAkJaWYgKGNoYW5nZWQpCi0JCQlyZXN1bHRzLT5kaXJ0eV9waXBlcyB8PSBkcm1fY3J0Y19t YXNrKGNydGMpOworCQkJcmVzdWx0cy0+ZGlydHlfcGlwZXMgfD0gZHJtX2NydGNfbWFzaygmY3J0 Yy0+YmFzZSk7CiAKLQkJaWYgKChyZXN1bHRzLT5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2so Y3J0YykpID09IDApCisJCWlmICgocmVzdWx0cy0+ZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNr KCZjcnRjLT5iYXNlKSkgPT0gMCkKIAkJCS8qIFRoaXMgcGlwZSdzIFdNJ3MgZGlkIG5vdCBjaGFu Z2UgKi8KIAkJCWNvbnRpbnVlOwogCi0JCWludGVsX2NzdGF0ZS0+dXBkYXRlX3dtX3ByZSA9IHRy dWU7CisJCWNzdGF0ZS0+dXBkYXRlX3dtX3ByZSA9IHRydWU7CiAJfQogCi0Jc2tsX3ByaW50X3dt X2NoYW5nZXMoaW50ZWxfc3RhdGUpOworCXNrbF9wcmludF93bV9jaGFuZ2VzKHN0YXRlKTsKIAog CXJldHVybiAwOwogfQpAQCAtNTYxNywxMyArNTYwMiwxMyBAQCBzdGF0aWMgdm9pZCBza2xfaW5p dGlhbF93bShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAltdXRleF91bmxvY2so JmRldl9wcml2LT53bS53bV9tdXRleCk7CiB9CiAKLXN0YXRpYyB2b2lkIGlsa19jb21wdXRlX3dt X2NvbmZpZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVf d21fY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgIHN0cnVj dCBpbnRlbF93bV9jb25maWcgKmNvbmZpZykKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsK IAogCS8qIENvbXB1dGUgdGhlIGN1cnJlbnRseSBfYWN0aXZlXyBjb25maWcgKi8KLQlmb3JfZWFj aF9pbnRlbF9jcnRjKGRldiwgY3J0YykgeworCWZvcl9lYWNoX2ludGVsX2NydGMoJmRldl9wcml2 LT5kcm0sIGNydGMpIHsKIAkJY29uc3Qgc3RydWN0IGludGVsX3BpcGVfd20gKndtID0gJmNydGMt PndtLmFjdGl2ZS5pbGs7CiAKIAkJaWYgKCF3bS0+cGlwZV9lbmFibGVkKQpAQCAtNTYzNywyNSAr NTYyMiwyNCBAQCBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9jb25maWcoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAogc3RhdGljIHZvaWQgaWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 ICZkZXZfcHJpdi0+ZHJtOwogCXN0cnVjdCBpbnRlbF9waXBlX3dtIGxwX3dtXzFfMiA9IHt9LCBs cF93bV81XzYgPSB7fSwgKmJlc3RfbHBfd207CiAJc3RydWN0IGlsa193bV9tYXhpbXVtcyBtYXg7 CiAJc3RydWN0IGludGVsX3dtX2NvbmZpZyBjb25maWcgPSB7fTsKIAlzdHJ1Y3QgaWxrX3dtX3Zh bHVlcyByZXN1bHRzID0ge307CiAJZW51bSBpbnRlbF9kZGJfcGFydGl0aW9uaW5nIHBhcnRpdGlv bmluZzsKIAotCWlsa19jb21wdXRlX3dtX2NvbmZpZyhkZXYsICZjb25maWcpOworCWlsa19jb21w dXRlX3dtX2NvbmZpZyhkZXZfcHJpdiwgJmNvbmZpZyk7CiAKLQlpbGtfY29tcHV0ZV93bV9tYXhp bXVtcyhkZXYsIDEsICZjb25maWcsIElOVEVMX0REQl9QQVJUXzFfMiwgJm1heCk7Ci0JaWxrX3dt X21lcmdlKGRldiwgJmNvbmZpZywgJm1heCwgJmxwX3dtXzFfMik7CisJaWxrX2NvbXB1dGVfd21f bWF4aW11bXMoZGV2X3ByaXYsIDEsICZjb25maWcsIElOVEVMX0REQl9QQVJUXzFfMiwgJm1heCk7 CisJaWxrX3dtX21lcmdlKGRldl9wcml2LCAmY29uZmlnLCAmbWF4LCAmbHBfd21fMV8yKTsKIAog CS8qIDUvNiBzcGxpdCBvbmx5IGluIHNpbmdsZSBwaXBlIGNvbmZpZyBvbiBJVkIrICovCiAJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gNyAmJgogCSAgICBjb25maWcubnVtX3BpcGVzX2FjdGl2 ZSA9PSAxICYmIGNvbmZpZy5zcHJpdGVzX2VuYWJsZWQpIHsKLQkJaWxrX2NvbXB1dGVfd21fbWF4 aW11bXMoZGV2LCAxLCAmY29uZmlnLCBJTlRFTF9EREJfUEFSVF81XzYsICZtYXgpOwotCQlpbGtf d21fbWVyZ2UoZGV2LCAmY29uZmlnLCAmbWF4LCAmbHBfd21fNV82KTsKKwkJaWxrX2NvbXB1dGVf d21fbWF4aW11bXMoZGV2X3ByaXYsIDEsICZjb25maWcsIElOVEVMX0REQl9QQVJUXzVfNiwgJm1h eCk7CisJCWlsa193bV9tZXJnZShkZXZfcHJpdiwgJmNvbmZpZywgJm1heCwgJmxwX3dtXzVfNik7 CiAKLQkJYmVzdF9scF93bSA9IGlsa19maW5kX2Jlc3RfcmVzdWx0KGRldiwgJmxwX3dtXzFfMiwg JmxwX3dtXzVfNik7CisJCWJlc3RfbHBfd20gPSBpbGtfZmluZF9iZXN0X3Jlc3VsdChkZXZfcHJp diwgJmxwX3dtXzFfMiwgJmxwX3dtXzVfNik7CiAJfSBlbHNlIHsKIAkJYmVzdF9scF93bSA9ICZs cF93bV8xXzI7CiAJfQpAQCAtNTY2Myw3ICs1NjQ3LDcgQEAgc3RhdGljIHZvaWQgaWxrX3Byb2dy YW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJcGFydGl0 aW9uaW5nID0gKGJlc3RfbHBfd20gPT0gJmxwX3dtXzFfMikgPwogCQkgICAgICAgSU5URUxfRERC X1BBUlRfMV8yIDogSU5URUxfRERCX1BBUlRfNV82OwogCi0JaWxrX2NvbXB1dGVfd21fcmVzdWx0 cyhkZXYsIGJlc3RfbHBfd20sIHBhcnRpdGlvbmluZywgJnJlc3VsdHMpOworCWlsa19jb21wdXRl X3dtX3Jlc3VsdHMoZGV2X3ByaXYsIGJlc3RfbHBfd20sIHBhcnRpdGlvbmluZywgJnJlc3VsdHMp OwogCiAJaWxrX3dyaXRlX3dtX3ZhbHVlcyhkZXZfcHJpdiwgJnJlc3VsdHMpOwogfQpAQCAtNTcw MywxOSArNTY4NywxOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2tsX3dtX2xldmVsX2Zyb21fcmVn X3ZhbCh1aW50MzJfdCB2YWwsCiAJCVBMQU5FX1dNX0xJTkVTX01BU0s7CiB9CiAKLXZvaWQgc2ts X3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKK3ZvaWQgc2tsX3Bp cGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICAgICAgc3Ry dWN0IHNrbF9waXBlX3dtICpvdXQpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBp cGU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5i YXNlLmRldik7CisJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWludCBsZXZlbCwgbWF4 X2xldmVsOwogCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQ7CiAJdWludDMyX3QgdmFsOwogCiAJbWF4 X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CiAKLQlmb3JfZWFjaF9wbGFuZV9p ZF9vbl9jcnRjKGludGVsX2NydGMsIHBsYW5lX2lkKSB7CisJZm9yX2VhY2hfcGxhbmVfaWRfb25f Y3J0YyhjcnRjLCBwbGFuZV9pZCkgewogCQlzdHJ1Y3Qgc2tsX3BsYW5lX3dtICp3bSA9ICZvdXQt PnBsYW5lc1twbGFuZV9pZF07CiAKIAkJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9IG1heF9sZXZl bDsgbGV2ZWwrKykgewpAQCAtNTczNSwzMCArNTcxOCwyNyBAQCB2b2lkIHNrbF9waXBlX3dtX2dl dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCXNrbF93bV9sZXZlbF9mcm9tX3Jl Z192YWwodmFsLCAmd20tPnRyYW5zX3dtKTsKIAl9CiAKLQlpZiAoIWludGVsX2NydGMtPmFjdGl2 ZSkKKwlpZiAoIWNydGMtPmFjdGl2ZSkKIAkJcmV0dXJuOwogCiAJb3V0LT5saW5ldGltZSA9IEk5 MTVfUkVBRChQSVBFX1dNX0xJTkVUSU1FKHBpcGUpKTsKIH0KIAotdm9pZCBza2xfd21fZ2V0X2h3 X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit2b2lkIHNrbF93bV9nZXRfaHdfc3RhdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3Qgc2tsX2RkYl92YWx1ZXMg Kmh3ID0gJmRldl9wcml2LT53bS5za2xfaHc7CiAJc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAq ZGRiID0gJmRldl9wcml2LT53bS5za2xfaHcuZGRiOwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YzsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlOwogCiAJc2tsX2RkYl9nZXRfaHdf c3RhdGUoZGV2X3ByaXYsIGRkYik7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShjcnRjLCAmZGV2LT5t b2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKLQkJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Yyk7Ci0JCWNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwor CWZvcl9lYWNoX2ludGVsX2NydGMoJmRldl9wcml2LT5kcm0sIGNydGMpIHsKKwkJY3N0YXRlID0g dG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5iYXNlLnN0YXRlKTsKIAogCQlza2xfcGlwZV93bV9n ZXRfaHdfc3RhdGUoY3J0YywgJmNzdGF0ZS0+d20uc2tsLm9wdGltYWwpOwogCi0JCWlmIChpbnRl bF9jcnRjLT5hY3RpdmUpCi0JCQlody0+ZGlydHlfcGlwZXMgfD0gZHJtX2NydGNfbWFzayhjcnRj KTsKKwkJaWYgKGNydGMtPmFjdGl2ZSkKKwkJCWh3LT5kaXJ0eV9waXBlcyB8PSBkcm1fY3J0Y19t YXNrKCZjcnRjLT5iYXNlKTsKIAl9CiAKIAlpZiAoZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcykgewpA QCAtNTc2NywxNSArNTc0NywxNCBAQCB2b2lkIHNrbF93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGlsa19waXBlX3dtX2dldF9od19z dGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCitzdGF0aWMgdm9pZCBpbGtfcGlwZV93bV9nZXRf aHdfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5k ZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwog CXN0cnVjdCBpbGtfd21fdmFsdWVzICpodyA9ICZkZXZfcHJpdi0+d20uaHc7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwotCXN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShj cnRjLT5iYXNlLnN0YXRlKTsKIAlzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqYWN0aXZlID0gJmNzdGF0 ZS0+d20uaWxrLm9wdGltYWw7Ci0JZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwor CWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlzdGF0aWMgY29uc3QgaTkxNV9yZWdfdCB3 bTBfcGlwZV9yZWdbXSA9IHsKIAkJW1BJUEVfQV0gPSBXTTBfUElQRUFfSUxLLAogCQlbUElQRV9C XSA9IFdNMF9QSVBFQl9JTEssCkBAIC01Nzg4LDcgKzU3NjcsNyBAQCBzdGF0aWMgdm9pZCBpbGtf cGlwZV93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiAJbWVtc2V0KGFj dGl2ZSwgMCwgc2l6ZW9mKCphY3RpdmUpKTsKIAotCWFjdGl2ZS0+cGlwZV9lbmFibGVkID0gaW50 ZWxfY3J0Yy0+YWN0aXZlOworCWFjdGl2ZS0+cGlwZV9lbmFibGVkID0gY3J0Yy0+YWN0aXZlOwog CiAJaWYgKGFjdGl2ZS0+cGlwZV9lbmFibGVkKSB7CiAJCXUzMiB0bXAgPSBody0+d21fcGlwZVtw aXBlXTsKQEAgLTU4MTYsNyArNTc5NSw3IEBAIHN0YXRpYyB2b2lkIGlsa19waXBlX3dtX2dldF9o d19zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCQlhY3RpdmUtPndtW2xldmVsXS5lbmFi bGUgPSB0cnVlOwogCX0KIAotCWludGVsX2NydGMtPndtLmFjdGl2ZS5pbGsgPSAqYWN0aXZlOwor CWNydGMtPndtLmFjdGl2ZS5pbGsgPSAqYWN0aXZlOwogfQogCiAjZGVmaW5lIF9GV19XTSh2YWx1 ZSwgcGxhbmUpIFwKQEAgLTU5MjYsOSArNTkwNSw4IEBAIHN0YXRpYyB2b2lkIHZsdl9yZWFkX3dt X3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAjdW5kZWYgX0ZXX1dN CiAjdW5kZWYgX0ZXX1dNX1ZMVgogCi12b2lkIGc0eF93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKK3ZvaWQgZzR4X3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBnNHhfd21fdmFsdWVzICp3bSA9ICZkZXZfcHJpdi0+ d20uZzR4OwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCkBAIC01OTM2LDcgKzU5MTQsNyBA QCB2b2lkIGc0eF93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCXdt LT5jeHNyID0gSTkxNV9SRUFEKEZXX0JMQ19TRUxGKSAmIEZXX0JMQ19TRUxGX0VOOwogCi0JZm9y X2VhY2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpIHsKKwlmb3JfZWFjaF9pbnRlbF9jcnRjKCZkZXZf cHJpdi0+ZHJtLCBjcnRjKSB7CiAJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl ID0KIAkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7CiAJCXN0cnVjdCBn NHhfd21fc3RhdGUgKmFjdGl2ZSA9ICZjcnRjLT53bS5hY3RpdmUuZzR4OwpAQCAtNjA2Nyw5ICs2 MDQ1LDggQEAgdm9pZCBnNHhfd21fc2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKIH0KIAotdm9p ZCB2bHZfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit2b2lkIHZsdl93 bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3Qg dmx2X3dtX3ZhbHVlcyAqd20gPSAmZGV2X3ByaXYtPndtLnZsdjsKIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YzsKIAl1MzIgdmFsOwpAQCAtNjExMyw3ICs2MDkwLDcgQEAgdm9pZCB2bHZfd21fZ2V0 X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCW11dGV4X3VubG9jaygmZGV2X3By aXYtPnBjdV9sb2NrKTsKIAl9CiAKLQlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0Yykgewor CWZvcl9lYWNoX2ludGVsX2NydGMoJmRldl9wcml2LT5kcm0sIGNydGMpIHsKIAkJc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQogCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRj LT5iYXNlLnN0YXRlKTsKIAkJc3RydWN0IHZsdl93bV9zdGF0ZSAqYWN0aXZlID0gJmNydGMtPndt LmFjdGl2ZS52bHY7CkBAIC02MjMwLDE1ICs2MjA3LDE0IEBAIHN0YXRpYyB2b2lkIGlsa19pbml0 X2xwX3dhdGVybWFya3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqLwog fQogCi12b2lkIGlsa193bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3Zv aWQgaWxrX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwog CXN0cnVjdCBpbGtfd21fdmFsdWVzICpodyA9ICZkZXZfcHJpdi0+d20uaHc7Ci0Jc3RydWN0IGRy bV9jcnRjICpjcnRjOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCiAJaWxrX2luaXRfbHBf d2F0ZXJtYXJrcyhkZXZfcHJpdik7CiAKLQlmb3JfZWFjaF9jcnRjKGRldiwgY3J0YykKKwlmb3Jf ZWFjaF9pbnRlbF9jcnRjKCZkZXZfcHJpdi0+ZHJtLCBjcnRjKQogCQlpbGtfcGlwZV93bV9nZXRf aHdfc3RhdGUoY3J0Yyk7CiAKIAlody0+d21fbHBbMF0gPSBJOTE1X1JFQUQoV00xX0xQX0lMSyk7 Ci0tIAoyLjE0LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=