From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: =?utf-8?q?=5BPATCH_v2_2/2=5D_drm/i915=3A_move_module_?= =?utf-8?q?parameters_into_a_struct=2C_in_a_new_file?= Date: Tue, 21 Jan 2014 11:24:25 +0200 Message-ID: <1390296265-23565-2-git-send-email-jani.nikula@intel.com> References: <20140107075546.GE4770@phenom.ffwll.local> <1390296265-23565-1-git-send-email-jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by gabe.freedesktop.org (Postfix) with ESMTP id D60C8FAEE1 for ; Tue, 21 Jan 2014 01:21:14 -0800 (PST) In-Reply-To: <1390296265-23565-1-git-send-email-jani.nikula@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org, Paulo Zanoni , daniel@ffwll.ch Cc: jani.nikula@intel.com List-Id: intel-gfx@lists.freedesktop.org V2l0aCAyMCsgbW9kdWxlIHBhcmFtZXRlcnMsIEkgdGhpbmsgcmVmZXJyaW5nIHRvIHRoZW0gdmlh IGEgc3RydWN0CmltcHJvdmVzIGNsYXJpdHkgb3ZlciBqdXN0IGhhdmluZyBhIGJ1bmNoIG9mIGds b2JhbHMuIFdoaWxlIGF0IGl0LCBtb3ZlCnRoZSBwYXJhbWV0ZXIgaW5pdGlhbGl6YXRpb24gYW5k IGRlZmluaXRpb25zIGludG8gYSBuZXcgZmlsZQppOTE1X3BhcmFtcy5jIHRvIHJlZHVjZSBjbHV0 dGVyIGluIGk5MTVfZHJ2LmMuCgpBcGFydCBmcm9tIHRoZSBpbGwtbmFtZWQgaTkxNV9lbmFibGVf cmM2LCBpOTE1X2VuYWJsZV9mYmMgYW5kCmk5MTVfZW5hYmxlX3BwZ3R0IHBhcmFtZXRlcnMsIGZv ciB3aGljaCB3ZSBsb3NlIHRoZSAiaTkxNV8iIHByZWZpeAppbnRlcm5hbGx5LCB0aGUgbW9kdWxl IHBhcmFtZXRlcnMgbm93IGxvb2sgdGhlIHNhbWUgYm90aCBvbiB0aGUga2VybmVsCmNvbW1hbmQg bGluZSBhbmQgaW4gY29kZS4gRm9yIGV4YW1wbGUsICJpOTE1Lm1vZGVzZXQiLgoKVGhlIGRvd25z aWRlcyBvZiB0aGUgY2hhbmdlIGFyZSBsb3Npbmcgc3RhdGljIG9uIGEgY291cGxlIG9mIHZhcmlh YmxlcwphbmQgbm90IGhhdmluZyB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIG1vZHVsZV9wYXJhbV9u YW1lZCgpIHJpZ2h0IG5leHQgdG8KZWFjaCBvdGhlci4gT24gdGhlIG90aGVyIGhhbmQsIGFsbCBt b2R1bGUgcGFyYW1ldGVycyBhcmUgbm93IGRlZmluZWQgaW4Kb25lIHBsYWNlIGF0IGk5MTVfcGFy YW1zLmMuIFBsdXMgeW91IGNhbiBkbyB0aGlzIHRvIGZpbmQgYWxsIG1vZHVsZQpwYXJhbWV0ZXIg cmVmZXJlbmNlczoKCiQgZ2l0IGdyZXAgImk5MTVcLiIgLS0gZHJpdmVycy9ncHUvZHJtL2k5MTUK CnYyOgotIG1vdmUgdGhlIGRlZmluaXRpb25zIGludG8gYSBuZXcgZmlsZQotIHMvaTkxNV9wYXJh bXMvaTkxNS8KLSBtYWtlIGk5MTVfdHJ5X3Jlc2V0IGk5MTUucmVzZXQsIGZvciBjb25zaXN0ZW5j eQoKU2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAgfCAgICAxICsKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICAgICB8ICAxMzAgKystLS0tLS0t LS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAg ICB8ICAgNTAgKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAg ICAgICAgfCAgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMgfCAgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICAg fCAgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAgICAgfCAg ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jICAgICAgICAgfCAgMTU1 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Jpb3MuYyAgICAgICAgICB8ICAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyAgICAgICB8ICAgMjYgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMgICAgICAgICAgICB8ICAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMu YyAgICAgICAgICB8ICAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMg ICAgICAgICB8ICAgMTUgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAg ICAgICAgfCAgIDEyICstLQogMTQgZmlsZXMgY2hhbmdlZCwgMjI4IGluc2VydGlvbnMoKyksIDE4 NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3BhcmFtcy5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCBkYTY4MmNiY2I4MDYuLjQ4NTA0 OTRiZDU0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTE0LDYgKzE0LDcgQEAgaTkxNS15IDo9 IGk5MTVfZHJ2Lm8gaTkxNV9kbWEubyBpOTE1X2lycS5vIFwKIAkgIGk5MTVfZ2VtX2d0dC5vIFwK IAkgIGk5MTVfZ2VtX3N0b2xlbi5vIFwKIAkgIGk5MTVfZ2VtX3RpbGluZy5vIFwKKwkgIGk5MTVf cGFyYW1zLm8gXAogCSAgaTkxNV9zeXNmcy5vIFwKIAkgIGk5MTVfdHJhY2VfcG9pbnRzLm8gXAog CSAgaTkxNV91bXMubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCBhNTQzNjY3MTQwZmEu LjczOTY0Y2NkZjNjYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC0zOCwxMjAgKzM4LDYg QEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVs cGVyLmg+CiAKLXN0YXRpYyBpbnQgaTkxNV9tb2Rlc2V0IF9fcmVhZF9tb3N0bHkgPSAtMTsKLW1v ZHVsZV9wYXJhbV9uYW1lZChtb2Rlc2V0LCBpOTE1X21vZGVzZXQsIGludCwgMDQwMCk7Ci1NT0RV TEVfUEFSTV9ERVNDKG1vZGVzZXQsCi0JCSJVc2Uga2VybmVsIG1vZGVzZXR0aW5nIFtLTVNdICgw PURSTV9JOTE1X0tNUyBmcm9tIC5jb25maWcsICIKLQkJIjE9b24sIC0xPWZvcmNlIHZnYSBjb25z b2xlIHByZWZlcmVuY2UgW2RlZmF1bHRdKSIpOwotCi1pbnQgaTkxNV9wYW5lbF9pZ25vcmVfbGlk IF9fcmVhZF9tb3N0bHkgPSAxOwotbW9kdWxlX3BhcmFtX25hbWVkKHBhbmVsX2lnbm9yZV9saWQs IGk5MTVfcGFuZWxfaWdub3JlX2xpZCwgaW50LCAwNjAwKTsKLU1PRFVMRV9QQVJNX0RFU0MocGFu ZWxfaWdub3JlX2xpZCwKLQkJIk92ZXJyaWRlIGxpZCBzdGF0dXMgKDA9YXV0b2RldGVjdCwgMT1h dXRvZGV0ZWN0IGRpc2FibGVkIFtkZWZhdWx0XSwgIgotCQkiLTE9Zm9yY2UgbGlkIGNsb3NlZCwg LTI9Zm9yY2UgbGlkIG9wZW4pIik7Ci0KLXVuc2lnbmVkIGludCBpOTE1X3Bvd2Vyc2F2ZSBfX3Jl YWRfbW9zdGx5ID0gMTsKLW1vZHVsZV9wYXJhbV9uYW1lZChwb3dlcnNhdmUsIGk5MTVfcG93ZXJz YXZlLCBpbnQsIDA2MDApOwotTU9EVUxFX1BBUk1fREVTQyhwb3dlcnNhdmUsCi0JCSJFbmFibGUg cG93ZXJzYXZpbmdzLCBmYmMsIGRvd25jbG9ja2luZywgZXRjLiAoZGVmYXVsdDogdHJ1ZSkiKTsK LQotaW50IGk5MTVfc2VtYXBob3JlcyBfX3JlYWRfbW9zdGx5ID0gLTE7Ci1tb2R1bGVfcGFyYW1f bmFtZWQoc2VtYXBob3JlcywgaTkxNV9zZW1hcGhvcmVzLCBpbnQsIDA0MDApOwotTU9EVUxFX1BB Uk1fREVTQyhzZW1hcGhvcmVzLAotCQkiVXNlIHNlbWFwaG9yZXMgZm9yIGludGVyLXJpbmcgc3lu YyAoZGVmYXVsdDogLTEgKHVzZSBwZXItY2hpcCBkZWZhdWx0cykpIik7Ci0KLWludCBpOTE1X2Vu YWJsZV9yYzYgX19yZWFkX21vc3RseSA9IC0xOwotbW9kdWxlX3BhcmFtX25hbWVkKGk5MTVfZW5h YmxlX3JjNiwgaTkxNV9lbmFibGVfcmM2LCBpbnQsIDA0MDApOwotTU9EVUxFX1BBUk1fREVTQyhp OTE1X2VuYWJsZV9yYzYsCi0JCSJFbmFibGUgcG93ZXItc2F2aW5nIHJlbmRlciBDLXN0YXRlIDYu ICIKLQkJIkRpZmZlcmVudCBzdGFnZXMgY2FuIGJlIHNlbGVjdGVkIHZpYSBiaXRtYXNrIHZhbHVl cyAiCi0JCSIoMCA9IGRpc2FibGU7IDEgPSBlbmFibGUgcmM2OyAyID0gZW5hYmxlIGRlZXAgcmM2 OyA0ID0gZW5hYmxlIGRlZXBlc3QgcmM2KS4gIgotCQkiRm9yIGV4YW1wbGUsIDMgd291bGQgZW5h YmxlIHJjNiBhbmQgZGVlcCByYzYsIGFuZCA3IHdvdWxkIGVuYWJsZSBldmVyeXRoaW5nLiAiCi0J CSJkZWZhdWx0OiAtMSAodXNlIHBlci1jaGlwIGRlZmF1bHQpIik7Ci0KLWludCBpOTE1X2VuYWJs ZV9mYmMgX19yZWFkX21vc3RseSA9IC0xOwotbW9kdWxlX3BhcmFtX25hbWVkKGk5MTVfZW5hYmxl X2ZiYywgaTkxNV9lbmFibGVfZmJjLCBpbnQsIDA2MDApOwotTU9EVUxFX1BBUk1fREVTQyhpOTE1 X2VuYWJsZV9mYmMsCi0JCSJFbmFibGUgZnJhbWUgYnVmZmVyIGNvbXByZXNzaW9uIGZvciBwb3dl ciBzYXZpbmdzICIKLQkJIihkZWZhdWx0OiAtMSAodXNlIHBlci1jaGlwIGRlZmF1bHQpKSIpOwot Ci11bnNpZ25lZCBpbnQgaTkxNV9sdmRzX2Rvd25jbG9jayBfX3JlYWRfbW9zdGx5ID0gMDsKLW1v ZHVsZV9wYXJhbV9uYW1lZChsdmRzX2Rvd25jbG9jaywgaTkxNV9sdmRzX2Rvd25jbG9jaywgaW50 LCAwNDAwKTsKLU1PRFVMRV9QQVJNX0RFU0MobHZkc19kb3duY2xvY2ssCi0JCSJVc2UgcGFuZWwg KExWRFMvZURQKSBkb3duY2xvY2tpbmcgZm9yIHBvd2VyIHNhdmluZ3MgIgotCQkiKGRlZmF1bHQ6 IGZhbHNlKSIpOwotCi1pbnQgaTkxNV9sdmRzX2NoYW5uZWxfbW9kZSBfX3JlYWRfbW9zdGx5Owot bW9kdWxlX3BhcmFtX25hbWVkKGx2ZHNfY2hhbm5lbF9tb2RlLCBpOTE1X2x2ZHNfY2hhbm5lbF9t b2RlLCBpbnQsIDA2MDApOwotTU9EVUxFX1BBUk1fREVTQyhsdmRzX2NoYW5uZWxfbW9kZSwKLQkJ ICJTcGVjaWZ5IExWRFMgY2hhbm5lbCBtb2RlICIKLQkJICIoMD1wcm9iZSBCSU9TIFtkZWZhdWx0 XSwgMT1zaW5nbGUtY2hhbm5lbCwgMj1kdWFsLWNoYW5uZWwpIik7Ci0KLWludCBpOTE1X3BhbmVs X3VzZV9zc2MgX19yZWFkX21vc3RseSA9IC0xOwotbW9kdWxlX3BhcmFtX25hbWVkKGx2ZHNfdXNl X3NzYywgaTkxNV9wYW5lbF91c2Vfc3NjLCBpbnQsIDA2MDApOwotTU9EVUxFX1BBUk1fREVTQyhs dmRzX3VzZV9zc2MsCi0JCSJVc2UgU3ByZWFkIFNwZWN0cnVtIENsb2NrIHdpdGggcGFuZWxzIFtM VkRTL2VEUF0gIgotCQkiKGRlZmF1bHQ6IGF1dG8gZnJvbSBWQlQpIik7Ci0KLWludCBpOTE1X3Zi dF9zZHZvX3BhbmVsX3R5cGUgX19yZWFkX21vc3RseSA9IC0xOwotbW9kdWxlX3BhcmFtX25hbWVk KHZidF9zZHZvX3BhbmVsX3R5cGUsIGk5MTVfdmJ0X3Nkdm9fcGFuZWxfdHlwZSwgaW50LCAwNjAw KTsKLU1PRFVMRV9QQVJNX0RFU0ModmJ0X3Nkdm9fcGFuZWxfdHlwZSwKLQkJIk92ZXJyaWRlL0ln bm9yZSBzZWxlY3Rpb24gb2YgU0RWTyBwYW5lbCBtb2RlIGluIHRoZSBWQlQgIgotCQkiKC0yPWln bm9yZSwgLTE9YXV0byBbZGVmYXVsdF0sIGluZGV4IGluIFZCVCBCSU9TIHRhYmxlKSIpOwotCi1z dGF0aWMgYm9vbCBpOTE1X3RyeV9yZXNldCBfX3JlYWRfbW9zdGx5ID0gdHJ1ZTsKLW1vZHVsZV9w YXJhbV9uYW1lZChyZXNldCwgaTkxNV90cnlfcmVzZXQsIGJvb2wsIDA2MDApOwotTU9EVUxFX1BB Uk1fREVTQyhyZXNldCwgIkF0dGVtcHQgR1BVIHJlc2V0cyAoZGVmYXVsdDogdHJ1ZSkiKTsKLQot Ym9vbCBpOTE1X2VuYWJsZV9oYW5nY2hlY2sgX19yZWFkX21vc3RseSA9IHRydWU7Ci1tb2R1bGVf cGFyYW1fbmFtZWQoZW5hYmxlX2hhbmdjaGVjaywgaTkxNV9lbmFibGVfaGFuZ2NoZWNrLCBib29s LCAwNjQ0KTsKLU1PRFVMRV9QQVJNX0RFU0MoZW5hYmxlX2hhbmdjaGVjaywKLQkJIlBlcmlvZGlj YWxseSBjaGVjayBHUFUgYWN0aXZpdHkgZm9yIGRldGVjdGluZyBoYW5ncy4gIgotCQkiV0FSTklO RzogRGlzYWJsaW5nIHRoaXMgY2FuIGNhdXNlIHN5c3RlbSB3aWRlIGhhbmdzLiAiCi0JCSIoZGVm YXVsdDogdHJ1ZSkiKTsKLQotaW50IGk5MTVfZW5hYmxlX3BwZ3R0IF9fcmVhZF9tb3N0bHkgPSAt MTsKLW1vZHVsZV9wYXJhbV9uYW1lZChpOTE1X2VuYWJsZV9wcGd0dCwgaTkxNV9lbmFibGVfcHBn dHQsIGludCwgMDQwMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKGk5MTVfZW5hYmxlX3BwZ3R0LAotCQki T3ZlcnJpZGUgUFBHVFQgdXNhZ2UuICIKLQkJIigtMT1hdXRvIFtkZWZhdWx0XSwgMD1kaXNhYmxl ZCwgMT1hbGlhc2luZywgMj1mdWxsKSIpOwotCi1pbnQgaTkxNV9lbmFibGVfcHNyIF9fcmVhZF9t b3N0bHkgPSAwOwotbW9kdWxlX3BhcmFtX25hbWVkKGVuYWJsZV9wc3IsIGk5MTVfZW5hYmxlX3Bz ciwgaW50LCAwNjAwKTsKLU1PRFVMRV9QQVJNX0RFU0MoZW5hYmxlX3BzciwgIkVuYWJsZSBQU1Ig KGRlZmF1bHQ6IGZhbHNlKSIpOwotCi11bnNpZ25lZCBpbnQgaTkxNV9wcmVsaW1pbmFyeV9od19z dXBwb3J0IF9fcmVhZF9tb3N0bHkgPSBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9QUkVMSU1J TkFSWV9IV19TVVBQT1JUKTsKLW1vZHVsZV9wYXJhbV9uYW1lZChwcmVsaW1pbmFyeV9od19zdXBw b3J0LCBpOTE1X3ByZWxpbWluYXJ5X2h3X3N1cHBvcnQsIGludCwgMDYwMCk7Ci1NT0RVTEVfUEFS TV9ERVNDKHByZWxpbWluYXJ5X2h3X3N1cHBvcnQsCi0JCSJFbmFibGUgcHJlbGltaW5hcnkgaGFy ZHdhcmUgc3VwcG9ydC4iKTsKLQotaW50IGk5MTVfZGlzYWJsZV9wb3dlcl93ZWxsIF9fcmVhZF9t b3N0bHkgPSAxOwotbW9kdWxlX3BhcmFtX25hbWVkKGRpc2FibGVfcG93ZXJfd2VsbCwgaTkxNV9k aXNhYmxlX3Bvd2VyX3dlbGwsIGludCwgMDYwMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKGRpc2FibGVf cG93ZXJfd2VsbCwKLQkJICJEaXNhYmxlIHRoZSBwb3dlciB3ZWxsIHdoZW4gcG9zc2libGUgKGRl ZmF1bHQ6IHRydWUpIik7Ci0KLWludCBpOTE1X2VuYWJsZV9pcHMgX19yZWFkX21vc3RseSA9IDE7 Ci1tb2R1bGVfcGFyYW1fbmFtZWQoZW5hYmxlX2lwcywgaTkxNV9lbmFibGVfaXBzLCBpbnQsIDA2 MDApOwotTU9EVUxFX1BBUk1fREVTQyhlbmFibGVfaXBzLCAiRW5hYmxlIElQUyAoZGVmYXVsdDog dHJ1ZSkiKTsKLQotYm9vbCBpOTE1X2Zhc3Rib290IF9fcmVhZF9tb3N0bHkgPSAwOwotbW9kdWxl X3BhcmFtX25hbWVkKGZhc3Rib290LCBpOTE1X2Zhc3Rib290LCBib29sLCAwNjAwKTsKLU1PRFVM RV9QQVJNX0RFU0MoZmFzdGJvb3QsICJUcnkgdG8gc2tpcCB1bm5lY2Vzc2FyeSBtb2RlIHNldHMg YXQgYm9vdCB0aW1lICIKLQkJICIoZGVmYXVsdDogZmFsc2UpIik7Ci0KLWludCBpOTE1X2VuYWJs ZV9wYzggX19yZWFkX21vc3RseSA9IDE7Ci1tb2R1bGVfcGFyYW1fbmFtZWQoZW5hYmxlX3BjOCwg aTkxNV9lbmFibGVfcGM4LCBpbnQsIDA2MDApOwotTU9EVUxFX1BBUk1fREVTQyhlbmFibGVfcGM4 LCAiRW5hYmxlIHN1cHBvcnQgZm9yIGxvdyBwb3dlciBwYWNrYWdlIEMgc3RhdGVzIChQQzgrKSAo ZGVmYXVsdDogdHJ1ZSkiKTsKLQotaW50IGk5MTVfcGM4X3RpbWVvdXQgX19yZWFkX21vc3RseSA9 IDUwMDA7Ci1tb2R1bGVfcGFyYW1fbmFtZWQocGM4X3RpbWVvdXQsIGk5MTVfcGM4X3RpbWVvdXQs IGludCwgMDYwMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKHBjOF90aW1lb3V0LCAiTnVtYmVyIG9mIG1z ZWNzIG9mIGlkbGVuZXNzIHJlcXVpcmVkIHRvIGVudGVyIFBDOCsgKGRlZmF1bHQ6IDUwMDApIik7 Ci0KLWJvb2wgaTkxNV9wcmVmYXVsdF9kaXNhYmxlIF9fcmVhZF9tb3N0bHk7Ci1tb2R1bGVfcGFy YW1fbmFtZWQocHJlZmF1bHRfZGlzYWJsZSwgaTkxNV9wcmVmYXVsdF9kaXNhYmxlLCBib29sLCAw NjAwKTsKLU1PRFVMRV9QQVJNX0RFU0MocHJlZmF1bHRfZGlzYWJsZSwKLQkJIkRpc2FibGUgcGFn ZSBwcmVmYXVsdGluZyBmb3IgcHJlYWQvcHdyaXRlL3JlbG9jIChkZWZhdWx0OmZhbHNlKS4gRm9y IGRldmVsb3BlcnMgb25seS4iKTsKLQogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlcjsK IAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9pODMwX2luZm8g PSB7CkBAIC00ODAsMTIgKzM2NiwxMiBAQCBib29sIGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCS8qIFVudGlsIHdlIGdldCBmdXJ0aGVyIHRlc3Rp bmcuLi4gKi8KIAlpZiAoSVNfR0VOOChkZXYpKSB7Ci0JCVdBUk5fT04oIWk5MTVfcHJlbGltaW5h cnlfaHdfc3VwcG9ydCk7CisJCVdBUk5fT04oIWk5MTUucHJlbGltaW5hcnlfaHdfc3VwcG9ydCk7 CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKLQlpZiAoaTkxNV9zZW1hcGhvcmVzID49IDApCi0JCXJl dHVybiBpOTE1X3NlbWFwaG9yZXM7CisJaWYgKGk5MTUuc2VtYXBob3JlcyA+PSAwKQorCQlyZXR1 cm4gaTkxNS5zZW1hcGhvcmVzOwogCiAjaWZkZWYgQ09ORklHX0lOVEVMX0lPTU1VCiAJLyogRW5h YmxlIHNlbWFwaG9yZXMgb24gU05CIHdoZW4gSU8gcmVtYXBwaW5nIGlzIG9mZiAqLwpAQCAtNzUw LDcgKzYzNiw3IEBAIGludCBpOTE1X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJYm9v bCBzaW11bGF0ZWQ7CiAJaW50IHJldDsKIAotCWlmICghaTkxNV90cnlfcmVzZXQpCisJaWYgKCFp OTE1LnJlc2V0KQogCQlyZXR1cm4gMDsKIAogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4 KTsKQEAgLTgxOCw3ICs3MDQsNyBAQCBzdGF0aWMgaW50IGk5MTVfcGNpX3Byb2JlKHN0cnVjdCBw Y2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQogCXN0cnVjdCBp bnRlbF9kZXZpY2VfaW5mbyAqaW50ZWxfaW5mbyA9CiAJCShzdHJ1Y3QgaW50ZWxfZGV2aWNlX2lu Zm8gKikgZW50LT5kcml2ZXJfZGF0YTsKIAotCWlmIChJU19QUkVMSU1JTkFSWV9IVyhpbnRlbF9p bmZvKSAmJiAhaTkxNV9wcmVsaW1pbmFyeV9od19zdXBwb3J0KSB7CisJaWYgKElTX1BSRUxJTUlO QVJZX0hXKGludGVsX2luZm8pICYmICFpOTE1LnByZWxpbWluYXJ5X2h3X3N1cHBvcnQpIHsKIAkJ RFJNX0lORk8oIlRoaXMgaGFyZHdhcmUgcmVxdWlyZXMgcHJlbGltaW5hcnkgaGFyZHdhcmUgc3Vw cG9ydC5cbiIKIAkJCSAiU2VlIENPTkZJR19EUk1fSTkxNV9QUkVMSU1JTkFSWV9IV19TVVBQT1JU LCBhbmQvb3IgbW9kcGFyYW0gcHJlbGltaW5hcnlfaHdfc3VwcG9ydFxuIik7CiAJCXJldHVybiAt RU5PREVWOwpAQCAtMTA0OSwxNCArOTM1LDE0IEBAIHN0YXRpYyBpbnQgX19pbml0IGk5MTVfaW5p dCh2b2lkKQogCSAqIHRoZSBkZWZhdWx0IGJlaGF2aW9yLgogCSAqLwogI2lmIGRlZmluZWQoQ09O RklHX0RSTV9JOTE1X0tNUykKLQlpZiAoaTkxNV9tb2Rlc2V0ICE9IDApCisJaWYgKGk5MTUubW9k ZXNldCAhPSAwKQogCQlkcml2ZXIuZHJpdmVyX2ZlYXR1cmVzIHw9IERSSVZFUl9NT0RFU0VUOwog I2VuZGlmCi0JaWYgKGk5MTVfbW9kZXNldCA9PSAxKQorCWlmIChpOTE1Lm1vZGVzZXQgPT0gMSkK IAkJZHJpdmVyLmRyaXZlcl9mZWF0dXJlcyB8PSBEUklWRVJfTU9ERVNFVDsKIAogI2lmZGVmIENP TkZJR19WR0FfQ09OU09MRQotCWlmICh2Z2Fjb25fdGV4dF9mb3JjZSgpICYmIGk5MTVfbW9kZXNl dCA9PSAtMSkKKwlpZiAodmdhY29uX3RleHRfZm9yY2UoKSAmJiBpOTE1Lm1vZGVzZXQgPT0gLTEp CiAJCWRyaXZlci5kcml2ZXJfZmVhdHVyZXMgJj0gfkRSSVZFUl9NT0RFU0VUOwogI2VuZGlmCiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDU2YzcyMGI3ODliYy4uZGZiN2VmZmI1ZTJmIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTE4OTYsMzEgKzE4OTYsMzkgQEAgc3RydWN0IGRy bV9pOTE1X2ZpbGVfcHJpdmF0ZSB7CiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rl c2MgaTkxNV9pb2N0bHNbXTsKIGV4dGVybiBpbnQgaTkxNV9tYXhfaW9jdGw7Ci1leHRlcm4gaW50 IGk5MTVfcGFuZWxfaWdub3JlX2xpZCBfX3JlYWRfbW9zdGx5OwotZXh0ZXJuIHVuc2lnbmVkIGlu dCBpOTE1X3Bvd2Vyc2F2ZSBfX3JlYWRfbW9zdGx5OwotZXh0ZXJuIGludCBpOTE1X3NlbWFwaG9y ZXMgX19yZWFkX21vc3RseTsKLWV4dGVybiB1bnNpZ25lZCBpbnQgaTkxNV9sdmRzX2Rvd25jbG9j ayBfX3JlYWRfbW9zdGx5OwotZXh0ZXJuIGludCBpOTE1X2x2ZHNfY2hhbm5lbF9tb2RlIF9fcmVh ZF9tb3N0bHk7Ci1leHRlcm4gaW50IGk5MTVfcGFuZWxfdXNlX3NzYyBfX3JlYWRfbW9zdGx5Owot ZXh0ZXJuIGludCBpOTE1X3ZidF9zZHZvX3BhbmVsX3R5cGUgX19yZWFkX21vc3RseTsKLWV4dGVy biBpbnQgaTkxNV9lbmFibGVfcmM2IF9fcmVhZF9tb3N0bHk7Ci1leHRlcm4gaW50IGk5MTVfZW5h YmxlX2ZiYyBfX3JlYWRfbW9zdGx5OwotZXh0ZXJuIGJvb2wgaTkxNV9lbmFibGVfaGFuZ2NoZWNr IF9fcmVhZF9tb3N0bHk7Ci1leHRlcm4gaW50IGk5MTVfZW5hYmxlX3BwZ3R0IF9fcmVhZF9tb3N0 bHk7Ci1leHRlcm4gaW50IGk5MTVfZW5hYmxlX3BzciBfX3JlYWRfbW9zdGx5OwotZXh0ZXJuIHVu c2lnbmVkIGludCBpOTE1X3ByZWxpbWluYXJ5X2h3X3N1cHBvcnQgX19yZWFkX21vc3RseTsKLWV4 dGVybiBpbnQgaTkxNV9kaXNhYmxlX3Bvd2VyX3dlbGwgX19yZWFkX21vc3RseTsKLWV4dGVybiBp bnQgaTkxNV9lbmFibGVfaXBzIF9fcmVhZF9tb3N0bHk7Ci1leHRlcm4gYm9vbCBpOTE1X2Zhc3Ri b290IF9fcmVhZF9tb3N0bHk7Ci1leHRlcm4gaW50IGk5MTVfZW5hYmxlX3BjOCBfX3JlYWRfbW9z dGx5OwotZXh0ZXJuIGludCBpOTE1X3BjOF90aW1lb3V0IF9fcmVhZF9tb3N0bHk7Ci1leHRlcm4g Ym9vbCBpOTE1X3ByZWZhdWx0X2Rpc2FibGUgX19yZWFkX21vc3RseTsKIAogZXh0ZXJuIGludCBp OTE1X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKTsK IGV4dGVybiBpbnQgaTkxNV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBleHRlcm4g aW50IGk5MTVfbWFzdGVyX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJt X21hc3RlciAqbWFzdGVyKTsKIGV4dGVybiB2b2lkIGk5MTVfbWFzdGVyX2Rlc3Ryb3koc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9tYXN0ZXIgKm1hc3Rlcik7CiAKKy8qIGk5MTVf cGFyYW1zLmMgKi8KK3N0cnVjdCBpOTE1X3BhcmFtcyB7CisJaW50IG1vZGVzZXQ7CisJaW50IHBh bmVsX2lnbm9yZV9saWQ7CisJdW5zaWduZWQgaW50IHBvd2Vyc2F2ZTsKKwlpbnQgc2VtYXBob3Jl czsKKwl1bnNpZ25lZCBpbnQgbHZkc19kb3duY2xvY2s7CisJaW50IGx2ZHNfY2hhbm5lbF9tb2Rl OworCWludCBwYW5lbF91c2Vfc3NjOworCWludCB2YnRfc2R2b19wYW5lbF90eXBlOworCWludCBl bmFibGVfcmM2OworCWludCBlbmFibGVfZmJjOworCWJvb2wgZW5hYmxlX2hhbmdjaGVjazsKKwlp bnQgZW5hYmxlX3BwZ3R0OworCWludCBlbmFibGVfcHNyOworCXVuc2lnbmVkIGludCBwcmVsaW1p bmFyeV9od19zdXBwb3J0OworCWludCBkaXNhYmxlX3Bvd2VyX3dlbGw7CisJaW50IGVuYWJsZV9p cHM7CisJYm9vbCBmYXN0Ym9vdDsKKwlpbnQgZW5hYmxlX3BjODsKKwlpbnQgcGM4X3RpbWVvdXQ7 CisJYm9vbCBwcmVmYXVsdF9kaXNhYmxlOworCWJvb2wgcmVzZXQ7CisJaW50IGludmVydF9icmln aHRuZXNzOworfTsKK2V4dGVybiBzdHJ1Y3QgaTkxNV9wYXJhbXMgaTkxNSBfX3JlYWRfbW9zdGx5 OworCiAJCQkJLyogaTkxNV9kbWEuYyAqLwogdm9pZCBpOTE1X3VwZGF0ZV9kcmkxX2JyZWFkY3J1 bWIoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBleHRlcm4gdm9pZCBpOTE1X2tlcm5lbF9sb3N0 X2NvbnRleHQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOwpAQCAtMjMwMCwxMCArMjMwOCwxMCBA QCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fY2hpcHNldF9mbHVzaChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogaW50IGk5MTVfZ2VtX2luaXRfcHBndHQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KTsKIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRl bF9lbmFibGVfcHBndHQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBmdWxsKQogewotCWlm IChpOTE1X2VuYWJsZV9wcGd0dCA9PSAwIHx8ICFIQVNfQUxJQVNJTkdfUFBHVFQoZGV2KSkKKwlp ZiAoaTkxNS5lbmFibGVfcHBndHQgPT0gMCB8fCAhSEFTX0FMSUFTSU5HX1BQR1RUKGRldikpCiAJ CXJldHVybiBmYWxzZTsKIAotCWlmIChpOTE1X2VuYWJsZV9wcGd0dCA9PSAxICYmIGZ1bGwpCisJ aWYgKGk5MTUuZW5hYmxlX3BwZ3R0ID09IDEgJiYgZnVsbCkKIAkJcmV0dXJuIGZhbHNlOwogCiAj aWZkZWYgQ09ORklHX0lOVEVMX0lPTU1VCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA1ZmNk YjE0MmQ0YjguLjI5MjZiMjRjYmViOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC00NzYs NyArNDc2LDcgQEAgaTkxNV9nZW1fc2htZW1fcHJlYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAogCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAotCQlpZiAobGlrZWx5KCFp OTE1X3ByZWZhdWx0X2Rpc2FibGUpICYmICFwcmVmYXVsdGVkKSB7CisJCWlmIChsaWtlbHkoIWk5 MTUucHJlZmF1bHRfZGlzYWJsZSkgJiYgIXByZWZhdWx0ZWQpIHsKIAkJCXJldCA9IGZhdWx0X2lu X211bHRpcGFnZXNfd3JpdGVhYmxlKHVzZXJfZGF0YSwgcmVtYWluKTsKIAkJCS8qIFVzZXJzcGFj ZSBpcyB0cmlja2luZyB1cywgYnV0IHdlJ3ZlIGFscmVhZHkgY2xvYmJlcmVkCiAJCQkgKiBpdHMg cGFnZXMgd2l0aCB0aGUgcHJlZmF1bHQgYW5kIHByb21pc2VkIHRvIHdyaXRlIHRoZQpAQCAtODY4 LDcgKzg2OCw3IEBAIGk5MTVfZ2VtX3B3cml0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCQkgICAgICAgYXJncy0+c2l6ZSkpCiAJCXJldHVybiAtRUZBVUxUOwog Ci0JaWYgKGxpa2VseSghaTkxNV9wcmVmYXVsdF9kaXNhYmxlKSkgeworCWlmIChsaWtlbHkoIWk5 MTUucHJlZmF1bHRfZGlzYWJsZSkpIHsKIAkJcmV0ID0gZmF1bHRfaW5fbXVsdGlwYWdlc19yZWFk YWJsZSh0b191c2VyX3B0cihhcmdzLT5kYXRhX3B0ciksCiAJCQkJCQkgICBhcmdzLT5zaXplKTsK IAkJaWYgKHJldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpp bmRleCAwYzZiY2ZmNzQwYzIuLjAzMmRlZjkwMWY5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtODk2LDcgKzg5Niw3IEBAIHZhbGlkYXRlX2V4ZWNf bGlzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiAqZXhlYywKIAkJaWYgKCFhY2Nl c3Nfb2soVkVSSUZZX1dSSVRFLCBwdHIsIGxlbmd0aCkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAot CQlpZiAobGlrZWx5KCFpOTE1X3ByZWZhdWx0X2Rpc2FibGUpKSB7CisJCWlmIChsaWtlbHkoIWk5 MTUucHJlZmF1bHRfZGlzYWJsZSkpIHsKIAkJCWlmIChmYXVsdF9pbl9tdWx0aXBhZ2VzX3JlYWRh YmxlKHB0ciwgbGVuZ3RoKSkKIAkJCQlyZXR1cm4gLUVGQVVMVDsKIAkJfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYwppbmRleCAzMTkyMDg5Y2IwYmYuLjZlODU4ZTE3YmIwYyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTE1NDIsNyArMTU0Miw3IEBAIHN0YXRpYyBp bmxpbmUgdW5zaWduZWQgaW50IGdlbjhfZ2V0X3RvdGFsX2d0dF9zaXplKHUxNiBiZHdfZ21jaF9j dGwpCiAJaWYgKGJkd19nbWNoX2N0bCkKIAkJYmR3X2dtY2hfY3RsID0gMSA8PCBiZHdfZ21jaF9j dGw7CiAJaWYgKGJkd19nbWNoX2N0bCA+IDQpIHsKLQkJV0FSTl9PTighaTkxNV9wcmVsaW1pbmFy eV9od19zdXBwb3J0KTsKKwkJV0FSTl9PTighaTkxNS5wcmVsaW1pbmFyeV9od19zdXBwb3J0KTsK IAkJcmV0dXJuIDQ8PDIwOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggMTYwZDY1 ZDU5YzA3Li4yNjFmNGI4MDllOTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMjQ3NCw3 ICsyNDc0LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZCh1bnNpZ25lZCBs b25nIGRhdGEpCiAjZGVmaW5lIEhVTkcgMjAKICNkZWZpbmUgRklSRSAzMAogCi0JaWYgKCFpOTE1 X2VuYWJsZV9oYW5nY2hlY2spCisJaWYgKCFpOTE1LmVuYWJsZV9oYW5nY2hlY2spCiAJCXJldHVy bjsKIAogCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKQEAgLTI1NzYsNyArMjU3 Niw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfaGFuZ2NoZWNrX2VsYXBzZWQodW5zaWduZWQgbG9uZyBk YXRhKQogdm9pZCBpOTE1X3F1ZXVlX2hhbmdjaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Ci0JaWYgKCFpOTE1X2VuYWJsZV9oYW5nY2hlY2spCisJaWYgKCFpOTE1LmVuYWJsZV9oYW5nY2hl Y2spCiAJCXJldHVybjsKIAogCW1vZF90aW1lcigmZGV2X3ByaXYtPmdwdV9lcnJvci5oYW5nY2hl Y2tfdGltZXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjQxODE0ZWVmZjcyZgotLS0gL2Rldi9udWxsCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMKQEAgLTAsMCArMSwxNTUgQEAKKy8qCisg KiBDb3B5cmlnaHQgwqkgMjAxNCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv biBmaWxlcyAodGhlCisgKiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisgKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJp Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisgKiBkaXN0cmlidXRl LCBzdWIgbGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv CisgKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8g ZG8gc28sIHN1YmplY3QgdG8KKyAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBU aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5j bHVkaW5nIHRoZQorICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBj b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKKyAqIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisg KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwgRVhQUkVTUworICogT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4KKyAqIElOIE5PIEVWRU5U IFNIQUxMIFRVTkdTVEVOIEdSQVBISUNTIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBG T1IKKyAqIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULAorICogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyAqIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlICJp OTE1X2Rydi5oIgorCitzdHJ1Y3QgaTkxNV9wYXJhbXMgaTkxNSBfX3JlYWRfbW9zdGx5ID0gewor CS5tb2Rlc2V0ID0gLTEsCisJLnBhbmVsX2lnbm9yZV9saWQgPSAxLAorCS5wb3dlcnNhdmUgPSAx LAorCS5zZW1hcGhvcmVzID0gLTEsCisJLmx2ZHNfZG93bmNsb2NrID0gMCwKKwkubHZkc19jaGFu bmVsX21vZGUgPSAwLAorCS5wYW5lbF91c2Vfc3NjID0gLTEsCisJLnZidF9zZHZvX3BhbmVsX3R5 cGUgPSAtMSwKKwkuZW5hYmxlX3JjNiA9IC0xLAorCS5lbmFibGVfZmJjID0gLTEsCisJLmVuYWJs ZV9oYW5nY2hlY2sgPSB0cnVlLAorCS5lbmFibGVfcHBndHQgPSAtMSwKKwkuZW5hYmxlX3BzciA9 IDAsCisJLnByZWxpbWluYXJ5X2h3X3N1cHBvcnQgPSBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkx NV9QUkVMSU1JTkFSWV9IV19TVVBQT1JUKSwKKwkuZGlzYWJsZV9wb3dlcl93ZWxsID0gMSwKKwku ZW5hYmxlX2lwcyA9IDEsCisJLmZhc3Rib290ID0gMCwKKwkuZW5hYmxlX3BjOCA9IDEsCisJLnBj OF90aW1lb3V0ID0gNTAwMCwKKwkucHJlZmF1bHRfZGlzYWJsZSA9IDAsCisJLnJlc2V0ID0gdHJ1 ZSwKKwkuaW52ZXJ0X2JyaWdodG5lc3MgPSAwLAorfTsKKworbW9kdWxlX3BhcmFtX25hbWVkKG1v ZGVzZXQsIGk5MTUubW9kZXNldCwgaW50LCAwNDAwKTsKK01PRFVMRV9QQVJNX0RFU0MobW9kZXNl dCwKKwkiVXNlIGtlcm5lbCBtb2Rlc2V0dGluZyBbS01TXSAoMD1EUk1fSTkxNV9LTVMgZnJvbSAu Y29uZmlnLCAiCisJIjE9b24sIC0xPWZvcmNlIHZnYSBjb25zb2xlIHByZWZlcmVuY2UgW2RlZmF1 bHRdKSIpOworCittb2R1bGVfcGFyYW1fbmFtZWQocGFuZWxfaWdub3JlX2xpZCwgaTkxNS5wYW5l bF9pZ25vcmVfbGlkLCBpbnQsIDA2MDApOworTU9EVUxFX1BBUk1fREVTQyhwYW5lbF9pZ25vcmVf bGlkLAorCSJPdmVycmlkZSBsaWQgc3RhdHVzICgwPWF1dG9kZXRlY3QsIDE9YXV0b2RldGVjdCBk aXNhYmxlZCBbZGVmYXVsdF0sICIKKwkiLTE9Zm9yY2UgbGlkIGNsb3NlZCwgLTI9Zm9yY2UgbGlk IG9wZW4pIik7CisKK21vZHVsZV9wYXJhbV9uYW1lZChwb3dlcnNhdmUsIGk5MTUucG93ZXJzYXZl LCBpbnQsIDA2MDApOworTU9EVUxFX1BBUk1fREVTQyhwb3dlcnNhdmUsCisJIkVuYWJsZSBwb3dl cnNhdmluZ3MsIGZiYywgZG93bmNsb2NraW5nLCBldGMuIChkZWZhdWx0OiB0cnVlKSIpOworCitt b2R1bGVfcGFyYW1fbmFtZWQoc2VtYXBob3JlcywgaTkxNS5zZW1hcGhvcmVzLCBpbnQsIDA0MDAp OworTU9EVUxFX1BBUk1fREVTQyhzZW1hcGhvcmVzLAorCSJVc2Ugc2VtYXBob3JlcyBmb3IgaW50 ZXItcmluZyBzeW5jICIKKwkiKGRlZmF1bHQ6IC0xICh1c2UgcGVyLWNoaXAgZGVmYXVsdHMpKSIp OworCittb2R1bGVfcGFyYW1fbmFtZWQoaTkxNV9lbmFibGVfcmM2LCBpOTE1LmVuYWJsZV9yYzYs IGludCwgMDQwMCk7CitNT0RVTEVfUEFSTV9ERVNDKGk5MTVfZW5hYmxlX3JjNiwKKwkiRW5hYmxl IHBvd2VyLXNhdmluZyByZW5kZXIgQy1zdGF0ZSA2LiAiCisJIkRpZmZlcmVudCBzdGFnZXMgY2Fu IGJlIHNlbGVjdGVkIHZpYSBiaXRtYXNrIHZhbHVlcyAiCisJIigwID0gZGlzYWJsZTsgMSA9IGVu YWJsZSByYzY7IDIgPSBlbmFibGUgZGVlcCByYzY7IDQgPSBlbmFibGUgZGVlcGVzdCByYzYpLiAi CisJIkZvciBleGFtcGxlLCAzIHdvdWxkIGVuYWJsZSByYzYgYW5kIGRlZXAgcmM2LCBhbmQgNyB3 b3VsZCBlbmFibGUgZXZlcnl0aGluZy4gIgorCSJkZWZhdWx0OiAtMSAodXNlIHBlci1jaGlwIGRl ZmF1bHQpIik7CisKK21vZHVsZV9wYXJhbV9uYW1lZChpOTE1X2VuYWJsZV9mYmMsIGk5MTUuZW5h YmxlX2ZiYywgaW50LCAwNjAwKTsKK01PRFVMRV9QQVJNX0RFU0MoaTkxNV9lbmFibGVfZmJjLAor CSJFbmFibGUgZnJhbWUgYnVmZmVyIGNvbXByZXNzaW9uIGZvciBwb3dlciBzYXZpbmdzICIKKwki KGRlZmF1bHQ6IC0xICh1c2UgcGVyLWNoaXAgZGVmYXVsdCkpIik7CisKK21vZHVsZV9wYXJhbV9u YW1lZChsdmRzX2Rvd25jbG9jaywgaTkxNS5sdmRzX2Rvd25jbG9jaywgaW50LCAwNDAwKTsKK01P RFVMRV9QQVJNX0RFU0MobHZkc19kb3duY2xvY2ssCisJIlVzZSBwYW5lbCAoTFZEUy9lRFApIGRv d25jbG9ja2luZyBmb3IgcG93ZXIgc2F2aW5ncyAiCisJIihkZWZhdWx0OiBmYWxzZSkiKTsKKwor bW9kdWxlX3BhcmFtX25hbWVkKGx2ZHNfY2hhbm5lbF9tb2RlLCBpOTE1Lmx2ZHNfY2hhbm5lbF9t b2RlLCBpbnQsIDA2MDApOworTU9EVUxFX1BBUk1fREVTQyhsdmRzX2NoYW5uZWxfbW9kZSwKKwkg IlNwZWNpZnkgTFZEUyBjaGFubmVsIG1vZGUgIgorCSAiKDA9cHJvYmUgQklPUyBbZGVmYXVsdF0s IDE9c2luZ2xlLWNoYW5uZWwsIDI9ZHVhbC1jaGFubmVsKSIpOworCittb2R1bGVfcGFyYW1fbmFt ZWQobHZkc191c2Vfc3NjLCBpOTE1LnBhbmVsX3VzZV9zc2MsIGludCwgMDYwMCk7CitNT0RVTEVf UEFSTV9ERVNDKGx2ZHNfdXNlX3NzYywKKwkiVXNlIFNwcmVhZCBTcGVjdHJ1bSBDbG9jayB3aXRo IHBhbmVscyBbTFZEUy9lRFBdICIKKwkiKGRlZmF1bHQ6IGF1dG8gZnJvbSBWQlQpIik7CisKK21v ZHVsZV9wYXJhbV9uYW1lZCh2YnRfc2R2b19wYW5lbF90eXBlLCBpOTE1LnZidF9zZHZvX3BhbmVs X3R5cGUsIGludCwgMDYwMCk7CitNT0RVTEVfUEFSTV9ERVNDKHZidF9zZHZvX3BhbmVsX3R5cGUs CisJIk92ZXJyaWRlL0lnbm9yZSBzZWxlY3Rpb24gb2YgU0RWTyBwYW5lbCBtb2RlIGluIHRoZSBW QlQgIgorCSIoLTI9aWdub3JlLCAtMT1hdXRvIFtkZWZhdWx0XSwgaW5kZXggaW4gVkJUIEJJT1Mg dGFibGUpIik7CisKK21vZHVsZV9wYXJhbV9uYW1lZChyZXNldCwgaTkxNS5yZXNldCwgYm9vbCwg MDYwMCk7CitNT0RVTEVfUEFSTV9ERVNDKHJlc2V0LCAiQXR0ZW1wdCBHUFUgcmVzZXRzIChkZWZh dWx0OiB0cnVlKSIpOworCittb2R1bGVfcGFyYW1fbmFtZWQoZW5hYmxlX2hhbmdjaGVjaywgaTkx NS5lbmFibGVfaGFuZ2NoZWNrLCBib29sLCAwNjQ0KTsKK01PRFVMRV9QQVJNX0RFU0MoZW5hYmxl X2hhbmdjaGVjaywKKwkiUGVyaW9kaWNhbGx5IGNoZWNrIEdQVSBhY3Rpdml0eSBmb3IgZGV0ZWN0 aW5nIGhhbmdzLiAiCisJIldBUk5JTkc6IERpc2FibGluZyB0aGlzIGNhbiBjYXVzZSBzeXN0ZW0g d2lkZSBoYW5ncy4gIgorCSIoZGVmYXVsdDogdHJ1ZSkiKTsKKworbW9kdWxlX3BhcmFtX25hbWVk KGk5MTVfZW5hYmxlX3BwZ3R0LCBpOTE1LmVuYWJsZV9wcGd0dCwgaW50LCAwNDAwKTsKK01PRFVM RV9QQVJNX0RFU0MoaTkxNV9lbmFibGVfcHBndHQsCisJIk92ZXJyaWRlIFBQR1RUIHVzYWdlLiAi CisJIigtMT1hdXRvIFtkZWZhdWx0XSwgMD1kaXNhYmxlZCwgMT1hbGlhc2luZywgMj1mdWxsKSIp OworCittb2R1bGVfcGFyYW1fbmFtZWQoZW5hYmxlX3BzciwgaTkxNS5lbmFibGVfcHNyLCBpbnQs IDA2MDApOworTU9EVUxFX1BBUk1fREVTQyhlbmFibGVfcHNyLCAiRW5hYmxlIFBTUiAoZGVmYXVs dDogZmFsc2UpIik7CisKK21vZHVsZV9wYXJhbV9uYW1lZChwcmVsaW1pbmFyeV9od19zdXBwb3J0 LCBpOTE1LnByZWxpbWluYXJ5X2h3X3N1cHBvcnQsIGludCwgMDYwMCk7CitNT0RVTEVfUEFSTV9E RVNDKHByZWxpbWluYXJ5X2h3X3N1cHBvcnQsCisJIkVuYWJsZSBwcmVsaW1pbmFyeSBoYXJkd2Fy ZSBzdXBwb3J0LiIpOworCittb2R1bGVfcGFyYW1fbmFtZWQoZGlzYWJsZV9wb3dlcl93ZWxsLCBp OTE1LmRpc2FibGVfcG93ZXJfd2VsbCwgaW50LCAwNjAwKTsKK01PRFVMRV9QQVJNX0RFU0MoZGlz YWJsZV9wb3dlcl93ZWxsLAorCSJEaXNhYmxlIHRoZSBwb3dlciB3ZWxsIHdoZW4gcG9zc2libGUg KGRlZmF1bHQ6IHRydWUpIik7CisKK21vZHVsZV9wYXJhbV9uYW1lZChlbmFibGVfaXBzLCBpOTE1 LmVuYWJsZV9pcHMsIGludCwgMDYwMCk7CitNT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9pcHMsICJF bmFibGUgSVBTIChkZWZhdWx0OiB0cnVlKSIpOworCittb2R1bGVfcGFyYW1fbmFtZWQoZmFzdGJv b3QsIGk5MTUuZmFzdGJvb3QsIGJvb2wsIDA2MDApOworTU9EVUxFX1BBUk1fREVTQyhmYXN0Ym9v dCwKKwkiVHJ5IHRvIHNraXAgdW5uZWNlc3NhcnkgbW9kZSBzZXRzIGF0IGJvb3QgdGltZSAoZGVm YXVsdDogZmFsc2UpIik7CisKK21vZHVsZV9wYXJhbV9uYW1lZChlbmFibGVfcGM4LCBpOTE1LmVu YWJsZV9wYzgsIGludCwgMDYwMCk7CitNT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9wYzgsCisJIkVu YWJsZSBzdXBwb3J0IGZvciBsb3cgcG93ZXIgcGFja2FnZSBDIHN0YXRlcyAoUEM4KykgKGRlZmF1 bHQ6IHRydWUpIik7CisKK21vZHVsZV9wYXJhbV9uYW1lZChwYzhfdGltZW91dCwgaTkxNS5wYzhf dGltZW91dCwgaW50LCAwNjAwKTsKK01PRFVMRV9QQVJNX0RFU0MocGM4X3RpbWVvdXQsCisJIk51 bWJlciBvZiBtc2VjcyBvZiBpZGxlbmVzcyByZXF1aXJlZCB0byBlbnRlciBQQzgrIChkZWZhdWx0 OiA1MDAwKSIpOworCittb2R1bGVfcGFyYW1fbmFtZWQocHJlZmF1bHRfZGlzYWJsZSwgaTkxNS5w cmVmYXVsdF9kaXNhYmxlLCBib29sLCAwNjAwKTsKK01PRFVMRV9QQVJNX0RFU0MocHJlZmF1bHRf ZGlzYWJsZSwKKwkiRGlzYWJsZSBwYWdlIHByZWZhdWx0aW5nIGZvciBwcmVhZC9wd3JpdGUvcmVs b2MgKGRlZmF1bHQ6ZmFsc2UpLiAiCisJIkZvciBkZXZlbG9wZXJzIG9ubHkuIik7CisKK21vZHVs ZV9wYXJhbV9uYW1lZChpbnZlcnRfYnJpZ2h0bmVzcywgaTkxNS5pbnZlcnRfYnJpZ2h0bmVzcywg aW50LCAwNjAwKTsKK01PRFVMRV9QQVJNX0RFU0MoaW52ZXJ0X2JyaWdodG5lc3MsCisJIkludmVy dCBiYWNrbGlnaHQgYnJpZ2h0bmVzcyAiCisJIigtMSBmb3JjZSBub3JtYWwsIDAgbWFjaGluZSBk ZWZhdWx0cywgMSBmb3JjZSBpbnZlcnNpb24pLCBwbGVhc2UgIgorCSJyZXBvcnQgUENJIGRldmlj ZSBJRCwgc3Vic3lzdGVtIHZlbmRvciBhbmQgc3Vic3lzdGVtIGRldmljZSBJRCAiCisJInRvIGRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcsIGlmIHlvdXIgbWFjaGluZSBuZWVkcyBpdC4g IgorCSJJdCB3aWxsIHRoZW4gYmUgaW5jbHVkZWQgaW4gYW4gdXBjb21pbmcgbW9kdWxlIHZlcnNp b24uIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMKaW5kZXggZjIyMDQxOTczZjNhLi44NmI5 NWNhNDEzZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMKQEAgLTI1OSw3ICsyNTksNyBA QCBwYXJzZV9sZnBfcGFuZWxfZGF0YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJCQlkb3duY2xvY2sgPSBkdm9fdGltaW5nLT5jbG9jazsKIAl9CiAKLQlpZiAoZG93bmNsb2Nr IDwgcGFuZWxfZHZvX3RpbWluZy0+Y2xvY2sgJiYgaTkxNV9sdmRzX2Rvd25jbG9jaykgeworCWlm IChkb3duY2xvY2sgPCBwYW5lbF9kdm9fdGltaW5nLT5jbG9jayAmJiBpOTE1Lmx2ZHNfZG93bmNs b2NrKSB7CiAJCWRldl9wcml2LT5sdmRzX2Rvd25jbG9ja19hdmFpbCA9IDE7CiAJCWRldl9wcml2 LT5sdmRzX2Rvd25jbG9jayA9IGRvd25jbG9jayAqIDEwOwogCQlEUk1fREVCVUdfS01TKCJMVkRT IGRvd25jbG9jayBpcyBmb3VuZCBpbiBWQlQuICIKQEAgLTMxOCw3ICszMTgsNyBAQCBwYXJzZV9z ZHZvX3BhbmVsX2RhdGEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICpwYW5lbF9maXhlZF9tb2RlOwogCWludCBpbmRleDsKIAotCWlu ZGV4ID0gaTkxNV92YnRfc2R2b19wYW5lbF90eXBlOworCWluZGV4ID0gaTkxNS52YnRfc2R2b19w YW5lbF90eXBlOwogCWlmIChpbmRleCA9PSAtMikgewogCQlEUk1fREVCVUdfS01TKCJJZ25vcmUg U0RWTyBwYW5lbCBtb2RlIGZyb20gQklPUyBWQlQgdGFibGVzLlxuIik7CiAJCXJldHVybjsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAxNWY1NWU4ODM3MmUuLmVlNDY2MDY1 M2UwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMjM3Miw3ICsyMzcy LDcgQEAgaW50ZWxfcGlwZV9zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCB4LCBp bnQgeSwKIAkgKiB3aGV0aGVyIHRoZSBwbGF0Zm9ybSBhbGxvd3MgcGZpdCBkaXNhYmxlIHdpdGgg cGlwZSBhY3RpdmUsIGFuZCBvbmx5CiAJICogdGhlbiB1cGRhdGUgdGhlIHBpcGVzcmMgYW5kIHBm aXQgc3RhdGUsIGV2ZW4gb24gdGhlIGZsaXAgcGF0aC4KIAkgKi8KLQlpZiAoaTkxNV9mYXN0Ym9v dCkgeworCWlmIChpOTE1LmZhc3Rib290KSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0KIAkJCSZpbnRlbF9jcnRjLT5jb25maWcuYWRqdXN0ZWRfbW9k ZTsKIApAQCAtNDU1Myw3ICs0NTUzLDcgQEAgcmV0cnk6CiBzdGF0aWMgdm9pZCBoc3dfY29tcHV0 ZV9pcHNfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJCSAgIHN0cnVjdCBpbnRl bF9jcnRjX2NvbmZpZyAqcGlwZV9jb25maWcpCiB7Ci0JcGlwZV9jb25maWctPmlwc19lbmFibGVk ID0gaTkxNV9lbmFibGVfaXBzICYmCisJcGlwZV9jb25maWctPmlwc19lbmFibGVkID0gaTkxNS5l bmFibGVfaXBzICYmCiAJCQkJICAgaHN3X2NydGNfc3VwcG9ydHNfaXBzKGNydGMpICYmCiAJCQkJ ICAgcGlwZV9jb25maWctPnBpcGVfYnBwIDw9IDI0OwogfQpAQCAtNDc1NCw4ICs0NzU0LDggQEAg aW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYml0c19wZXJfcGl4ZWwsIGludCBubGFuZXMsCiAK IHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9wYW5lbF91c2Vfc3NjKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIHsKLQlpZiAoaTkxNV9wYW5lbF91c2Vfc3NjID49IDApCi0JCXJl dHVybiBpOTE1X3BhbmVsX3VzZV9zc2MgIT0gMDsKKwlpZiAoaTkxNS5wYW5lbF91c2Vfc3NjID49 IDApCisJCXJldHVybiBpOTE1LnBhbmVsX3VzZV9zc2MgIT0gMDsKIAlyZXR1cm4gZGV2X3ByaXYt PnZidC5sdmRzX3VzZV9zc2MKIAkJJiYgIShkZXZfcHJpdi0+cXVpcmtzICYgUVVJUktfTFZEU19T U0NfRElTQUJMRSk7CiB9CkBAIC00ODE0LDcgKzQ4MTQsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3Vw ZGF0ZV9wbGxfZGl2aWRlcnMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIAljcnRjLT5sb3dm cmVxX2F2YWlsID0gZmFsc2U7CiAJaWYgKGludGVsX3BpcGVfaGFzX3R5cGUoJmNydGMtPmJhc2Us IElOVEVMX09VVFBVVF9MVkRTKSAmJgotCSAgICByZWR1Y2VkX2Nsb2NrICYmIGk5MTVfcG93ZXJz YXZlKSB7CisJICAgIHJlZHVjZWRfY2xvY2sgJiYgaTkxNS5wb3dlcnNhdmUpIHsKIAkJSTkxNV9X UklURShGUDEocGlwZSksIGZwMik7CiAJCWNydGMtPmNvbmZpZy5kcGxsX2h3X3N0YXRlLmZwMSA9 IGZwMjsKIAkJY3J0Yy0+bG93ZnJlcV9hdmFpbCA9IHRydWU7CkBAIC02MzE4LDcgKzYzMTgsNyBA QCBzdGF0aWMgaW50IGlyb25sYWtlX2NydGNfbW9kZV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRj LAogCWlmIChpbnRlbF9jcnRjLT5jb25maWcuaGFzX2RwX2VuY29kZXIpCiAJCWludGVsX2RwX3Nl dF9tX24oaW50ZWxfY3J0Yyk7CiAKLQlpZiAoaXNfbHZkcyAmJiBoYXNfcmVkdWNlZF9jbG9jayAm JiBpOTE1X3Bvd2Vyc2F2ZSkKKwlpZiAoaXNfbHZkcyAmJiBoYXNfcmVkdWNlZF9jbG9jayAmJiBp OTE1LnBvd2Vyc2F2ZSkKIAkJaW50ZWxfY3J0Yy0+bG93ZnJlcV9hdmFpbCA9IHRydWU7CiAJZWxz ZQogCQlpbnRlbF9jcnRjLT5sb3dmcmVxX2F2YWlsID0gZmFsc2U7CkBAIC02Njg2LDcgKzY2ODYs NyBAQCBzdGF0aWMgdm9pZCBfX2hzd19lbmFibGVfcGFja2FnZV9jOChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAJCXJldHVybjsKIAogCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygm ZGV2X3ByaXYtPnBjOC5lbmFibGVfd29yaywKLQkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMoaTkx NV9wYzhfdGltZW91dCkpOworCQkJICAgICAgbXNlY3NfdG9famlmZmllcyhpOTE1LnBjOF90aW1l b3V0KSk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faHN3X2Rpc2FibGVfcGFja2FnZV9jOChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC02Nzg1LDcgKzY3ODUsNyBAQCBzdGF0aWMg dm9pZCBoc3dfdXBkYXRlX3BhY2thZ2VfYzgoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAo IUhBU19QQzgoZGV2X3ByaXYtPmRldikpCiAJCXJldHVybjsKIAotCWlmICghaTkxNV9lbmFibGVf cGM4KQorCWlmICghaTkxNS5lbmFibGVfcGM4KQogCQlyZXR1cm47CiAKIAltdXRleF9sb2NrKCZk ZXZfcHJpdi0+cGM4LmxvY2spOwpAQCAtODE4Myw3ICs4MTgzLDcgQEAgdm9pZCBpbnRlbF9tYXJr X2lkbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWhzd19wYWNrYWdlX2M4X2dwdV9pZGxl KGRldl9wcml2KTsKIAotCWlmICghaTkxNV9wb3dlcnNhdmUpCisJaWYgKCFpOTE1LnBvd2Vyc2F2 ZSkKIAkJcmV0dXJuOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjcnRjLCAmZGV2LT5tb2RlX2Nv bmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKQEAgLTgyMDMsNyArODIwMyw3IEBAIHZvaWQgaW50ZWxf bWFya19mYl9idXN5KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IG9iai0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwog Ci0JaWYgKCFpOTE1X3Bvd2Vyc2F2ZSkKKwlpZiAoIWk5MTUucG93ZXJzYXZlKQogCQlyZXR1cm47 CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlz dCwgaGVhZCkgewpAQCAtOTg3NSw3ICs5ODc1LDcgQEAgaW50ZWxfc2V0X2NvbmZpZ19jb21wdXRl X21vZGVfY2hhbmdlcyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCiAJCQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9CiAJCQkJdG9faW50ZWxfY3J0YyhzZXQtPmNydGMpOwogCi0JCQlp ZiAoaW50ZWxfY3J0Yy0+YWN0aXZlICYmIGk5MTVfZmFzdGJvb3QpIHsKKwkJCWlmIChpbnRlbF9j cnRjLT5hY3RpdmUgJiYgaTkxNS5mYXN0Ym9vdCkgewogCQkJCURSTV9ERUJVR19LTVMoImNydGMg aGFzIG5vIGZiLCB3aWxsIGZsaXBcbiIpOwogCQkJCWNvbmZpZy0+ZmJfY2hhbmdlZCA9IHRydWU7 CiAJCQl9IGVsc2UgewpAQCAtMTAxMjYsNyArMTAxMjYsNyBAQCBzdGF0aWMgaW50IGludGVsX2Ny dGNfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCiAJCSAqIGZsaXBwaW5nLCBz byBpbmNyZWFzaW5nIGl0cyBjb3N0IGhlcmUgc2hvdWxkbid0IGJlIGEgYmlnCiAJCSAqIGRlYWwp LgogCQkgKi8KLQkJaWYgKGk5MTVfZmFzdGJvb3QgJiYgcmV0ID09IDApCisJCWlmIChpOTE1LmZh c3Rib290ICYmIHJldCA9PSAwKQogCQkJaW50ZWxfbW9kZXNldF9jaGVja19zdGF0ZShzZXQtPmNy dGMtPmRldik7CiAJfQogCkBAIC0xMTM2MCw3ICsxMTM2MCw3IEBAIHZvaWQgaW50ZWxfbW9kZXNl dF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCSAqLwogCWxpc3RfZm9y X2VhY2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LAogCQkJICAgIGJh c2UuaGVhZCkgewotCQlpZiAoY3J0Yy0+YWN0aXZlICYmIGk5MTVfZmFzdGJvb3QpIHsKKwkJaWYg KGNydGMtPmFjdGl2ZSAmJiBpOTE1LmZhc3Rib290KSB7CiAJCQlpbnRlbF9jcnRjX21vZGVfZnJv bV9waXBlX2NvbmZpZyhjcnRjLCAmY3J0Yy0+Y29uZmlnKTsKIAogCQkJRFJNX0RFQlVHX0tNUygi W0NSVEM6JWRdIGZvdW5kIGFjdGl2ZSBtb2RlOiAiLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5k ZXggODg1ZDI3MTk0MmIzLi5lYjM4YTc3YWVkMGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpA QCAtMTY4NCw3ICsxNjg0LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX3Bzcl9tYXRjaF9jb25k aXRpb25zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJCXJldHVybiBmYWxzZTsKIAl9CiAK LQlpZiAoIWk5MTVfZW5hYmxlX3BzcikgeworCWlmICghaTkxNS5lbmFibGVfcHNyKSB7CiAJCURS TV9ERUJVR19LTVMoIlBTUiBkaXNhYmxlIGJ5IGZsYWdcbiIpOwogCQlyZXR1cm4gZmFsc2U7CiAJ fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCmluZGV4IDhiY2I5M2EyYTlmNi4uM2YzMDQzYjRm ZjI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCkBAIC04NDgsOCArODQ4LDggQEAgc3Rh dGljIGJvb2wgY29tcHV0ZV9pc19kdWFsX2xpbmtfbHZkcyhzdHJ1Y3QgaW50ZWxfbHZkc19lbmNv ZGVyICpsdmRzX2VuY29kZXIpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKIAogCS8qIHVzZSB0aGUgbW9kdWxlIG9wdGlvbiB2YWx1ZSBpZiBz cGVjaWZpZWQgKi8KLQlpZiAoaTkxNV9sdmRzX2NoYW5uZWxfbW9kZSA+IDApCi0JCXJldHVybiBp OTE1X2x2ZHNfY2hhbm5lbF9tb2RlID09IDI7CisJaWYgKGk5MTUubHZkc19jaGFubmVsX21vZGUg PiAwKQorCQlyZXR1cm4gaTkxNS5sdmRzX2NoYW5uZWxfbW9kZSA9PSAyOwogCiAJaWYgKGRtaV9j aGVja19zeXN0ZW0oaW50ZWxfZHVhbF9saW5rX2x2ZHMpKQogCQlyZXR1cm4gdHJ1ZTsKQEAgLTEw MzYsNyArMTAzNiw3IEBAIHZvaWQgaW50ZWxfbHZkc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJCQkJCWludGVsX2ZpbmRfcGFuZWxfZG93bmNsb2NrKGRldiwKIAkJCQkJZml4ZWRfbW9k ZSwgY29ubmVjdG9yKTsKIAkJCQlpZiAoaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5kb3duY2xvY2tf bW9kZSAhPQotCQkJCQlOVUxMICYmCWk5MTVfbHZkc19kb3duY2xvY2spIHsKKwkJCQkJTlVMTCAm JglpOTE1Lmx2ZHNfZG93bmNsb2NrKSB7CiAJCQkJCS8qIFdlIGZvdW5kIHRoZSBkb3duY2xvY2sg Zm9yIExWRFMuICovCiAJCQkJCWRldl9wcml2LT5sdmRzX2Rvd25jbG9ja19hdmFpbCA9IHRydWU7 CiAJCQkJCWRldl9wcml2LT5sdmRzX2Rvd25jbG9jayA9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFu ZWwuYwppbmRleCA5ZjgzYWIwNmZiNWUuLmYxZWUyYzRkMjgyZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wYW5lbC5jCkBAIC0zMjMsMTMgKzMyMyw2IEBAIG91dDoKIAlwaXBlX2NvbmZpZy0+Z21j aF9wZml0Lmx2ZHNfYm9yZGVyX2JpdHMgPSBib3JkZXI7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9w YW5lbF9pbnZlcnRfYnJpZ2h0bmVzczsKLU1PRFVMRV9QQVJNX0RFU0MoaW52ZXJ0X2JyaWdodG5l c3MsICJJbnZlcnQgYmFja2xpZ2h0IGJyaWdodG5lc3MgIgotCSIoLTEgZm9yY2Ugbm9ybWFsLCAw IG1hY2hpbmUgZGVmYXVsdHMsIDEgZm9yY2UgaW52ZXJzaW9uKSwgcGxlYXNlICIKLQkicmVwb3J0 IFBDSSBkZXZpY2UgSUQsIHN1YnN5c3RlbSB2ZW5kb3IgYW5kIHN1YnN5c3RlbSBkZXZpY2UgSUQg IgotCSJ0byBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnLCBpZiB5b3VyIG1hY2hpbmUg bmVlZHMgaXQuICIKLQkiSXQgd2lsbCB0aGVuIGJlIGluY2x1ZGVkIGluIGFuIHVwY29taW5nIG1v ZHVsZSB2ZXJzaW9uLiIpOwotbW9kdWxlX3BhcmFtX25hbWVkKGludmVydF9icmlnaHRuZXNzLCBp OTE1X3BhbmVsX2ludmVydF9icmlnaHRuZXNzLCBpbnQsIDA2MDApOwogc3RhdGljIHUzMiBpbnRl bF9wYW5lbF9jb21wdXRlX2JyaWdodG5lc3Moc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yLAogCQkJCQkgIHUzMiB2YWwpCiB7CkBAIC0zMzksMTAgKzMzMiwxMCBAQCBzdGF0aWMgdTMy IGludGVsX3BhbmVsX2NvbXB1dGVfYnJpZ2h0bmVzcyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IsCiAKIAlXQVJOX09OKHBhbmVsLT5iYWNrbGlnaHQubWF4ID09IDApOwogCi0JaWYg KGk5MTVfcGFuZWxfaW52ZXJ0X2JyaWdodG5lc3MgPCAwKQorCWlmIChpOTE1LmludmVydF9icmln aHRuZXNzIDwgMCkKIAkJcmV0dXJuIHZhbDsKIAotCWlmIChpOTE1X3BhbmVsX2ludmVydF9icmln aHRuZXNzID4gMCB8fAorCWlmIChpOTE1LmludmVydF9icmlnaHRuZXNzID4gMCB8fAogCSAgICBk ZXZfcHJpdi0+cXVpcmtzICYgUVVJUktfSU5WRVJUX0JSSUdIVE5FU1MpIHsKIAkJcmV0dXJuIHBh bmVsLT5iYWNrbGlnaHQubWF4IC0gdmFsOwogCX0KQEAgLTgwOCwxMyArODAxLDEzIEBAIGludGVs X3BhbmVsX2RldGVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKIAkvKiBBc3N1bWUgdGhhdCB0 aGUgQklPUyBkb2VzIG5vdCBsaWUgdGhyb3VnaCB0aGUgT3BSZWdpb24uLi4gKi8KLQlpZiAoIWk5 MTVfcGFuZWxfaWdub3JlX2xpZCAmJiBkZXZfcHJpdi0+b3ByZWdpb24ubGlkX3N0YXRlKSB7CisJ aWYgKCFpOTE1LnBhbmVsX2lnbm9yZV9saWQgJiYgZGV2X3ByaXYtPm9wcmVnaW9uLmxpZF9zdGF0 ZSkgewogCQlyZXR1cm4gaW9yZWFkMzIoZGV2X3ByaXYtPm9wcmVnaW9uLmxpZF9zdGF0ZSkgJiAw eDEgPwogCQkJY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQgOgogCQkJY29ubmVjdG9yX3N0YXR1 c19kaXNjb25uZWN0ZWQ7CiAJfQogCi0Jc3dpdGNoIChpOTE1X3BhbmVsX2lnbm9yZV9saWQpIHsK Kwlzd2l0Y2ggKGk5MTUucGFuZWxfaWdub3JlX2xpZCkgewogCWNhc2UgLTI6CiAJCXJldHVybiBj b25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKIAljYXNlIC0xOgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMKaW5kZXggYjliNGZlNGU2MzEzLi4zYjYxYzhiYmU3MTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwpAQCAtNDY2LDcgKzQ2Niw3IEBAIHZvaWQgaW50ZWxfdXBkYXRlX2ZiYyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCQlyZXR1cm47CiAJfQogCi0JaWYgKCFpOTE1X3Bvd2Vyc2F2ZSkgewor CWlmICghaTkxNS5wb3dlcnNhdmUpIHsKIAkJaWYgKHNldF9ub19mYmNfcmVhc29uKGRldl9wcml2 LCBGQkNfTU9EVUxFX1BBUkFNKSkKIAkJCURSTV9ERUJVR19LTVMoImZiYyBkaXNhYmxlZCBwZXIg bW9kdWxlIHBhcmFtXG4iKTsKIAkJcmV0dXJuOwpAQCAtNTA1LDEzICs1MDUsMTMgQEAgdm9pZCBp bnRlbF91cGRhdGVfZmJjKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJb2JqID0gaW50ZWxfZmIt Pm9iajsKIAlhZGp1c3RlZF9tb2RlID0gJmludGVsX2NydGMtPmNvbmZpZy5hZGp1c3RlZF9tb2Rl OwogCi0JaWYgKGk5MTVfZW5hYmxlX2ZiYyA8IDAgJiYKKwlpZiAoaTkxNS5lbmFibGVfZmJjIDwg MCAmJgogCSAgICBJTlRFTF9JTkZPKGRldiktPmdlbiA8PSA3ICYmICFJU19IQVNXRUxMKGRldikp IHsKIAkJaWYgKHNldF9ub19mYmNfcmVhc29uKGRldl9wcml2LCBGQkNfQ0hJUF9ERUZBVUxUKSkK IAkJCURSTV9ERUJVR19LTVMoImRpc2FibGVkIHBlciBjaGlwIGRlZmF1bHRcbiIpOwogCQlnb3Rv IG91dF9kaXNhYmxlOwogCX0KLQlpZiAoIWk5MTVfZW5hYmxlX2ZiYykgeworCWlmICghaTkxNS5l bmFibGVfZmJjKSB7CiAJCWlmIChzZXRfbm9fZmJjX3JlYXNvbihkZXZfcHJpdiwgRkJDX01PRFVM RV9QQVJBTSkpCiAJCQlEUk1fREVCVUdfS01TKCJmYmMgZGlzYWJsZWQgcGVyIG1vZHVsZSBwYXJh bVxuIik7CiAJCWdvdG8gb3V0X2Rpc2FibGU7CkBAIC0zMTUxLDggKzMxNTEsOCBAQCBpbnQgaW50 ZWxfZW5hYmxlX3JjNihjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyZXR1cm4gMDsK IAogCS8qIFJlc3BlY3QgdGhlIGtlcm5lbCBwYXJhbWV0ZXIgaWYgaXQgaXMgc2V0ICovCi0JaWYg KGk5MTVfZW5hYmxlX3JjNiA+PSAwKQotCQlyZXR1cm4gaTkxNV9lbmFibGVfcmM2OworCWlmIChp OTE1LmVuYWJsZV9yYzYgPj0gMCkKKwkJcmV0dXJuIGk5MTUuZW5hYmxlX3JjNjsKIAogCS8qIERp c2FibGUgUkM2IG9uIElyb25sYWtlICovCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID09IDUp CkBAIC01Mjc0LDcgKzUyNzQsNyBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX3Bvd2VyX3dlbGxfcHV0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJV0FSTl9PTighcG93ZXJfd2VsbC0+Y291bnQpOwog CiAJaWYgKCEtLXBvd2VyX3dlbGwtPmNvdW50ICYmIHBvd2VyX3dlbGwtPnNldCAmJgotCSAgICBp OTE1X2Rpc2FibGVfcG93ZXJfd2VsbCkgeworCSAgICBpOTE1LmRpc2FibGVfcG93ZXJfd2VsbCkg ewogCQlwb3dlcl93ZWxsLT5zZXQoZGV2LCBwb3dlcl93ZWxsLCBmYWxzZSk7CiAJCWhzd19lbmFi bGVfcGFja2FnZV9jOChkZXZfcHJpdik7CiAJfQotLSAKMS43LjkuNQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK