From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [PATCH 2/2] drm/i915: Introduce IS_GEN9_BC for Skylake and Kabylake. Date: Mon, 23 Jan 2017 10:32:37 -0800 Message-ID: <1485196357-30599-2-git-send-email-rodrigo.vivi@intel.com> References: <1485196357-30599-1-git-send-email-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id C9AEA6E5CB for ; Mon, 23 Jan 2017 18:33:09 +0000 (UTC) In-Reply-To: <1485196357-30599-1-git-send-email-rodrigo.vivi@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: Jani Nikula , Ander Conselvan de Oliveira , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org QWxvbmcgd2l0aCBHTEsgaXQgd2FzIGludHJvZHVjZWQgdGhlIC5pc19scCBhbmQgSVNfR0VOOV9M UC4KU28sIGZvbGxvd2luZyB0aGUgc2FtZSBzaW1wbGlmaWNhdGlvbiBzdGFuZGFyZCB3ZSBjYW4K cHV0IFNreWxha2UgYW5kIEthYnlsYWtlIHVuZGVyIHRoZSBzYW1lIGJ1Y2tldCBmb3IgbW9zdApv ZiB0aGUgdGhpbmdzLgoKU28gbGV0J3MgYWRkIHRoZSBJU19HRU45X0JDIGZvciAiQmlnIENvcmUi IChub24gQXRvbSBiYXNlZApwbGF0Zm9ybXMpLgoKVGhlIGk5MTVfZHJ2LmMgd2FzIGxldCBvdXQg b2YgdGhpcyBwYXRjaCBvbiBwdXJwb3NlCmJlY2F1c2UgdGhhdCBpcyByZWFsbHkgYSBkZWNpc2lv biBwZXIgcGxhdGZvcm0sIGp1c3QgbGlrZQpvdGhlciBjYXNlcyB3aGVyZSBJU19LQUJZTEFLRSBp cyBkaWZmZXJlbnQgZnJvbSBJU19TS1lMQUtFLgoKdjI6IGZpeCBjb25mbGljdCB3aXRoIElTX0xQ IGFuZCAzIG5ldyBjYXNlcyBmb3IgdGhpcwogICAgYmlnIGNvcmUgYnVja2V0OgogICAgLSBpbnRl bF9kZGkuYzogaW50ZWxfZGRpX2dldF9saW5rX2RwbGwKICAgIC0gaW50ZWxfZmJjLmM6IGZpbmRf Y29tcHJlc3Npb25fdGhyZXNob2xkCiAgICAtIGk5MTVfZ2VtX2d0dC5jOiBndHRfd3JpdGVfd29y a2Fyb3VuZHMKCkNjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+ CkNjOiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGFuZGVyLmNvbnNlbHZhbi5kZS5vbGl2 ZWlyYUBpbnRlbC5jb20+CkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ClJldmll d2VkLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGNvbnNlbHZhbjJAZ21haWwuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICB8IDE3ICsrKysr KystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAg MyArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICB8ICAyICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jICAgICAgfCAgMiArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMgICAgICAgIHwgMjAgKysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8IDEyICsrKysrKy0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2ZiYy5jICAgICAgICB8ICAzICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaTJjLmMgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9j cy5jICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAg ICB8IDEzICsrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVf cG0uYyB8IDEwICsrKysrLS0tLS0KIDE0IGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyks IDUxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggZmE2 OWQ3Mi4uNjNiNmEzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTEyMjQs MjEgKzEyMjQsMTggQEAgc3RhdGljIGludCBpOTE1X2ZyZXF1ZW5jeV9pbmZvKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCiAJCW1heF9mcmVxID0gKElTX0dFTjlfTFAoZGV2X3By aXYpID8gcnBfc3RhdGVfY2FwID4+IDAgOgogCQkJICAgIHJwX3N0YXRlX2NhcCA+PiAxNikgJiAw eGZmOwotCQltYXhfZnJlcSAqPSAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0Uo ZGV2X3ByaXYpID8KLQkJCSAgICAgR0VOOV9GUkVRX1NDQUxFUiA6IDEpOworCQltYXhfZnJlcSAq PSAoSVNfR0VOOV9CQyhkZXZfcHJpdikgPyBHRU45X0ZSRVFfU0NBTEVSIDogMSk7CiAJCXNlcV9w cmludGYobSwgIkxvd2VzdCAoUlBOKSBmcmVxdWVuY3k6ICVkTUh6XG4iLAogCQkJICAgaW50ZWxf Z3B1X2ZyZXEoZGV2X3ByaXYsIG1heF9mcmVxKSk7CiAKIAkJbWF4X2ZyZXEgPSAocnBfc3RhdGVf Y2FwICYgMHhmZjAwKSA+PiA4OwotCQltYXhfZnJlcSAqPSAoSVNfU0tZTEFLRShkZXZfcHJpdikg fHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpID8KLQkJCSAgICAgR0VOOV9GUkVRX1NDQUxFUiA6IDEp OworCQltYXhfZnJlcSAqPSAoSVNfR0VOOV9CQyhkZXZfcHJpdikgPyBHRU45X0ZSRVFfU0NBTEVS IDogMSk7CiAJCXNlcV9wcmludGYobSwgIk5vbWluYWwgKFJQMSkgZnJlcXVlbmN5OiAlZE1Ielxu IiwKIAkJCSAgIGludGVsX2dwdV9mcmVxKGRldl9wcml2LCBtYXhfZnJlcSkpOwogCiAJCW1heF9m cmVxID0gKElTX0dFTjlfTFAoZGV2X3ByaXYpID8gcnBfc3RhdGVfY2FwID4+IDE2IDoKIAkJCSAg ICBycF9zdGF0ZV9jYXAgPj4gMCkgJiAweGZmOwotCQltYXhfZnJlcSAqPSAoSVNfU0tZTEFLRShk ZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpID8KLQkJCSAgICAgR0VOOV9GUkVRX1ND QUxFUiA6IDEpOworCQltYXhfZnJlcSAqPSAoSVNfR0VOOV9CQyhkZXZfcHJpdikgPyBHRU45X0ZS RVFfU0NBTEVSIDogMSk7CiAJCXNlcV9wcmludGYobSwgIk1heCBub24tb3ZlcmNsb2NrZWQgKFJQ MCkgZnJlcXVlbmN5OiAlZE1IelxuIiwKIAkJCSAgIGludGVsX2dwdV9mcmVxKGRldl9wcml2LCBt YXhfZnJlcSkpOwogCQlzZXFfcHJpbnRmKG0sICJNYXggb3ZlcmNsb2NrZWQgZnJlcXVlbmN5OiAl ZE1IelxuIiwKQEAgLTE4MTQsNyArMTgxMSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9yaW5nX2ZyZXFf dGFibGUoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJaWYgKHJldCkKIAkJZ290 byBvdXQ7CiAKLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3By aXYpKSB7CisJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKSB7CiAJCS8qIENvbnZlcnQgR1QgZnJl cXVlbmN5IHRvIDUwIEhaIHVuaXRzICovCiAJCW1pbl9ncHVfZnJlcSA9CiAJCQlkZXZfcHJpdi0+ cnBzLm1pbl9mcmVxX3NvZnRsaW1pdCAvIEdFTjlfRlJFUV9TQ0FMRVI7CkBAIC0xODM0LDggKzE4 MzEsOCBAQCBzdGF0aWMgaW50IGk5MTVfcmluZ19mcmVxX3RhYmxlKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqdW51c2VkKQogCQkJCSAgICAgICAmaWFfZnJlcSk7CiAJCXNlcV9wcmludGYobSwg IiVkXHRcdCVkXHRcdFx0XHQlZFxuIiwKIAkJCSAgIGludGVsX2dwdV9mcmVxKGRldl9wcml2LCAo Z3B1X2ZyZXEgKgotCQkJCShJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZf cHJpdikgPwotCQkJCSBHRU45X0ZSRVFfU0NBTEVSIDogMSkpKSwKKwkJCQkJCSAgICAgKElTX0dF TjlfQkMoZGV2X3ByaXYpID8KKwkJCQkJCSAgICAgIEdFTjlfRlJFUV9TQ0FMRVIgOiAxKSkpLAog CQkJICAgKChpYV9mcmVxID4+IDApICYgMHhmZikgKiAxMDAsCiAJCQkgICAoKGlhX2ZyZXEgPj4g OCkgJiAweGZmKSAqIDEwMCk7CiAJfQpAQCAtNDQ0NCw3ICs0NDQxLDcgQEAgc3RhdGljIHZvaWQg Z2VuOV9zc2V1X2RldmljZV9zdGF0dXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCiAJCXNzZXUtPnNsaWNlX21hc2sgfD0gQklUKHMpOwogCi0JCWlmIChJU19TS1lMQUtFKGRl dl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpCisJCWlmIChJU19HRU45X0JDKGRldl9w cml2KSkKIAkJCXNzZXUtPnN1YnNsaWNlX21hc2sgPQogCQkJCUlOVEVMX0lORk8oZGV2X3ByaXYp LT5zc2V1LnN1YnNsaWNlX21hc2s7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDI0NDYy ODAuLmEzM2MxMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjc1Niw4ICsyNzU2LDkg QEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKl9fc2dfbmV4dChzdHJ1Y3Qgc2Nh dHRlcmxpc3QgKnNnKQogI2RlZmluZSBJU19HRU44KGRldl9wcml2KQkoISEoKGRldl9wcml2KS0+ aW5mby5nZW5fbWFzayAmIEJJVCg3KSkpCiAjZGVmaW5lIElTX0dFTjkoZGV2X3ByaXYpCSghISgo ZGV2X3ByaXYpLT5pbmZvLmdlbl9tYXNrICYgQklUKDgpKSkKIAotI2RlZmluZSBJU19HRU45X0xQ KGRldl9wcml2KQkoSVNfR0VOOShkZXZfcHJpdikgJiYgSU5URUxfSU5GTyhkZXZfcHJpdiktPmlz X2xwKQogI2RlZmluZSBJU19MUChkZXZfcHJpdikJKElOVEVMX0lORk8oZGV2X3ByaXYpLT5pc19s cCkKKyNkZWZpbmUgSVNfR0VOOV9MUChkZXZfcHJpdikJKElTX0dFTjkoZGV2X3ByaXYpICYmIElT X0xQKGRldl9wcml2KSkKKyNkZWZpbmUgSVNfR0VOOV9CQyhkZXZfcHJpdikJKElTX0dFTjkoZGV2 X3ByaXYpICYmICFJU19MUChkZXZfcHJpdikpCiAKICNkZWZpbmUgRU5HSU5FX01BU0soaWQpCUJJ VChpZCkKICNkZWZpbmUgUkVOREVSX1JJTkcJRU5HSU5FX01BU0soUkNTKQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYwppbmRleCBjYzBiYjdiLi40MDY4NWM2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYwpAQCAtMjE4OSw3ICsyMTg5LDcgQEAgc3RhdGljIHZvaWQgZ3R0X3dy aXRlX3dvcmthcm91bmRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJSTkx NV9XUklURShHRU44X0wzX0xSQV8xX0dQR1BVLCBHRU44X0wzX0xSQV8xX0dQR1BVX0RFRkFVTFRf VkFMVUVfQkRXKTsKIAllbHNlIGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJSTkxNV9X UklURShHRU44X0wzX0xSQV8xX0dQR1BVLCBHRU44X0wzX0xSQV8xX0dQR1BVX0RFRkFVTFRfVkFM VUVfQ0hWKTsKLQllbHNlIGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShk ZXZfcHJpdikpCisJZWxzZSBpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpCiAJCUk5MTVfV1JJVEUo R0VOOF9MM19MUkFfMV9HUEdQVSwgR0VOOV9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX1NL TCk7CiAJZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCiAJCUk5MTVfV1JJVEUoR0VOOF9M M19MUkFfMV9HUEdQVSwgR0VOOV9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX0JYVCk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwppbmRleCAxNmMyMDI3Li5jZDlkMjA3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKQEAgLTcwMiw3ICs3MDIsNyBAQCBzdGF0aWMgdm9pZCBp OTE1X2F1ZGlvX2NvbXBvbmVudF9jb2RlY193YWtlX292ZXJyaWRlKHN0cnVjdCBkZXZpY2UgKmtk ZXYsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl90b19pOTE1KGtk ZXYpOwogCXUzMiB0bXA7CiAKLQlpZiAoIUlTX1NLWUxBS0UoZGV2X3ByaXYpICYmICFJU19LQUJZ TEFLRShkZXZfcHJpdikpCisJaWYgKCFJU19HRU45X0JDKGRldl9wcml2KSkKIAkJcmV0dXJuOwog CiAJaTkxNV9hdWRpb19jb21wb25lbnRfZ2V0X3Bvd2VyKGtkZXYpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2NvbG9yLmMKaW5kZXggZDgxMjMyYi4uMzQ5NTJkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jb2xvci5jCkBAIC01MzYsOCArNTM2LDggQEAgdm9pZCBpbnRlbF9jb2xvcl9pbml0KHN0cnVj dCBkcm1fY3J0YyAqY3J0YykKIAl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7CiAJ CWRldl9wcml2LT5kaXNwbGF5LmxvYWRfY3NjX21hdHJpeCA9IGk5eHhfbG9hZF9jc2NfbWF0cml4 OwogCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBoYXN3ZWxsX2xvYWRfbHV0czsKLQl9 IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwgSVNfU0tZTEFLRShkZXZfcHJpdikg fHwKLQkJICAgSVNfQlJPWFRPTihkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7 CisJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8IElTX0dFTjlfQkMoZGV2X3By aXYpIHx8CisJCSAgIElTX0JST1hUT04oZGV2X3ByaXYpKSB7CiAJCWRldl9wcml2LT5kaXNwbGF5 LmxvYWRfY3NjX21hdHJpeCA9IGk5eHhfbG9hZF9jc2NfbWF0cml4OwogCQlkZXZfcHJpdi0+ZGlz cGxheS5sb2FkX2x1dHMgPSBicm9hZHdlbGxfbG9hZF9sdXRzOwogCX0gZWxzZSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RkaS5jCmluZGV4IDY2YjM2N2QuLjlhOWE2NzAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jCkBAIC00NDUsNyArNDQ1LDcgQEAgc3RhdGljIGludCBpbnRlbF9kZGlfaGRtaV9s ZXZlbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3IKIAlp ZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCXJldHVybiBoZG1pX2xldmVsOwogCi0JaWYgKElT X1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgeworCWlmIChJU19H RU45X0JDKGRldl9wcml2KSkgewogCQlza2xfZ2V0X2J1Zl90cmFuc19oZG1pKGRldl9wcml2LCAm bl9oZG1pX2VudHJpZXMpOwogCQloZG1pX2RlZmF1bHRfZW50cnkgPSA4OwogCX0gZWxzZSBpZiAo SVNfQlJPQURXRUxMKGRldl9wcml2KSkgewpAQCAtNTE4LDcgKzUxOCw3IEBAIHZvaWQgaW50ZWxf cHJlcGFyZV9kcF9kZGlfYnVmZmVycyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkJ bl9kcF9lbnRyaWVzID0gQVJSQVlfU0laRShiZHdfZGRpX3RyYW5zbGF0aW9uc19kcCk7CiAJfQog Ci0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewor CWlmIChJU19HRU45X0JDKGRldl9wcml2KSkgewogCQkvKiBJZiB3ZSdyZSBib29zdGluZyB0aGUg Y3VycmVudCwgc2V0IGJpdCAzMSBvZiB0cmFuczEgKi8KIAkJaWYgKGRldl9wcml2LT52YnQuZGRp X3BvcnRfaW5mb1twb3J0XS5kcF9ib29zdF9sZXZlbCkKIAkJCWlib29zdF9iaXQgPSBERElfQlVG X0JBTEFOQ0VfTEVHX0VOQUJMRTsKQEAgLTU3Miw3ICs1NzIsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9wcmVwYXJlX2hkbWlfZGRpX2J1ZmZlcnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIp CiAKIAloZG1pX2xldmVsID0gaW50ZWxfZGRpX2hkbWlfbGV2ZWwoZGV2X3ByaXYsIHBvcnQpOwog Ci0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewor CWlmIChJU19HRU45X0JDKGRldl9wcml2KSkgewogCQlkZGlfdHJhbnNsYXRpb25zX2hkbWkgPSBz a2xfZ2V0X2J1Zl90cmFuc19oZG1pKGRldl9wcml2LCAmbl9oZG1pX2VudHJpZXMpOwogCiAJCS8q IElmIHdlJ3JlIGJvb3N0aW5nIHRoZSBjdXJyZW50LCBzZXQgYml0IDMxIG9mIHRyYW5zMSAqLwpA QCAtMTA4OSw3ICsxMDg5LDcgQEAgdm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPD0gOCkKIAkJ aHN3X2RkaV9jbG9ja19nZXQoZW5jb2RlciwgcGlwZV9jb25maWcpOwotCWVsc2UgaWYgKElTX1NL WUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKKwllbHNlIGlmIChJU19H RU45X0JDKGRldl9wcml2KSkKIAkJc2tsX2RkaV9jbG9ja19nZXQoZW5jb2RlciwgcGlwZV9jb25m aWcpOwogCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQogCQlieHRfZGRpX2Nsb2NrX2dl dChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7CkBAIC0xMTUwLDcgKzExNTAsNyBAQCBib29sIGludGVs X2RkaV9wbGxfc2VsZWN0KHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCXN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0KIAkJaW50ZWxfZGRpX2dldF9jcnRjX25ld19l bmNvZGVyKGNydGNfc3RhdGUpOwogCi0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tB QllMQUtFKGRldl9wcml2KSkKKwlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpCiAJCXJldHVybiBz a2xfZGRpX3BsbF9zZWxlY3QoaW50ZWxfY3J0YywgY3J0Y19zdGF0ZSwKIAkJCQkJICBpbnRlbF9l bmNvZGVyKTsKIAllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkKQEAgLTE2NDEsNyArMTY0 MSw3IEBAIHVpbnQzMl90IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCiAKIAlsZXZlbCA9IHRyYW5zbGF0ZV9zaWduYWxfbGV2ZWwoc2lnbmFsX2xldmVscyk7CiAK LQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQorCWlm IChJU19HRU45X0JDKGRldl9wcml2KSkKIAkJc2tsX2RkaV9zZXRfaWJvb3N0KGVuY29kZXIsIGxl dmVsKTsKIAllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkKIAkJYnh0X2RkaV92c3dpbmdf c2VxdWVuY2UoZGV2X3ByaXYsIGxldmVsLCBwb3J0LCBlbmNvZGVyLT50eXBlKTsKQEAgLTE2NTgs NyArMTY1OCw3IEBAIHZvaWQgaW50ZWxfZGRpX2Nsa19zZWxlY3Qoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiAJaWYgKFdBUk5fT04oIXBsbCkpCiAJCXJldHVybjsKIAotCWlmIChJU19T S1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKKwlpZiAoSVNfR0VO OV9CQyhkZXZfcHJpdikpIHsKIAkJdWludDMyX3QgdmFsOwogCiAJCS8qIERESSAtPiBQTEwgbWFw cGluZyAgKi8KQEAgLTE3MTQsNyArMTcxNCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVf ZW5hYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaW50ZWxfZHBfZHVh bF9tb2RlX3NldF90bWRzX291dHB1dChpbnRlbF9oZG1pLCB0cnVlKTsKIAlpbnRlbF9kZGlfY2xr X3NlbGVjdChlbmNvZGVyLCBwbGwpOwogCWludGVsX3ByZXBhcmVfaGRtaV9kZGlfYnVmZmVycyhl bmNvZGVyKTsKLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3By aXYpKQorCWlmIChJU19HRU45X0JDKGRldl9wcml2KSkKIAkJc2tsX2RkaV9zZXRfaWJvb3N0KGVu Y29kZXIsIGxldmVsKTsKIAllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkKIAkJYnh0X2Rk aV92c3dpbmdfc2VxdWVuY2UoZGV2X3ByaXYsIGxldmVsLCBwb3J0LApAQCAtMTc4NCw3ICsxNzg0 LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqaW50ZWxfZW5jb2RlciwKIAkJaW50ZWxfZWRwX3BhbmVsX29mZihpbnRlbF9kcCk7CiAJ fQogCi0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkK KwlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpCiAJCUk5MTVfV1JJVEUoRFBMTF9DVFJMMiwgKEk5 MTVfUkVBRChEUExMX0NUUkwyKSB8CiAJCQkJCURQTExfQ1RSTDJfRERJX0NMS19PRkYocG9ydCkp KTsKIAllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSkKQEAgLTIxNTcsNyArMjE1Nyw3 IEBAIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCiAJCQlwbGwtPnN0YXRlID0gdG1wX3BsbF9z dGF0ZTsKIAkJCXJldHVybiBOVUxMOwogCQl9Ci0JfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldl9w cml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKKwl9IGVsc2UgaWYgKElTX0dFTjlfQkMo ZGV2X3ByaXYpKSB7CiAJCXBsbCA9IHNrbF9maW5kX2xpbmtfcGxsKGRldl9wcml2LCBjbG9jayk7 CiAJfSBlbHNlIGlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3By aXYpKSB7CiAJCXBsbCA9IGhzd19kZGlfZHBfZ2V0X2RwbGwoZW5jb2RlciwgY2xvY2spOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDBiZjhlMWIuLmUxNmEzMGUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTU4MDAsNyArNTgwMCw3IEBAIHN0YXRp YyBpbnQgaW50ZWxfY29tcHV0ZV9tYXhfZG90Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIAogc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX21heF9jZGNsayhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8 IElTX0tBQllMQUtFKGRldl9wcml2KSkgeworCWlmIChJU19HRU45X0JDKGRldl9wcml2KSkgewog CQl1MzIgbGltaXQgPSBJOTE1X1JFQUQoU0tMX0RGU00pICYgU0tMX0RGU01fQ0RDTEtfTElNSVRf TUFTSzsKIAkJaW50IG1heF9jZGNsaywgdmNvOwogCkBAIC0xMDY3Myw3ICsxMDY3Myw3IEBAIHN0 YXRpYyB2b2lkIGhhc3dlbGxfZ2V0X2RkaV9wb3J0X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAogCiAJcG9ydCA9ICh0bXAgJiBUUkFOU19ERElfUE9SVF9NQVNLKSA+PiBUUkFOU19ERElf UE9SVF9TSElGVDsKIAotCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShk ZXZfcHJpdikpCisJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKQogCQlza3lsYWtlX2dldF9kZGlf cGxsKGRldl9wcml2LCBwb3J0LCBwaXBlX2NvbmZpZyk7CiAJZWxzZSBpZiAoSVNfR0VOOV9MUChk ZXZfcHJpdikpCiAJCWJ4dF9nZXRfZGRpX3BsbChkZXZfcHJpdiwgcG9ydCwgcGlwZV9jb25maWcp OwpAQCAtMTU2NzUsNyArMTU2NzUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZXR1cF9vdXRwdXRz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJICovCiAJCWZvdW5kID0gSTkx NV9SRUFEKERESV9CVUZfQ1RMKFBPUlRfQSkpICYgRERJX0lOSVRfRElTUExBWV9ERVRFQ1RFRDsK IAkJLyogV2FJZ25vcmVERElBU3RyYXA6IHNrbCAqLwotCQlpZiAoZm91bmQgfHwgSVNfU0tZTEFL RShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQorCQlpZiAoZm91bmQgfHwgSVNf R0VOOV9CQyhkZXZfcHJpdikpCiAJCQlpbnRlbF9kZGlfaW5pdChkZXZfcHJpdiwgUE9SVF9BKTsK IAogCQkvKiBEREkgQiwgQyBhbmQgRCBkZXRlY3Rpb24gaXMgaW5kaWNhdGVkIGJ5IHRoZSBTRlVT RV9TVFJBUApAQCAtMTU2OTEsNyArMTU2OTEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZXR1cF9v dXRwdXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJLyoKIAkJICogT24g U0tMIHdlIGRvbid0IGhhdmUgYSB3YXkgdG8gZGV0ZWN0IERESS1FIHNvIHdlIHJlbHkgb24gVkJU LgogCQkgKi8KLQkJaWYgKChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZf cHJpdikpICYmCisJCWlmICgoSVNfR0VOOV9CQyhkZXZfcHJpdikpICYmCiAJCSAgICAoZGV2X3By aXYtPnZidC5kZGlfcG9ydF9pbmZvW1BPUlRfRV0uc3VwcG9ydHNfZHAgfHwKIAkJICAgICBkZXZf cHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bUE9SVF9FXS5zdXBwb3J0c19kdmkgfHwKIAkJICAgICBk ZXZfcHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bUE9SVF9FXS5zdXBwb3J0c19oZG1pKSkKQEAgLTE2 MTkwLDcgKzE2MTkwLDcgQEAgdm9pZCBpbnRlbF9pbml0X2Rpc3BsYXlfaG9va3Moc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCX0KIAogCS8qIFJldHVybnMgdGhlIGNvcmUgZGlz cGxheSBjbG9jayBzcGVlZCAqLwotCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZ TEFLRShkZXZfcHJpdikpCisJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKQogCQlkZXZfcHJpdi0+ ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZCA9CiAJCQlza3lsYWtlX2dldF9kaXNwbGF5 X2Nsb2NrX3NwZWVkOwogCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQpAQCAtMTYyNzEs NyArMTYyNzEsNyBAQCB2b2lkIGludGVsX2luaXRfZGlzcGxheV9ob29rcyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQlieHRfbW9kZXNldF9jb21taXRfY2RjbGs7CiAJCWRl dl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9CiAJCQlieHRfbW9kZXNldF9jYWxj X2NkY2xrOwotCX0gZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0Uo ZGV2X3ByaXYpKSB7CisJfSBlbHNlIGlmIChJU19HRU45X0JDKGRldl9wcml2KSkgewogCQlkZXZf cHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NvbW1pdF9jZGNsayA9CiAJCQlza2xfbW9kZXNldF9jb21t aXRfY2RjbGs7CiAJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYwppbmRleCBlODBkNjIwLi4xY2FmNmZlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMgdTggaW50ZWxfZHBfbWF4X2xhbmVf Y291bnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlpZiAoSVNfR0VOOV9MUChkZXZfcHJp dikpIHsKIAkJKnNvdXJjZV9yYXRlcyA9IGJ4dF9yYXRlczsKIAkJc2l6ZSA9IEFSUkFZX1NJWkUo Ynh0X3JhdGVzKTsKLQl9IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllM QUtFKGRldl9wcml2KSkgeworCX0gZWxzZSBpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpIHsKIAkJ KnNvdXJjZV9yYXRlcyA9IHNrbF9yYXRlczsKIAkJc2l6ZSA9IEFSUkFZX1NJWkUoc2tsX3JhdGVz KTsKIAl9IGVsc2UgewpAQCAtMTc1Miw3ICsxNzUyLDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9j b21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCSAqIGNsb2NrIGZvciBlRFAu IFRoaXMgd2lsbCBhZmZlY3QgY2RjbGsgYXMgd2VsbC4KIAkgKi8KIAlpZiAoaXNfZWRwKGludGVs X2RwKSAmJgotCSAgICAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3By aXYpKSkgeworCSAgICAoSVNfR0VOOV9CQyhkZXZfcHJpdikpKSB7CiAJCWludCB2Y287CiAKIAkJ c3dpdGNoIChwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayAvIDIpIHsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcGxsX21nci5jCmluZGV4IGM5MmEyNTUuLjM2OGVmZjkgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBsbF9tZ3IuYwpAQCAtMjAxNSw3ICsyMDE1LDcgQEAgdm9pZCBpbnRlbF9zaGFy ZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJY29uc3Qgc3RydWN0IGRwbGxf aW5mbyAqZHBsbF9pbmZvOwogCWludCBpOwogCi0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8 IElTX0tBQllMQUtFKGRldl9wcml2KSkKKwlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpCiAJCWRw bGxfbWdyID0gJnNrbF9wbGxfbWdyOwogCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQog CQlkcGxsX21nciA9ICZieHRfcGxsX21ncjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKaW5kZXgg ODlmZTVjOC4uNTE1ODUwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZmJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKQEAgLTUzNyw4ICs1 MzcsNyBAQCBzdGF0aWMgaW50IGZpbmRfY29tcHJlc3Npb25fdGhyZXNob2xkKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKiByZXNlcnZlZCByYW5nZSBzaXplLCBzbyBpdCBh bHdheXMgYXNzdW1lcyB0aGUgbWF4aW11bSAoOG1iKSBpcyB1c2VkLgogCSAqIElmIHdlIGVuYWJs ZSBGQkMgdXNpbmcgYSBDRkIgb24gdGhhdCBtZW1vcnkgcmFuZ2Ugd2UnbGwgZ2V0IEZJRk8KIAkg KiB1bmRlcnJ1bnMsIGV2ZW4gaWYgdGhhdCByYW5nZSBpcyBub3QgcmVzZXJ2ZWQgYnkgdGhlIEJJ T1MuICovCi0JaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwKLQkgICAgSVNfU0tZTEFLRShk ZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQorCWlmIChJU19CUk9BRFdFTEwoZGV2 X3ByaXYpIHx8IElTX0dFTjlfQkMoZGV2X3ByaXYpKQogCQllbmQgPSBnZ3R0LT5zdG9sZW5fc2l6 ZSAtIDggKiAxMDI0ICogMTAyNDsKIAllbHNlCiAJCWVuZCA9IFU2NF9NQVg7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2kyYy5jCmluZGV4IGJjZTFiYTguLmI2NDAxZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2kyYy5jCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ21idXNfcGluICpn ZXRfZ21idXNfcGluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIHsKIAlpZiAo SVNfR0VOOV9MUChkZXZfcHJpdikpCiAJCXJldHVybiAmZ21idXNfcGluc19ieHRbcGluXTsKLQll bHNlIGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpCisJ ZWxzZSBpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpCiAJCXJldHVybiAmZ21idXNfcGluc19za2xb cGluXTsKIAllbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQogCQlyZXR1cm4gJmdtYnVz X3BpbnNfYmR3W3Bpbl07CkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgaW50ZWxfZ21idXNfaXNfdmFs aWRfcGluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCWlmIChJU19HRU45 X0xQKGRldl9wcml2KSkKIAkJc2l6ZSA9IEFSUkFZX1NJWkUoZ21idXNfcGluc19ieHQpOwotCWVs c2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKKwll bHNlIGlmIChJU19HRU45X0JDKGRldl9wcml2KSkKIAkJc2l6ZSA9IEFSUkFZX1NJWkUoZ21idXNf cGluc19za2wpOwogCWVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpCiAJCXNpemUgPSBB UlJBWV9TSVpFKGdtYnVzX3BpbnNfYmR3KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX21vY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vY3MuYwppbmRl eCBjNzg3ZmM0Li44Zjk4ZmM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9tb2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jCkBAIC0xNzgs NyArMTc4LDcgQEAgc3RhdGljIGJvb2wgZ2V0X21vY3Nfc2V0dGluZ3Moc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogewogCWJvb2wgcmVzdWx0ID0gZmFsc2U7CiAKLQlpZiAoSVNf U0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7CisJaWYgKElTX0dF TjlfQkMoZGV2X3ByaXYpKSB7CiAJCXRhYmxlLT5zaXplICA9IEFSUkFZX1NJWkUoc2t5bGFrZV9t b2NzX3RhYmxlKTsKIAkJdGFibGUtPnRhYmxlID0gc2t5bGFrZV9tb2NzX3RhYmxlOwogCQlyZXN1 bHQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggMjQ5NjIzZC4uZDRkYjE0YiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC0yODk1LDggKzI4OTUsNyBAQCBzdGF0aWMgYm9v bCBza2xfbmVlZHNfbWVtb3J5X2J3X3dhKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUt PmJhc2UuZGV2KTsKIAotCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19CUk9YVE9OKGRl dl9wcml2KSB8fAotCSAgICBJU19LQUJZTEFLRShkZXZfcHJpdikpCisJaWYgKElTX0dFTjlfQkMo ZGV2X3ByaXYpIHx8IElTX0JST1hUT04oZGV2X3ByaXYpKQogCQlyZXR1cm4gdHJ1ZTsKIAogCXJl dHVybiBmYWxzZTsKQEAgLTUyOTQsNyArNTI5Myw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfaW5pdF9y cHNfZnJlcXVlbmNpZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJZGV2 X3ByaXYtPnJwcy5lZmZpY2llbnRfZnJlcSA9IGRldl9wcml2LT5ycHMucnAxX2ZyZXE7CiAJaWYg KElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwKLQkgICAg SVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7CisJICAgIElT X0dFTjlfQkMoZGV2X3ByaXYpKSB7CiAJCXUzMiBkZGNjX3N0YXR1cyA9IDA7CiAKIAkJaWYgKHNh bmR5YnJpZGdlX3Bjb2RlX3JlYWQoZGV2X3ByaXYsCkBAIC01MzA3LDcgKzUzMDYsNyBAQCBzdGF0 aWMgdm9pZCBnZW42X2luaXRfcnBzX2ZyZXF1ZW5jaWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAkJCQkJZGV2X3ByaXYtPnJwcy5tYXhfZnJlcSk7CiAJfQogCi0JaWYgKElT X1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgeworCWlmIChJU19H RU45X0JDKGRldl9wcml2KSkgewogCQkvKiBTdG9yZSB0aGUgZnJlcXVlbmN5IHZhbHVlcyBpbiAx Ni42NiBNSFogdW5pdHMsIHdoaWNoIGlzCiAJCSAqIHRoZSBuYXR1cmFsIGhhcmR3YXJlIHVuaXQg Zm9yIFNLTAogCQkgKi8KQEAgLTU2MzcsNyArNTYzNiw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfdXBk YXRlX3JpbmdfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJLyogY29u dmVydCBERFIgZnJlcXVlbmN5IGZyb20gdW5pdHMgb2YgMjY2LjZNSHogdG8gYmFuZHdpZHRoICov CiAJbWluX3JpbmdfZnJlcSA9IG11bHRfZnJhYyhtaW5fcmluZ19mcmVxLCA4LCAzKTsKIAotCWlm IChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKKwlpZiAo SVNfR0VOOV9CQyhkZXZfcHJpdikpIHsKIAkJLyogQ29udmVydCBHVCBmcmVxdWVuY3kgdG8gNTAg SFogdW5pdHMgKi8KIAkJbWluX2dwdV9mcmVxID0gZGV2X3ByaXYtPnJwcy5taW5fZnJlcSAvIEdF TjlfRlJFUV9TQ0FMRVI7CiAJCW1heF9ncHVfZnJlcSA9IGRldl9wcml2LT5ycHMubWF4X2ZyZXEg LyBHRU45X0ZSRVFfU0NBTEVSOwpAQCAtNTY1NSw3ICs1NjU0LDcgQEAgc3RhdGljIHZvaWQgZ2Vu Nl91cGRhdGVfcmluZ19mcmVxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJ aW50IGRpZmYgPSBtYXhfZ3B1X2ZyZXEgLSBncHVfZnJlcTsKIAkJdW5zaWduZWQgaW50IGlhX2Zy ZXEgPSAwLCByaW5nX2ZyZXEgPSAwOwogCi0JCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJ U19LQUJZTEFLRShkZXZfcHJpdikpIHsKKwkJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKSB7CiAJ CQkvKgogCQkJICogcmluZ19mcmVxID0gMiAqIEdULiByaW5nX2ZyZXEgaXMgaW4gMTAwTUh6IHVu aXRzCiAJCQkgKiBObyBmbG9vciByZXF1aXJlZCBmb3IgcmluZyBmcmVxdWVuY3kgb24gU0tMLgpA QCAtNjc3NSw3ICs2Nzc0LDcgQEAgdm9pZCBpbnRlbF9lbmFibGVfZ3RfcG93ZXJzYXZlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gOSkgewogCQlnZW45X2VuYWJsZV9yYzYoZGV2X3ByaXYpOwogCQlnZW45X2VuYWJs ZV9ycHMoZGV2X3ByaXYpOwotCQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxB S0UoZGV2X3ByaXYpKQorCQlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpCiAJCQlnZW42X3VwZGF0 ZV9yaW5nX2ZyZXEoZGV2X3ByaXYpOwogCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2 KSkgewogCQlnZW44X2VuYWJsZV9ycHMoZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcnVudGltZV9wbS5jCmluZGV4IGMwYjdlOTUuLmQ5ZDQ2ZjZkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCkBAIC03MzIsNyArNzMyLDcgQEAgdm9pZCBza2xfZGlz YWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIG90aGVyIHJl cXVlc3QgYml0cyB0byBiZSBzZXQsIHNvIFdBUk4gZm9yIHRob3NlLgogCSAqLwogCWlmIChwb3dl cl93ZWxsX2lkID09IFNLTF9ESVNQX1BXXzEgfHwKLQkgICAgKChJU19TS1lMQUtFKGRldl9wcml2 KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpICYmCisJICAgICgoSVNfR0VOOV9CQyhkZXZfcHJp dikpICYmCiAJICAgICBwb3dlcl93ZWxsX2lkID09IFNLTF9ESVNQX1BXX01JU0NfSU8pKQogCQlE Uk1fREVCVUdfRFJJVkVSKCJDbGVhcmluZyBhdXhpbGlhcnkgcmVxdWVzdHMgZm9yICVzIGZvcmNl ZCBvbiAiCiAJCQkJICJieSBETUNcbiIsIHBvd2VyX3dlbGwtPm5hbWUpOwpAQCAtMjMyMyw3ICsy MzIzLDcgQEAgc3RhdGljIHVpbnQzMl90IGdldF9hbGxvd2VkX2RjX21hc2soY29uc3Qgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWludCByZXF1ZXN0ZWRfZGM7CiAJaW50IG1h eF9kYzsKIAotCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJp dikpIHsKKwlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpIHsKIAkJbWF4X2RjID0gMjsKIAkJbWFz ayA9IDA7CiAJfSBlbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewpAQCAtMjM5OCw3ICsy Mzk4LDcgQEAgaW50IGludGVsX3Bvd2VyX2RvbWFpbnNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJCXNldF9wb3dlcl93ZWxscyhwb3dlcl9kb21haW5zLCBoc3dfcG93 ZXJfd2VsbHMpOwogCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewogCQlzZXRf cG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywgYmR3X3Bvd2VyX3dlbGxzKTsKLQl9IGVsc2UgaWYg KElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgeworCX0gZWxz ZSBpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpIHsKIAkJc2V0X3Bvd2VyX3dlbGxzKHBvd2VyX2Rv bWFpbnMsIHNrbF9wb3dlcl93ZWxscyk7CiAJfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2 KSkgewogCQlzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywgYnh0X3Bvd2VyX3dlbGxzKTsK QEAgLTI3MzAsNyArMjczMCw3IEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19pbml0X2h3KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCByZXN1bWUpCiAKIAlwb3dlcl9k b21haW5zLT5pbml0aWFsaXppbmcgPSB0cnVlOwogCi0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYp IHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgeworCWlmIChJU19HRU45X0JDKGRldl9wcml2KSkg ewogCQlza2xfZGlzcGxheV9jb3JlX2luaXQoZGV2X3ByaXYsIHJlc3VtZSk7CiAJfSBlbHNlIGlm IChJU19HRU45X0xQKGRldl9wcml2KSkgewogCQlieHRfZGlzcGxheV9jb3JlX2luaXQoZGV2X3By aXYsIHJlc3VtZSk7CkBAIC0yNzY5LDcgKzI3NjksNyBAQCB2b2lkIGludGVsX3Bvd2VyX2RvbWFp bnNfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKCFpOTE1 LmRpc2FibGVfcG93ZXJfd2VsbCkKIAkJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYs IFBPV0VSX0RPTUFJTl9JTklUKTsKIAotCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19L QUJZTEFLRShkZXZfcHJpdikpCisJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKQogCQlza2xfZGlz cGxheV9jb3JlX3VuaW5pdChkZXZfcHJpdik7CiAJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJp dikpCiAJCWJ4dF9kaXNwbGF5X2NvcmVfdW5pbml0KGRldl9wcml2KTsKLS0gCjEuOS4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK