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=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,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 8CBA6C2D0DB for ; Mon, 20 Jan 2020 17:47:40 +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 6D25622525 for ; Mon, 20 Jan 2020 17:47:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6D25622525 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.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 030536EA5E; Mon, 20 Jan 2020 17:47:40 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 32B5E6EA55 for ; Mon, 20 Jan 2020 17:47:38 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Jan 2020 09:47:37 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,342,1574150400"; d="scan'208";a="215295618" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga007.jf.intel.com with SMTP; 20 Jan 2020 09:47:35 -0800 Received: by stinkbox (sSMTP sendmail emulation); Mon, 20 Jan 2020 19:47:34 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Mon, 20 Jan 2020 19:47:12 +0200 Message-Id: <20200120174728.21095-3-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200120174728.21095-1-ville.syrjala@linux.intel.com> References: <20200120174728.21095-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 02/17] drm/i915: Move linetime wms into the crtc state 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClRo ZSBsaW5ldGltZSB3YXRlcm1hcmtzIHJlYWxseSBoYXZlIHZlcnkgbGl0dGxlIGluIGNvbW1vbiB3 aXRoIHRoZQpwbGFuZSB3YXRlcm1hcmtzLiBJdCBsb29rcyB0byBiZSBjbGVhbmVyIHRvIHNpbXBs eSB0cmFjayB0aGVtIGluCnRoZSBjcnRjX3N0YXRlIGFuZCBwcm9ncmFtIHRoZW0gZnJvbSB0aGUg bm9ybWFsIG1vZGVzZXQvZmFzdHNldApwYXRocy4KClRoZSBvbmx5IGRhcmsgY2xvdWQgY29tZXMg ZnJvbSB0aGUgZmFjdCB0aGF0IHRoZSByZWdpc3RlciBpcwpzdGlsbCBzdXBwb3NlZGx5IHNpbmds ZSBidWZmZXJlZC4gU28gaW4gdGhlb3J5IGl0IG1pZ2h0IHN0aWxsCm5lZWQgc29tZSBmb3JtIG9m IHR3byBzdGFnZSBwcm9ncmFtbWluZy4gTm90ZSB0aGF0IGV2ZW4gdGhvdWdoCkhTVy9CRFdoYXZl IHR3byBzdGFnZSBwcm9ncmFtbWluZyB3ZSBuZXZlciBjb21wdXRlZCBhbnkgc3BlY2lhbAppbnRl cm1lZGlhdGUgdmFsdWVzIGZvciB0aGUgbGluZXRpbWUgd2F0ZXJtYXJrcywgYW5kIG9uIFNLTCsK d2UgZG9uJ3QgZXZlbiBoYXZlIHRoZSB0d28gc3RhZ2Ugc3R1ZmYgcGx1Z2dlZCBpbiBzaW5jZSBl dmVyeXRoaW5nCmVsc2UgaXMgZG91YmxlIGJ1ZmZlcmVkLiBTbyBsZXQncyBhc3N1bWUgaXQncyBh bGwgZmluZSBhbmQKY29udGludWUgZG9pbmcgd2hhdCB3ZSd2ZSBiZWVuIGRvaW5nLgoKQWN0dWFs bHkgb24gSFNXL0JEVyB0aGUgdmFsdWUgc2hvdWxkIG5vdCBldmVuIGNoYW5nZSB3aXRob3V0CmEg ZnVsbCBtb2Rlc2V0IHNpbmNlIGl0IGRvZXNuJ3QgYWNjb3VudCBmb3IgcGZpdCBkb3duc2NhbGlu Zy4KVGh1cyBvbmx5IGZhc3Rib290IG1pZ2h0IGJlIGFmZmVjdGVkLiBCdXQgb24gU0tMKyB0aGUg cGZpdApzY2FsaW5nIGZhY3RvciBpcyB0YWtlIGludG8gY29uc2lkZXJhdGlvbiBzbyB0aGUgdmFs dWUgbWF5CmNoYW5nZSBkdXJpbmcgYW55IGZhc3RzZXQuCgpBcyBhIGJvbnVzIHdlJ2xsIHBsdWcg dGhpcyB0aGluZyBpbnRvIHRoZSBzdGF0ZQpjaGVja2VyL2R1bXAgbm93LgoKdjI6IFJlYmFzZSBk dWUgdG8gYmlnam9pbmVyIHByZXAKdjI6IE9ubHkgY29tcHV0ZSBpcHMgbGluZXRpbWUgZm9yIElQ UyBjYXBhYmxlIHBpcGVzLgogICAgQnNwZWMgc2F5cyB0aGUgcmVnaXN0ZXIgdmFsdWVzIGlzIGln bm9yZWQgZm9yIG90aGVyCiAgICBwaXBlcywgYnV0IGluIGZhY3QgaXQgY2FuJ3QgZXZlbiBiZSB3 cml0dGVuIHNvIHRoZQogICAgc3RhdGUgY2hlY2tlciBiZWNvbWVzIHVuaGFwcHkgaWYgd2UgZG9u J3QgY29tcHV0ZQogICAgaXQgYXMgemVyby4KCkNjOiBTdGFuaXNsYXYgTGlzb3Zza2l5IDxzdGFu aXNsYXYubGlzb3Zza2l5QGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAgOTUgKysrKysrKysrKysrKy0KIC4uLi9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCAgICB8ICAgNyArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAgICAgICB8IDExNyArLS0tLS0tLS0tLS0tLS0t LS0KIDQgZmlsZXMgY2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgMTIyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNzZj MTczNDFkZjJiLi44ZGNiODZjNTFhYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheS5jCkBAIC02ODg1LDYgKzY4ODUsMTYgQEAgc3RhdGljIHZvaWQgaWNs X3BpcGVfbWJ1c19lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJSTkxNV9XUklURShQ SVBFX01CVVNfREJPWF9DVEwocGlwZSksIHZhbCk7CiB9CiAKK3N0YXRpYyB2b2lkIGhzd19zZXRf bGluZXRpbWVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCit7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7CisKKwlJOTE1X1dSSVRFKFdNX0xJTkVUSU1FKGNydGMtPnBpcGUpLAor CQkgICBIU1dfTElORVRJTUUoY3J0Y19zdGF0ZS0+bGluZXRpbWUpIHwKKwkJICAgSFNXX0lQU19M SU5FVElNRShjcnRjX3N0YXRlLT5pcHNfbGluZXRpbWUpKTsKK30KKwogc3RhdGljIHZvaWQgaHN3 X3NldF9mcmFtZV9zdGFydF9kZWxheShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKQEAgLTY5NjksNiArNjk3OSw4IEBAIHN0YXRpYyB2b2lkIGhz d19jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA8IDkpCiAJCWludGVsX2Rpc2FibGVfcHJpbWFyeV9wbGFuZShuZXdf Y3J0Y19zdGF0ZSk7CiAKKwloc3dfc2V0X2xpbmV0aW1lX3dtKG5ld19jcnRjX3N0YXRlKTsKKwog CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQogCQlpY2xfc2V0X3BpcGVfY2hpY2tlbihj cnRjKTsKIApAQCAtMTA5NDcsNiArMTA5NTksNyBAQCBzdGF0aWMgYm9vbCBoc3dfZ2V0X3BpcGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWVudW0gaW50ZWxfZGlzcGxheV9wb3dl cl9kb21haW4gcG93ZXJfZG9tYWluOwogCXU2NCBwb3dlcl9kb21haW5fbWFzazsKIAlib29sIGFj dGl2ZTsKKwl1MzIgdG1wOwogCiAJcGlwZV9jb25maWctPm1hc3Rlcl90cmFuc2NvZGVyID0gSU5W QUxJRF9UUkFOU0NPREVSOwogCkBAIC0xMTAxMCw3ICsxMTAyMyw3IEBAIHN0YXRpYyBib29sIGhz d19nZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJcGlwZV9jb25maWct PmNzY19tb2RlID0gSTkxNV9SRUFEKFBJUEVfQ1NDX01PREUoY3J0Yy0+cGlwZSkpOwogCiAJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewotCQl1MzIgdG1wID0gSTkxNV9SRUFEKFNLTF9C T1RUT01fQ09MT1IoY3J0Yy0+cGlwZSkpOworCQl0bXAgPSBJOTE1X1JFQUQoU0tMX0JPVFRPTV9D T0xPUihjcnRjLT5waXBlKSk7CiAKIAkJaWYgKHRtcCAmIFNLTF9CT1RUT01fQ09MT1JfR0FNTUFf RU5BQkxFKQogCQkJcGlwZV9jb25maWctPmdhbW1hX2VuYWJsZSA9IHRydWU7CkBAIC0xMTAyMyw2 ICsxMTAzNiwxMiBAQCBzdGF0aWMgYm9vbCBoc3dfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAogCiAJaW50ZWxfY29sb3JfZ2V0X2NvbmZpZyhwaXBlX2NvbmZpZyk7CiAK Kwl0bXAgPSBJOTE1X1JFQUQoV01fTElORVRJTUUoY3J0Yy0+cGlwZSkpOworCXBpcGVfY29uZmln LT5saW5ldGltZSA9IFJFR19GSUVMRF9HRVQoSFNXX0xJTkVUSU1FX01BU0ssIHRtcCk7CisJaWYg KElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwgSVNfSEFTV0VMTChkZXZfcHJpdikpCisJCXBpcGVf Y29uZmlnLT5pcHNfbGluZXRpbWUgPQorCQkJUkVHX0ZJRUxEX0dFVChIU1dfSVBTX0xJTkVUSU1F X01BU0ssIHRtcCk7CisKIAlwb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fUElQRV9QQU5FTF9G SVRURVIoY3J0Yy0+cGlwZSk7CiAJV0FSTl9PTihwb3dlcl9kb21haW5fbWFzayAmIEJJVF9VTEwo cG93ZXJfZG9tYWluKSk7CiAKQEAgLTEyNTA4LDYgKzEyNTI3LDUzIEBAIHN0YXRpYyBpbnQgaWNs X2NvbXB1dGVfcG9ydF9zeW5jX2NydGNfc3RhdGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHUxNiBoc3dfbGluZXRpbWVfd20oY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCit7CisJY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQorCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0 ZWRfbW9kZTsKKworCWlmICghY3J0Y19zdGF0ZS0+aHcuZW5hYmxlKQorCQlyZXR1cm4gMDsKKwor CXJldHVybiBESVZfUk9VTkRfQ0xPU0VTVChhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbCAqIDEw MDAgKiA4LAorCQkJCSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrKTsKK30KKworc3RhdGljIHUx NiBoc3dfaXBzX2xpbmV0aW1lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQoreworCWNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KKwkJ dG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOworCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KKwkJJmNydGNfc3RhdGUtPmh3 LmFkanVzdGVkX21vZGU7CisKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmVuYWJsZSkKKwkJcmV0dXJu IDA7CisKKwlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1QoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90 YWwgKiAxMDAwICogOCwKKwkJCQkgc3RhdGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGspOworfQorCitz dGF0aWMgdTE2IHNrbF9saW5ldGltZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwor CXUxNiBsaW5ldGltZV93bTsKKworCWlmICghY3J0Y19zdGF0ZS0+aHcuZW5hYmxlKQorCQlyZXR1 cm4gMDsKKworCWxpbmV0aW1lX3dtID0gRElWX1JPVU5EX1VQKGFkanVzdGVkX21vZGUtPmNydGNf aHRvdGFsICogMTAwMCAqIDgsCisJCQkJICAgY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSk7CisKKwkv KiBEaXNwbGF5IFdBICMxMTM1OiBCWFQ6QUxMIEdMSzpBTEwgKi8KKwlpZiAoSVNfR0VOOV9MUChk ZXZfcHJpdikgJiYgZGV2X3ByaXYtPmlwY19lbmFibGVkKQorCQlsaW5ldGltZV93bSAvPSAyOwor CisJcmV0dXJuIGxpbmV0aW1lX3dtOworfQorCiBzdGF0aWMgaW50IGludGVsX2NydGNfYXRvbWlj X2NoZWNrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCSAgIHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjKQogewpAQCAtMTI1NzksNiArMTI2NDUsMTQgQEAgc3RhdGljIGludCBp bnRlbF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwK IAlpZiAoSEFTX0lQUyhkZXZfcHJpdikpCiAJCWNydGNfc3RhdGUtPmlwc19lbmFibGVkID0gaHN3 X2NvbXB1dGVfaXBzX2NvbmZpZyhjcnRjX3N0YXRlKTsKIAorCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDkpIHsKKwkJY3J0Y19zdGF0ZS0+bGluZXRpbWUgPSBza2xfbGluZXRpbWVfd20oY3J0 Y19zdGF0ZSk7CisJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8IElTX0hBU1dF TEwoZGV2X3ByaXYpKSB7CisJCWNydGNfc3RhdGUtPmxpbmV0aW1lID0gaHN3X2xpbmV0aW1lX3dt KGNydGNfc3RhdGUpOworCQlpZiAoaHN3X2NydGNfc3VwcG9ydHNfaXBzKGNydGMpKQorCQkJY3J0 Y19zdGF0ZS0+aXBzX2xpbmV0aW1lID0gaHN3X2lwc19saW5ldGltZV93bShjcnRjX3N0YXRlKTsK Kwl9CisKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMjg2OCw2ICsxMjk0Miw5IEBAIHN0YXRpYyB2 b2lkIGludGVsX2R1bXBfcGlwZV9jb25maWcoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnLAogCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdywgcGlwZV9jb25m aWctPnBpcGVfc3JjX2gsCiAJCSAgICAgIHBpcGVfY29uZmlnLT5waXhlbF9yYXRlKTsKIAorCURS TV9ERUJVR19LTVMoImxpbmV0aW1lOiAlZCwgaXBzIGxpbmV0aW1lOiAlZFxuIiwKKwkJICAgICAg cGlwZV9jb25maWctPmxpbmV0aW1lLCBwaXBlX2NvbmZpZy0+aXBzX2xpbmV0aW1lKTsKKwogCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCiAJCURSTV9ERUJVR19LTVMoIm51bV9zY2FsZXJz OiAlZCwgc2NhbGVyX3VzZXJzOiAweCV4LCBzY2FsZXJfaWQ6ICVkXG4iLAogCQkJICAgICAgY3J0 Yy0+bnVtX3NjYWxlcnMsCkBAIC0xMzYzOCwxMCArMTM3MTUsMTIgQEAgaW50ZWxfcGlwZV9jb25m aWdfY29tcGFyZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3VycmVudF9jb25maWcs CiAJCVBJUEVfQ09ORl9DSEVDS19CT09MKGdhbW1hX2VuYWJsZSk7CiAJCVBJUEVfQ09ORl9DSEVD S19CT09MKGNzY19lbmFibGUpOwogCisJCVBJUEVfQ09ORl9DSEVDS19JKGxpbmV0aW1lKTsKKwkJ UElQRV9DT05GX0NIRUNLX0koaXBzX2xpbmV0aW1lKTsKKwogCQlicF9nYW1tYSA9IGludGVsX2Nv bG9yX2dldF9nYW1tYV9iaXRfcHJlY2lzaW9uKHBpcGVfY29uZmlnKTsKIAkJaWYgKGJwX2dhbW1h KQogCQkJUElQRV9DT05GX0NIRUNLX0NPTE9SX0xVVChnYW1tYV9tb2RlLCBody5nYW1tYV9sdXQs IGJwX2dhbW1hKTsKLQogCX0KIAogCVBJUEVfQ09ORl9DSEVDS19CT09MKGRvdWJsZV93aWRlKTsK QEAgLTE0Nzk4LDYgKzE0ODc3LDE4IEBAIHN0YXRpYyB2b2lkIGludGVsX3BpcGVfZmFzdHNldChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJCQlpbGtfcGZp dF9kaXNhYmxlKG9sZF9jcnRjX3N0YXRlKTsKIAl9CiAKKwkvKgorCSAqIFRoZSByZWdpc3RlciBp cyBzdXBwb3NlZGx5IHNpbmdsZSBidWZmZXJlZCBzbyBwZXJoYXBzCisJICogbm90IDEwMCUgY29y cmVjdCB0byBkbyB0aGlzIGhlcmUuIEJ1dCBTS0wrIGNhbGN1bGF0ZQorCSAqIHRoaXMgYmFzZWQg b24gdGhlIGFkanVzdCBwaXhlbCByYXRlIHNvIHBmaXQgY2hhbmdlcyBkbworCSAqIGFmZmVjdCBp dCBhbmQgc28gaXQgbXVzdCBiZSB1cGRhdGVkIGZvciBmYXN0c2V0cy4KKwkgKiBIU1cvQkRXIG9u bHkgcmVhbGx5IG5lZWQgdGhpcyBoZXJlIGZvciBmYXN0Ym9vdCwgYWZ0ZXIKKwkgKiB0aGF0IHRo ZSB2YWx1ZSBzaG91bGQgbm90IGNoYW5nZSB3aXRob3V0IGEgZnVsbCBtb2Rlc2V0LgorCSAqLwor CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkgfHwKKwkgICAgSVNfQlJPQURXRUxMKGRldl9w cml2KSB8fCBJU19IQVNXRUxMKGRldl9wcml2KSkKKwkJaHN3X3NldF9saW5ldGltZV93bShuZXdf Y3J0Y19zdGF0ZSk7CisKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKIAkJaWNsX3Nl dF9waXBlX2NoaWNrZW4oY3J0Yyk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCmluZGV4IGJmZTg1ZTE4MGUxNi4uMmQ4NDkxNTkw NTAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXlfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXlfdHlwZXMuaApAQCAtNjYyLDggKzY2Miw2IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9z dGF0ZSB7CiAKIHN0cnVjdCBpbnRlbF9waXBlX3dtIHsKIAlzdHJ1Y3QgaW50ZWxfd21fbGV2ZWwg d21bNV07Ci0JdTE2IGxpbmV0aW1lOwotCXUxNiBpcHNfbGluZXRpbWU7CiAJYm9vbCBmYmNfd21f ZW5hYmxlZDsKIAlib29sIHBpcGVfZW5hYmxlZDsKIAlib29sIHNwcml0ZXNfZW5hYmxlZDsKQEAg LTY3OSw3ICs2NzcsNiBAQCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtIHsKIAogc3RydWN0IHNrbF9waXBl X3dtIHsKIAlzdHJ1Y3Qgc2tsX3BsYW5lX3dtIHBsYW5lc1tJOTE1X01BWF9QTEFORVNdOwotCXUz MiBsaW5ldGltZTsKIH07CiAKIGVudW0gdmx2X3dtX2xldmVsIHsKQEAgLTEwNTAsNiArMTA0Nywx MCBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7CiAJCXN0cnVjdCBkcm1fZHNjX2NvbmZpZyBj b25maWc7CiAJfSBkc2M7CiAKKwkvKiBIU1crIGxpbmV0aW1lIHdhdGVybWFya3MgKi8KKwl1MTYg bGluZXRpbWU7CisJdTE2IGlwc19saW5ldGltZTsKKwogCS8qIEZvcndhcmQgRXJyb3IgY29ycmVj dGlvbiBTdGF0ZSAqLwogCWJvb2wgZmVjX2VuYWJsZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK aW5kZXggMDc3YWYyMmI4MzQwLi41YmQ0MDE4NGRkZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aApAQCAtNzQ0LDcgKzc0NCw2IEBAIHN0cnVjdCBpbGtfd21fdmFsdWVzIHsKIAl1MzIgd21fcGlw ZVszXTsKIAl1MzIgd21fbHBbM107CiAJdTMyIHdtX2xwX3NwclszXTsKLQl1MzIgd21fbGluZXRp bWVbM107CiAJYm9vbCBlbmFibGVfZmJjX3dtOwogCWVudW0gaW50ZWxfZGRiX3BhcnRpdGlvbmlu ZyBwYXJ0aXRpb25pbmc7CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggYTRiNjZlZTFl M2Q4Li5lZGQ2MjM2NzAwNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMjgxMCwzNCAr MjgxMCw2IEBAIHN0YXRpYyB2b2lkIGlsa19jb21wdXRlX3dtX2xldmVsKGNvbnN0IHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlyZXN1bHQtPmVuYWJsZSA9IHRydWU7CiB9CiAK LXN0YXRpYyB1MzIKLWhzd19saW5ldGltZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKLXsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwotCi0JaWYgKCFjcnRj X3N0YXRlLT5ody5hY3RpdmUpCi0JCXJldHVybiAwOwotCi0JcmV0dXJuIERJVl9ST1VORF9DTE9T RVNUKGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsICogMTAwMCAqIDgsCi0JCQkJIGFkanVzdGVk X21vZGUtPmNydGNfY2xvY2spOwotfQotCi1zdGF0aWMgdTMyCi1oc3dfaXBzX2xpbmV0aW1lX3dt KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQotewotCWNvbnN0IHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRl KGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7Ci0KLQlp ZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSkKLQkJcmV0dXJuIDA7Ci0KLQlyZXR1cm4gRElWX1JP VU5EX0NMT1NFU1QoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWwgKiAxMDAwICogOCwKLQkJCQkg c3RhdGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGspOwotfQotCiBzdGF0aWMgdm9pZCBpbnRlbF9yZWFk X3dtX2xhdGVuY3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAgdTE2 IHdtWzhdKQogewpAQCAtMzE3OCwxMSArMzE1MCw2IEBAIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVf cGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlpbGtfY29tcHV0 ZV93bV9sZXZlbChkZXZfcHJpdiwgaW50ZWxfY3J0YywgMCwgY3J0Y19zdGF0ZSwKIAkJCSAgICAg cHJpc3RhdGUsIHNwcnN0YXRlLCBjdXJzdGF0ZSwgJnBpcGVfd20tPndtWzBdKTsKIAotCWlmIChJ U19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Ci0JCXBpcGVf d20tPmxpbmV0aW1lID0gaHN3X2xpbmV0aW1lX3dtKGNydGNfc3RhdGUpOwotCQlwaXBlX3dtLT5p cHNfbGluZXRpbWUgPSBoc3dfaXBzX2xpbmV0aW1lX3dtKGNydGNfc3RhdGUpOwotCX0KLQogCWlm ICghaWxrX3ZhbGlkYXRlX3BpcGVfd20oZGV2X3ByaXYsIHBpcGVfd20pKQogCQlyZXR1cm4gLUVJ TlZBTDsKIApAQCAtMzQzMyw5ICszNDAwLDYgQEAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21f cmVzdWx0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAkJaWYgKFdBUk5f T04oIXItPmVuYWJsZSkpCiAJCQljb250aW51ZTsKLQkJcmVzdWx0cy0+d21fbGluZXRpbWVbcGlw ZV0gPQotCQkJSFNXX0xJTkVUSU1FKHBpcGVfd20tPmxpbmV0aW1lKSB8Ci0JCQlIU1dfSVBTX0xJ TkVUSU1FKHBpcGVfd20tPmlwc19saW5ldGltZSk7CiAKIAkJcmVzdWx0cy0+d21fcGlwZVtwaXBl XSA9CiAJCQkoci0+cHJpX3ZhbCA8PCBXTTBfUElQRV9QTEFORV9TSElGVCkgfApAQCAtMzQ3NSw3 ICszNDM5LDYgQEAgaWxrX2ZpbmRfYmVzdF9yZXN1bHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCiAvKiBkaXJ0eSBiaXRzIHVzZWQgdG8gdHJhY2sgd2hpY2ggd2F0ZXJtYXJr cyBuZWVkIGNoYW5nZXMgKi8KICNkZWZpbmUgV01fRElSVFlfUElQRShwaXBlKSAoMSA8PCAocGlw ZSkpCi0jZGVmaW5lIFdNX0RJUlRZX0xJTkVUSU1FKHBpcGUpICgxIDw8ICg4ICsgKHBpcGUpKSkK ICNkZWZpbmUgV01fRElSVFlfTFAod21fbHApICgxIDw8ICgxNSArICh3bV9scCkpKQogI2RlZmlu ZSBXTV9ESVJUWV9MUF9BTEwgKFdNX0RJUlRZX0xQKDEpIHwgV01fRElSVFlfTFAoMikgfCBXTV9E SVJUWV9MUCgzKSkKICNkZWZpbmUgV01fRElSVFlfRkJDICgxIDw8IDI0KQpAQCAtMzQ5MCwxMiAr MzQ1Myw2IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaWxrX2NvbXB1dGVfd21fZGlydHkoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWludCB3bV9scDsKIAogCWZvcl9lYWNoX3Bp cGUoZGV2X3ByaXYsIHBpcGUpIHsKLQkJaWYgKG9sZC0+d21fbGluZXRpbWVbcGlwZV0gIT0gbmV3 LT53bV9saW5ldGltZVtwaXBlXSkgewotCQkJZGlydHkgfD0gV01fRElSVFlfTElORVRJTUUocGlw ZSk7Ci0JCQkvKiBNdXN0IGRpc2FibGUgTFAxKyB3YXRlcm1hcmtzIHRvbyAqLwotCQkJZGlydHkg fD0gV01fRElSVFlfTFBfQUxMOwotCQl9Ci0KIAkJaWYgKG9sZC0+d21fcGlwZVtwaXBlXSAhPSBu ZXctPndtX3BpcGVbcGlwZV0pIHsKIAkJCWRpcnR5IHw9IFdNX0RJUlRZX1BJUEUocGlwZSk7CiAJ CQkvKiBNdXN0IGRpc2FibGUgTFAxKyB3YXRlcm1hcmtzIHRvbyAqLwpAQCAtMzU4NywxMyArMzU0 NCw2IEBAIHN0YXRpYyB2b2lkIGlsa193cml0ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCWlmIChkaXJ0eSAmIFdNX0RJUlRZX1BJUEUoUElQRV9DKSkKIAkJ STkxNV9XUklURShXTTBfUElQRUNfSVZCLCByZXN1bHRzLT53bV9waXBlWzJdKTsKIAotCWlmIChk aXJ0eSAmIFdNX0RJUlRZX0xJTkVUSU1FKFBJUEVfQSkpCi0JCUk5MTVfV1JJVEUoV01fTElORVRJ TUUoUElQRV9BKSwgcmVzdWx0cy0+d21fbGluZXRpbWVbMF0pOwotCWlmIChkaXJ0eSAmIFdNX0RJ UlRZX0xJTkVUSU1FKFBJUEVfQikpCi0JCUk5MTVfV1JJVEUoV01fTElORVRJTUUoUElQRV9CKSwg cmVzdWx0cy0+d21fbGluZXRpbWVbMV0pOwotCWlmIChkaXJ0eSAmIFdNX0RJUlRZX0xJTkVUSU1F KFBJUEVfQykpCi0JCUk5MTVfV1JJVEUoV01fTElORVRJTUUoUElQRV9DKSwgcmVzdWx0cy0+d21f bGluZXRpbWVbMl0pOwotCiAJaWYgKGRpcnR5ICYgV01fRElSVFlfRERCKSB7CiAJCWlmIChJU19I QVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7CiAJCQl2YWwgPSBJ OTE1X1JFQUQoV01fTUlTQyk7CkBAIC00ODQ3LDI0ICs0Nzk3LDYgQEAgc2tsX2NvbXB1dGVfd21f bGV2ZWxzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCX0KIH0K IAotc3RhdGljIHUzMgotc2tsX2NvbXB1dGVfbGluZXRpbWVfd20oY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlID0gY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5kZXYpOwotCXVpbnRfZml4ZWRfMTZfMTZfdCBsaW5l dGltZV91czsKLQl1MzIgbGluZXRpbWVfd207Ci0KLQlsaW5ldGltZV91cyA9IGludGVsX2dldF9s aW5ldGltZV91cyhjcnRjX3N0YXRlKTsKLQlsaW5ldGltZV93bSA9IGZpeGVkMTZfdG9fdTMyX3Jv dW5kX3VwKG11bF91MzJfZml4ZWQxNig4LCBsaW5ldGltZV91cykpOwotCi0JLyogRGlzcGxheSBX QSAjMTEzNTogQlhUOkFMTCBHTEs6QUxMICovCi0JaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpICYm IGRldl9wcml2LT5pcGNfZW5hYmxlZCkKLQkJbGluZXRpbWVfd20gLz0gMjsKLQotCXJldHVybiBs aW5ldGltZV93bTsKLX0KLQogc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfdHJhbnNpdGlvbl93bShj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgICAgICBjb25z dCBzdHJ1Y3Qgc2tsX3dtX3BhcmFtcyAqd3AsCiAJCQkJICAgICAgc3RydWN0IHNrbF9wbGFuZV93 bSAqd20pCkBAIC01MDUyLDggKzQ5ODQsNiBAQCBzdGF0aWMgaW50IHNrbF9idWlsZF9waXBlX3dt KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQkJcmV0dXJuIHJldDsKIAl9 CiAKLQlwaXBlX3dtLT5saW5ldGltZSA9IHNrbF9jb21wdXRlX2xpbmV0aW1lX3dtKGNydGNfc3Rh dGUpOwotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTUxNzgsNyArNTEwOCw3IEBAIHN0YXRpYyBib29s IHNrbF9waXBlX3dtX2VxdWFscyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCXJldHVybiBm YWxzZTsKIAl9CiAKLQlyZXR1cm4gd20xLT5saW5ldGltZSA9PSB3bTItPmxpbmV0aW1lOworCXJl dHVybiB0cnVlOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgc2tsX2RkYl9lbnRyaWVzX292ZXJs YXAoY29uc3Qgc3RydWN0IHNrbF9kZGJfZW50cnkgKmEsCkBAIC01NTU5LDQwICs1NDg5LDYgQEAg c2tsX2NvbXB1dGVfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyB2b2lkIHNrbF9hdG9taWNfdXBkYXRlX2NydGNfd20oc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQkJICAgICAgc3RydWN0IGludGVsX2NydGMgKmNy dGMpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5iYXNlLmRldik7Ci0JY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUg PQotCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKLQljb25z dCBzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gPSAmY3J0Y19zdGF0ZS0+d20uc2tsLm9wdGlt YWw7Ci0JZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwotCi0JaWYgKChzdGF0ZS0+d21fcmVz dWx0cy5kaXJ0eV9waXBlcyAmIEJJVChjcnRjLT5waXBlKSkgPT0gMCkKLQkJcmV0dXJuOwotCi0J STkxNV9XUklURShXTV9MSU5FVElNRShwaXBlKSwgSFNXX0xJTkVUSU1FKHBpcGVfd20tPmxpbmV0 aW1lKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNrbF9pbml0aWFsX3dtKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlLAotCQkJICAgc3RydWN0IGludGVsX2NydGMgKmNydGMpCi17Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 Ci0JY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQotCQlpbnRlbF9h dG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKLQlzdHJ1Y3Qgc2tsX2RkYl92 YWx1ZXMgKnJlc3VsdHMgPSAmc3RhdGUtPndtX3Jlc3VsdHM7Ci0KLQlpZiAoKHJlc3VsdHMtPmRp cnR5X3BpcGVzICYgQklUKGNydGMtPnBpcGUpKSA9PSAwKQotCQlyZXR1cm47Ci0KLQltdXRleF9s b2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwotCi0JaWYgKGNydGNfc3RhdGUtPnVhcGkuYWN0 aXZlX2NoYW5nZWQpCi0JCXNrbF9hdG9taWNfdXBkYXRlX2NydGNfd20oc3RhdGUsIGNydGMpOwot Ci0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwotfQotCiBzdGF0aWMgdm9p ZCBpbGtfY29tcHV0ZV93bV9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCQkJCSAgc3RydWN0IGludGVsX3dtX2NvbmZpZyAqY29uZmlnKQogewpAQCAtNTcxNSw5ICs1 NjExLDYgQEAgdm9pZCBza2xfcGlwZV93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX2NydGMg KmNydGMsCiAKIAlpZiAoIWNydGMtPmFjdGl2ZSkKIAkJcmV0dXJuOwotCi0JdmFsID0gSTkxNV9S RUFEKFdNX0xJTkVUSU1FKHBpcGUpKTsKLQlvdXQtPmxpbmV0aW1lID0gUkVHX0ZJRUxEX0dFVChI U1dfTElORVRJTUVfTUFTSywgdmFsKTsKIH0KIAogdm9pZCBza2xfd21fZ2V0X2h3X3N0YXRlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTU3NTgsOCArNTY1MSw2IEBAIHN0 YXRpYyB2b2lkIGlsa19waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YykKIAl9OwogCiAJaHctPndtX3BpcGVbcGlwZV0gPSBJOTE1X1JFQUQod20wX3BpcGVfcmVnW3Bp cGVdKTsKLQlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2 KSkKLQkJaHctPndtX2xpbmV0aW1lW3BpcGVdID0gSTkxNV9SRUFEKFdNX0xJTkVUSU1FKHBpcGUp KTsKIAogCW1lbXNldChhY3RpdmUsIDAsIHNpemVvZigqYWN0aXZlKSk7CiAKQEAgLTU3NzgsMTAg KzU2NjksNiBAQCBzdGF0aWMgdm9pZCBpbGtfcGlwZV93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGlu dGVsX2NydGMgKmNydGMpCiAJCWFjdGl2ZS0+d21bMF0ucHJpX3ZhbCA9ICh0bXAgJiBXTTBfUElQ RV9QTEFORV9NQVNLKSA+PiBXTTBfUElQRV9QTEFORV9TSElGVDsKIAkJYWN0aXZlLT53bVswXS5z cHJfdmFsID0gKHRtcCAmIFdNMF9QSVBFX1NQUklURV9NQVNLKSA+PiBXTTBfUElQRV9TUFJJVEVf U0hJRlQ7CiAJCWFjdGl2ZS0+d21bMF0uY3VyX3ZhbCA9IHRtcCAmIFdNMF9QSVBFX0NVUlNPUl9N QVNLOwotCQlhY3RpdmUtPmxpbmV0aW1lID0gUkVHX0ZJRUxEX0dFVChIU1dfTElORVRJTUVfTUFT SywKLQkJCQkJCSBody0+d21fbGluZXRpbWVbcGlwZV0pOwotCQlhY3RpdmUtPmlwc19saW5ldGlt ZSA9IFJFR19GSUVMRF9HRVQoSFNXX0lQU19MSU5FVElNRV9NQVNLLAotCQkJCQkJICAgICBody0+ d21fbGluZXRpbWVbcGlwZV0pOwogCX0gZWxzZSB7CiAJCWludCBsZXZlbCwgbWF4X2xldmVsID0g aWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CiAKQEAgLTcyNjQsOCArNzE1MSw2IEBAIHZvaWQg aW50ZWxfaW5pdF9wbShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJLyogRm9y IEZJRk8gd2F0ZXJtYXJrIHVwZGF0ZXMgKi8KIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5 KSB7CiAJCXNrbF9zZXR1cF93bV9sYXRlbmN5KGRldl9wcml2KTsKLQkJZGV2X3ByaXYtPmRpc3Bs YXkuaW5pdGlhbF93YXRlcm1hcmtzID0gc2tsX2luaXRpYWxfd207Ci0JCWRldl9wcml2LT5kaXNw bGF5LmF0b21pY191cGRhdGVfd2F0ZXJtYXJrcyA9IHNrbF9hdG9taWNfdXBkYXRlX2NydGNfd207 CiAJCWRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfZ2xvYmFsX3dhdGVybWFya3MgPSBza2xfY29t cHV0ZV93bTsKIAl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKSB7CiAJCWlsa19z ZXR1cF93bV9sYXRlbmN5KGRldl9wcml2KTsKLS0gCjIuMjQuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==