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 75887C432BE for ; Thu, 29 Jul 2021 21:51:31 +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 385B460F23 for ; Thu, 29 Jul 2021 21:51:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 385B460F23 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EAF036EE7A; Thu, 29 Jul 2021 21:51:29 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 472246E0FD for ; Thu, 29 Jul 2021 21:51:24 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10060"; a="192578349" X-IronPort-AV: E=Sophos;i="5.84,279,1620716400"; d="scan'208";a="192578349" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jul 2021 14:51:23 -0700 X-IronPort-AV: E=Sophos;i="5.84,279,1620716400"; d="scan'208";a="664570771" Received: from josouza-mobl2.jf.intel.com (HELO josouza-mobl2.intel.com) ([10.24.14.59]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jul 2021 14:51:23 -0700 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= To: intel-gfx@lists.freedesktop.org Date: Thu, 29 Jul 2021 14:55:42 -0700 Message-Id: <20210729215545.192606-7-jose.souza@intel.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210729215545.192606-1-jose.souza@intel.com> References: <20210729215545.192606-1-jose.souza@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH CI 07/10] drm/i915/bios: Enable parse of two DSI panels 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 IHRvIHR3bywgbm93CmhhbmRsaW5nIERTSSBkYXRhLgoKUmV2aWV3ZWQtYnk6IE1hdHQgQXR3b29k IDxtYXR0aGV3LnMuYXR3b29kQGludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50 ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXph QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYyAg ICAgICB8ICAxMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMg ICAgfCAxNjMgKysrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9iaW9zLmggICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kc2kuYyAgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZHNpX3ZidC5jIHwgIDU4ICsrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfcGFuZWwuYyAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L3Zs dl9kc2kuYyAgICAgICB8ICAxNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgICAgICAgICAgfCAgMzAgKystLQogOCBmaWxlcyBjaGFuZ2VkLCAxNjEgaW5zZXJ0aW9ucygr KSwgMTI4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaWNsX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pY2xfZHNpLmMK aW5kZXggNDNlYzdmY2QzZjVkMi4uMGE4MzYwZDE5NmNjNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pY2xfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pY2xfZHNpLmMKQEAgLTE4NDYsNyArMTg0Niw4IEBAIHN0YXRpYyB2b2lkIGljbF9k cGh5X3BhcmFtX2luaXQoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpKQogewogCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFzZS5kZXY7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBtaXBpX2NvbmZp ZyAqbWlwaV9jb25maWcgPSBkZXZfcHJpdi0+dmJ0LmRzaS5jb25maWc7CisJY29uc3Qgc3RydWN0 IHZidF9kc2lfaW5mbyAqdmJ0X2RzaV9pbmZvID0gaW50ZWxfYmlvc19kc2lfaW5mbygmaW50ZWxf ZHNpLT5iYXNlKTsKKwlzdHJ1Y3QgbWlwaV9jb25maWcgKm1pcGlfY29uZmlnID0gdmJ0X2RzaV9p bmZvLT5jb25maWc7CiAJdTMyIHRscHhfbnM7CiAJdTMyIHByZXBhcmVfY250LCBleGl0X3plcm9f Y250LCBjbGtfemVyb19jbnQsIHRyYWlsX2NudDsKIAl1MzIgdGhzX3ByZXBhcmVfbnMsIHRjbGtf dHJhaWxfbnM7CkBAIC0xOTc3LDYgKzE5NzgsNyBAQCB2b2lkIGljbF9kc2lfaW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50 ZWxfY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CiAJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGU7CisJY29uc3Qgc3RydWN0IHZidF9kc2lfaW5m byAqdmJ0X2RzaV9pbmZvOwogCWVudW0gcG9ydCBwb3J0OwogCiAJaWYgKCFpbnRlbF9iaW9zX2lz X2RzaV9wcmVzZW50KGRldl9wcml2LCAmcG9ydCkpCkBAIC0yMDQ0LDEzICsyMDQ2LDE1IEBAIHZv aWQgaWNsX2RzaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpbnRl bF9wYW5lbF9pbml0KCZpbnRlbF9jb25uZWN0b3ItPnBhbmVsLCBmaXhlZF9tb2RlLCBOVUxMKTsK IAlpbnRlbF9wYW5lbF9zZXR1cF9iYWNrbGlnaHQoY29ubmVjdG9yLCBJTlZBTElEX1BJUEUpOwog Ci0JaWYgKGRldl9wcml2LT52YnQuZHNpLmNvbmZpZy0+ZHVhbF9saW5rKQorCXZidF9kc2lfaW5m byA9IGludGVsX2Jpb3NfZHNpX2luZm8oZW5jb2Rlcik7CisKKwlpZiAodmJ0X2RzaV9pbmZvLT5j b25maWctPmR1YWxfbGluaykKIAkJaW50ZWxfZHNpLT5wb3J0cyA9IEJJVChQT1JUX0EpIHwgQklU KFBPUlRfQik7CiAJZWxzZQogCQlpbnRlbF9kc2ktPnBvcnRzID0gQklUKHBvcnQpOwogCi0JaW50 ZWxfZHNpLT5kY3NfYmFja2xpZ2h0X3BvcnRzID0gZGV2X3ByaXYtPnZidC5kc2kuYmxfcG9ydHM7 Ci0JaW50ZWxfZHNpLT5kY3NfY2FiY19wb3J0cyA9IGRldl9wcml2LT52YnQuZHNpLmNhYmNfcG9y dHM7CisJaW50ZWxfZHNpLT5kY3NfYmFja2xpZ2h0X3BvcnRzID0gdmJ0X2RzaV9pbmZvLT5ibF9w b3J0czsKKwlpbnRlbF9kc2ktPmRjc19jYWJjX3BvcnRzID0gdmJ0X2RzaV9pbmZvLT5jYWJjX3Bv cnRzOwogCiAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewogCQlz dHJ1Y3QgaW50ZWxfZHNpX2hvc3QgKmhvc3Q7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfYmlvcy5jCmluZGV4IDQwZmE2MzMzNmNkOWQuLmFhOThiZWY0YjhhNTcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCkBAIC0xMDIyLDU1ICsxMDIyLDU2 IEBAIHBhcnNlX3BzcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgY29uc3Qgc3RydWN0 IGJkYl9oZWFkZXIgKmJkYiwKIH0KIAogc3RhdGljIHZvaWQgcGFyc2VfZHNpX2JhY2tsaWdodF9w b3J0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCQkgICAgICB1MTYgdmVyc2lv biwgZW51bSBwb3J0IHBvcnQpCisJCQkJICAgICAgdTE2IHZlcnNpb24sIGVudW0gcG9ydCBwb3J0 LAorCQkJCSAgICAgIHN0cnVjdCBkZGlfdmJ0X3BvcnRfaW5mbyAqaW5mbykKIHsKLQlpZiAoIWk5 MTUtPnZidC5kc2kuY29uZmlnLT5kdWFsX2xpbmsgfHwgdmVyc2lvbiA8IDE5NykgewotCQlpOTE1 LT52YnQuZHNpLmJsX3BvcnRzID0gQklUKHBvcnQpOwotCQlpZiAoaTkxNS0+dmJ0LmRzaS5jb25m aWctPmNhYmNfc3VwcG9ydGVkKQotCQkJaTkxNS0+dmJ0LmRzaS5jYWJjX3BvcnRzID0gQklUKHBv cnQpOworCWlmICghaW5mby0+ZHNpLmNvbmZpZy0+ZHVhbF9saW5rIHx8IHZlcnNpb24gPCAxOTcp IHsKKwkJaW5mby0+ZHNpLmJsX3BvcnRzID0gQklUKHBvcnQpOworCQlpZiAoaW5mby0+ZHNpLmNv bmZpZy0+Y2FiY19zdXBwb3J0ZWQpCisJCQlpbmZvLT5kc2kuY2FiY19wb3J0cyA9IEJJVChwb3J0 KTsKIAogCQlyZXR1cm47CiAJfQogCi0Jc3dpdGNoIChpOTE1LT52YnQuZHNpLmNvbmZpZy0+ZGxf ZGNzX2JhY2tsaWdodF9wb3J0cykgeworCXN3aXRjaCAoaW5mby0+ZHNpLmNvbmZpZy0+ZGxfZGNz X2JhY2tsaWdodF9wb3J0cykgewogCWNhc2UgRExfRENTX1BPUlRfQToKLQkJaTkxNS0+dmJ0LmRz aS5ibF9wb3J0cyA9IEJJVChQT1JUX0EpOworCQlpbmZvLT5kc2kuYmxfcG9ydHMgPSBCSVQoUE9S VF9BKTsKIAkJYnJlYWs7CiAJY2FzZSBETF9EQ1NfUE9SVF9DOgotCQlpOTE1LT52YnQuZHNpLmJs X3BvcnRzID0gQklUKFBPUlRfQyk7CisJCWluZm8tPmRzaS5ibF9wb3J0cyA9IEJJVChQT1JUX0Mp OwogCQlicmVhazsKIAlkZWZhdWx0OgogCWNhc2UgRExfRENTX1BPUlRfQV9BTkRfQzoKLQkJaTkx NS0+dmJ0LmRzaS5ibF9wb3J0cyA9IEJJVChQT1JUX0EpIHwgQklUKFBPUlRfQyk7CisJCWluZm8t PmRzaS5ibF9wb3J0cyA9IEJJVChQT1JUX0EpIHwgQklUKFBPUlRfQyk7CiAJCWJyZWFrOwogCX0K IAotCWlmICghaTkxNS0+dmJ0LmRzaS5jb25maWctPmNhYmNfc3VwcG9ydGVkKQorCWlmICghaW5m by0+ZHNpLmNvbmZpZy0+Y2FiY19zdXBwb3J0ZWQpCiAJCXJldHVybjsKIAotCXN3aXRjaCAoaTkx NS0+dmJ0LmRzaS5jb25maWctPmRsX2Rjc19jYWJjX3BvcnRzKSB7CisJc3dpdGNoIChpbmZvLT5k c2kuY29uZmlnLT5kbF9kY3NfY2FiY19wb3J0cykgewogCWNhc2UgRExfRENTX1BPUlRfQToKLQkJ aTkxNS0+dmJ0LmRzaS5jYWJjX3BvcnRzID0gQklUKFBPUlRfQSk7CisJCWluZm8tPmRzaS5jYWJj X3BvcnRzID0gQklUKFBPUlRfQSk7CiAJCWJyZWFrOwogCWNhc2UgRExfRENTX1BPUlRfQzoKLQkJ aTkxNS0+dmJ0LmRzaS5jYWJjX3BvcnRzID0gQklUKFBPUlRfQyk7CisJCWluZm8tPmRzaS5jYWJj X3BvcnRzID0gQklUKFBPUlRfQyk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJY2FzZSBETF9EQ1Nf UE9SVF9BX0FORF9DOgotCQlpOTE1LT52YnQuZHNpLmNhYmNfcG9ydHMgPQotCQkJCQlCSVQoUE9S VF9BKSB8IEJJVChQT1JUX0MpOworCQlpbmZvLT5kc2kuY2FiY19wb3J0cyA9IEJJVChQT1JUX0Ep IHwgQklUKFBPUlRfQyk7CiAJCWJyZWFrOwogCX0KIH0KIAogc3RhdGljIHZvaWQKIHBhcnNlX21p cGlfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkgIGNvbnN0IHN0cnVj dCBiZGJfaGVhZGVyICpiZGIpCisJCSAgY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJkYiwKKwkJ ICBzdHJ1Y3QgZGRpX3ZidF9wb3J0X2luZm8gKmluZm8sCisJCSAgaW50IHBhbmVsX2luZGV4KQog ewogCWNvbnN0IHN0cnVjdCBiZGJfbWlwaV9jb25maWcgKnN0YXJ0OwogCWNvbnN0IHN0cnVjdCBt aXBpX2NvbmZpZyAqY29uZmlnOwogCWNvbnN0IHN0cnVjdCBtaXBpX3Bwc19kYXRhICpwcHM7Ci0J aW50IHBhbmVsX3R5cGUgPSBpOTE1LT52YnQucGFuZWxfdHlwZTsKIAllbnVtIHBvcnQgcG9ydDsK IAogCS8qIHBhcnNlIE1JUEkgYmxvY2tzIG9ubHkgaWYgTEZQIHR5cGUgaXMgTUlQSSAqLwpAQCAt MTA3OCwxNCArMTA3OSwxNCBAQCBwYXJzZV9taXBpX2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwKIAkJcmV0dXJuOwogCiAJLyogSW5pdGlhbGl6ZSB0aGlzIHRvIHVuZGVmaW5l ZCBpbmRpY2F0aW5nIG5vIGdlbmVyaWMgTUlQSSBzdXBwb3J0ICovCi0JaTkxNS0+dmJ0LmRzaS5w YW5lbF9pZCA9IE1JUElfRFNJX1VOREVGSU5FRF9QQU5FTF9JRDsKKwlpbmZvLT5kc2kucGFuZWxf aWQgPSBNSVBJX0RTSV9VTkRFRklORURfUEFORUxfSUQ7CiAKIAkvKiBCbG9jayAjNDAgaXMgYWxy ZWFkeSBwYXJzZWQgYW5kIHBhbmVsX2ZpeGVkX21vZGUgaXMKIAkgKiBzdG9yZWQgaW4gaTkxNS0+ bGZwX2x2ZHNfdmJ0X21vZGUKIAkgKiByZXN1c2UgdGhpcyB3aGVuIG5lZWRlZAogCSAqLwogCi0J LyogUGFyc2UgIzUyIGZvciBwYW5lbCBpbmRleCB1c2VkIGZyb20gcGFuZWxfdHlwZSBhbHJlYWR5 CisJLyogUGFyc2UgIzUyIGZvciBwYW5lbCBpbmRleCB1c2VkIGZyb20gcGFuZWxfaW5kZXggYWxy ZWFkeQogCSAqIHBhcnNlZAogCSAqLwogCXN0YXJ0ID0gZmluZF9zZWN0aW9uKGJkYiwgQkRCX01J UElfQ09ORklHKTsKQEAgLTEwOTUsMjcgKzEwOTYsMjcgQEAgcGFyc2VfbWlwaV9jb25maWcoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJfQogCiAJZHJtX2RiZygmaTkxNS0+ZHJtLCAi Rm91bmQgTUlQSSBDb25maWcgYmxvY2ssIHBhbmVsIGluZGV4ID0gJWRcbiIsCi0JCXBhbmVsX3R5 cGUpOworCQlwYW5lbF9pbmRleCk7CiAKIAkvKgogCSAqIGdldCBob2xkIG9mIHRoZSBjb3JyZWN0 IGNvbmZpZ3VyYXRpb24gYmxvY2sgYW5kIHBwcyBkYXRhIGFzIHBlcgotCSAqIHRoZSBwYW5lbF90 eXBlIGFzIGluZGV4CisJICogdGhlIHBhbmVsX2luZGV4IGFzIGluZGV4CiAJICovCi0JY29uZmln ID0gJnN0YXJ0LT5jb25maWdbcGFuZWxfdHlwZV07Ci0JcHBzID0gJnN0YXJ0LT5wcHNbcGFuZWxf dHlwZV07CisJY29uZmlnID0gJnN0YXJ0LT5jb25maWdbcGFuZWxfaW5kZXhdOworCXBwcyA9ICZz dGFydC0+cHBzW3BhbmVsX2luZGV4XTsKIAogCS8qIHN0b3JlIGFzIG9mIG5vdyBmdWxsIGRhdGEu IFRyaW0gd2hlbiB3ZSByZWFsaXNlIGFsbCBpcyBub3QgbmVlZGVkICovCi0JaTkxNS0+dmJ0LmRz aS5jb25maWcgPSBrbWVtZHVwKGNvbmZpZywgc2l6ZW9mKHN0cnVjdCBtaXBpX2NvbmZpZyksIEdG UF9LRVJORUwpOwotCWlmICghaTkxNS0+dmJ0LmRzaS5jb25maWcpCisJaW5mby0+ZHNpLmNvbmZp ZyA9IGttZW1kdXAoY29uZmlnLCBzaXplb2Yoc3RydWN0IG1pcGlfY29uZmlnKSwgR0ZQX0tFUk5F TCk7CisJaWYgKCFpbmZvLT5kc2kuY29uZmlnKQogCQlyZXR1cm47CiAKLQlpOTE1LT52YnQuZHNp LnBwcyA9IGttZW1kdXAocHBzLCBzaXplb2Yoc3RydWN0IG1pcGlfcHBzX2RhdGEpLCBHRlBfS0VS TkVMKTsKLQlpZiAoIWk5MTUtPnZidC5kc2kucHBzKSB7Ci0JCWtmcmVlKGk5MTUtPnZidC5kc2ku Y29uZmlnKTsKKwlpbmZvLT5kc2kucHBzID0ga21lbWR1cChwcHMsIHNpemVvZihzdHJ1Y3QgbWlw aV9wcHNfZGF0YSksIEdGUF9LRVJORUwpOworCWlmICghaW5mby0+ZHNpLnBwcykgeworCQlrZnJl ZShpbmZvLT5kc2kuY29uZmlnKTsKIAkJcmV0dXJuOwogCX0KIAotCXBhcnNlX2RzaV9iYWNrbGln aHRfcG9ydHMoaTkxNSwgYmRiLT52ZXJzaW9uLCBwb3J0KTsKKwlwYXJzZV9kc2lfYmFja2xpZ2h0 X3BvcnRzKGk5MTUsIGJkYi0+dmVyc2lvbiwgcG9ydCwgaW5mbyk7CiAKIAkvKiBGSVhNRSBpcyB0 aGUgOTAgdnMuIDI3MCBjb3JyZWN0PyAqLwogCXN3aXRjaCAoY29uZmlnLT5yb3RhdGlvbikgewpA QCAtMTEyNCwyNSArMTEyNSwyNSBAQCBwYXJzZV9taXBpX2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwKIAkJICogTW9zdCAoYWxsPykgVkJUcyBjbGFpbSAwIGRlZ3JlZXMgZGVz cGl0ZSBoYXZpbmcKIAkJICogYW4gdXBzaWRlIGRvd24gcGFuZWwsIHRodXMgd2UgZG8gbm90IHRy dXN0IHRoaXMuCiAJCSAqLwotCQlpOTE1LT52YnQuZHNpLm9yaWVudGF0aW9uID0KKwkJaW5mby0+ ZHNpLm9yaWVudGF0aW9uID0KIAkJCURSTV9NT0RFX1BBTkVMX09SSUVOVEFUSU9OX1VOS05PV047 CiAJCWJyZWFrOwogCWNhc2UgRU5BQkxFX1JPVEFUSU9OXzkwOgotCQlpOTE1LT52YnQuZHNpLm9y aWVudGF0aW9uID0KKwkJaW5mby0+ZHNpLm9yaWVudGF0aW9uID0KIAkJCURSTV9NT0RFX1BBTkVM X09SSUVOVEFUSU9OX1JJR0hUX1VQOwogCQlicmVhazsKIAljYXNlIEVOQUJMRV9ST1RBVElPTl8x ODA6Ci0JCWk5MTUtPnZidC5kc2kub3JpZW50YXRpb24gPQorCQlpbmZvLT5kc2kub3JpZW50YXRp b24gPQogCQkJRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05fQk9UVE9NX1VQOwogCQlicmVhazsK IAljYXNlIEVOQUJMRV9ST1RBVElPTl8yNzA6Ci0JCWk5MTUtPnZidC5kc2kub3JpZW50YXRpb24g PQorCQlpbmZvLT5kc2kub3JpZW50YXRpb24gPQogCQkJRFJNX01PREVfUEFORUxfT1JJRU5UQVRJ T05fTEVGVF9VUDsKIAkJYnJlYWs7CiAJfQogCiAJLyogV2UgaGF2ZSBtYW5kYXRvcnkgbWlwaSBj b25maWcgYmxvY2tzLiBJbml0aWFsaXplIGFzIGdlbmVyaWMgcGFuZWwgKi8KLQlpOTE1LT52YnQu ZHNpLnBhbmVsX2lkID0gTUlQSV9EU0lfR0VORVJJQ19QQU5FTF9JRDsKKwlpbmZvLT5kc2kucGFu ZWxfaWQgPSBNSVBJX0RTSV9HRU5FUklDX1BBTkVMX0lEOwogfQogCiAvKiBGaW5kIHRoZSBzZXF1 ZW5jZSBibG9jayBhbmQgc2l6ZSBmb3IgdGhlIGdpdmVuIHBhbmVsLiAqLwpAQCAtMTMwNSwxMyAr MTMwNiwxNCBAQCBzdGF0aWMgaW50IGdvdG9fbmV4dF9zZXF1ZW5jZV92Myhjb25zdCB1OCAqZGF0 YSwgaW50IGluZGV4LCBpbnQgdG90YWwpCiAgKiBHZXQgbGVuIG9mIHByZS1maXhlZCBkZWFzc2Vy dCBmcmFnbWVudCBmcm9tIGEgdjEgaW5pdCBPVFAgc2VxdWVuY2UsCiAgKiBza2lwIGFsbCBkZWxh eSArIGdwaW8gb3BlcmFuZHMgYW5kIHN0b3AgYXQgdGhlIGZpcnN0IERTSSBwYWNrZXQgb3AuCiAg Ki8KLXN0YXRpYyBpbnQgZ2V0X2luaXRfb3RwX2RlYXNzZXJ0X2ZyYWdtZW50X2xlbihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyBpbnQgZ2V0X2luaXRfb3RwX2RlYXNzZXJ0 X2ZyYWdtZW50X2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCQkJICAgICAg c3RydWN0IGRkaV92YnRfcG9ydF9pbmZvICppbmZvKQogewotCWNvbnN0IHU4ICpkYXRhID0gaTkx NS0+dmJ0LmRzaS5zZXF1ZW5jZVtNSVBJX1NFUV9JTklUX09UUF07CisJY29uc3QgdTggKmRhdGEg PSBpbmZvLT5kc2kuc2VxdWVuY2VbTUlQSV9TRVFfSU5JVF9PVFBdOwogCWludCBpbmRleCwgbGVu OwogCiAJaWYgKGRybV9XQVJOX09OKCZpOTE1LT5kcm0sCi0JCQkhZGF0YSB8fCBpOTE1LT52YnQu ZHNpLnNlcV92ZXJzaW9uICE9IDEpKQorCQkJIWRhdGEgfHwgaW5mby0+ZHNpLnNlcV92ZXJzaW9u ICE9IDEpKQogCQlyZXR1cm4gMDsKIAogCS8qIGluZGV4ID0gMSB0byBza2lwIHNlcXVlbmNlIGJ5 dGUgKi8KQEAgLTEzMzksNyArMTM0MSw4IEBAIHN0YXRpYyBpbnQgZ2V0X2luaXRfb3RwX2RlYXNz ZXJ0X2ZyYWdtZW50X2xlbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKICAqIHRoZXNl IGRldmljZXMgd2Ugc3BsaXQgdGhlIGluaXQgT1RQIHNlcXVlbmNlIGludG8gYSBkZWFzc2VydCBz ZXF1ZW5jZSBhbmQKICAqIHRoZSBhY3R1YWwgaW5pdCBPVFAgcGFydC4KICAqLwotc3RhdGljIHZv aWQgZml4dXBfbWlwaV9zZXF1ZW5jZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitz dGF0aWMgdm9pZCBmaXh1cF9taXBpX3NlcXVlbmNlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKKwkJCQkgc3RydWN0IGRkaV92YnRfcG9ydF9pbmZvICppbmZvKQogewogCXU4ICppbml0 X290cDsKIAlpbnQgbGVuOwpAQCAtMTM0OSwxOCArMTM1MiwxOCBAQCBzdGF0aWMgdm9pZCBmaXh1 cF9taXBpX3NlcXVlbmNlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJcmV0dXJu OwogCiAJLyogTGltaXQgdGhpcyB0byB2MSB2aWQtbW9kZSBzZXF1ZW5jZXMgKi8KLQlpZiAoaTkx NS0+dmJ0LmRzaS5jb25maWctPmlzX2NtZF9tb2RlIHx8Ci0JICAgIGk5MTUtPnZidC5kc2kuc2Vx X3ZlcnNpb24gIT0gMSkKKwlpZiAoaW5mby0+ZHNpLmNvbmZpZy0+aXNfY21kX21vZGUgfHwKKwkg ICAgaW5mby0+ZHNpLnNlcV92ZXJzaW9uICE9IDEpCiAJCXJldHVybjsKIAogCS8qIE9ubHkgZG8g dGhpcyBpZiB0aGVyZSBhcmUgb3RwIGFuZCBhc3NlcnQgc2VxcyBhbmQgbm8gZGVhc3NlcnQgc2Vx ICovCi0JaWYgKCFpOTE1LT52YnQuZHNpLnNlcXVlbmNlW01JUElfU0VRX0lOSVRfT1RQXSB8fAot CSAgICAhaTkxNS0+dmJ0LmRzaS5zZXF1ZW5jZVtNSVBJX1NFUV9BU1NFUlRfUkVTRVRdIHx8Ci0J ICAgIGk5MTUtPnZidC5kc2kuc2VxdWVuY2VbTUlQSV9TRVFfREVBU1NFUlRfUkVTRVRdKQorCWlm ICghaW5mby0+ZHNpLnNlcXVlbmNlW01JUElfU0VRX0lOSVRfT1RQXSB8fAorCSAgICAhaW5mby0+ ZHNpLnNlcXVlbmNlW01JUElfU0VRX0FTU0VSVF9SRVNFVF0gfHwKKwkgICAgaW5mby0+ZHNpLnNl cXVlbmNlW01JUElfU0VRX0RFQVNTRVJUX1JFU0VUXSkKIAkJcmV0dXJuOwogCiAJLyogVGhlIGRl YXNzZXJ0LXNlcXVlbmNlIGVuZHMgYXQgdGhlIGZpcnN0IERTSSBwYWNrZXQgKi8KLQlsZW4gPSBn ZXRfaW5pdF9vdHBfZGVhc3NlcnRfZnJhZ21lbnRfbGVuKGk5MTUpOworCWxlbiA9IGdldF9pbml0 X290cF9kZWFzc2VydF9mcmFnbWVudF9sZW4oaTkxNSwgaW5mbyk7CiAJaWYgKCFsZW4pCiAJCXJl dHVybjsKIApAQCAtMTM2OCwyNiArMTM3MSwyNyBAQCBzdGF0aWMgdm9pZCBmaXh1cF9taXBpX3Nl cXVlbmNlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkJICAgICJVc2luZyBpbml0 IE9UUCBmcmFnbWVudCB0byBkZWFzc2VydCByZXNldFxuIik7CiAKIAkvKiBDb3B5IHRoZSBmcmFn bWVudCwgdXBkYXRlIHNlcSBieXRlIGFuZCB0ZXJtaW5hdGUgaXQgKi8KLQlpbml0X290cCA9ICh1 OCAqKWk5MTUtPnZidC5kc2kuc2VxdWVuY2VbTUlQSV9TRVFfSU5JVF9PVFBdOwotCWk5MTUtPnZi dC5kc2kuZGVhc3NlcnRfc2VxID0ga21lbWR1cChpbml0X290cCwgbGVuICsgMSwgR0ZQX0tFUk5F TCk7Ci0JaWYgKCFpOTE1LT52YnQuZHNpLmRlYXNzZXJ0X3NlcSkKKwlpbml0X290cCA9ICh1OCAq KWluZm8tPmRzaS5zZXF1ZW5jZVtNSVBJX1NFUV9JTklUX09UUF07CisJaW5mby0+ZHNpLmRlYXNz ZXJ0X3NlcSA9IGttZW1kdXAoaW5pdF9vdHAsIGxlbiArIDEsIEdGUF9LRVJORUwpOworCWlmICgh aW5mby0+ZHNpLmRlYXNzZXJ0X3NlcSkKIAkJcmV0dXJuOwotCWk5MTUtPnZidC5kc2kuZGVhc3Nl cnRfc2VxWzBdID0gTUlQSV9TRVFfREVBU1NFUlRfUkVTRVQ7Ci0JaTkxNS0+dmJ0LmRzaS5kZWFz c2VydF9zZXFbbGVuXSA9IE1JUElfU0VRX0VMRU1fRU5EOworCWluZm8tPmRzaS5kZWFzc2VydF9z ZXFbMF0gPSBNSVBJX1NFUV9ERUFTU0VSVF9SRVNFVDsKKwlpbmZvLT5kc2kuZGVhc3NlcnRfc2Vx W2xlbl0gPSBNSVBJX1NFUV9FTEVNX0VORDsKIAkvKiBVc2UgdGhlIGNvcHkgZm9yIGRlYXNzZXJ0 ICovCi0JaTkxNS0+dmJ0LmRzaS5zZXF1ZW5jZVtNSVBJX1NFUV9ERUFTU0VSVF9SRVNFVF0gPQot CQlpOTE1LT52YnQuZHNpLmRlYXNzZXJ0X3NlcTsKKwlpbmZvLT5kc2kuc2VxdWVuY2VbTUlQSV9T RVFfREVBU1NFUlRfUkVTRVRdID0KKwkJaW5mby0+ZHNpLmRlYXNzZXJ0X3NlcTsKIAkvKiBSZXBs YWNlIHRoZSBsYXN0IGJ5dGUgb2YgdGhlIGZyYWdtZW50IHdpdGggaW5pdCBPVFAgc2VxIGJ5dGUg Ki8KIAlpbml0X290cFtsZW4gLSAxXSA9IE1JUElfU0VRX0lOSVRfT1RQOwogCS8qIEFuZCBtYWtl IE1JUElfTUlQSV9TRVFfSU5JVF9PVFAgcG9pbnQgdG8gaXQgKi8KLQlpOTE1LT52YnQuZHNpLnNl cXVlbmNlW01JUElfU0VRX0lOSVRfT1RQXSA9IGluaXRfb3RwICsgbGVuIC0gMTsKKwlpbmZvLT5k c2kuc2VxdWVuY2VbTUlQSV9TRVFfSU5JVF9PVFBdID0gaW5pdF9vdHAgKyBsZW4gLSAxOwogfQog CiBzdGF0aWMgdm9pZAogcGFyc2VfbWlwaV9zZXF1ZW5jZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSwKLQkJICAgIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCisJCSAgICBjb25z dCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiLAorCQkgICAgc3RydWN0IGRkaV92YnRfcG9ydF9pbmZv ICppbmZvLAorCQkgICAgaW50IHBhbmVsX2luZGV4KQogewotCWludCBwYW5lbF90eXBlID0gaTkx NS0+dmJ0LnBhbmVsX3R5cGU7CiAJY29uc3Qgc3RydWN0IGJkYl9taXBpX3NlcXVlbmNlICpzZXF1 ZW5jZTsKIAljb25zdCB1OCAqc2VxX2RhdGE7CiAJdTMyIHNlcV9zaXplOwpAQCAtMTM5NSw3ICsx Mzk5LDcgQEAgcGFyc2VfbWlwaV9zZXF1ZW5jZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwKIAlpbnQgaW5kZXggPSAwOwogCiAJLyogT25seSBvdXIgZ2VuZXJpYyBwYW5lbCBkcml2ZXIg dXNlcyB0aGUgc2VxdWVuY2UgYmxvY2suICovCi0JaWYgKGk5MTUtPnZidC5kc2kucGFuZWxfaWQg IT0gTUlQSV9EU0lfR0VORVJJQ19QQU5FTF9JRCkKKwlpZiAoaW5mby0+ZHNpLnBhbmVsX2lkICE9 IE1JUElfRFNJX0dFTkVSSUNfUEFORUxfSUQpCiAJCXJldHVybjsKIAogCXNlcXVlbmNlID0gZmlu ZF9zZWN0aW9uKGJkYiwgQkRCX01JUElfU0VRVUVOQ0UpOwpAQCAtMTQxNiw3ICsxNDIwLDcgQEAg cGFyc2VfbWlwaV9zZXF1ZW5jZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlkcm1f ZGJnKCZpOTE1LT5kcm0sICJGb3VuZCBNSVBJIHNlcXVlbmNlIGJsb2NrIHYldVxuIiwKIAkJc2Vx dWVuY2UtPnZlcnNpb24pOwogCi0Jc2VxX2RhdGEgPSBmaW5kX3BhbmVsX3NlcXVlbmNlX2Jsb2Nr KHNlcXVlbmNlLCBwYW5lbF90eXBlLCAmc2VxX3NpemUpOworCXNlcV9kYXRhID0gZmluZF9wYW5l bF9zZXF1ZW5jZV9ibG9jayhzZXF1ZW5jZSwgcGFuZWxfaW5kZXgsICZzZXFfc2l6ZSk7CiAJaWYg KCFzZXFfZGF0YSkKIAkJcmV0dXJuOwogCkBAIC0xNDQxLDcgKzE0NDUsNyBAQCBwYXJzZV9taXBp X3NlcXVlbmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJZHJtX2RiZ19rbXMo Jmk5MTUtPmRybSwKIAkJCQkgICAgIlVuc3VwcG9ydGVkIHNlcXVlbmNlICV1XG4iLCBzZXFfaWQp OwogCi0JCWk5MTUtPnZidC5kc2kuc2VxdWVuY2Vbc2VxX2lkXSA9IGRhdGEgKyBpbmRleDsKKwkJ aW5mby0+ZHNpLnNlcXVlbmNlW3NlcV9pZF0gPSBkYXRhICsgaW5kZXg7CiAKIAkJaWYgKHNlcXVl bmNlLT52ZXJzaW9uID49IDMpCiAJCQlpbmRleCA9IGdvdG9fbmV4dF9zZXF1ZW5jZV92MyhkYXRh LCBpbmRleCwgc2VxX3NpemUpOwpAQCAtMTQ1NCwxOCArMTQ1OCwxOCBAQCBwYXJzZV9taXBpX3Nl cXVlbmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQl9CiAJfQogCi0JaTkxNS0+ dmJ0LmRzaS5kYXRhID0gZGF0YTsKLQlpOTE1LT52YnQuZHNpLnNpemUgPSBzZXFfc2l6ZTsKLQlp OTE1LT52YnQuZHNpLnNlcV92ZXJzaW9uID0gc2VxdWVuY2UtPnZlcnNpb247CisJaW5mby0+ZHNp LmRhdGEgPSBkYXRhOworCWluZm8tPmRzaS5zaXplID0gc2VxX3NpemU7CisJaW5mby0+ZHNpLnNl cV92ZXJzaW9uID0gc2VxdWVuY2UtPnZlcnNpb247CiAKLQlmaXh1cF9taXBpX3NlcXVlbmNlcyhp OTE1KTsKKwlmaXh1cF9taXBpX3NlcXVlbmNlcyhpOTE1LCBpbmZvKTsKIAogCWRybV9kYmcoJmk5 MTUtPmRybSwgIk1JUEkgcmVsYXRlZCBWQlQgcGFyc2luZyBjb21wbGV0ZVxuIik7CiAJcmV0dXJu OwogCiBlcnI6CiAJa2ZyZWUoZGF0YSk7Ci0JbWVtc2V0KGk5MTUtPnZidC5kc2kuc2VxdWVuY2Us IDAsIHNpemVvZihpOTE1LT52YnQuZHNpLnNlcXVlbmNlKSk7CisJbWVtc2V0KGluZm8tPmRzaS5z ZXF1ZW5jZSwgMCwgc2l6ZW9mKGluZm8tPmRzaS5zZXF1ZW5jZSkpOwogfQogCiBzdGF0aWMgdm9p ZApAQCAtMTk5MCw2ICsxOTk0LDggQEAgc3RhdGljIHZvaWQgcGFyc2VfaW50ZWdyYXRlZF9wYW5l bChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlwYXJzZV9sZnBfYmFja2xpZ2h0KGk5 MTUsIGJkYiwgaW5mbywgcGFuZWxfaW5kZXgpOwogCXBhcnNlX2VkcChpOTE1LCBiZGIsIGluZm8s IHBhbmVsX2luZGV4KTsKIAlwYXJzZV9wc3IoaTkxNSwgYmRiLCBpbmZvLCBwYW5lbF9pbmRleCk7 CisJcGFyc2VfbWlwaV9jb25maWcoaTkxNSwgYmRiLCBpbmZvLCBwYW5lbF9pbmRleCk7CisJcGFy c2VfbWlwaV9zZXF1ZW5jZShpOTE1LCBiZGIsIGluZm8sIHBhbmVsX2luZGV4KTsKIH0KIAogc3Rh dGljIHZvaWQgcGFyc2VfZGRpX3BvcnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCkBA IC0yNDg3LDggKzI0OTMsNiBAQCB2b2lkIGludGVsX2Jpb3NfaW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSkKIAlwYXJzZV9wYW5lbF90eXBlKGk5MTUsIGJkYik7CiAJcGFyc2Vfc2R2 b19wYW5lbF9kYXRhKGk5MTUsIGJkYik7CiAJcGFyc2VfZHJpdmVyX2ZlYXR1cmVzKGk5MTUsIGJk Yik7Ci0JcGFyc2VfbWlwaV9jb25maWcoaTkxNSwgYmRiKTsKLQlwYXJzZV9taXBpX3NlcXVlbmNl KGk5MTUsIGJkYik7CiAKIAkvKiBEZXBlbmRzIG9uIGNoaWxkIGRldmljZSBsaXN0ICovCiAJcGFy c2VfY29tcHJlc3Npb25fcGFyYW1ldGVycyhpOTE1LCBiZGIpOwpAQCAtMjUyMywyMCArMjUyNywy MyBAQCB2b2lkIGludGVsX2Jpb3NfZHJpdmVyX3JlbW92ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgSTkxNV9NQVhfUE9SVFM7IGkrKykgewot CQlrZnJlZShpOTE1LT52YnQuZGRpX3BvcnRfaW5mb1tpXS5sZnBfbHZkc192YnRfbW9kZSk7Ci0J CWk5MTUtPnZidC5kZGlfcG9ydF9pbmZvW2ldLmxmcF9sdmRzX3ZidF9tb2RlID0gTlVMTDsKKwkJ c3RydWN0IGRkaV92YnRfcG9ydF9pbmZvICppbmZvID0gJmk5MTUtPnZidC5kZGlfcG9ydF9pbmZv W2ldOworCisJCWtmcmVlKGluZm8tPmxmcF9sdmRzX3ZidF9tb2RlKTsKKwkJaW5mby0+bGZwX2x2 ZHNfdmJ0X21vZGUgPSBOVUxMOworCisJCWtmcmVlKGluZm8tPmRzaS5kYXRhKTsKKwkJaW5mby0+ ZHNpLmRhdGEgPSBOVUxMOworCQlrZnJlZShpbmZvLT5kc2kucHBzKTsKKwkJaW5mby0+ZHNpLnBw cyA9IE5VTEw7CisJCWtmcmVlKGluZm8tPmRzaS5jb25maWcpOworCQlpbmZvLT5kc2kuY29uZmln ID0gTlVMTDsKKwkJa2ZyZWUoaW5mby0+ZHNpLmRlYXNzZXJ0X3NlcSk7CisJCWluZm8tPmRzaS5k ZWFzc2VydF9zZXEgPSBOVUxMOwogCX0KIAogCWtmcmVlKGk5MTUtPnZidC5zZHZvX2x2ZHNfdmJ0 X21vZGUpOwogCWk5MTUtPnZidC5zZHZvX2x2ZHNfdmJ0X21vZGUgPSBOVUxMOwotCWtmcmVlKGk5 MTUtPnZidC5kc2kuZGF0YSk7Ci0JaTkxNS0+dmJ0LmRzaS5kYXRhID0gTlVMTDsKLQlrZnJlZShp OTE1LT52YnQuZHNpLnBwcyk7Ci0JaTkxNS0+dmJ0LmRzaS5wcHMgPSBOVUxMOwotCWtmcmVlKGk5 MTUtPnZidC5kc2kuY29uZmlnKTsKLQlpOTE1LT52YnQuZHNpLmNvbmZpZyA9IE5VTEw7Ci0Ja2Zy ZWUoaTkxNS0+dmJ0LmRzaS5kZWFzc2VydF9zZXEpOwotCWk5MTUtPnZidC5kc2kuZGVhc3NlcnRf c2VxID0gTlVMTDsKIH0KIAogLyoqCkBAIC0zMTUwLDMgKzMxNTcsMTEgQEAgaW50ZWxfYmlvc19w c3JfaW5mbyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCiAJcmV0dXJuICZpOTE1LT52YnQu ZGRpX3BvcnRfaW5mb1tlbmNvZGVyLT5wb3J0XS5wc3I7CiB9CisKK2NvbnN0IHN0cnVjdCB2YnRf ZHNpX2luZm8gKgoraW50ZWxfYmlvc19kc2lfaW5mbyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOworCisJcmV0dXJuICZpOTE1LT52YnQuZGRpX3BvcnRfaW5mb1tlbmNvZGVy LT5wb3J0XS5kc2k7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Jpb3MuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5o CmluZGV4IGM3MDE4NzFkOWE3NGQuLjZlOTUzYTg5Yzg0Y2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5oCkBAIC0yNzIsNSArMjcyLDYgQEAgY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmludGVsX2Jpb3NfbGZwX2x2ZHNfaW5mbyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW4KIGNvbnN0IHN0cnVjdCB2YnRfYmFja2xpZ2h0X2luZm8gKmludGVsX2Jpb3Nf YmFja2xpZ2h0X2luZm8oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwogc3RydWN0IHZi dF9lZHBfaW5mbyAqaW50ZWxfYmlvc19lZHBfaW5mbyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2Rlcik7CiBjb25zdCBzdHJ1Y3QgdmJ0X3Bzcl9pbmZvICppbnRlbF9iaW9zX3Bzcl9pbmZvKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOworY29uc3Qgc3RydWN0IHZidF9kc2lfaW5mbyAqaW50 ZWxfYmlvc19kc2lfaW5mbyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7CiAKICNlbmRp ZiAvKiBfSU5URUxfQklPU19IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZHNpLmMKaW5kZXggZjQ1M2NlYjhkMTQ5NC4uMmNkODE5YTdmOWRkNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kc2kuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RzaS5jCkBAIC0xMTUsMTQgKzExNSwxMCBAQCBzdHJ1Y3Qg aW50ZWxfZHNpX2hvc3QgKmludGVsX2RzaV9ob3N0X2luaXQoc3RydWN0IGludGVsX2RzaSAqaW50 ZWxfZHNpLAogZW51bSBkcm1fcGFuZWxfb3JpZW50YXRpb24KIGludGVsX2RzaV9nZXRfcGFuZWxf b3JpZW50YXRpb24oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRl dik7CisJY29uc3Qgc3RydWN0IHZidF9kc2lfaW5mbyAqdmJ0X2RzaV9pbmZvID0gaW50ZWxfYmlv c19kc2lfaW5mbyhjb25uZWN0b3ItPmVuY29kZXIpOwogCWVudW0gZHJtX3BhbmVsX29yaWVudGF0 aW9uIG9yaWVudGF0aW9uOwogCi0Jb3JpZW50YXRpb24gPSBkZXZfcHJpdi0+dmJ0LmRzaS5vcmll bnRhdGlvbjsKLQlpZiAob3JpZW50YXRpb24gIT0gRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05f VU5LTk9XTikKLQkJcmV0dXJuIG9yaWVudGF0aW9uOwotCi0Jb3JpZW50YXRpb24gPSBkZXZfcHJp di0+dmJ0Lm9yaWVudGF0aW9uOworCW9yaWVudGF0aW9uID0gdmJ0X2RzaV9pbmZvLT5vcmllbnRh dGlvbjsKIAlpZiAob3JpZW50YXRpb24gIT0gRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05fVU5L Tk9XTikKIAkJcmV0dXJuIG9yaWVudGF0aW9uOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RzaV92YnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHNpX3ZidC5jCmluZGV4IDIyMThkZTA3NzNiZjAuLjI0ZGU3NzVlZTdiMzAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpX3ZidC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpX3ZidC5jCkBAIC0y MjUsOSArMjI1LDExIEBAIHN0YXRpYyBjb25zdCB1OCAqbWlwaV9leGVjX2RlbGF5KHN0cnVjdCBp bnRlbF9kc2kgKmludGVsX2RzaSwgY29uc3QgdTggKmRhdGEpCiAJcmV0dXJuIGRhdGE7CiB9CiAK LXN0YXRpYyB2b2lkIHZsdl9leGVjX2dwaW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAorc3RhdGljIHZvaWQgdmx2X2V4ZWNfZ3BpbyhzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2ksCiAJCQkgIHU4IGdwaW9fc291cmNlLCB1OCBncGlvX2luZGV4LCBib29sIHZhbHVlKQogewor CWNvbnN0IHN0cnVjdCB2YnRfZHNpX2luZm8gKnZidF9kc2lfaW5mbyA9IGludGVsX2Jpb3NfZHNp X2luZm8oJmludGVsX2RzaS0+YmFzZSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShpbnRlbF9kc2ktPmJhc2UuYmFzZS5kZXYpOwogCXN0cnVjdCBncGlvX21h cCAqbWFwOwogCXUxNiBwY29uZjAsIHBhZHZhbDsKIAl1MzIgdG1wOwpAQCAtMjQxLDcgKzI0Myw3 IEBAIHN0YXRpYyB2b2lkIHZsdl9leGVjX2dwaW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCiAJbWFwID0gJnZsdl9ncGlvX3RhYmxlW2dwaW9faW5kZXhdOwogCi0JaWYgKGRl dl9wcml2LT52YnQuZHNpLnNlcV92ZXJzaW9uID49IDMpIHsKKwlpZiAodmJ0X2RzaV9pbmZvLT5z ZXFfdmVyc2lvbiA+PSAzKSB7CiAJCS8qIFhYWDogdGhpcyBhc3N1bWVzIHZsdl9ncGlvX3RhYmxl IG9ubHkgaGFzIE5DIEdQSU9zLiAqLwogCQlwb3J0ID0gSU9TRl9QT1JUX0dQSU9fTkM7CiAJfSBl bHNlIHsKQEAgLTI3MiwxNCArMjc0LDE2IEBAIHN0YXRpYyB2b2lkIHZsdl9leGVjX2dwaW8oc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXZsdl9pb3NmX3NiX3B1dChkZXZfcHJp diwgQklUKFZMVl9JT1NGX1NCX0dQSU8pKTsKIH0KIAotc3RhdGljIHZvaWQgY2h2X2V4ZWNfZ3Bp byhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCitzdGF0aWMgdm9pZCBjaHZfZXhl Y19ncGlvKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwKIAkJCSAgdTggZ3Bpb19zb3VyY2Us IHU4IGdwaW9faW5kZXgsIGJvb2wgdmFsdWUpCiB7CisJY29uc3Qgc3RydWN0IHZidF9kc2lfaW5m byAqdmJ0X2RzaV9pbmZvID0gaW50ZWxfYmlvc19kc2lfaW5mbygmaW50ZWxfZHNpLT5iYXNlKTsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RzaS0+ YmFzZS5iYXNlLmRldik7CiAJdTE2IGNmZzAsIGNmZzE7CiAJdTE2IGZhbWlseV9udW07CiAJdTgg cG9ydDsKIAotCWlmIChkZXZfcHJpdi0+dmJ0LmRzaS5zZXFfdmVyc2lvbiA+PSAzKSB7CisJaWYg KHZidF9kc2lfaW5mby0+c2VxX3ZlcnNpb24gPj0gMykgewogCQlpZiAoZ3Bpb19pbmRleCA+PSBD SFZfR1BJT19JRFhfU1RBUlRfU0UpIHsKIAkJCS8qIFhYWDogaXQncyB1bmNsZWFyIHdoZXRoZXIg MjU1LT41NyBpcyBwYXJ0IG9mIFNFLiAqLwogCQkJZ3Bpb19pbmRleCAtPSBDSFZfR1BJT19JRFhf U1RBUlRfU0U7CkBAIC0zMjUsOSArMzI5LDEwIEBAIHN0YXRpYyB2b2lkIGNodl9leGVjX2dwaW8o c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXZsdl9pb3NmX3NiX3B1dChkZXZf cHJpdiwgQklUKFZMVl9JT1NGX1NCX0dQSU8pKTsKIH0KIAotc3RhdGljIHZvaWQgYnh0X2V4ZWNf Z3BpbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCitzdGF0aWMgdm9pZCBieHRf ZXhlY19ncGlvKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSwKIAkJCSAgdTggZ3Bpb19zb3Vy Y2UsIHU4IGdwaW9faW5kZXgsIGJvb2wgdmFsdWUpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kc2ktPmJhc2UuYmFzZS5kZXYpOwogCS8qIFhY WDogdGhpcyB0YWJsZSBpcyBhIHF1aWNrIHVnbHkgaGFjay4gKi8KIAlzdGF0aWMgc3RydWN0IGdw aW9fZGVzYyAqYnh0X2dwaW9fdGFibGVbVThfTUFYICsgMV07CiAJc3RydWN0IGdwaW9fZGVzYyAq Z3Bpb19kZXNjID0gYnh0X2dwaW9fdGFibGVbZ3Bpb19pbmRleF07CkBAIC0zNTEsMTQgKzM1Niwx NyBAQCBzdGF0aWMgdm9pZCBieHRfZXhlY19ncGlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAlncGlvZF9zZXRfdmFsdWUoZ3Bpb19kZXNjLCB2YWx1ZSk7CiB9CiAKLXN0YXRp YyB2b2lkIGljbF9leGVjX2dwaW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAor c3RhdGljIHZvaWQgaWNsX2V4ZWNfZ3BpbyhzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksCiAJ CQkgIHU4IGdwaW9fc291cmNlLCB1OCBncGlvX2luZGV4LCBib29sIHZhbHVlKQogewotCWRybV9k Ymdfa21zKCZkZXZfcHJpdi0+ZHJtLCAiU2tpcHBpbmcgSUNMIEdQSU8gZWxlbWVudCBleGVjdXRp b25cbiIpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBpbnRlbF9kc2ktPmJhc2UuYmFzZS5k ZXY7CisKKwlkcm1fZGJnX2ttcyhkcm0sICJTa2lwcGluZyBJQ0wgR1BJTyBlbGVtZW50IGV4ZWN1 dGlvblxuIik7CiB9CiAKIHN0YXRpYyBjb25zdCB1OCAqbWlwaV9leGVjX2dwaW8oc3RydWN0IGlu dGVsX2RzaSAqaW50ZWxfZHNpLCBjb25zdCB1OCAqZGF0YSkKIHsKKwljb25zdCBzdHJ1Y3QgdmJ0 X2RzaV9pbmZvICp2YnRfZHNpX2luZm8gPSBpbnRlbF9iaW9zX2RzaV9pbmZvKCZpbnRlbF9kc2kt PmJhc2UpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2ktPmJhc2UuYmFzZS5k ZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwog CXU4IGdwaW9fc291cmNlLCBncGlvX2luZGV4ID0gMCwgZ3Bpb19udW1iZXI7CkBAIC0zNjYsMTMg KzM3NCwxMyBAQCBzdGF0aWMgY29uc3QgdTggKm1pcGlfZXhlY19ncGlvKHN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSwgY29uc3QgdTggKmRhdGEpCiAKIAlkcm1fZGJnX2ttcygmZGV2X3ByaXYt PmRybSwgIlxuIik7CiAKLQlpZiAoZGV2X3ByaXYtPnZidC5kc2kuc2VxX3ZlcnNpb24gPj0gMykK KwlpZiAodmJ0X2RzaV9pbmZvLT5zZXFfdmVyc2lvbiA+PSAzKQogCQlncGlvX2luZGV4ID0gKmRh dGErKzsKIAogCWdwaW9fbnVtYmVyID0gKmRhdGErKzsKIAogCS8qIGdwaW8gc291cmNlIGluIHNl cXVlbmNlIHYyIG9ubHkgKi8KLQlpZiAoZGV2X3ByaXYtPnZidC5kc2kuc2VxX3ZlcnNpb24gPT0g MikKKwlpZiAodmJ0X2RzaV9pbmZvLT5zZXFfdmVyc2lvbiA9PSAyKQogCQlncGlvX3NvdXJjZSA9 ICgqZGF0YSA+PiAxKSAmIDM7CiAJZWxzZQogCQlncGlvX3NvdXJjZSA9IDA7CkBAIC0zODEsMTMg KzM4OSwxMyBAQCBzdGF0aWMgY29uc3QgdTggKm1pcGlfZXhlY19ncGlvKHN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSwgY29uc3QgdTggKmRhdGEpCiAJdmFsdWUgPSAqZGF0YSsrICYgMTsKIAog CWlmIChESVNQTEFZX1ZFUihkZXZfcHJpdikgPj0gMTEpCi0JCWljbF9leGVjX2dwaW8oZGV2X3By aXYsIGdwaW9fc291cmNlLCBncGlvX2luZGV4LCB2YWx1ZSk7CisJCWljbF9leGVjX2dwaW8oaW50 ZWxfZHNpLCBncGlvX3NvdXJjZSwgZ3Bpb19pbmRleCwgdmFsdWUpOwogCWVsc2UgaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpKQotCQl2bHZfZXhlY19ncGlvKGRldl9wcml2LCBncGlvX3NvdXJj ZSwgZ3Bpb19udW1iZXIsIHZhbHVlKTsKKwkJdmx2X2V4ZWNfZ3BpbyhpbnRlbF9kc2ksIGdwaW9f c291cmNlLCBncGlvX251bWJlciwgdmFsdWUpOwogCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKQotCQljaHZfZXhlY19ncGlvKGRldl9wcml2LCBncGlvX3NvdXJjZSwgZ3Bpb19udW1i ZXIsIHZhbHVlKTsKKwkJY2h2X2V4ZWNfZ3BpbyhpbnRlbF9kc2ksIGdwaW9fc291cmNlLCBncGlv X251bWJlciwgdmFsdWUpOwogCWVsc2UKLQkJYnh0X2V4ZWNfZ3BpbyhkZXZfcHJpdiwgZ3Bpb19z b3VyY2UsIGdwaW9faW5kZXgsIHZhbHVlKTsKKwkJYnh0X2V4ZWNfZ3BpbyhpbnRlbF9kc2ksIGdw aW9fc291cmNlLCBncGlvX2luZGV4LCB2YWx1ZSk7CiAKIAlyZXR1cm4gZGF0YTsKIH0KQEAgLTU3 NywxNSArNTg1LDE2IEBAIHN0YXRpYyBjb25zdCBjaGFyICpzZXF1ZW5jZV9uYW1lKGVudW0gbWlw aV9zZXEgc2VxX2lkKQogc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ZidF9leGVjKHN0cnVjdCBpbnRl bF9kc2kgKmludGVsX2RzaSwKIAkJCSAgICAgICBlbnVtIG1pcGlfc2VxIHNlcV9pZCkKIHsKKwlj b25zdCBzdHJ1Y3QgdmJ0X2RzaV9pbmZvICp2YnRfZHNpX2luZm8gPSBpbnRlbF9iaW9zX2RzaV9p bmZvKCZpbnRlbF9kc2ktPmJhc2UpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoaW50ZWxfZHNpLT5iYXNlLmJhc2UuZGV2KTsKIAljb25zdCB1OCAqZGF0YTsK IAlmbl9taXBpX2VsZW1fZXhlYyBtaXBpX2VsZW1fZXhlYzsKIAogCWlmIChkcm1fV0FSTl9PTigm ZGV2X3ByaXYtPmRybSwKLQkJCXNlcV9pZCA+PSBBUlJBWV9TSVpFKGRldl9wcml2LT52YnQuZHNp LnNlcXVlbmNlKSkpCisJCQlzZXFfaWQgPj0gQVJSQVlfU0laRSh2YnRfZHNpX2luZm8tPnNlcXVl bmNlKSkpCiAJCXJldHVybjsKIAotCWRhdGEgPSBkZXZfcHJpdi0+dmJ0LmRzaS5zZXF1ZW5jZVtz ZXFfaWRdOworCWRhdGEgPSB2YnRfZHNpX2luZm8tPnNlcXVlbmNlW3NlcV9pZF07CiAJaWYgKCFk YXRhKQogCQlyZXR1cm47CiAKQEAgLTU5OCw3ICs2MDcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9k c2lfdmJ0X2V4ZWMoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLAogCWRhdGErKzsKIAogCS8q IFNraXAgU2l6ZSBvZiBTZXF1ZW5jZS4gKi8KLQlpZiAoZGV2X3ByaXYtPnZidC5kc2kuc2VxX3Zl cnNpb24gPj0gMykKKwlpZiAodmJ0X2RzaV9pbmZvLT5zZXFfdmVyc2lvbiA+PSAzKQogCQlkYXRh ICs9IDQ7CiAKIAl3aGlsZSAoMSkgewpAQCAtNjE0LDcgKzYyMyw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2RzaV92YnRfZXhlYyhzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2ksCiAJCQltaXBpX2Vs ZW1fZXhlYyA9IE5VTEw7CiAKIAkJLyogU2l6ZSBvZiBPcGVyYXRpb24uICovCi0JCWlmIChkZXZf cHJpdi0+dmJ0LmRzaS5zZXFfdmVyc2lvbiA+PSAzKQorCQlpZiAodmJ0X2RzaV9pbmZvLT5zZXFf dmVyc2lvbiA+PSAzKQogCQkJb3BlcmF0aW9uX3NpemUgPSAqZGF0YSsrOwogCiAJCWlmIChtaXBp X2VsZW1fZXhlYykgewpAQCAtNjYyLDEwICs2NzEsMTAgQEAgdm9pZCBpbnRlbF9kc2lfdmJ0X2V4 ZWNfc2VxdWVuY2Uoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLAogCiB2b2lkIGludGVsX2Rz aV9tc2xlZXAoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLCBpbnQgbXNlYykKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RzaS0+YmFzZS5i YXNlLmRldik7CisJY29uc3Qgc3RydWN0IHZidF9kc2lfaW5mbyAqdmJ0X2RzaV9pbmZvID0gaW50 ZWxfYmlvc19kc2lfaW5mbygmaW50ZWxfZHNpLT5iYXNlKTsKIAogCS8qIEZvciB2MyBWQlRzIGlu IHZpZC1tb2RlIHRoZSBkZWxheXMgYXJlIHBhcnQgb2YgdGhlIFZCVCBzZXF1ZW5jZXMgKi8KLQlp ZiAoaXNfdmlkX21vZGUoaW50ZWxfZHNpKSAmJiBkZXZfcHJpdi0+dmJ0LmRzaS5zZXFfdmVyc2lv biA+PSAzKQorCWlmIChpc192aWRfbW9kZShpbnRlbF9kc2kpICYmIHZidF9kc2lfaW5mby0+c2Vx X3ZlcnNpb24gPj0gMykKIAkJcmV0dXJuOwogCiAJbXNsZWVwKG1zZWMpOwpAQCAtNzI3LDggKzcz Niw5IEBAIGJvb2wgaW50ZWxfZHNpX3ZidF9pbml0KHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2Rz aSwgdTE2IHBhbmVsX2lkKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kc2kt PmJhc2UuYmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShkZXYpOwotCXN0cnVjdCBtaXBpX2NvbmZpZyAqbWlwaV9jb25maWcgPSBkZXZfcHJpdi0+ dmJ0LmRzaS5jb25maWc7Ci0Jc3RydWN0IG1pcGlfcHBzX2RhdGEgKnBwcyA9IGRldl9wcml2LT52 YnQuZHNpLnBwczsKKwljb25zdCBzdHJ1Y3QgdmJ0X2RzaV9pbmZvICp2YnRfZHNpX2luZm8gPSBp bnRlbF9iaW9zX2RzaV9pbmZvKCZpbnRlbF9kc2ktPmJhc2UpOworCXN0cnVjdCBtaXBpX2NvbmZp ZyAqbWlwaV9jb25maWcgPSB2YnRfZHNpX2luZm8tPmNvbmZpZzsKKwlzdHJ1Y3QgbWlwaV9wcHNf ZGF0YSAqcHBzID0gdmJ0X2RzaV9pbmZvLT5wcHM7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGUgPSBpbnRlbF9iaW9zX2xmcF9sdmRzX2luZm8oJmludGVsX2RzaS0+YmFzZSk7 CiAJdTE2IGJ1cnN0X21vZGVfcmF0aW87CiAJZW51bSBwb3J0IHBvcnQ7CkBAIC04NzAsNyArODgw LDggQEAgdm9pZCBpbnRlbF9kc2lfdmJ0X2dwaW9faW5pdChzdHJ1Y3QgaW50ZWxfZHNpICppbnRl bF9kc2ksIGJvb2wgcGFuZWxfaXNfb24pCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGlu dGVsX2RzaS0+YmFzZS5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IG1pcGlfY29uZmlnICptaXBpX2NvbmZpZyA9IGRl dl9wcml2LT52YnQuZHNpLmNvbmZpZzsKKwljb25zdCBzdHJ1Y3QgdmJ0X2RzaV9pbmZvICp2YnRf ZHNpX2luZm8gPSBpbnRlbF9iaW9zX2RzaV9pbmZvKCZpbnRlbF9kc2ktPmJhc2UpOworCXN0cnVj dCBtaXBpX2NvbmZpZyAqbWlwaV9jb25maWcgPSB2YnRfZHNpX2luZm8tPmNvbmZpZzsKIAllbnVt IGdwaW9kX2ZsYWdzIGZsYWdzID0gcGFuZWxfaXNfb24gPyBHUElPRF9PVVRfSElHSCA6IEdQSU9E X09VVF9MT1c7CiAJYm9vbCB3YW50X2JhY2tsaWdodF9ncGlvID0gZmFsc2U7CiAJYm9vbCB3YW50 X3BhbmVsX2dwaW8gPSBmYWxzZTsKQEAgLTkyNSw3ICs5MzYsOCBAQCB2b2lkIGludGVsX2RzaV92 YnRfZ3Bpb19jbGVhbnVwKHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSkKIHsKIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHNpLT5iYXNlLmJhc2UuZGV2OwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgbWlwaV9jb25m aWcgKm1pcGlfY29uZmlnID0gZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnOworCWNvbnN0IHN0cnVj dCB2YnRfZHNpX2luZm8gKnZidF9kc2lfaW5mbyA9IGludGVsX2Jpb3NfZHNpX2luZm8oJmludGVs X2RzaS0+YmFzZSk7CisJc3RydWN0IG1pcGlfY29uZmlnICptaXBpX2NvbmZpZyA9IHZidF9kc2lf aW5mby0+Y29uZmlnOwogCiAJaWYgKGludGVsX2RzaS0+Z3Bpb19wYW5lbCkgewogCQlncGlvZF9w dXQoaW50ZWxfZHNpLT5ncGlvX3BhbmVsKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfcGFuZWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfcGFuZWwuYwppbmRleCA5Yzg5MjQ3NmQ4NjIxLi45MmQ5M2RkZjI4MTQwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wYW5lbC5jCkBAIC0xOTI0LDYgKzE5MjQs NyBAQCBjbnBfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciwgZW51bSBwaXBlIHVudXNlZCkKIHN0YXRpYyBpbnQgZXh0X3B3bV9zZXR1cF9iYWNrbGlnaHQo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJCSAgIGVudW0gcGlwZSBwaXBl KQogeworCWNvbnN0IHN0cnVjdCB2YnRfZHNpX2luZm8gKnZidF9kc2lfaW5mbyA9IGludGVsX2Jp b3NfZHNpX2luZm8oY29ubmVjdG9yLT5lbmNvZGVyKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0 b3ItPnBhbmVsOwpAQCAtMTkzMSw3ICsxOTMyLDcgQEAgc3RhdGljIGludCBleHRfcHdtX3NldHVw X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCiAJdTMyIGxldmVs OwogCiAJLyogR2V0IHRoZSByaWdodCBQV00gY2hpcCBmb3IgRFNJIGJhY2tsaWdodCBhY2NvcmRp bmcgdG8gVkJUICovCi0JaWYgKGRldl9wcml2LT52YnQuZHNpLmNvbmZpZy0+cHdtX2JsYyA9PSBQ UFNfQkxDX1BNSUMpIHsKKwlpZiAodmJ0X2RzaV9pbmZvLT5jb25maWctPnB3bV9ibGMgPT0gUFBT X0JMQ19QTUlDKSB7CiAJCXBhbmVsLT5iYWNrbGlnaHQucHdtID0gcHdtX2dldChkZXYtPmRldiwg InB3bV9wbWljX2JhY2tsaWdodCIpOwogCQlkZXNjID0gIlBNSUMiOwogCX0gZWxzZSB7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L3Zsdl9kc2kuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jCmluZGV4IDBlZTRmZjM0MWUyNWQuLjA3NTg3 MjZmYTE5YmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2Rz aS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jCkBAIC03ODAs NiArNzgwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZV9lbmFibGUoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190 b19pbnRlbF9kc2koZW5jb2Rlcik7CisJY29uc3Qgc3RydWN0IHZidF9kc2lfaW5mbyAqdmJ0X2Rz aV9pbmZvID0gaW50ZWxfYmlvc19kc2lfaW5mbygmaW50ZWxfZHNpLT5iYXNlKTsKIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwpAQCAtODM3LDcgKzgzOCw3IEBA IHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlLAogCSAqIHRoZSBkZWxheSBpbiB0aGF0IGNhc2UuIElmIHRoZXJlIGlzIG5vIGRl YXNzZXJ0LXNlcSwgdGhlbiBhbgogCSAqIHVuY29uZGl0aW9uYWwgbXNsZWVwIGlzIHVzZWQgdG8g Z2l2ZSB0aGUgcGFuZWwgdGltZSB0byBwb3dlci1vbi4KIAkgKi8KLQlpZiAoZGV2X3ByaXYtPnZi dC5kc2kuc2VxdWVuY2VbTUlQSV9TRVFfREVBU1NFUlRfUkVTRVRdKSB7CisJaWYgKHZidF9kc2lf aW5mby0+c2VxdWVuY2VbTUlQSV9TRVFfREVBU1NFUlRfUkVTRVRdKSB7CiAJCWludGVsX2RzaV9t c2xlZXAoaW50ZWxfZHNpLCBpbnRlbF9kc2ktPnBhbmVsX29uX2RlbGF5KTsKIAkJaW50ZWxfZHNp X3ZidF9leGVjX3NlcXVlbmNlKGludGVsX2RzaSwgTUlQSV9TRVFfREVBU1NFUlRfUkVTRVQpOwog CX0gZWxzZSB7CkBAIC0xNjY1LDcgKzE2NjYsOCBAQCBzdGF0aWMgdm9pZCB2bHZfZHBoeV9wYXJh bV9pbml0KHN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSkKIHsKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gaW50ZWxfZHNpLT5iYXNlLmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgbWlwaV9jb25maWcgKm1pcGlf Y29uZmlnID0gZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnOworCWNvbnN0IHN0cnVjdCB2YnRfZHNp X2luZm8gKnZidF9kc2lfaW5mbyA9IGludGVsX2Jpb3NfZHNpX2luZm8oJmludGVsX2RzaS0+YmFz ZSk7CisJc3RydWN0IG1pcGlfY29uZmlnICptaXBpX2NvbmZpZyA9IHZidF9kc2lfaW5mby0+Y29u ZmlnOwogCXUzMiB0bHB4X25zLCBleHRyYV9ieXRlX2NvdW50LCB0bHB4X3VpOwogCXUzMiB1aV9u dW0sIHVpX2RlbjsKIAl1MzIgcHJlcGFyZV9jbnQsIGV4aXRfemVyb19jbnQsIGNsa196ZXJvX2Nu dCwgdHJhaWxfY250OwpAQCAtMTgzNSw2ICsxODM3LDcgQEAgdm9pZCB2bHZfZHNpX2luaXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmludGVsX2Nvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICpjdXJyZW50X21vZGUsICpmaXhlZF9tb2RlOworCWNvbnN0 IHN0cnVjdCB2YnRfZHNpX2luZm8gKnZidF9kc2lfaW5mbzsKIAllbnVtIHBvcnQgcG9ydDsKIAll bnVtIHBpcGUgcGlwZTsKIApAQCAtMTg5OCwxNCArMTkwMSwxNSBAQCB2b2lkIHZsdl9kc2lfaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWludGVsX2VuY29kZXItPnBp cGVfbWFzayA9IEJJVChQSVBFX0IpOwogCiAJaW50ZWxfZHNpLT5wYW5lbF9wb3dlcl9vZmZfdGlt ZSA9IGt0aW1lX2dldF9ib290dGltZSgpOworCXZidF9kc2lfaW5mbyA9IGludGVsX2Jpb3NfZHNp X2luZm8oaW50ZWxfZW5jb2Rlcik7CiAKLQlpZiAoZGV2X3ByaXYtPnZidC5kc2kuY29uZmlnLT5k dWFsX2xpbmspCisJaWYgKHZidF9kc2lfaW5mby0+Y29uZmlnLT5kdWFsX2xpbmspCiAJCWludGVs X2RzaS0+cG9ydHMgPSBCSVQoUE9SVF9BKSB8IEJJVChQT1JUX0MpOwogCWVsc2UKIAkJaW50ZWxf ZHNpLT5wb3J0cyA9IEJJVChwb3J0KTsKIAotCWludGVsX2RzaS0+ZGNzX2JhY2tsaWdodF9wb3J0 cyA9IGRldl9wcml2LT52YnQuZHNpLmJsX3BvcnRzOwotCWludGVsX2RzaS0+ZGNzX2NhYmNfcG9y dHMgPSBkZXZfcHJpdi0+dmJ0LmRzaS5jYWJjX3BvcnRzOworCWludGVsX2RzaS0+ZGNzX2JhY2ts aWdodF9wb3J0cyA9IHZidF9kc2lfaW5mby0+YmxfcG9ydHM7CisJaW50ZWxfZHNpLT5kY3NfY2Fi Y19wb3J0cyA9IHZidF9kc2lfaW5mby0+Y2FiY19wb3J0czsKIAogCS8qIENyZWF0ZSBhIERTSSBo b3N0IChhbmQgYSBkZXZpY2UpIGZvciBlYWNoIHBvcnQuICovCiAJZm9yX2VhY2hfZHNpX3BvcnQo cG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMmRi NmM0NDYxYjM5ZS4uMzUzNTc1OTc5NjAzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC02 OTMsNiArNjkzLDIxIEBAIHN0cnVjdCBkZGlfdmJ0X3BvcnRfaW5mbyB7CiAJCWludCB0cDJfdHAz X3dha2V1cF90aW1lX3VzOwogCQlpbnQgcHNyMl90cDJfdHAzX3dha2V1cF90aW1lX3VzOwogCX0g cHNyOworCisJLyogTUlQSSBEU0kgKi8KKwlzdHJ1Y3QgdmJ0X2RzaV9pbmZvIHsKKwkJdTE2IHBh bmVsX2lkOworCQlzdHJ1Y3QgbWlwaV9jb25maWcgKmNvbmZpZzsKKwkJc3RydWN0IG1pcGlfcHBz X2RhdGEgKnBwczsKKwkJdTE2IGJsX3BvcnRzOworCQl1MTYgY2FiY19wb3J0czsKKwkJdTggc2Vx X3ZlcnNpb247CisJCXUzMiBzaXplOworCQl1OCAqZGF0YTsKKwkJY29uc3QgdTggKnNlcXVlbmNl W01JUElfU0VRX01BWF07CisJCXU4ICpkZWFzc2VydF9zZXE7IC8qIFVzZWQgYnkgZml4dXBfbWlw aV9zZXF1ZW5jZXMoKSAqLworCQllbnVtIGRybV9wYW5lbF9vcmllbnRhdGlvbiBvcmllbnRhdGlv bjsKKwl9IGRzaTsKIH07CiAKIHN0cnVjdCBpbnRlbF92YnRfZGF0YSB7CkBAIC03MTMsMjEgKzcy OCw2IEBAIHN0cnVjdCBpbnRlbF92YnRfZGF0YSB7CiAJdW5zaWduZWQgaW50IGJpb3NfbHZkc192 YWw7IC8qIGluaXRpYWwgW1BDSF9dTFZEUyByZWcgdmFsIGluIFZCSU9TICovCiAJZW51bSBkcm1f cGFuZWxfb3JpZW50YXRpb24gb3JpZW50YXRpb247CiAKLQkvKiBNSVBJIERTSSAqLwotCXN0cnVj dCB7Ci0JCXUxNiBwYW5lbF9pZDsKLQkJc3RydWN0IG1pcGlfY29uZmlnICpjb25maWc7Ci0JCXN0 cnVjdCBtaXBpX3Bwc19kYXRhICpwcHM7Ci0JCXUxNiBibF9wb3J0czsKLQkJdTE2IGNhYmNfcG9y dHM7Ci0JCXU4IHNlcV92ZXJzaW9uOwotCQl1MzIgc2l6ZTsKLQkJdTggKmRhdGE7Ci0JCWNvbnN0 IHU4ICpzZXF1ZW5jZVtNSVBJX1NFUV9NQVhdOwotCQl1OCAqZGVhc3NlcnRfc2VxOyAvKiBVc2Vk IGJ5IGZpeHVwX21pcGlfc2VxdWVuY2VzKCkgKi8KLQkJZW51bSBkcm1fcGFuZWxfb3JpZW50YXRp b24gb3JpZW50YXRpb247Ci0JfSBkc2k7Ci0KIAlpbnQgY3J0X2RkY19waW47CiAKIAlzdHJ1Y3Qg bGlzdF9oZWFkIGRpc3BsYXlfZGV2aWNlczsKLS0gCjIuMzIuMAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==