From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 17524C6377D for ; Thu, 22 Jul 2021 05:39:32 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D5AA160FED for ; Thu, 22 Jul 2021 05:39:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D5AA160FED Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7FF166E9F9; Thu, 22 Jul 2021 05:39:31 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 732C26E85E for ; Thu, 22 Jul 2021 05:39:25 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10052"; a="208456073" X-IronPort-AV: E=Sophos;i="5.84,260,1620716400"; d="scan'208";a="208456073" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jul 2021 22:39:25 -0700 X-IronPort-AV: E=Sophos;i="5.84,260,1620716400"; d="scan'208";a="470415082" Received: from jkandi-mobl.amr.corp.intel.com (HELO josouza-mobl2.intel.com) ([10.209.170.189]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jul 2021 22:39:24 -0700 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= To: intel-gfx@lists.freedesktop.org Date: Wed, 21 Jul 2021 22:43:33 -0700 Message-Id: <20210722054338.12891-5-jose.souza@intel.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210722054338.12891-1-jose.souza@intel.com> References: <20210722054338.12891-1-jose.souza@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 05/10] drm/i915/bios: Enable parse of two integrated panels eDP data X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jani Nikula Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Q29udGludWluZyB0aGUgY29udmVyc2lvbiBmcm9tIHNpbmdsZSBpbnRlZ3JhdGVkIFZCVCBkYXRh IHRvIHR3bywgbm93CmhhbmRsaW5nIGVEUCBkYXRhLgoKQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFA aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNv dXphQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2c0eF9kcC5j ICAgICAgICAgfCAgOSArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlv cy5jICAgICB8IDYyICsrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfYmlvcy5oICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGRpLmMgICAgICB8ICA5ICstLQogLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRp X2J1Zl90cmFucy5jICAgIHwgNzEgKysrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jICAgICAgIHwgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfcHBzLmMgICAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgfCAyNCArKystLS0tCiA4IGZpbGVzIGNoYW5nZWQs IDEwMSBpbnNlcnRpb25zKCspLCA4NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2c0eF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9nNHhfZHAuYwppbmRleCBkZTBmMzU4MTg0YWEzLi4yNzNiYzUyOTVhZTMzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2c0eF9kcC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvZzR4X2RwLmMKQEAgLTM0MCw2ICszNDAsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kcF9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CXUzMiB0bXAsIGZsYWdzID0gMDsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CiAJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBp LmNydGMpOworCXN0cnVjdCB2YnRfZWRwX2luZm8gKnZidF9lZHBfaW5mbyA9IGludGVsX2Jpb3Nf ZWRwX2luZm8oZW5jb2Rlcik7CiAKIAlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRf RURQKQogCQlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfRURQ KTsKQEAgLTM5Niw4ICszOTcsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9nZXRfY29uZmlnKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQlpbnRlbF9kb3RjbG9ja19jYWxjdWxhdGUo cGlwZV9jb25maWctPnBvcnRfY2xvY2ssCiAJCQkJCSAmcGlwZV9jb25maWctPmRwX21fbik7CiAK LQlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSAmJiBkZXZfcHJpdi0+dmJ0LmVkcC5icHAg JiYKLQkgICAgcGlwZV9jb25maWctPnBpcGVfYnBwID4gZGV2X3ByaXYtPnZidC5lZHAuYnBwKSB7 CisJaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkgJiYgdmJ0X2VkcF9pbmZvLT5icHAgJiYK KwkgICAgcGlwZV9jb25maWctPnBpcGVfYnBwID4gdmJ0X2VkcF9pbmZvLT5icHApIHsKIAkJLyoK IAkJICogVGhpcyBpcyBhIGJpZyBmYXQgdWdseSBoYWNrLgogCQkgKgpAQCAtNDEzLDggKzQxNCw4 IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJCSAqLwogCQlkcm1fZGJnX2ttcygmZGV2X3ByaXYtPmRybSwKIAkJCSAgICAi cGlwZSBoYXMgJWQgYnBwIGZvciBlRFAgcGFuZWwsIG92ZXJyaWRpbmcgQklPUy1wcm92aWRlZCBt YXggJWQgYnBwXG4iLAotCQkJICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCwgZGV2X3ByaXYtPnZi dC5lZHAuYnBwKTsKLQkJZGV2X3ByaXYtPnZidC5lZHAuYnBwID0gcGlwZV9jb25maWctPnBpcGVf YnBwOworCQkJICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCwgdmJ0X2VkcF9pbmZvLT5icHApOwor CQl2YnRfZWRwX2luZm8tPmJwcCA9IHBpcGVfY29uZmlnLT5waXBlX2JwcDsKIAl9CiB9CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKaW5kZXggNjc3MGVkOGIyNjBi ZS4uZjBkNDlhZjhiZTAzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9iaW9zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9i aW9zLmMKQEAgLTc4Niw0NSArNzg2LDQ1IEBAIHBhcnNlX3Bvd2VyX2NvbnNlcnZhdGlvbl9mZWF0 dXJlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJaW5mby0+ZHJyc190eXBlID0g RFJSU19OT1RfU1VQUE9SVEVEOwogCiAJaWYgKGJkYi0+dmVyc2lvbiA+PSAyMzIpCi0JCWk5MTUt PnZidC5lZHAuaG9ibCA9IHBvd2VyLT5ob2JsICYgQklUKHBhbmVsX2luZGV4KTsKKwkJaW5mby0+ ZWRwLmhvYmwgPSBwb3dlci0+aG9ibCAmIEJJVChwYW5lbF9pbmRleCk7CiB9CiAKIHN0YXRpYyB2 b2lkCi1wYXJzZV9lZHAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGNvbnN0IHN0cnVj dCBiZGJfaGVhZGVyICpiZGIpCitwYXJzZV9lZHAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIsCisJICBzdHJ1Y3QgZGRpX3ZidF9wb3J0 X2luZm8gKmluZm8sIGludCBwYW5lbF9pbmRleCkKIHsKIAljb25zdCBzdHJ1Y3QgYmRiX2VkcCAq ZWRwOwogCWNvbnN0IHN0cnVjdCBlZHBfcG93ZXJfc2VxICplZHBfcHBzOwogCWNvbnN0IHN0cnVj dCBlZHBfZmFzdF9saW5rX3BhcmFtcyAqZWRwX2xpbmtfcGFyYW1zOwotCWludCBwYW5lbF90eXBl ID0gaTkxNS0+dmJ0LnBhbmVsX3R5cGU7CiAKIAllZHAgPSBmaW5kX3NlY3Rpb24oYmRiLCBCREJf RURQKTsKIAlpZiAoIWVkcCkKIAkJcmV0dXJuOwogCi0Jc3dpdGNoICgoZWRwLT5jb2xvcl9kZXB0 aCA+PiAocGFuZWxfdHlwZSAqIDIpKSAmIDMpIHsKKwlzd2l0Y2ggKChlZHAtPmNvbG9yX2RlcHRo ID4+IChwYW5lbF9pbmRleCAqIDIpKSAmIDMpIHsKIAljYXNlIEVEUF8xOEJQUDoKLQkJaTkxNS0+ dmJ0LmVkcC5icHAgPSAxODsKKwkJaW5mby0+ZWRwLmJwcCA9IDE4OwogCQlicmVhazsKIAljYXNl IEVEUF8yNEJQUDoKLQkJaTkxNS0+dmJ0LmVkcC5icHAgPSAyNDsKKwkJaW5mby0+ZWRwLmJwcCA9 IDI0OwogCQlicmVhazsKIAljYXNlIEVEUF8zMEJQUDoKLQkJaTkxNS0+dmJ0LmVkcC5icHAgPSAz MDsKKwkJaW5mby0+ZWRwLmJwcCA9IDMwOwogCQlicmVhazsKIAl9CiAKIAkvKiBHZXQgdGhlIGVE UCBzZXF1ZW5jaW5nIGFuZCBsaW5rIGluZm8gKi8KLQllZHBfcHBzID0gJmVkcC0+cG93ZXJfc2Vx c1twYW5lbF90eXBlXTsKLQllZHBfbGlua19wYXJhbXMgPSAmZWRwLT5mYXN0X2xpbmtfcGFyYW1z W3BhbmVsX3R5cGVdOworCWVkcF9wcHMgPSAmZWRwLT5wb3dlcl9zZXFzW3BhbmVsX2luZGV4XTsK KwllZHBfbGlua19wYXJhbXMgPSAmZWRwLT5mYXN0X2xpbmtfcGFyYW1zW3BhbmVsX2luZGV4XTsK IAotCWk5MTUtPnZidC5lZHAucHBzID0gKmVkcF9wcHM7CisJaW5mby0+ZWRwLnBwcyA9ICplZHBf cHBzOwogCiAJc3dpdGNoIChlZHBfbGlua19wYXJhbXMtPnJhdGUpIHsKIAljYXNlIEVEUF9SQVRF XzFfNjI6Ci0JCWk5MTUtPnZidC5lZHAucmF0ZSA9IERQX0xJTktfQldfMV82MjsKKwkJaW5mby0+ ZWRwLnJhdGUgPSBEUF9MSU5LX0JXXzFfNjI7CiAJCWJyZWFrOwogCWNhc2UgRURQX1JBVEVfMl83 OgotCQlpOTE1LT52YnQuZWRwLnJhdGUgPSBEUF9MSU5LX0JXXzJfNzsKKwkJaW5mby0+ZWRwLnJh dGUgPSBEUF9MSU5LX0JXXzJfNzsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJZHJtX2RiZ19rbXMo Jmk5MTUtPmRybSwKQEAgLTgzNSwxMyArODM1LDEzIEBAIHBhcnNlX2VkcChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSwgY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJkYikKIAogCXN3aXRj aCAoZWRwX2xpbmtfcGFyYW1zLT5sYW5lcykgewogCWNhc2UgRURQX0xBTkVfMToKLQkJaTkxNS0+ dmJ0LmVkcC5sYW5lcyA9IDE7CisJCWluZm8tPmVkcC5sYW5lcyA9IDE7CiAJCWJyZWFrOwogCWNh c2UgRURQX0xBTkVfMjoKLQkJaTkxNS0+dmJ0LmVkcC5sYW5lcyA9IDI7CisJCWluZm8tPmVkcC5s YW5lcyA9IDI7CiAJCWJyZWFrOwogCWNhc2UgRURQX0xBTkVfNDoKLQkJaTkxNS0+dmJ0LmVkcC5s YW5lcyA9IDQ7CisJCWluZm8tPmVkcC5sYW5lcyA9IDQ7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJ CWRybV9kYmdfa21zKCZpOTE1LT5kcm0sCkBAIC04NTIsMTYgKzg1MiwxNiBAQCBwYXJzZV9lZHAo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpi ZGIpCiAKIAlzd2l0Y2ggKGVkcF9saW5rX3BhcmFtcy0+cHJlZW1waGFzaXMpIHsKIAljYXNlIEVE UF9QUkVFTVBIQVNJU19OT05FOgotCQlpOTE1LT52YnQuZWRwLnByZWVtcGhhc2lzID0gRFBfVFJB SU5fUFJFX0VNUEhfTEVWRUxfMDsKKwkJaW5mby0+ZWRwLnByZWVtcGhhc2lzID0gRFBfVFJBSU5f UFJFX0VNUEhfTEVWRUxfMDsKIAkJYnJlYWs7CiAJY2FzZSBFRFBfUFJFRU1QSEFTSVNfM181ZEI6 Ci0JCWk5MTUtPnZidC5lZHAucHJlZW1waGFzaXMgPSBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8x OworCQlpbmZvLT5lZHAucHJlZW1waGFzaXMgPSBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8xOwog CQlicmVhazsKIAljYXNlIEVEUF9QUkVFTVBIQVNJU182ZEI6Ci0JCWk5MTUtPnZidC5lZHAucHJl ZW1waGFzaXMgPSBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8yOworCQlpbmZvLT5lZHAucHJlZW1w aGFzaXMgPSBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8yOwogCQlicmVhazsKIAljYXNlIEVEUF9Q UkVFTVBIQVNJU185XzVkQjoKLQkJaTkxNS0+dmJ0LmVkcC5wcmVlbXBoYXNpcyA9IERQX1RSQUlO X1BSRV9FTVBIX0xFVkVMXzM7CisJCWluZm8tPmVkcC5wcmVlbXBoYXNpcyA9IERQX1RSQUlOX1BS RV9FTVBIX0xFVkVMXzM7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWRybV9kYmdfa21zKCZpOTE1 LT5kcm0sCkBAIC04NzIsMTYgKzg3MiwxNiBAQCBwYXJzZV9lZHAoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCiAKIAlzd2l0Y2ggKGVk cF9saW5rX3BhcmFtcy0+dnN3aW5nKSB7CiAJY2FzZSBFRFBfVlNXSU5HXzBfNFY6Ci0JCWk5MTUt PnZidC5lZHAudnN3aW5nID0gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOworCQlpbmZv LT5lZHAudnN3aW5nID0gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOwogCQlicmVhazsK IAljYXNlIEVEUF9WU1dJTkdfMF82VjoKLQkJaTkxNS0+dmJ0LmVkcC52c3dpbmcgPSBEUF9UUkFJ Tl9WT0xUQUdFX1NXSU5HX0xFVkVMXzE7CisJCWluZm8tPmVkcC52c3dpbmcgPSBEUF9UUkFJTl9W T0xUQUdFX1NXSU5HX0xFVkVMXzE7CiAJCWJyZWFrOwogCWNhc2UgRURQX1ZTV0lOR18wXzhWOgot CQlpOTE1LT52YnQuZWRwLnZzd2luZyA9IERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMjsK KwkJaW5mby0+ZWRwLnZzd2luZyA9IERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMjsKIAkJ YnJlYWs7CiAJY2FzZSBFRFBfVlNXSU5HXzFfMlY6Ci0JCWk5MTUtPnZidC5lZHAudnN3aW5nID0g RFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOworCQlpbmZvLT5lZHAudnN3aW5nID0gRFBf VFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlkcm1f ZGJnX2ttcygmaTkxNS0+ZHJtLApAQCAtODk1LDExICs4OTUsMTEgQEAgcGFyc2VfZWRwKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiKQog CiAJCS8qIERvbid0IHJlYWQgZnJvbSBWQlQgaWYgbW9kdWxlIHBhcmFtZXRlciBoYXMgdmFsaWQg dmFsdWUqLwogCQlpZiAoaTkxNS0+cGFyYW1zLmVkcF92c3dpbmcpIHsKLQkJCWk5MTUtPnZidC5l ZHAubG93X3Zzd2luZyA9CisJCQlpbmZvLT5lZHAubG93X3Zzd2luZyA9CiAJCQkJaTkxNS0+cGFy YW1zLmVkcF92c3dpbmcgPT0gMTsKIAkJfSBlbHNlIHsKLQkJCXZzd2luZyA9IChlZHAtPmVkcF92 c3dpbmdfcHJlZW1waCA+PiAocGFuZWxfdHlwZSAqIDQpKSAmIDB4RjsKLQkJCWk5MTUtPnZidC5l ZHAubG93X3Zzd2luZyA9IHZzd2luZyA9PSAwOworCQkJdnN3aW5nID0gKGVkcC0+ZWRwX3Zzd2lu Z19wcmVlbXBoID4+IChwYW5lbF9pbmRleCAqIDQpKSAmIDB4RjsKKwkJCWluZm8tPmVkcC5sb3df dnN3aW5nID0gdnN3aW5nID09IDA7CiAJCX0KIAl9CiB9CkBAIC0xOTg5LDYgKzE5ODksNyBAQCBz dGF0aWMgdm9pZCBwYXJzZV9pbnRlZ3JhdGVkX3BhbmVsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LAogCXBhcnNlX2RyaXZlcl9mZWF0dXJlc19kcnJzX29ubHkoaTkxNSwgYmRiLCBpbmZv KTsKIAlwYXJzZV9wYW5lbF9kdGQoaTkxNSwgYmRiLCBpbmZvLCBwYW5lbF9pbmRleCk7CiAJcGFy c2VfbGZwX2JhY2tsaWdodChpOTE1LCBiZGIsIGluZm8sIHBhbmVsX2luZGV4KTsKKwlwYXJzZV9l ZHAoaTkxNSwgYmRiLCBpbmZvLCBwYW5lbF9pbmRleCk7CiB9CiAKIHN0YXRpYyB2b2lkIHBhcnNl X2RkaV9wb3J0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LApAQCAtMjQ4NSw3ICsyNDg2 LDYgQEAgdm9pZCBpbnRlbF9iaW9zX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp CiAJcGFyc2VfcGFuZWxfdHlwZShpOTE1LCBiZGIpOwogCXBhcnNlX3Nkdm9fcGFuZWxfZGF0YShp OTE1LCBiZGIpOwogCXBhcnNlX2RyaXZlcl9mZWF0dXJlcyhpOTE1LCBiZGIpOwotCXBhcnNlX2Vk cChpOTE1LCBiZGIpOwogCXBhcnNlX3BzcihpOTE1LCBiZGIpOwogCXBhcnNlX21pcGlfY29uZmln KGk5MTUsIGJkYik7CiAJcGFyc2VfbWlwaV9zZXF1ZW5jZShpOTE1LCBiZGIpOwpAQCAtMzEzMiwz ICszMTMyLDExIEBAIGludGVsX2Jpb3NfYmFja2xpZ2h0X2luZm8oc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCiAKIAlyZXR1cm4gJmk5MTUtPnZidC5kZGlfcG9ydF9pbmZvW2VuY29kZXIt PnBvcnRdLmJhY2tsaWdodDsKIH0KKworc3RydWN0IHZidF9lZHBfaW5mbyAqCitpbnRlbF9iaW9z X2VkcF9pbmZvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQoreworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CisKKwlyZXR1 cm4gJmk5MTUtPnZidC5kZGlfcG9ydF9pbmZvW2VuY29kZXItPnBvcnRdLmVkcDsKK30KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmgKaW5kZXggNWI2MTY3Yzk3YThkOS4u OGZkOWI1MmY5MjFmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9iaW9zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9z LmgKQEAgLTI2OSw1ICsyNjksNiBAQCBpbnQgaW50ZWxfYmlvc19lbmNvZGVyX2hkbWlfYm9vc3Rf bGV2ZWwoY29uc3Qgc3RydWN0IGludGVsX2Jpb3NfZW5jb2Rlcl9kYXRhICpkZQogZW51bSBkcnJz X3N1cHBvcnRfdHlwZSBpbnRlbF9iaW9zX2RycnNfdHlwZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2Rlcik7CiBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqaW50ZWxfYmlvc19sZnBf bHZkc19pbmZvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKIGNvbnN0IHN0cnVjdCB2 YnRfYmFja2xpZ2h0X2luZm8gKmludGVsX2Jpb3NfYmFja2xpZ2h0X2luZm8oc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpOworc3RydWN0IHZidF9lZHBfaW5mbyAqaW50ZWxfYmlvc19lZHBf aW5mbyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7CiAKICNlbmRpZiAvKiBfSU5URUxf QklPU19IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKaW5kZXgg MjZhM2FhNzNmY2M0My4uMjJjMDg5YWZlMzQ4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RkaS5jCkBAIC0zNjQ1LDYgKzM2NDUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9k ZGlfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOworCXN0cnVjdCB2YnRf ZWRwX2luZm8gKnZidF9lZHBfaW5mbyA9IGludGVsX2Jpb3NfZWRwX2luZm8oZW5jb2Rlcik7CiAJ ZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gcGlwZV9jb25maWctPmNwdV90cmFuc2Nv ZGVyOwogCiAJLyogWFhYOiBEU0kgdHJhbnNjb2RlciBwYXJhbm9pYSAqLwpAQCAtMzY2OSw4ICsz NjcwLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2dldF9jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJcGlwZV9jb25maWctPmhhc19hdWRpbyA9CiAJCWludGVsX2RkaV9p c19hdWRpb19lbmFibGVkKGRldl9wcml2LCBjcHVfdHJhbnNjb2Rlcik7CiAKLQlpZiAoZW5jb2Rl ci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQICYmIGRldl9wcml2LT52YnQuZWRwLmJwcCAmJgot CSAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHAgPiBkZXZfcHJpdi0+dmJ0LmVkcC5icHApIHsKKwlp ZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQICYmIHZidF9lZHBfaW5mby0+YnBw ICYmCisJICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCA+IHZidF9lZHBfaW5mby0+YnBwKSB7CiAJ CS8qCiAJCSAqIFRoaXMgaXMgYSBiaWcgZmF0IHVnbHkgaGFjay4KIAkJICoKQEAgLTM2ODYsOCAr MzY4Nyw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCQkgKi8KIAkJZHJtX2RiZ19rbXMoJmRldl9wcml2LT5kcm0sCiAJ CQkgICAgInBpcGUgaGFzICVkIGJwcCBmb3IgZURQIHBhbmVsLCBvdmVycmlkaW5nIEJJT1MtcHJv dmlkZWQgbWF4ICVkIGJwcFxuIiwKLQkJCSAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHAsIGRldl9w cml2LT52YnQuZWRwLmJwcCk7Ci0JCWRldl9wcml2LT52YnQuZWRwLmJwcCA9IHBpcGVfY29uZmln LT5waXBlX2JwcDsKKwkJCSAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHAsIHZidF9lZHBfaW5mby0+ YnBwKTsKKwkJdmJ0X2VkcF9pbmZvLT5icHAgPSBwaXBlX2NvbmZpZy0+cGlwZV9icHA7CiAJfQog CiAJaWYgKCFwaXBlX2NvbmZpZy0+Ymlnam9pbmVyX3NsYXZlKQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGlfYnVmX3RyYW5zLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuYwppbmRleCA2M2IxYWU4MzBk OWEwLi44YWMwNGNkN2NlZWVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RkaV9idWZfdHJhbnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RkaV9idWZfdHJhbnMuYwpAQCAtMTEyNSwxNCArMTEyNSwxNCBAQCBiZHdfZ2V0 X2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJICBpbnQgKm5fZW50cmllcykKIHsK LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOworCWNvbnN0IHN0cnVjdCB2YnRfZWRwX2luZm8gKnZidF9lZHBfaW5mbyA9IGludGVsX2Jp b3NfZWRwX2luZm8oZW5jb2Rlcik7CiAKIAlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0 YXRlLCBJTlRFTF9PVVRQVVRfQU5BTE9HKSkKIAkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMo JmJkd19kZGlfdHJhbnNsYXRpb25zX2ZkaSwgbl9lbnRyaWVzKTsKIAllbHNlIGlmIChpbnRlbF9j cnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1JKSkKIAkJcmV0dXJuIGlu dGVsX2dldF9idWZfdHJhbnMoJmJkd19kZGlfdHJhbnNsYXRpb25zX2hkbWksIG5fZW50cmllcyk7 CiAJZWxzZSBpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRf RURQKSAmJgotCQkgaTkxNS0+dmJ0LmVkcC5sb3dfdnN3aW5nKQorCQkgdmJ0X2VkcF9pbmZvLT5s b3dfdnN3aW5nKQogCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmYmR3X2RkaV90cmFuc2xh dGlvbnNfZWRwLCBuX2VudHJpZXMpOwogCWVsc2UKIAkJcmV0dXJuIGludGVsX2dldF9idWZfdHJh bnMoJmJkd19kZGlfdHJhbnNsYXRpb25zX2RwLCBuX2VudHJpZXMpOwpAQCAtMTE2MiwxMiArMTE2 MiwxMiBAQCBza2xfeV9nZXRfYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAg ICBpbnQgKm5fZW50cmllcykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRv X2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOworCWNvbnN0IHN0cnVjdCB2YnRfZWRwX2luZm8gKnZi dF9lZHBfaW5mbyA9IGludGVsX2Jpb3NfZWRwX2luZm8oZW5jb2Rlcik7CiAKIAlpZiAoaW50ZWxf Y3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkpCiAJCXJldHVybiBp bnRlbF9nZXRfYnVmX3RyYW5zKCZza2xfeV9kZGlfdHJhbnNsYXRpb25zX2hkbWksIG5fZW50cmll cyk7CiAJZWxzZSBpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQ VVRfRURQKSAmJgotCQkgaTkxNS0+dmJ0LmVkcC5sb3dfdnN3aW5nKQorCQkgdmJ0X2VkcF9pbmZv LT5sb3dfdnN3aW5nKQogCQlyZXR1cm4gX3NrbF9nZXRfYnVmX3RyYW5zX2RwKGVuY29kZXIsICZz a2xfeV9kZGlfdHJhbnNsYXRpb25zX2VkcCwgbl9lbnRyaWVzKTsKIAllbHNlCiAJCXJldHVybiBf c2tsX2dldF9idWZfdHJhbnNfZHAoZW5jb2RlciwgJnNrbF95X2RkaV90cmFuc2xhdGlvbnNfZHAs IG5fZW50cmllcyk7CkBAIC0xMTc4LDEyICsxMTc4LDEyIEBAIHNrbF91X2dldF9idWZfdHJhbnMo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJICAgIGludCAqbl9lbnRyaWVzKQogewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CisJ Y29uc3Qgc3RydWN0IHZidF9lZHBfaW5mbyAqdmJ0X2VkcF9pbmZvID0gaW50ZWxfYmlvc19lZHBf aW5mbyhlbmNvZGVyKTsKIAogCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElO VEVMX09VVFBVVF9IRE1JKSkKIAkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJnNrbF9kZGlf dHJhbnNsYXRpb25zX2hkbWksIG5fZW50cmllcyk7CiAJZWxzZSBpZiAoaW50ZWxfY3J0Y19oYXNf dHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfRURQKSAmJgotCQkgaTkxNS0+dmJ0LmVkcC5s b3dfdnN3aW5nKQorCQkgdmJ0X2VkcF9pbmZvLT5sb3dfdnN3aW5nKQogCQlyZXR1cm4gX3NrbF9n ZXRfYnVmX3RyYW5zX2RwKGVuY29kZXIsICZza2xfdV9kZGlfdHJhbnNsYXRpb25zX2VkcCwgbl9l bnRyaWVzKTsKIAllbHNlCiAJCXJldHVybiBfc2tsX2dldF9idWZfdHJhbnNfZHAoZW5jb2Rlciwg JnNrbF91X2RkaV90cmFuc2xhdGlvbnNfZHAsIG5fZW50cmllcyk7CkBAIC0xMTk0LDEyICsxMTk0 LDEyIEBAIHNrbF9nZXRfYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkgIGludCAq bl9lbnRyaWVzKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7CisJY29uc3Qgc3RydWN0IHZidF9lZHBfaW5mbyAqdmJ0X2VkcF9p bmZvID0gaW50ZWxfYmlvc19lZHBfaW5mbyhlbmNvZGVyKTsKIAogCWlmIChpbnRlbF9jcnRjX2hh c190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1JKSkKIAkJcmV0dXJuIGludGVsX2dl dF9idWZfdHJhbnMoJnNrbF9kZGlfdHJhbnNsYXRpb25zX2hkbWksIG5fZW50cmllcyk7CiAJZWxz ZSBpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfRURQKSAm JgotCQkgaTkxNS0+dmJ0LmVkcC5sb3dfdnN3aW5nKQorCQkgdmJ0X2VkcF9pbmZvLT5sb3dfdnN3 aW5nKQogCQlyZXR1cm4gX3NrbF9nZXRfYnVmX3RyYW5zX2RwKGVuY29kZXIsICZza2xfZGRpX3Ry YW5zbGF0aW9uc19lZHAsIG5fZW50cmllcyk7CiAJZWxzZQogCQlyZXR1cm4gX3NrbF9nZXRfYnVm X3RyYW5zX2RwKGVuY29kZXIsICZza2xfZGRpX3RyYW5zbGF0aW9uc19kcCwgbl9lbnRyaWVzKTsK QEAgLTEyMTAsMTIgKzEyMTAsMTIgQEAga2JsX3lfZ2V0X2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIAkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogCQkgICAgaW50ICpuX2VudHJpZXMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKKwljb25zdCBzdHJ1Y3Qg dmJ0X2VkcF9pbmZvICp2YnRfZWRwX2luZm8gPSBpbnRlbF9iaW9zX2VkcF9pbmZvKGVuY29kZXIp OwogCiAJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0hE TUkpKQogCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmc2tsX3lfZGRpX3RyYW5zbGF0aW9u c19oZG1pLCBuX2VudHJpZXMpOwogCWVsc2UgaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19z dGF0ZSwgSU5URUxfT1VUUFVUX0VEUCkgJiYKLQkJIGk5MTUtPnZidC5lZHAubG93X3Zzd2luZykK KwkJIHZidF9lZHBfaW5mby0+bG93X3Zzd2luZykKIAkJcmV0dXJuIF9za2xfZ2V0X2J1Zl90cmFu c19kcChlbmNvZGVyLCAmc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19lZHAsIG5fZW50cmllcyk7CiAJ ZWxzZQogCQlyZXR1cm4gX3NrbF9nZXRfYnVmX3RyYW5zX2RwKGVuY29kZXIsICZrYmxfeV9kZGlf dHJhbnNsYXRpb25zX2RwLCBuX2VudHJpZXMpOwpAQCAtMTIyNiwxMiArMTIyNiwxMiBAQCBrYmxf dV9nZXRfYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkgICAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgICBpbnQgKm5fZW50 cmllcykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOworCWNvbnN0IHN0cnVjdCB2YnRfZWRwX2luZm8gKnZidF9lZHBfaW5mbyA9 IGludGVsX2Jpb3NfZWRwX2luZm8oZW5jb2Rlcik7CiAKIAlpZiAoaW50ZWxfY3J0Y19oYXNfdHlw ZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkpCiAJCXJldHVybiBpbnRlbF9nZXRfYnVm X3RyYW5zKCZza2xfZGRpX3RyYW5zbGF0aW9uc19oZG1pLCBuX2VudHJpZXMpOwogCWVsc2UgaWYg KGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0VEUCkgJiYKLQkJ IGk5MTUtPnZidC5lZHAubG93X3Zzd2luZykKKwkJIHZidF9lZHBfaW5mby0+bG93X3Zzd2luZykK IAkJcmV0dXJuIF9za2xfZ2V0X2J1Zl90cmFuc19kcChlbmNvZGVyLCAmc2tsX3VfZGRpX3RyYW5z bGF0aW9uc19lZHAsIG5fZW50cmllcyk7CiAJZWxzZQogCQlyZXR1cm4gX3NrbF9nZXRfYnVmX3Ry YW5zX2RwKGVuY29kZXIsICZrYmxfdV9kZGlfdHJhbnNsYXRpb25zX2RwLCBuX2VudHJpZXMpOwpA QCAtMTI0MiwxMiArMTI0MiwxMiBAQCBrYmxfZ2V0X2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAkJICBpbnQgKm5fZW50cmllcykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOworCWNvbnN0IHN0cnVjdCB2YnRfZWRw X2luZm8gKnZidF9lZHBfaW5mbyA9IGludGVsX2Jpb3NfZWRwX2luZm8oZW5jb2Rlcik7CiAKIAlp ZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkpCiAJ CXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZza2xfZGRpX3RyYW5zbGF0aW9uc19oZG1pLCBu X2VudHJpZXMpOwogCWVsc2UgaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5U RUxfT1VUUFVUX0VEUCkgJiYKLQkJIGk5MTUtPnZidC5lZHAubG93X3Zzd2luZykKKwkJIHZidF9l ZHBfaW5mby0+bG93X3Zzd2luZykKIAkJcmV0dXJuIF9za2xfZ2V0X2J1Zl90cmFuc19kcChlbmNv ZGVyLCAmc2tsX2RkaV90cmFuc2xhdGlvbnNfZWRwLCBuX2VudHJpZXMpOwogCWVsc2UKIAkJcmV0 dXJuIF9za2xfZ2V0X2J1Zl90cmFuc19kcChlbmNvZGVyLCAma2JsX2RkaV90cmFuc2xhdGlvbnNf ZHAsIG5fZW50cmllcyk7CkBAIC0xMjU4LDEyICsxMjU4LDEyIEBAIGJ4dF9nZXRfYnVmX3RyYW5z KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkgIGludCAqbl9lbnRyaWVzKQogewotCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CisJY29u c3Qgc3RydWN0IHZidF9lZHBfaW5mbyAqdmJ0X2VkcF9pbmZvID0gaW50ZWxfYmlvc19lZHBfaW5m byhlbmNvZGVyKTsKIAogCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVM X09VVFBVVF9IRE1JKSkKIAkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmJ4dF9kZGlfdHJh bnNsYXRpb25zX2hkbWksIG5fZW50cmllcyk7CiAJZWxzZSBpZiAoaW50ZWxfY3J0Y19oYXNfdHlw ZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfRURQKSAmJgotCQkgaTkxNS0+dmJ0LmVkcC5sb3df dnN3aW5nKQorCQkgdmJ0X2VkcF9pbmZvLT5sb3dfdnN3aW5nKQogCQlyZXR1cm4gaW50ZWxfZ2V0 X2J1Zl90cmFucygmYnh0X2RkaV90cmFuc2xhdGlvbnNfZWRwLCBuX2VudHJpZXMpOwogCWVsc2UK IAkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmJ4dF9kZGlfdHJhbnNsYXRpb25zX2RwLCBu X2VudHJpZXMpOwpAQCAtMTMxNiwxMCArMTMxNiwxMSBAQCBjbmxfZ2V0X2J1Zl90cmFuc19kcChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCiBzdGF0aWMgY29u c3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgogY25sX2dldF9idWZfdHJhbnNfZWRwKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKIHsKKwljb25zdCBz dHJ1Y3QgdmJ0X2VkcF9pbmZvICp2YnRfZWRwX2luZm8gPSBpbnRlbF9iaW9zX2VkcF9pbmZvKGVu Y29kZXIpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwogCXUzMiB2b2x0YWdlID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwg Q05MX1BPUlRfQ09NUF9EVzMpICYgVk9MVEFHRV9JTkZPX01BU0s7CiAKLQlpZiAoZGV2X3ByaXYt PnZidC5lZHAubG93X3Zzd2luZykgeworCWlmICh2YnRfZWRwX2luZm8tPmxvd192c3dpbmcpIHsK IAkJaWYgKHZvbHRhZ2UgPT0gVk9MVEFHRV9JTkZPXzBfODVWKSB7CiAJCQlyZXR1cm4gaW50ZWxf Z2V0X2J1Zl90cmFucygmY25sX2RkaV90cmFuc2xhdGlvbnNfZWRwXzBfODVWLAogCQkJCQkJICAg bl9lbnRyaWVzKTsKQEAgLTEzNjUsMTIgKzEzNjYsMTIgQEAgaWNsX2dldF9jb21ib19idWZfdHJh bnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgIGludCAqbl9lbnRyaWVzKQog ewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ YmFzZS5kZXYpOworCWNvbnN0IHN0cnVjdCB2YnRfZWRwX2luZm8gKnZidF9lZHBfaW5mbyA9IGlu dGVsX2Jpb3NfZWRwX2luZm8oZW5jb2Rlcik7CiAKIAlpZiAoY3J0Y19zdGF0ZS0+cG9ydF9jbG9j ayA+IDU0MDAwMCkgewogCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmaWNsX2NvbWJvX3Bo eV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfZWRwX2hicjMsCiAJCQkJCSAgIG5fZW50cmllcyk7 Ci0JfSBlbHNlIGlmIChkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nKSB7CisJfSBlbHNlIGlm ICh2YnRfZWRwX2luZm8tPmxvd192c3dpbmcpIHsKIAkJcmV0dXJuIGludGVsX2dldF9idWZfdHJh bnMoJmljbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMiwKIAkJCQkJICAgbl9l bnRyaWVzKTsKIAl9CkBAIC0xNDMyLDEyICsxNDMzLDEyIEBAIGVobF9nZXRfY29tYm9fYnVmX3Ry YW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQlpbnQgKm5fZW50cmllcykKIHsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK Kwljb25zdCBzdHJ1Y3QgdmJ0X2VkcF9pbmZvICp2YnRfZWRwX2luZm8gPSBpbnRlbF9iaW9zX2Vk cF9pbmZvKGVuY29kZXIpOwogCiAJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwg SU5URUxfT1VUUFVUX0hETUkpKQogCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmaWNsX2Nv bWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2hkbWksIG5fZW50cmllcyk7CiAJZWxzZSBpZiAoaW50 ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfRURQKSAmJgotCQkgZGV2 X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZykKKwkJIHZidF9lZHBfaW5mby0+bG93X3Zzd2luZykK IAkJcmV0dXJuIGVobF9nZXRfY29tYm9fYnVmX3RyYW5zX2VkcChlbmNvZGVyLCBjcnRjX3N0YXRl LCBuX2VudHJpZXMpOwogCWVsc2UKIAkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmVobF9j b21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19kcCwgbl9lbnRyaWVzKTsKQEAgLTE0NTksMTIgKzE0 NjAsMTIgQEAganNsX2dldF9jb21ib19idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJ CWludCAqbl9lbnRyaWVzKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOworCWNvbnN0IHN0cnVjdCB2YnRfZWRwX2luZm8g KnZidF9lZHBfaW5mbyA9IGludGVsX2Jpb3NfZWRwX2luZm8oZW5jb2Rlcik7CiAKIAlpZiAoaW50 ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkpCiAJCXJldHVy biBpbnRlbF9nZXRfYnVmX3RyYW5zKCZpY2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfaGRt aSwgbl9lbnRyaWVzKTsKIAllbHNlIGlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUs IElOVEVMX09VVFBVVF9FRFApICYmCi0JCSBkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nKQor CQkgdmJ0X2VkcF9pbmZvLT5sb3dfdnN3aW5nKQogCQlyZXR1cm4ganNsX2dldF9jb21ib19idWZf dHJhbnNfZWRwKGVuY29kZXIsIGNydGNfc3RhdGUsIG5fZW50cmllcyk7CiAJZWxzZQogCQlyZXR1 cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2Rw X2hicjJfZWRwX2hicjMsIG5fZW50cmllcyk7CkBAIC0xNDk2LDE2ICsxNDk3LDE2IEBAIHRnbF9n ZXRfY29tYm9fYnVmX3RyYW5zX2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJ CSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICBp bnQgKm5fZW50cmllcykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKKwljb25zdCBzdHJ1Y3QgdmJ0X2VkcF9pbmZvICp2 YnRfZWRwX2luZm8gPSBpbnRlbF9iaW9zX2VkcF9pbmZvKGVuY29kZXIpOwogCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7CiAKIAlpZiAoY3J0Y19z dGF0ZS0+cG9ydF9jbG9jayA+IDU0MDAwMCkgewogCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFu cygmaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfZWRwX2hicjMsCiAJCQkJ CSAgIG5fZW50cmllcyk7Ci0JfSBlbHNlIGlmIChkZXZfcHJpdi0+dmJ0LmVkcC5ob2JsICYmICFp bnRlbF9kcC0+aG9ibF9mYWlsZWQpIHsKKwl9IGVsc2UgaWYgKHZidF9lZHBfaW5mby0+aG9ibCAm JiAhaW50ZWxfZHAtPmhvYmxfZmFpbGVkKSB7CiAJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5z KCZ0Z2xfY29tYm9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjJfaG9ibCwKIAkJCQkJICAg bl9lbnRyaWVzKTsKLQl9IGVsc2UgaWYgKGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcpIHsK Kwl9IGVsc2UgaWYgKHZidF9lZHBfaW5mby0+bG93X3Zzd2luZykgewogCQlyZXR1cm4gaW50ZWxf Z2V0X2J1Zl90cmFucygmaWNsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyLAog CQkJCQkgICBuX2VudHJpZXMpOwogCX0KQEAgLTE1NDQsMTYgKzE1NDUsMTYgQEAgZGcxX2dldF9j b21ib19idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAg IGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgIGludCAq bl9lbnRyaWVzKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOworCWNvbnN0IHN0cnVjdCB2YnRfZWRwX2luZm8gKnZidF9l ZHBfaW5mbyA9IGludGVsX2Jpb3NfZWRwX2luZm8oZW5jb2Rlcik7CiAJc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsKIAogCWlmIChjcnRjX3N0YXRl LT5wb3J0X2Nsb2NrID4gNTQwMDAwKQogCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmaWNs X2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfZWRwX2hicjMsCiAJCQkJCSAgIG5f ZW50cmllcyk7Ci0JZWxzZSBpZiAoZGV2X3ByaXYtPnZidC5lZHAuaG9ibCAmJiAhaW50ZWxfZHAt PmhvYmxfZmFpbGVkKQorCWVsc2UgaWYgKHZidF9lZHBfaW5mby0+aG9ibCAmJiAhaW50ZWxfZHAt PmhvYmxfZmFpbGVkKQogCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmdGdsX2NvbWJvX3Bo eV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyX2hvYmwsCiAJCQkJCSAgIG5fZW50cmllcyk7Ci0J ZWxzZSBpZiAoZGV2X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZykKKwllbHNlIGlmICh2YnRfZWRw X2luZm8tPmxvd192c3dpbmcpCiAJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZpY2xfY29t Ym9fcGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjIsCiAJCQkJCSAgIG5fZW50cmllcyk7CiAJ ZWxzZQpAQCAtMTU4OSwxNiArMTU5MCwxNiBAQCBya2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19lZHAo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgICAgaW50ICpuX2VudHJpZXMpCiB7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7CisJY29uc3Qgc3RydWN0IHZidF9lZHBfaW5mbyAqdmJ0X2VkcF9pbmZvID0gaW50ZWxfYmlv c19lZHBfaW5mbyhlbmNvZGVyKTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3Rv X2ludGVsX2RwKGVuY29kZXIpOwogCiAJaWYgKGNydGNfc3RhdGUtPnBvcnRfY2xvY2sgPiA1NDAw MDApIHsKIAkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmljbF9jb21ib19waHlfZGRpX3Ry YW5zbGF0aW9uc19kcF9oYnIyX2VkcF9oYnIzLAogCQkJCQkgICBuX2VudHJpZXMpOwotCX0gZWxz ZSBpZiAoZGV2X3ByaXYtPnZidC5lZHAuaG9ibCAmJiAhaW50ZWxfZHAtPmhvYmxfZmFpbGVkKSB7 CisJfSBlbHNlIGlmICh2YnRfZWRwX2luZm8tPmhvYmwgJiYgIWludGVsX2RwLT5ob2JsX2ZhaWxl ZCkgewogCQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmdGdsX2NvbWJvX3BoeV9kZGlfdHJh bnNsYXRpb25zX2VkcF9oYnIyX2hvYmwsCiAJCQkJCSAgIG5fZW50cmllcyk7Ci0JfSBlbHNlIGlm IChkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nKSB7CisJfSBlbHNlIGlmICh2YnRfZWRwX2lu Zm8tPmxvd192c3dpbmcpIHsKIAkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMoJmljbF9jb21i b19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMiwKIAkJCQkJICAgbl9lbnRyaWVzKTsKIAl9 CkBAIC0xNjM1LDE0ICsxNjM2LDE0IEBAIGFkbHNfZ2V0X2NvbWJvX2J1Zl90cmFuc19lZHAoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgICBpbnQgKm5fZW50cmllcykKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwor CWNvbnN0IHN0cnVjdCB2YnRfZWRwX2luZm8gKnZidF9lZHBfaW5mbyA9IGludGVsX2Jpb3NfZWRw X2luZm8oZW5jb2Rlcik7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRl bF9kcChlbmNvZGVyKTsKIAogCWlmIChjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrID4gNTQwMDAwKQog CQlyZXR1cm4gaW50ZWxfZ2V0X2J1Zl90cmFucygmYWRsc19jb21ib19waHlfZGRpX3RyYW5zbGF0 aW9uc19lZHBfaGJyMywgbl9lbnRyaWVzKTsKLQllbHNlIGlmIChpOTE1LT52YnQuZWRwLmhvYmwg JiYgIWludGVsX2RwLT5ob2JsX2ZhaWxlZCkKKwllbHNlIGlmICh2YnRfZWRwX2luZm8tPmhvYmwg JiYgIWludGVsX2RwLT5ob2JsX2ZhaWxlZCkKIAkJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMo JnRnbF9jb21ib19waHlfZGRpX3RyYW5zbGF0aW9uc19lZHBfaGJyMl9ob2JsLCBuX2VudHJpZXMp OwotCWVsc2UgaWYgKGk5MTUtPnZidC5lZHAubG93X3Zzd2luZykKKwllbHNlIGlmICh2YnRfZWRw X2luZm8tPmxvd192c3dpbmcpCiAJCXJldHVybiBpbnRlbF9nZXRfYnVmX3RyYW5zKCZhZGxzX2Nv bWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyLCBuX2VudHJpZXMpOwogCWVsc2UKIAkJ cmV0dXJuIGFkbHNfZ2V0X2NvbWJvX2J1Zl90cmFuc19kcChlbmNvZGVyLCBjcnRjX3N0YXRlLCBu X2VudHJpZXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCmluZGV4IDc5 ZDRlM2VkYjJlZWYuLjI3YTBmOTNmYjI4M2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2RwLmMKQEAgLTEwMDksNiArMTAwOSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfbWF4 X2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwogCXN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9IGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3I7CisJ c3RydWN0IHZidF9lZHBfaW5mbyAqdmJ0X2VkcF9pbmZvID0gaW50ZWxfYmlvc19lZHBfaW5mbyhp bnRlbF9jb25uZWN0b3ItPmVuY29kZXIpOwogCWludCBicHAsIGJwYzsKIAogCWJwYyA9IGNydGNf c3RhdGUtPnBpcGVfYnBwIC8gMzsKQEAgLTEwMjcsMTEgKzEwMjgsMTEgQEAgc3RhdGljIGludCBp bnRlbF9kcF9tYXhfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJaWYgKGludGVsX2Rw X2lzX2VkcChpbnRlbF9kcCkpIHsKIAkJLyogR2V0IGJwcCBmcm9tIHZidCBvbmx5IGZvciBwYW5l bHMgdGhhdCBkb250IGhhdmUgYnBwIGluIGVkaWQgKi8KIAkJaWYgKGludGVsX2Nvbm5lY3Rvci0+ YmFzZS5kaXNwbGF5X2luZm8uYnBjID09IDAgJiYKLQkJICAgIGRldl9wcml2LT52YnQuZWRwLmJw cCAmJiBkZXZfcHJpdi0+dmJ0LmVkcC5icHAgPCBicHApIHsKKwkJICAgIHZidF9lZHBfaW5mby0+ YnBwICYmIHZidF9lZHBfaW5mby0+YnBwIDwgYnBwKSB7CiAJCQlkcm1fZGJnX2ttcygmZGV2X3By aXYtPmRybSwKIAkJCQkgICAgImNsYW1waW5nIGJwcCBmb3IgZURQIHBhbmVsIHRvIEJJT1MtcHJv dmlkZWQgJWlcbiIsCi0JCQkJICAgIGRldl9wcml2LT52YnQuZWRwLmJwcCk7Ci0JCQlicHAgPSBk ZXZfcHJpdi0+dmJ0LmVkcC5icHA7CisJCQkJICAgIHZidF9lZHBfaW5mby0+YnBwKTsKKwkJCWJw cCA9IHZidF9lZHBfaW5mby0+YnBwOwogCQl9CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bwcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9wcHMuYwppbmRleCA5Njg5NGQ3MGE5MmMxLi5mNGMxNWExZjMxZDE1IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bwcy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHBzLmMKQEAgLTExNjEsNiArMTE2MSw4 IEBAIGludGVsX3Bwc192ZXJpZnlfc3RhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAog c3RhdGljIHZvaWQgcHBzX2luaXRfZGVsYXlzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiB7 CisJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApLT5iYXNlOworCWNvbnN0IHN0cnVjdCB2YnRfZWRwX2luZm8gKnZidF9lZHBfaW5mbyA9IGlu dGVsX2Jpb3NfZWRwX2luZm8oZW5jb2Rlcik7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7CiAJc3RydWN0IGVkcF9wb3dlcl9zZXEgY3Vy LCB2YnQsIHNwZWMsCiAJCSpmaW5hbCA9ICZpbnRlbF9kcC0+cHBzLnBwc19kZWxheXM7CkBAIC0x MTc1LDcgKzExNzcsNyBAQCBzdGF0aWMgdm9pZCBwcHNfaW5pdF9kZWxheXMoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKIAogCWludGVsX3Bwc19kdW1wX3N0YXRlKCJjdXIiLCAmY3VyKTsKIAot CXZidCA9IGRldl9wcml2LT52YnQuZWRwLnBwczsKKwl2YnQgPSB2YnRfZWRwX2luZm8tPnBwczsK IAkvKiBPbiBUb3NoaWJhIFNhdGVsbGl0ZSBQNTAtQy0xOEMgc3lzdGVtIHRoZSBWQlQgVDEyIGRl bGF5CiAJICogb2YgNTAwbXMgYXBwZWFycyB0byBiZSB0b28gc2hvcnQuIE9jYXNzaW9uYWxseSB0 aGUgcGFuZWwKIAkgKiBqdXN0IGZhaWxzIHRvIHBvd2VyIGJhY2sgb24uIEluY3JlYXNpbmcgdGhl IGRlbGF5IHRvIDgwMG1zCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAwNDdmMGQyZmM5NzFm Li4wZTk1N2JhODA0NmYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTY2OSw2ICs2Njks MTggQEAgc3RydWN0IGRkaV92YnRfcG9ydF9pbmZvIHsKIAkJdTggY29udHJvbGxlcjsJCS8qIGJy aWdodG5lc3MgY29udHJvbGxlciBudW1iZXIgKi8KIAkJZW51bSBpbnRlbF9iYWNrbGlnaHRfdHlw ZSB0eXBlOwogCX0gYmFja2xpZ2h0OworCisJc3RydWN0IHZidF9lZHBfaW5mbyB7CisJCWludCBy YXRlOworCQlpbnQgbGFuZXM7CisJCWludCBwcmVlbXBoYXNpczsKKwkJaW50IHZzd2luZzsKKwkJ Ym9vbCBsb3dfdnN3aW5nOworCQlib29sIGluaXRpYWxpemVkOworCQlpbnQgYnBwOworCQlzdHJ1 Y3QgZWRwX3Bvd2VyX3NlcSBwcHM7CisJCWJvb2wgaG9ibDsKKwl9IGVkcDsKIH07CiAKIGVudW0g cHNyX2xpbmVzX3RvX3dhaXQgewpAQCAtNjk2LDE4ICs3MDgsNiBAQCBzdHJ1Y3QgaW50ZWxfdmJ0 X2RhdGEgewogCXVuc2lnbmVkIGludCBiaW9zX2x2ZHNfdmFsOyAvKiBpbml0aWFsIFtQQ0hfXUxW RFMgcmVnIHZhbCBpbiBWQklPUyAqLwogCWVudW0gZHJtX3BhbmVsX29yaWVudGF0aW9uIG9yaWVu dGF0aW9uOwogCi0Jc3RydWN0IHsKLQkJaW50IHJhdGU7Ci0JCWludCBsYW5lczsKLQkJaW50IHBy ZWVtcGhhc2lzOwotCQlpbnQgdnN3aW5nOwotCQlib29sIGxvd192c3dpbmc7Ci0JCWJvb2wgaW5p dGlhbGl6ZWQ7Ci0JCWludCBicHA7Ci0JCXN0cnVjdCBlZHBfcG93ZXJfc2VxIHBwczsKLQkJYm9v bCBob2JsOwotCX0gZWRwOwotCiAJc3RydWN0IHsKIAkJYm9vbCBlbmFibGU7CiAJCWJvb2wgZnVs bF9saW5rOwotLSAKMi4zMi4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK