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,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 239ADC433B4 for ; Thu, 6 May 2021 16:19:45 +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 C39CB61075 for ; Thu, 6 May 2021 16:19:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C39CB61075 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 4F91E6ECC7; Thu, 6 May 2021 16:19:44 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id EC4AD6ECC7 for ; Thu, 6 May 2021 16:19:42 +0000 (UTC) IronPort-SDR: JWw5zXLiPNO7RXlbvqr7/mD6c8dPX9QQYuEI2d6K6aT+Lc3tzyMPYcTPMMxlgAb3seShljjhk0 XVCBKZj34xGQ== X-IronPort-AV: E=McAfee;i="6200,9189,9976"; a="195395930" X-IronPort-AV: E=Sophos;i="5.82,277,1613462400"; d="scan'208";a="195395930" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 May 2021 09:19:42 -0700 IronPort-SDR: YrrFGK6EF09XEIbjqPVb24ZRrbQSehkMBC9oSxhbrjWm2u+pw4rBP6zyQDAyoqIXQlhfiDekU/ fmOEi30t/djQ== X-IronPort-AV: E=Sophos;i="5.82,277,1613462400"; d="scan'208";a="407072169" Received: from ideak-desk.fi.intel.com ([10.237.68.141]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 May 2021 09:19:39 -0700 From: Imre Deak To: intel-gfx@lists.freedesktop.org Date: Thu, 6 May 2021 19:19:24 +0300 Message-Id: <20210506161930.309688-5-imre.deak@intel.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210506161930.309688-1-imre.deak@intel.com> References: <20210506161930.309688-1-imre.deak@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2 04/10] drm/i915/xelpd: First stab at DPT support 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: Wilson Chris P , Auld Matthew , Bommu Krishnaiah Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFk ZCBzdXBwb3J0IGZvciBEUFQgKGRpc3BsYXkgcGFnZSB0YWJsZSkuIERQVCBpcyBhCnNsaWdodGx5 IHBlY3VsaWFyIHR3byBsZXZlbCBwYWdlIHRhYmxlIHNjaGVtZSB1c2VkIGZvcgp0aWxlZCBzY2Fu b3V0IGJ1ZmZlcnMgKGxpbmVhciB1c2VzIGRpcmVjdCBnZ3R0IG1hcHBpbmcKc3RpbGwpLiBUaGUg cGxhbmUgc3VyZmFjZSBhZGRyZXNzIHdpbGwgcG9pbnQgYXQgYSBwYWdlCmluIHRoZSBEUFQgd2hp Y2ggaG9sZHMgdGhlIFBURXMgZm9yIDUxMiBhY3R1YWwgcGFnZXMuClRodXMgd2UgcmVxdWlyZSAx LzUxMiBvZiB0aGUgZ2d0dHQgYWRkcmVzcyBzcGFjZQpjb21wYXJlZCB0byBhIGRpcmVjdCBnZ3R0 IG1hcHBpbmcuCgpXZSBjcmVhdGUgYSBuZXcgRFBUIGFkZHJlc3Mgc3BhY2UgZm9yIGVhY2ggZnJh bWVidWZmZXIgYW5kCnRyYWNrIHR3byB2bWFzIChvbmUgZm9yIHRoZSBEUFQsIGFub3RoZXIgZm9y IHRoZSBnZ3R0KS4KClRPRE86Ci0gSXMgdGhlIGk5MTVfYWRkcmVzc19zcGFjZSBhcHByb2FhY2gg c2FuZT8KLSBNYXliZSBkb24ndCBtYXAgdGhlIHdob2xlIERQVCB0byB3cml0ZSB0aGUgUFRFcz8K LSBEZWFsIHdpdGggcmVtYXBwaW5nL3JvdGF0aW9uPyBOZWVkIHRvIGNyZWF0ZSBhCiAgc2VwYXJh dGUgRFBUIGZvciBlYWNoIHJlbWFwcGVkL3JvdGF0ZWQgcGxhbmUgSQogIGd1ZXNzLiBPciBlbHNl IHdlJ2QgbmVlZCB0byBtYWtlIHRoZSBwZXItZmIgRFBUCiAgbGFyZ2UgZW5vdWdoIHRvIHN1cHBv cnQgcG90ZW50aWFsbHkgc2V2ZXJhbAogIHJlbWFwcGVkL3JvdGF0ZWQgdm1hcy4gSG93IGxhcmdl IHNob3VsZCB0aGF0IGJlPwoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQm9tbXUgS3Jpc2huYWlhaCA8 a3Jpc2huYWlhaC5ib21tdUBpbnRlbC5jb20+CkNjOiBXaWxzb24gQ2hyaXMgUCA8Q2hyaXMuUC5X aWxzb25AaW50ZWwuY29tPgpDYzogVGFuZyBDUSA8Y3EudGFuZ0BpbnRlbC5jb20+CkNjOiBBdWxk IE1hdHRoZXcgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBVbWEgU2hhbmth ciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogV2lsc29uIENocmlzIFAgPENo cmlzLlAuV2lsc29uQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRl YWtAaW50ZWwuY29tPgotLS0KIC4uLi9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNf cGxhbmUuYyB8ICAgNyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5LmMgIHwgMzUyICsrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5LmggIHwgICAxICsKIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfdHlwZXMuaCAgICB8ICAxNSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9mYmMuYyAgICAgIHwgICA2ICstCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9za2xfdW5p dmVyc2FsX3BsYW5lLmMgICAgfCAgMTkgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dlbjhf cHBndHQuaCAgICAgICAgICB8ICAgNyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9n Z3R0LmMgICAgICAgICAgfCAgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0 dC5oICAgICAgICAgICB8ICAgNSArCiA5IGZpbGVzIGNoYW5nZWQsIDM5MiBpbnNlcnRpb25zKCsp LCAyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9hdG9taWNfcGxhbmUuYwppbmRleCA3YmZiMjZjYTBiZDA3Li4zNmY1MmExZDc1NTJmIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFu ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5l LmMKQEAgLTEwMiw3ICsxMDIsOCBAQCBpbnRlbF9wbGFuZV9kdXBsaWNhdGVfc3RhdGUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUpCiAKIAlfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0 ZV9zdGF0ZShwbGFuZSwgJmludGVsX3N0YXRlLT51YXBpKTsKIAotCWludGVsX3N0YXRlLT52bWEg PSBOVUxMOworCWludGVsX3N0YXRlLT5nZ3R0X3ZtYSA9IE5VTEw7CisJaW50ZWxfc3RhdGUtPmRw dF92bWEgPSBOVUxMOwogCWludGVsX3N0YXRlLT5mbGFncyA9IDA7CiAKIAkvKiBhZGQgcmVmZXJl bmNlIHRvIGZiICovCkBAIC0xMjUsNyArMTI2LDkgQEAgaW50ZWxfcGxhbmVfZGVzdHJveV9zdGF0 ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAq c3RhdGUpCiB7CiAJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9IHRvX2lu dGVsX3BsYW5lX3N0YXRlKHN0YXRlKTsKLQlkcm1fV0FSTl9PTihwbGFuZS0+ZGV2LCBwbGFuZV9z dGF0ZS0+dm1hKTsKKworCWRybV9XQVJOX09OKHBsYW5lLT5kZXYsIHBsYW5lX3N0YXRlLT5nZ3R0 X3ZtYSk7CisJZHJtX1dBUk5fT04ocGxhbmUtPmRldiwgcGxhbmVfc3RhdGUtPmRwdF92bWEpOwog CiAJX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKCZwbGFuZV9zdGF0ZS0+ dWFwaSk7CiAJaWYgKHBsYW5lX3N0YXRlLT5ody5mYikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNWQ1M2VlNGM1OGY1Yi4uOTlhOTIxZWEyZTgx YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKQEAg LTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fb2JqZWN0LmgiCiAKICNpbmNs dWRlICJndC9pbnRlbF9ycHMuaCIKKyNpbmNsdWRlICJndC9nZW44X3BwZ3R0LmgiCiAKICNpbmNs dWRlICJnNHhfZHAuaCIKICNpbmNsdWRlICJnNHhfaGRtaS5oIgpAQCAtMTI0LDYgKzEyNSwxNzYg QEAgc3RhdGljIHZvaWQgaWxrX3BmaXRfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKTsKIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfc2V0dXBfaHdfc3Rh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1 aXJlX2N0eCAqY3R4KTsKIAorc3RydWN0IGk5MTVfZHB0IHsKKwlzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlIHZtOworCisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3Qg aTkxNV92bWEgKnZtYTsKKwl2b2lkIF9faW9tZW0gKmlvbWVtOworfTsKKworI2RlZmluZSBpOTE1 X2lzX2RwdCh2bSkgKCh2bSktPmlzX2RwdCkKKworc3RhdGljIGlubGluZSBzdHJ1Y3QgaTkxNV9k cHQgKgoraTkxNV92bV90b19kcHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCit7CisJ QlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBpOTE1X2RwdCwgdm0pKTsKKwlHRU1fQlVHX09O KCFpOTE1X2lzX2RwdCh2bSkpOworCXJldHVybiBjb250YWluZXJfb2Yodm0sIHN0cnVjdCBpOTE1 X2RwdCwgdm0pOworfQorCisjZGVmaW5lIGRwdF90b3RhbF9lbnRyaWVzKGRwdCkgKChkcHQpLT52 bS50b3RhbCA+PiBQQUdFX1NISUZUKQorCitzdGF0aWMgdm9pZCBnZW44X3NldF9wdGUodm9pZCBf X2lvbWVtICphZGRyLCBnZW44X3B0ZV90IHB0ZSkKK3sKKwl3cml0ZXEocHRlLCBhZGRyKTsKK30K Kworc3RhdGljIHZvaWQgZHB0X2luc2VydF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ug KnZtLAorCQkJICAgIGRtYV9hZGRyX3QgYWRkciwKKwkJCSAgICB1NjQgb2Zmc2V0LAorCQkJICAg IGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwKKwkJCSAgICB1MzIgZmxhZ3MpCit7CisJc3Ry dWN0IGk5MTVfZHB0ICpkcHQgPSBpOTE1X3ZtX3RvX2RwdCh2bSk7CisJZ2VuOF9wdGVfdCBfX2lv bWVtICpiYXNlID0gZHB0LT5pb21lbTsKKworCWdlbjhfc2V0X3B0ZShiYXNlICsgb2Zmc2V0IC8g STkxNV9HVFRfUEFHRV9TSVpFLAorCQkgICAgIHZtLT5wdGVfZW5jb2RlKGFkZHIsIGxldmVsLCBm bGFncykpOworfQorCitzdGF0aWMgdm9pZCBkcHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCisJCQkgICAgICAgc3RydWN0IGk5MTVfdm1hICp2bWEsCisJCQkg ICAgICAgZW51bSBpOTE1X2NhY2hlX2xldmVsIGxldmVsLAorCQkJICAgICAgIHUzMiBmbGFncykK K3sKKwlzdHJ1Y3QgaTkxNV9kcHQgKmRwdCA9IGk5MTVfdm1fdG9fZHB0KHZtKTsKKwlnZW44X3B0 ZV90IF9faW9tZW0gKmJhc2UgPSBkcHQtPmlvbWVtOworCWNvbnN0IGdlbjhfcHRlX3QgcHRlX2Vu Y29kZSA9IHZtLT5wdGVfZW5jb2RlKDAsIGxldmVsLCBmbGFncyk7CisJc3RydWN0IHNndF9pdGVy IHNndF9pdGVyOworCWRtYV9hZGRyX3QgYWRkcjsKKwlpbnQgaTsKKworCS8qCisJICogTm90ZSB0 aGF0IHdlIGlnbm9yZSBQVEVfUkVBRF9PTkxZIGhlcmUuIFRoZSBjYWxsZXIgbXVzdCBiZSBjYXJl ZnVsCisJICogbm90IHRvIGFsbG93IHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFjY2VzcyB0byBhIHJl YWQgb25seSBwYWdlLgorCSAqLworCisJaSA9IHZtYS0+bm9kZS5zdGFydCAvIEk5MTVfR1RUX1BB R0VfU0laRTsKKwlmb3JfZWFjaF9zZ3RfZGFkZHIoYWRkciwgc2d0X2l0ZXIsIHZtYS0+cGFnZXMp CisJCWdlbjhfc2V0X3B0ZSgmYmFzZVtpKytdLCBwdGVfZW5jb2RlIHwgYWRkcik7Cit9CisKK3N0 YXRpYyB2b2lkIGRwdF9jbGVhcl9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwK KwkJCSAgICB1NjQgc3RhcnQsIHU2NCBsZW5ndGgpCit7Cit9CisKK3N0YXRpYyB2b2lkIGRwdF9i aW5kX3ZtYShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKKwkJCSBzdHJ1Y3QgaTkxNV92 bV9wdF9zdGFzaCAqc3Rhc2gsCisJCQkgc3RydWN0IGk5MTVfdm1hICp2bWEsCisJCQkgZW51bSBp OTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAorCQkJIHUzMiBmbGFncykKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdm1hLT5vYmo7CisJdTMyIHB0ZV9mbGFnczsKKwor CS8qIEFwcGxpY2FibGUgdG8gVkxWIChnZW44KyBkbyBub3Qgc3VwcG9ydCBSTyBpbiB0aGUgR0dU VCkgKi8KKwlwdGVfZmxhZ3MgPSAwOworCWlmICh2bWEtPnZtLT5oYXNfcmVhZF9vbmx5ICYmIGk5 MTVfZ2VtX29iamVjdF9pc19yZWFkb25seShvYmopKQorCQlwdGVfZmxhZ3MgfD0gUFRFX1JFQURf T05MWTsKKwlpZiAoaTkxNV9nZW1fb2JqZWN0X2lzX2xtZW0ob2JqKSkKKwkJcHRlX2ZsYWdzIHw9 IFBURV9MTTsKKworCXZtYS0+dm0tPmluc2VydF9lbnRyaWVzKHZtYS0+dm0sIHZtYSwgY2FjaGVf bGV2ZWwsIHB0ZV9mbGFncyk7CisKKwl2bWEtPnBhZ2Vfc2l6ZXMuZ3R0ID0gSTkxNV9HVFRfUEFH RV9TSVpFOworCisJLyoKKwkgKiBXaXRob3V0IGFsaWFzaW5nIFBQR1RUIHRoZXJlJ3Mgbm8gZGlm ZmVyZW5jZSBiZXR3ZWVuCisJICogR0xPQkFML0xPQ0FMX0JJTkQsIGl0J3MgYWxsIHRoZSBzYW1l IHB0ZXMuIEhlbmNlIHVuY29uZGl0aW9uYWxseQorCSAqIHVwZ3JhZGUgdG8gYm90aCBib3VuZCBp ZiB3ZSBiaW5kIGVpdGhlciB0byBhdm9pZCBkb3VibGUtYmluZGluZy4KKwkgKi8KKwlhdG9taWNf b3IoSTkxNV9WTUFfR0xPQkFMX0JJTkQgfCBJOTE1X1ZNQV9MT0NBTF9CSU5ELCAmdm1hLT5mbGFn cyk7Cit9CisKK3N0YXRpYyB2b2lkIGRwdF91bmJpbmRfdm1hKHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtLCBzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3sKKwl2bS0+Y2xlYXJfcmFuZ2Uodm0s IHZtYS0+bm9kZS5zdGFydCwgdm1hLT5zaXplKTsKK30KKworc3RhdGljIHZvaWQgZHB0X2NsZWFu dXAoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCit7CisJc3RydWN0IGk5MTVfZHB0ICpk cHQgPSBpOTE1X3ZtX3RvX2RwdCh2bSk7CisKKwlpOTE1X2dlbV9vYmplY3RfcHV0KGRwdC0+b2Jq KTsKK30KKworc3RhdGljIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKgoraW50ZWxfZHB0X2Ny ZWF0ZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSA9IHRvX2k5MTUob2JqLT5kZXYpOworCXNpemVfdCBzaXplID0gRElWX1JPVU5E X1VQX1VMTChvYmotPnNpemUsIDUxMik7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmRw dF9vYmo7CisJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07CisJc3RydWN0IGk5MTVfZHB0 ICpkcHQ7CisJaW50IHJldDsKKworCXNpemUgPSByb3VuZF91cChzaXplLCA0MDk2KTsKKworCWlm IChIQVNfTE1FTShpOTE1KSkKKwkJZHB0X29iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfbG1l bShpOTE1LCBzaXplLCAwKTsKKwllbHNlCisJCWRwdF9vYmogPSBpOTE1X2dlbV9vYmplY3RfY3Jl YXRlX3N0b2xlbihpOTE1LCBzaXplKTsKKwlpZiAoSVNfRVJSKGRwdF9vYmopKQorCQlyZXR1cm4g RVJSX0NBU1QoZHB0X29iaik7CisKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2xl dmVsKGRwdF9vYmosIEk5MTVfQ0FDSEVfTk9ORSk7CisJaWYgKHJldCkgeworCQlpOTE1X2dlbV9v YmplY3RfcHV0KGRwdF9vYmopOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOworCX0KKworCWRwdCA9 IGt6YWxsb2Moc2l6ZW9mKCpkcHQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWRwdCkgeworCQlpOTE1 X2dlbV9vYmplY3RfcHV0KGRwdF9vYmopOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwl9 CisKKwl2bSA9ICZkcHQtPnZtOworCisJdm0tPmd0ID0gJmk5MTUtPmd0OworCXZtLT5pOTE1ID0g aTkxNTsKKwl2bS0+ZG1hID0gaTkxNS0+ZHJtLmRldjsKKwl2bS0+dG90YWwgPSAoc2l6ZSAvIHNp emVvZihnZW44X3B0ZV90KSkgKiBJOTE1X0dUVF9QQUdFX1NJWkU7CisJdm0tPmlzX2RwdCA9IHRy dWU7CisKKwlpOTE1X2FkZHJlc3Nfc3BhY2VfaW5pdCh2bSwgVk1fQ0xBU1NfRFBUKTsKKworCXZt LT5pbnNlcnRfcGFnZSA9IGRwdF9pbnNlcnRfcGFnZTsKKwl2bS0+Y2xlYXJfcmFuZ2UgPSBkcHRf Y2xlYXJfcmFuZ2U7CisJdm0tPmluc2VydF9lbnRyaWVzID0gZHB0X2luc2VydF9lbnRyaWVzOwor CXZtLT5jbGVhbnVwID0gZHB0X2NsZWFudXA7CisKKwl2bS0+dm1hX29wcy5iaW5kX3ZtYSAgICA9 IGRwdF9iaW5kX3ZtYTsKKwl2bS0+dm1hX29wcy51bmJpbmRfdm1hICA9IGRwdF91bmJpbmRfdm1h OworCXZtLT52bWFfb3BzLnNldF9wYWdlcyAgID0gZ2d0dF9zZXRfcGFnZXM7CisJdm0tPnZtYV9v cHMuY2xlYXJfcGFnZXMgPSBjbGVhcl9wYWdlczsKKworCXZtLT5wdGVfZW5jb2RlID0gZ2VuOF9n Z3R0X3B0ZV9lbmNvZGU7CisKKwlkcHQtPm9iaiA9IGRwdF9vYmo7CisKKwlyZXR1cm4gJmRwdC0+ dm07Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2RwdF9kZXN0cm95KHN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtKQoreworCXN0cnVjdCBpOTE1X2RwdCAqZHB0ID0gaTkxNV92bV90b19kcHQo dm0pOworCisJaTkxNV92bV9jbG9zZSgmZHB0LT52bSk7Cit9CisKIC8qIHJldHVybnMgSFBMTCBm cmVxdWVuY3kgaW4ga0h6ICovCiBpbnQgdmx2X2dldF9ocGxsX3ZjbyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiB7CkBAIC05NzQsNiArMTE0NSw5IEBAIHVuc2lnbmVkIGludCBp bnRlbF9zdXJmX2FsaWdubWVudChjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGZiLT5kZXYpOwog CisJaWYgKGludGVsX2ZiX3VzZXNfZHB0KGZiKSkKKwkJcmV0dXJuIDUxMiAqIDQwOTY7CisKIAkv KiBBVVhfRElTVCBuZWVkcyBvbmx5IDRLIGFsaWdubWVudCAqLwogCWlmIChpc19jY3NfcGxhbmUo ZmIsIGNvbG9yX3BsYW5lKSkKIAkJcmV0dXJuIDQwOTY7CkBAIC0xMDI3LDYgKzEyMDEsNjIgQEAg c3RhdGljIGJvb2wgaW50ZWxfcGxhbmVfdXNlc19mZW5jZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogCQkgcGxhbmVfc3RhdGUtPnZpZXcuZ3R0LnR5cGUgPT0g STkxNV9HR1RUX1ZJRVdfTk9STUFMKTsKIH0KIAorc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqCitp bnRlbF9waW5fZmJfb2JqX2RwdChzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKKwkJICAgICBj b25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcsCisJCSAgICAgYm9vbCB1c2VzX2ZlbmNl LAorCQkgICAgIHVuc2lnbmVkIGxvbmcgKm91dF9mbGFncywKKwkJICAgICBzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bSkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmItPmRldjsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7CisJc3RydWN0 IGk5MTVfdm1hICp2bWE7CisJdTMyIGFsaWdubWVudDsKKwlpbnQgcmV0OworCisJaWYgKFdBUk5f T04oIWk5MTVfZ2VtX29iamVjdF9pc19mcmFtZWJ1ZmZlcihvYmopKSkKKwkJcmV0dXJuIEVSUl9Q VFIoLUVJTlZBTCk7CisKKwlhbGlnbm1lbnQgPSA0MDk2ICogNTEyOworCisJYXRvbWljX2luYygm ZGV2X3ByaXYtPmdwdV9lcnJvci5wZW5kaW5nX2ZiX3Bpbik7CisKKwlyZXQgPSBpOTE1X2dlbV9v YmplY3Rfc2V0X2NhY2hlX2xldmVsKG9iaiwgSTkxNV9DQUNIRV9OT05FKTsKKwlpZiAocmV0KSB7 CisJCXZtYSA9IEVSUl9QVFIocmV0KTsKKwkJZ290byBlcnI7CisJfQorCisJdm1hID0gaTkxNV92 bWFfaW5zdGFuY2Uob2JqLCB2bSwgdmlldyk7CisJaWYgKElTX0VSUih2bWEpKQorCQlnb3RvIGVy cjsKKworCWlmIChpOTE1X3ZtYV9taXNwbGFjZWQodm1hLCAwLCBhbGlnbm1lbnQsIDApKSB7CisJ CXJldCA9IGk5MTVfdm1hX3VuYmluZCh2bWEpOworCQlpZiAocmV0KSB7CisJCQl2bWEgPSBFUlJf UFRSKHJldCk7CisJCQlnb3RvIGVycjsKKwkJfQorCX0KKworCXJldCA9IGk5MTVfdm1hX3Bpbih2 bWEsIDAsIGFsaWdubWVudCwgUElOX0dMT0JBTCk7CisJaWYgKHJldCkgeworCQl2bWEgPSBFUlJf UFRSKHJldCk7CisJCWdvdG8gZXJyOworCX0KKworCXZtYS0+ZGlzcGxheV9hbGlnbm1lbnQgPSBt YXhfdCh1NjQsIHZtYS0+ZGlzcGxheV9hbGlnbm1lbnQsIGFsaWdubWVudCk7CisKKwlpOTE1X2dl bV9vYmplY3RfZmx1c2hfaWZfZGlzcGxheShvYmopOworCisJaTkxNV92bWFfZ2V0KHZtYSk7Citl cnI6CisJYXRvbWljX2RlYygmZGV2X3ByaXYtPmdwdV9lcnJvci5wZW5kaW5nX2ZiX3Bpbik7CisK KwlyZXR1cm4gdm1hOworfQorCiBzdHJ1Y3QgaTkxNV92bWEgKgogaW50ZWxfcGluX2FuZF9mZW5j ZV9mYl9vYmooc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAJCQkgICBib29sIHBoeXNfY3Vy c29yLApAQCAtMTYzMCw2ICsxODYwLDQ5IEBAIHN0YXRpYyB2b2lkIGludGVsX3BsYW5lX2Rpc2Fi bGVfbm9hdG9taWMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJaW50ZWxfd2FpdF9mb3JfdmJs YW5rKGRldl9wcml2LCBjcnRjLT5waXBlKTsKIH0KIAorc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAq aW50ZWxfZHB0X3BpbihzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHZtLT5pOTE1OworCXN0cnVjdCBpOTE1X2RwdCAqZHB0 ID0gaTkxNV92bV90b19kcHQodm0pOworCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOworCXN0cnVj dCBpOTE1X3ZtYSAqdm1hOworCXZvaWQgX19pb21lbSAqaW9tZW07CisKKwl3YWtlcmVmID0gaW50 ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOworCWF0b21pY19pbmMoJmk5MTUt PmdwdV9lcnJvci5wZW5kaW5nX2ZiX3Bpbik7CisKKwl2bWEgPSBpOTE1X2dlbV9vYmplY3RfZ2d0 dF9waW4oZHB0LT5vYmosIE5VTEwsIDAsIDQwOTYsCisJCQkJICAgICAgIEhBU19MTUVNKGk5MTUp ID8gMCA6IFBJTl9NQVBQQUJMRSk7CisJaWYgKElTX0VSUih2bWEpKQorCQlnb3RvIGVycjsKKwor CWlvbWVtID0gaTkxNV92bWFfcGluX2lvbWFwKHZtYSk7CisJaTkxNV92bWFfdW5waW4odm1hKTsK KwlpZiAoSVNfRVJSKGlvbWVtKSkgeworCQl2bWEgPSBpb21lbTsKKwkJZ290byBlcnI7CisJfQor CisJZHB0LT52bWEgPSB2bWE7CisJZHB0LT5pb21lbSA9IGlvbWVtOworCisJaTkxNV92bWFfZ2V0 KHZtYSk7CisKK2VycjoKKwlhdG9taWNfZGVjKCZpOTE1LT5ncHVfZXJyb3IucGVuZGluZ19mYl9w aW4pOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsK KworCXJldHVybiB2bWE7Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2RwdF91bnBpbihzdHJ1Y3Qg aTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKK3sKKwlzdHJ1Y3QgaTkxNV9kcHQgKmRwdCA9IGk5MTVf dm1fdG9fZHB0KHZtKTsKKworCWk5MTVfdm1hX3VucGluX2lvbWFwKGRwdC0+dm1hKTsKKwlpOTE1 X3ZtYV9wdXQoZHB0LT52bWEpOworfQorCiBzdGF0aWMgdm9pZAogaW50ZWxfZmluZF9pbml0aWFs X3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkJCSAgICAgc3RydWN0 IGludGVsX2luaXRpYWxfcGxhbmVfY29uZmlnICpwbGFuZV9jb25maWcpCkBAIC0xNjc1LDEyICsx OTQ4LDEyIEBAIGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMsCiAJCQljb250aW51ZTsKIAogCQlzdGF0ZSA9IHRvX2ludGVsX3BsYW5lX3N0 YXRlKGMtPnByaW1hcnktPnN0YXRlKTsKLQkJaWYgKCFzdGF0ZS0+dm1hKQorCQlpZiAoIXN0YXRl LT5nZ3R0X3ZtYSkKIAkJCWNvbnRpbnVlOwogCiAJCWlmIChpbnRlbF9wbGFuZV9nZ3R0X29mZnNl dChzdGF0ZSkgPT0gcGxhbmVfY29uZmlnLT5iYXNlKSB7CiAJCQlmYiA9IHN0YXRlLT5ody5mYjsK LQkJCXZtYSA9IHN0YXRlLT52bWE7CisJCQl2bWEgPSBzdGF0ZS0+Z2d0dF92bWE7CiAJCQlnb3Rv IHZhbGlkX2ZiOwogCQl9CiAJfQpAQCAtMTcwNyw3ICsxOTgwLDcgQEAgaW50ZWxfZmluZF9pbml0 aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkJCSAgICZpbnRl bF9zdGF0ZS0+dmlldyk7CiAKIAlfX2k5MTVfdm1hX3Bpbih2bWEpOwotCWludGVsX3N0YXRlLT52 bWEgPSBpOTE1X3ZtYV9nZXQodm1hKTsKKwlpbnRlbF9zdGF0ZS0+Z2d0dF92bWEgPSBpOTE1X3Zt YV9nZXQodm1hKTsKIAlpZiAoaW50ZWxfcGxhbmVfdXNlc19mZW5jZShpbnRlbF9zdGF0ZSkgJiYg aTkxNV92bWFfcGluX2ZlbmNlKHZtYSkgPT0gMCkKIAkJaWYgKHZtYS0+ZmVuY2UpCiAJCQlpbnRl bF9zdGF0ZS0+ZmxhZ3MgfD0gUExBTkVfSEFTX0ZFTkNFOwpAQCAtMTA1NTEsMjUgKzEwODI0LDYw IEBAIGludCBpbnRlbF9wbGFuZV9waW5fZmIoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSkKIAkJcGxhbmUtPmlkID09IFBMQU5FX0NVUlNPUiAmJgogCQlJTlRFTF9JTkZPKGRl dl9wcml2KS0+ZGlzcGxheS5jdXJzb3JfbmVlZHNfcGh5c2ljYWw7CiAKLQl2bWEgPSBpbnRlbF9w aW5fYW5kX2ZlbmNlX2ZiX29iaihmYiwgcGh5c19jdXJzb3IsCi0JCQkJCSAmcGxhbmVfc3RhdGUt PnZpZXcuZ3R0LAotCQkJCQkgaW50ZWxfcGxhbmVfdXNlc19mZW5jZShwbGFuZV9zdGF0ZSksCi0J CQkJCSAmcGxhbmVfc3RhdGUtPmZsYWdzKTsKLQlpZiAoSVNfRVJSKHZtYSkpCi0JCXJldHVybiBQ VFJfRVJSKHZtYSk7Ci0KLQlwbGFuZV9zdGF0ZS0+dm1hID0gdm1hOworCWlmICghaW50ZWxfZmJf dXNlc19kcHQoZmIpKSB7CisJCXZtYSA9IGludGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKGZiLCBw aHlzX2N1cnNvciwKKwkJCQkJCSAmcGxhbmVfc3RhdGUtPnZpZXcuZ3R0LAorCQkJCQkJIGludGVs X3BsYW5lX3VzZXNfZmVuY2UocGxhbmVfc3RhdGUpLAorCQkJCQkJICZwbGFuZV9zdGF0ZS0+Zmxh Z3MpOworCQlpZiAoSVNfRVJSKHZtYSkpCisJCQlyZXR1cm4gUFRSX0VSUih2bWEpOworCisJCXBs YW5lX3N0YXRlLT5nZ3R0X3ZtYSA9IHZtYTsKKwl9IGVsc2UgeworCQlzdHJ1Y3QgaW50ZWxfZnJh bWVidWZmZXIgKmludGVsX2ZiID0gdG9faW50ZWxfZnJhbWVidWZmZXIoZmIpOworCisJCXZtYSA9 IGludGVsX2RwdF9waW4oaW50ZWxfZmItPmRwdF92bSk7CisJCWlmIChJU19FUlIodm1hKSkKKwkJ CXJldHVybiBQVFJfRVJSKHZtYSk7CisKKwkJcGxhbmVfc3RhdGUtPmdndHRfdm1hID0gdm1hOwor CisJCXZtYSA9IGludGVsX3Bpbl9mYl9vYmpfZHB0KGZiLCAmcGxhbmVfc3RhdGUtPnZpZXcuZ3R0 LCBmYWxzZSwKKwkJCQkJICAgJnBsYW5lX3N0YXRlLT5mbGFncywgaW50ZWxfZmItPmRwdF92bSk7 CisJCWlmIChJU19FUlIodm1hKSkgeworCQkJaW50ZWxfZHB0X3VucGluKGludGVsX2ZiLT5kcHRf dm0pOworCQkJcGxhbmVfc3RhdGUtPmdndHRfdm1hID0gTlVMTDsKKwkJCXJldHVybiBQVFJfRVJS KHZtYSk7CisJCX0KKworCQlwbGFuZV9zdGF0ZS0+ZHB0X3ZtYSA9IHZtYTsKKworCQlXQVJOX09O KHBsYW5lX3N0YXRlLT5nZ3R0X3ZtYSA9PSBwbGFuZV9zdGF0ZS0+ZHB0X3ZtYSk7CisJfQogCiAJ cmV0dXJuIDA7CiB9CiAKIHZvaWQgaW50ZWxfcGxhbmVfdW5waW5fZmIoc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUpCiB7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBvbGRfcGxhbmVfc3RhdGUtPmh3LmZiOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCi0J dm1hID0gZmV0Y2hfYW5kX3plcm8oJm9sZF9wbGFuZV9zdGF0ZS0+dm1hKTsKLQlpZiAodm1hKQot CQlpbnRlbF91bnBpbl9mYl92bWEodm1hLCBvbGRfcGxhbmVfc3RhdGUtPmZsYWdzKTsKKwlpZiAo IWludGVsX2ZiX3VzZXNfZHB0KGZiKSkgeworCQl2bWEgPSBmZXRjaF9hbmRfemVybygmb2xkX3Bs YW5lX3N0YXRlLT5nZ3R0X3ZtYSk7CisJCWlmICh2bWEpCisJCQlpbnRlbF91bnBpbl9mYl92bWEo dm1hLCBvbGRfcGxhbmVfc3RhdGUtPmZsYWdzKTsKKwl9IGVsc2UgeworCQlzdHJ1Y3QgaW50ZWxf ZnJhbWVidWZmZXIgKmludGVsX2ZiID0gdG9faW50ZWxfZnJhbWVidWZmZXIoZmIpOworCisJCXZt YSA9IGZldGNoX2FuZF96ZXJvKCZvbGRfcGxhbmVfc3RhdGUtPmRwdF92bWEpOworCQlpZiAodm1h KQorCQkJaW50ZWxfdW5waW5fZmJfdm1hKHZtYSwgb2xkX3BsYW5lX3N0YXRlLT5mbGFncyk7CisK KwkJdm1hID0gZmV0Y2hfYW5kX3plcm8oJm9sZF9wbGFuZV9zdGF0ZS0+Z2d0dF92bWEpOworCQlp ZiAodm1hKQorCQkJaW50ZWxfZHB0X3VucGluKGludGVsX2ZiLT5kcHRfdm0pOworCX0KIH0KIAog LyoqCkBAIC0xMTA5Miw2ICsxMTQwMCwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF91c2VyX2ZyYW1l YnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCiAJc3RydWN0IGludGVs X2ZyYW1lYnVmZmVyICppbnRlbF9mYiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKTsKIAogCWRy bV9mcmFtZWJ1ZmZlcl9jbGVhbnVwKGZiKTsKKworCWlmIChpbnRlbF9mYl91c2VzX2RwdChmYikp CisJCWludGVsX2RwdF9kZXN0cm95KGludGVsX2ZiLT5kcHRfdm0pOworCiAJaW50ZWxfZnJvbnRi dWZmZXJfcHV0KGludGVsX2ZiLT5mcm9udGJ1ZmZlcik7CiAKIAlrZnJlZShpbnRlbF9mYik7CkBA IC0xMTI2Miw2ICsxMTU3NCwxOCBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQo c3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYiwKIAlpZiAocmV0KQogCQlnb3RvIGVy cjsKIAorCWlmIChpbnRlbF9mYl91c2VzX2RwdChmYikpIHsKKwkJc3RydWN0IGk5MTVfYWRkcmVz c19zcGFjZSAqdm07CisKKwkJdm0gPSBpbnRlbF9kcHRfY3JlYXRlKCZvYmotPmJhc2UpOworCQlp ZiAoSVNfRVJSKHZtKSkgeworCQkJcmV0ID0gUFRSX0VSUih2bSk7CisJCQlnb3RvIGVycjsKKwkJ fQorCisJCWludGVsX2ZiLT5kcHRfdm0gPSB2bTsKKwl9CisKIAlyZXQgPSBkcm1fZnJhbWVidWZm ZXJfaW5pdCgmZGV2X3ByaXYtPmRybSwgZmIsICZpbnRlbF9mYl9mdW5jcyk7CiAJaWYgKHJldCkg ewogCQlkcm1fZXJyKCZkZXZfcHJpdi0+ZHJtLCAiZnJhbWVidWZmZXIgaW5pdCBmYWlsZWQgJWRc biIsIHJldCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5o CmluZGV4IGZjMGRmNGM2M2U4ZGUuLmJmMTJlNzdiY2QxNzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCkBAIC00NCw2ICs0NCw3IEBAIHN0cnVjdCBk cm1fbW9kZV9mYl9jbWQyOwogc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4Owogc3RydWN0 IGRybV9wbGFuZTsKIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGU7CitzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlOwogc3RydWN0IGk5MTVfZ2d0dF92aWV3Owogc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZTsKIHN0cnVjdCBpbnRlbF9jcnRjOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAppbmRleCA2ZDhjZGFhMzY3NDg1Li43ZmU5Njc3N2Rj NjcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXlfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXlfdHlwZXMuaApAQCAtMTI4LDYgKzEyOCw4IEBAIHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciB7 CiAJc3RydWN0IGludGVsX2ZiX3ZpZXcgbm9ybWFsX3ZpZXc7CiAJc3RydWN0IGludGVsX2ZiX3Zp ZXcgcm90YXRlZF92aWV3OwogCXN0cnVjdCBpbnRlbF9mYl92aWV3IHJlbWFwcGVkX3ZpZXc7CisK KwlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICpkcHRfdm07CiB9OwogCiBzdHJ1Y3QgaW50ZWxf ZmJkZXYgewpAQCAtNjEwLDcgKzYxMiw4IEBAIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7CiAJ CWVudW0gZHJtX3NjYWxpbmdfZmlsdGVyIHNjYWxpbmdfZmlsdGVyOwogCX0gaHc7CiAKLQlzdHJ1 Y3QgaTkxNV92bWEgKnZtYTsKKwlzdHJ1Y3QgaTkxNV92bWEgKmdndHRfdm1hOworCXN0cnVjdCBp OTE1X3ZtYSAqZHB0X3ZtYTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogI2RlZmluZSBQTEFORV9I QVNfRkVOQ0UgQklUKDApCiAKQEAgLTE5NzIsOSArMTk3NSwxNSBAQCBpbnRlbF93YWl0X2Zvcl92 YmxhbmtfaWZfYWN0aXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBw aXBlIHBpcAogCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIHBpcGUpOwogfQogCi1z dGF0aWMgaW5saW5lIHUzMiBpbnRlbF9wbGFuZV9nZ3R0X29mZnNldChjb25zdCBzdHJ1Y3QgaW50 ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQorc3RhdGljIGlubGluZSBib29sIGludGVsX2ZiX3VzZXNf ZHB0KGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQogewotCXJldHVybiBpOTE1X2dn dHRfb2Zmc2V0KHN0YXRlLT52bWEpOworCXJldHVybiBmYiAmJiBESVNQTEFZX1ZFUih0b19pOTE1 KGZiLT5kZXYpKSA+PSAxMyAmJgorCQlmYi0+bW9kaWZpZXIgIT0gRFJNX0ZPUk1BVF9NT0RfTElO RUFSOworfQorCitzdGF0aWMgaW5saW5lIHUzMiBpbnRlbF9wbGFuZV9nZ3R0X29mZnNldChjb25z dCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQoreworCXJldHVybiBpOTE1 X2dndHRfb2Zmc2V0KHBsYW5lX3N0YXRlLT5nZ3R0X3ZtYSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg c3RydWN0IGludGVsX2Zyb250YnVmZmVyICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2ZiYy5jCmluZGV4IGIyZjNhYzg0NmY1YjYuLjE4NDdhMTYxY2IzNzQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYwpAQCAtNzM3LDExICs3MzcsMTEgQEAgc3Rh dGljIHZvaWQgaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNoZShzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKIAljYWNoZS0+ZmVuY2VfeV9vZmZzZXQgPSBpbnRlbF9wbGFuZV9mZW5jZV95X29mZnNl dChwbGFuZV9zdGF0ZSk7CiAKIAlkcm1fV0FSTl9PTigmZGV2X3ByaXYtPmRybSwgcGxhbmVfc3Rh dGUtPmZsYWdzICYgUExBTkVfSEFTX0ZFTkNFICYmCi0JCSAgICAhcGxhbmVfc3RhdGUtPnZtYS0+ ZmVuY2UpOworCQkgICAgIXBsYW5lX3N0YXRlLT5nZ3R0X3ZtYS0+ZmVuY2UpOwogCiAJaWYgKHBs YW5lX3N0YXRlLT5mbGFncyAmIFBMQU5FX0hBU19GRU5DRSAmJgotCSAgICBwbGFuZV9zdGF0ZS0+ dm1hLT5mZW5jZSkKLQkJY2FjaGUtPmZlbmNlX2lkID0gcGxhbmVfc3RhdGUtPnZtYS0+ZmVuY2Ut PmlkOworCSAgICBwbGFuZV9zdGF0ZS0+Z2d0dF92bWEtPmZlbmNlKQorCQljYWNoZS0+ZmVuY2Vf aWQgPSBwbGFuZV9zdGF0ZS0+Z2d0dF92bWEtPmZlbmNlLT5pZDsKIAllbHNlCiAJCWNhY2hlLT5m ZW5jZV9pZCA9IC0xOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L3NrbF91bml2ZXJzYWxfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvc2ts X3VuaXZlcnNhbF9wbGFuZS5jCmluZGV4IDBkMzRhNWFkNGUyYjkuLjZkZjNlNzQ1ZjgzMGQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvc2tsX3VuaXZlcnNhbF9wbGFu ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvc2tsX3VuaXZlcnNhbF9wbGFu ZS5jCkBAIC05MzQsNiArOTM0LDIxIEBAIHN0YXRpYyB1MzIgZ2xrX3BsYW5lX2NvbG9yX2N0bChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlyZXR1cm4gcGxhbmVf Y29sb3JfY3RsOwogfQogCitzdGF0aWMgdTMyIHNrbF9zdXJmX2FkZHJlc3MoY29uc3Qgc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKKwkJCSAgICBpbnQgY29sb3JfcGxhbmUp Cit7CisJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcu ZmI7CisJdTMyIG9mZnNldCA9IHBsYW5lX3N0YXRlLT52aWV3LmNvbG9yX3BsYW5lW2NvbG9yX3Bs YW5lXS5vZmZzZXQ7CisKKwlpZiAoaW50ZWxfZmJfdXNlc19kcHQoZmIpKSB7CisJCVdBUk5fT04o b2Zmc2V0ICYgMHgxZmZmZmYpOworCQlyZXR1cm4gb2Zmc2V0ID4+IDk7CisJfSBlbHNlIHsKKwkJ V0FSTl9PTihvZmZzZXQgJiAweGZmZik7CisJCXJldHVybiBvZmZzZXQ7CisJfQorfQorCiBzdGF0 aWMgdm9pZAogc2tsX3Byb2dyYW1fcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAkJ ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKQEAgLTk0NCw3ICs5 NTksNyBAQCBza2xfcHJvZ3JhbV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCWVu dW0gcGxhbmVfaWQgcGxhbmVfaWQgPSBwbGFuZS0+aWQ7CiAJZW51bSBwaXBlIHBpcGUgPSBwbGFu ZS0+cGlwZTsKIAljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0g JnBsYW5lX3N0YXRlLT5ja2V5OwotCXUzMiBzdXJmX2FkZHIgPSBwbGFuZV9zdGF0ZS0+dmlldy5j b2xvcl9wbGFuZVtjb2xvcl9wbGFuZV0ub2Zmc2V0OworCXUzMiBzdXJmX2FkZHIgPSBza2xfc3Vy Zl9hZGRyZXNzKHBsYW5lX3N0YXRlLCBjb2xvcl9wbGFuZSk7CiAJdTMyIHN0cmlkZSA9IHNrbF9w bGFuZV9zdHJpZGUocGxhbmVfc3RhdGUsIGNvbG9yX3BsYW5lKTsKIAljb25zdCBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKIAlpbnQgYXV4X3BsYW5lID0g c2tsX21haW5fdG9fYXV4X3BsYW5lKGZiLCBjb2xvcl9wbGFuZSk7CkBAIC05ODMsNyArOTk4LDcg QEAgc2tsX3Byb2dyYW1fcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAl9CiAKIAlp ZiAoYXV4X3BsYW5lKSB7Ci0JCWF1eF9kaXN0ID0gcGxhbmVfc3RhdGUtPnZpZXcuY29sb3JfcGxh bmVbYXV4X3BsYW5lXS5vZmZzZXQgLSBzdXJmX2FkZHI7CisJCWF1eF9kaXN0ID0gc2tsX3N1cmZf YWRkcmVzcyhwbGFuZV9zdGF0ZSwgYXV4X3BsYW5lKSAtIHN1cmZfYWRkcjsKIAogCQlpZiAoRElT UExBWV9WRVIoZGV2X3ByaXYpIDwgMTIpCiAJCQlhdXhfZGlzdCB8PSBza2xfcGxhbmVfc3RyaWRl KHBsYW5lX3N0YXRlLCBhdXhfcGxhbmUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvZ2VuOF9wcGd0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZ2VuOF9wcGd0dC5o CmluZGV4IDc2YTA4YjljMWY1YzguLmI5MDI4YzJhZDNjN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2dlbjhfcHBndHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9nZW44X3BwZ3R0LmgKQEAgLTYsOCArNiwxNSBAQAogI2lmbmRlZiBfX0dFTjhfUFBHVFRfSF9f CiAjZGVmaW5lIF9fR0VOOF9QUEdUVF9IX18KIAorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgor CitzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlOwogc3RydWN0IGludGVsX2d0OworZW51bSBpOTE1 X2NhY2hlX2xldmVsOwogCiBzdHJ1Y3QgaTkxNV9wcGd0dCAqZ2VuOF9wcGd0dF9jcmVhdGUoc3Ry dWN0IGludGVsX2d0ICpndCk7Cit1NjQgZ2VuOF9nZ3R0X3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBh ZGRyLAorCQkJIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwKKwkJCSB1MzIgZmxhZ3MpOwog CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2dndHQu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2dndHQuYwppbmRleCBkY2IzYjI5OWNm NGFhLi4zNTA2OWNhNWQ3ZGViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9nZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ2d0dC5jCkBA IC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSAiaTkxNV92Z3B1LmgiCiAKICNpbmNsdWRlICJpbnRl bF9ndHQuaCIKKyNpbmNsdWRlICJnZW44X3BwZ3R0LmgiCiAKIHN0YXRpYyBpbnQKIGk5MTVfZ2V0 X2dndHRfdm1hX3BhZ2VzKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKTsKQEAgLTE4Nyw5ICsxODgsOSBA QCBzdGF0aWMgdm9pZCBnbWNoX2dndHRfaW52YWxpZGF0ZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0 KQogCWludGVsX2d0dF9jaGlwc2V0X2ZsdXNoKCk7CiB9CiAKLXN0YXRpYyB1NjQgZ2VuOF9nZ3R0 X3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAotCQkJCWVudW0gaTkxNV9jYWNoZV9sZXZlbCBs ZXZlbCwKLQkJCQl1MzIgZmxhZ3MpCit1NjQgZ2VuOF9nZ3R0X3B0ZV9lbmNvZGUoZG1hX2FkZHJf dCBhZGRyLAorCQkJIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwKKwkJCSB1MzIgZmxhZ3Mp CiB7CiAJZ2VuOF9wdGVfdCBwdGUgPSBhZGRyIHwgX1BBR0VfUFJFU0VOVDsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9ndHQuaAppbmRleCA0NGNlMjdjNTE2MzE5Li5jYTAwYjQ1ODI3Yjc0IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuaApAQCAtMjQ4LDYgKzI0OCw3IEBAIHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgewogCXN0cnVjdCBkbWFfcmVzdiByZXN2OyAvKiByZXNlcnZh dGlvbiBsb2NrIGZvciBhbGwgcGQgb2JqZWN0cywgYW5kIGJ1ZmZlciBwb29sICovCiAjZGVmaW5l IFZNX0NMQVNTX0dHVFQgMAogI2RlZmluZSBWTV9DTEFTU19QUEdUVCAxCisjZGVmaW5lIFZNX0NM QVNTX0RQVCAyCiAKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqc2NyYXRjaFs0XTsKIAkv KioKQEAgLTI1OCw2ICsyNTksOSBAQCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlIHsKIAkvKiBH bG9iYWwgR1RUICovCiAJYm9vbCBpc19nZ3R0OjE7CiAKKwkvKiBEaXNwbGF5IHBhZ2UgdGFibGUg Ki8KKwlib29sIGlzX2RwdDoxOworCiAJLyogU29tZSBzeXN0ZW1zIHN1cHBvcnQgcmVhZC1vbmx5 IG1hcHBpbmdzIGZvciBHR1RUIGFuZC9vciBQUEdUVCAqLwogCWJvb2wgaGFzX3JlYWRfb25seTox OwogCkBAIC0zNTQsNiArMzU4LDcgQEAgc3RydWN0IGk5MTVfcHBndHQgewogfTsKIAogI2RlZmlu ZSBpOTE1X2lzX2dndHQodm0pICgodm0pLT5pc19nZ3R0KQorI2RlZmluZSBpOTE1X2lzX2RwdCh2 bSkgKCh2bSktPmlzX2RwdCkKIAogaW50IF9fbXVzdF9jaGVjawogaTkxNV92bV9sb2NrX29iamVj dHMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sIHN0cnVjdCBpOTE1X2dlbV93d19jdHgg Knd3KTsKLS0gCjIuMjcuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==