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=-10.9 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY, URIBL_BLOCKED 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 8BE55C433E0 for ; Fri, 5 Feb 2021 13:52:19 +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 17F1C64DF6 for ; Fri, 5 Feb 2021 13:52:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 17F1C64DF6 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 88DEB6F445; Fri, 5 Feb 2021 13:52:18 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 844FE6F445 for ; Fri, 5 Feb 2021 13:52:17 +0000 (UTC) IronPort-SDR: H8ggYw4LqNhhga4GZj1U2B4cm0eMt+jYJ4S2a3zLbLPcuiQsXW0cgfM2d02ik44LbnSdh+UC97 mypWShiXKZLQ== X-IronPort-AV: E=McAfee;i="6000,8403,9885"; a="242936671" X-IronPort-AV: E=Sophos;i="5.81,155,1610438400"; d="scan'208";a="242936671" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Feb 2021 05:52:16 -0800 IronPort-SDR: HTgNS/qY/QZzQdNrcrh+jgADyYcb/kipd38oieKq24cK2rqS5UbwG8i7DRpc/KJrq5Twyvc2us 69gwJ62G3tVg== X-IronPort-AV: E=Sophos;i="5.81,155,1610438400"; d="scan'208";a="373402626" Received: from fuhrberg-mobl1.ger.corp.intel.com (HELO localhost) ([10.252.33.102]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Feb 2021 05:52:15 -0800 From: Jani Nikula To: intel-gfx@lists.freedesktop.org In-Reply-To: <44491f2465549ea5c2e48cde5437fa232f77ab96.1612467466.git.jani.nikula@intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <44491f2465549ea5c2e48cde5437fa232f77ab96.1612467466.git.jani.nikula@intel.com> Date: Fri, 05 Feb 2021 15:52:13 +0200 Message-ID: <87sg6aei5u.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v11 02/10] drm/i915: migrate hsw fdi code to new file. 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: Dave Airlie Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVGh1LCAwNCBGZWIgMjAyMSwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4g d3JvdGU6Cj4gRnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KPgo+IERhbmll bCBhc2tlZCBmb3IgdGhpcywgYnV0IGl0J3MgYSBiaXQgbWVzc3kgYW5kIEknbSBub3Qgc3VyZQo+ IGhvdyBiZXN0IHRvIGNsZWFuIGl0IHVwIHlldC4KClRoYW5rcywgcHVzaGVkLgoKQlIsCkphbmku Cgo+Cj4gU2lnbmVkLW9mZi1ieTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KPiBb SmFuaTogYWxzbyBtb3ZlZCBmZGkgYnVmIHRyYW5zIHRvIGludGVsX2ZkaS5jLl0KPiBSZXZpZXdl ZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBT aWduZWQtb2ZmLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jIHwgICAxICsKPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyB8IDE1MSArKy0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5oIHwg ICA4ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmRpLmMgfCAxMzkg KysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZmRpLmggfCAgIDMgKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDE1NiBpbnNlcnRpb25zKCspLCAx NDYgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9jcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0 LmMKPiBpbmRleCA0OTM0ZWRkNTFjYjAuLjA3N2ViYzdlNjM5NiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYwo+IEBAIC0zOCw2ICszOCw3IEBACj4gICNpbmNs dWRlICJpbnRlbF9jcnQuaCIKPiAgI2luY2x1ZGUgImludGVsX2RkaS5oIgo+ICAjaW5jbHVkZSAi aW50ZWxfZGlzcGxheV90eXBlcy5oIgo+ICsjaW5jbHVkZSAiaW50ZWxfZmRpLmgiCj4gICNpbmNs dWRlICJpbnRlbF9maWZvX3VuZGVycnVuLmgiCj4gICNpbmNsdWRlICJpbnRlbF9nbWJ1cy5oIgo+ ICAjaW5jbHVkZSAiaW50ZWxfaG90cGx1Zy5oIgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kZGkuYwo+IGluZGV4IGUyYjgyZTA1NTdlNy4uMjg4NzdhMzFhZGMwIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gQEAgLTM2LDEwICszNiwx MSBAQAo+ICAjaW5jbHVkZSAiaW50ZWxfZGRpX2J1Zl90cmFucy5oIgo+ICAjaW5jbHVkZSAiaW50 ZWxfZGlzcGxheV90eXBlcy5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfZHAuaCIKPiAtI2luY2x1ZGUg ImludGVsX2RwX21zdC5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfZHBfbGlua190cmFpbmluZy5oIgo+ ICsjaW5jbHVkZSAiaW50ZWxfZHBfbXN0LmgiCj4gICNpbmNsdWRlICJpbnRlbF9kcGlvX3BoeS5o Igo+ICAjaW5jbHVkZSAiaW50ZWxfZHNpLmgiCj4gKyNpbmNsdWRlICJpbnRlbF9mZGkuaCIKPiAg I2luY2x1ZGUgImludGVsX2ZpZm9fdW5kZXJydW4uaCIKPiAgI2luY2x1ZGUgImludGVsX2dtYnVz LmgiCj4gICNpbmNsdWRlICJpbnRlbF9oZGNwLmgiCj4gQEAgLTkxLDggKzkyLDggQEAgc3RhdGlj IGludCBpbnRlbF9kZGlfaGRtaV9sZXZlbChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgICogdmFsdWVzIGluIGFkdmFuY2UuIFRoaXMgZnVuY3Rpb24gcHJvZ3JhbXMgdGhlIGNvcnJl Y3QgdmFsdWVzIGZvcgo+ICAgKiBEUC9lRFAvRkRJIHVzZSBjYXNlcy4KPiAgICovCj4gLXN0YXRp YyB2b2lkIGludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gLQkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQo+ICt2b2lkIGludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gKwkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCXUzMiBpYm9vc3RfYml0ID0gMDsKPiBAQCAt MTU0LDggKzE1NSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZXBhcmVfaGRtaV9kZGlfYnVmZmVy cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkgICAgICAgZGRpX3RyYW5zbGF0 aW9uc1tsZXZlbF0udHJhbnMyKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfd2FpdF9k ZGlfYnVmX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkJICAg IGVudW0gcG9ydCBwb3J0KQo+ICt2b2lkIGludGVsX3dhaXRfZGRpX2J1Zl9pZGxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJICAgICBlbnVtIHBvcnQgcG9ydCkKPiAg ewo+ICAJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7Cj4gIAkJdWRlbGF5KDE2KTsKPiBAQCAt MTgzLDcgKzE4NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3dhaXRfZGRpX2J1Zl9hY3RpdmUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQlwb3J0X25hbWUocG9ydCkpOwo+ ICB9Cj4gIAo+IC1zdGF0aWMgdTMyIGhzd19wbGxfdG9fZGRpX3BsbF9zZWwoY29uc3Qgc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsICpwbGwpCj4gK3UzMiBoc3dfcGxsX3RvX2RkaV9wbGxfc2VsKGNv bnN0IHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQo+ICB7Cj4gIAlzd2l0Y2ggKHBsbC0+ aW5mby0+aWQpIHsKPiAgCWNhc2UgRFBMTF9JRF9XUlBMTDE6Cj4gQEAgLTI0MywxNDQgKzI0NCw2 IEBAIHN0YXRpYyB1MzIgaWNsX3BsbF90b19kZGlfY2xrX3NlbChzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgCX0KPiAgfQo+ICAKPiAtLyogU3RhcnRpbmcgd2l0aCBIYXN3ZWxsLCBk aWZmZXJlbnQgRERJIHBvcnRzIGNhbiB3b3JrIGluIEZESSBtb2RlIGZvcgo+IC0gKiBjb25uZWN0 aW9uIHRvIHRoZSBQQ0gtbG9jYXRlZCBjb25uZWN0b3JzLiBGb3IgdGhpcywgaXQgaXMgbmVjZXNz YXJ5IHRvIHRyYWluCj4gLSAqIGJvdGggdGhlIERESSBwb3J0IGFuZCBQQ0ggcmVjZWl2ZXIgZm9y IHRoZSBkZXNpcmVkIERESSBidWZmZXIgc2V0dGluZ3MuCj4gLSAqCj4gLSAqIFRoZSByZWNvbW1l bmRlZCBwb3J0IHRvIHdvcmsgaW4gRkRJIG1vZGUgaXMgRERJIEUsIHdoaWNoIHdlIHVzZSBoZXJl LiBBbHNvLAo+IC0gKiBwbGVhc2Ugbm90ZSB0aGF0IHdoZW4gRkRJIG1vZGUgaXMgYWN0aXZlIG9u IERESSBFLCBpdCBzaGFyZXMgMiBsaW5lcyB3aXRoCj4gLSAqIERESSBBICh3aGljaCBpcyB1c2Vk IGZvciBlRFApCj4gLSAqLwo+IC0KPiAtdm9pZCBoc3dfZmRpX2xpbmtfdHJhaW4oc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gLQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQo+IC17Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+IC0JdTMyIHRlbXAsIGksIHJ4 X2N0bF92YWwsIGRkaV9wbGxfc2VsOwo+IC0JaW50IG5fZW50cmllczsKPiAtCj4gLQlpbnRlbF9k ZGlfZ2V0X2J1Zl90cmFuc19mZGkoZGV2X3ByaXYsICZuX2VudHJpZXMpOwo+IC0KPiAtCWludGVs X3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gLQo+IC0JLyog U2V0IHRoZSBGRElfUlhfTUlTQyBwd3JkbiBsYW5lcyBhbmQgdGhlIDIgd29ya2Fyb3VuZHMgbGlz dGVkIGF0IHRoZQo+IC0JICogbW9kZSBzZXQgInNlcXVlbmNlIGZvciBDUlQgcG9ydCIgZG9jdW1l bnQ6Cj4gLQkgKiAtIFRQMSB0byBUUDIgdGltZSB3aXRoIHRoZSBkZWZhdWx0IHZhbHVlCj4gLQkg KiAtIEZESSBkZWxheSB0byA5MGgKPiAtCSAqCj4gLQkgKiBXYUZESUF1dG9MaW5rU2V0VGltaW5n T3ZlcnJyaWRlOmhzdwo+IC0JICovCj4gLQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRkRJX1JY X01JU0MoUElQRV9BKSwKPiAtCQkgICAgICAgRkRJX1JYX1BXUkROX0xBTkUxX1ZBTCgyKSB8IEZE SV9SWF9QV1JETl9MQU5FMF9WQUwoMikgfCBGRElfUlhfVFAxX1RPX1RQMl80OCB8IEZESV9SWF9G RElfREVMQVlfOTApOwo+IC0KPiAtCS8qIEVuYWJsZSB0aGUgUENIIFJlY2VpdmVyIEZESSBQTEwg Ki8KPiAtCXJ4X2N0bF92YWwgPSBkZXZfcHJpdi0+ZmRpX3J4X2NvbmZpZyB8IEZESV9SWF9FTkhB TkNFX0ZSQU1FX0VOQUJMRSB8Cj4gLQkJICAgICBGRElfUlhfUExMX0VOQUJMRSB8Cj4gLQkJICAg ICBGRElfRFBfUE9SVF9XSURUSChjcnRjX3N0YXRlLT5mZGlfbGFuZXMpOwo+IC0JaW50ZWxfZGVf d3JpdGUoZGV2X3ByaXYsIEZESV9SWF9DVEwoUElQRV9BKSwgcnhfY3RsX3ZhbCk7Cj4gLQlpbnRl bF9kZV9wb3N0aW5nX3JlYWQoZGV2X3ByaXYsIEZESV9SWF9DVEwoUElQRV9BKSk7Cj4gLQl1ZGVs YXkoMjIwKTsKPiAtCj4gLQkvKiBTd2l0Y2ggZnJvbSBSYXdjbGsgdG8gUENEY2xrICovCj4gLQly eF9jdGxfdmFsIHw9IEZESV9QQ0RDTEs7Cj4gLQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRkRJ X1JYX0NUTChQSVBFX0EpLCByeF9jdGxfdmFsKTsKPiAtCj4gLQkvKiBDb25maWd1cmUgUG9ydCBD bG9jayBTZWxlY3QgKi8KPiAtCWRkaV9wbGxfc2VsID0gaHN3X3BsbF90b19kZGlfcGxsX3NlbChj cnRjX3N0YXRlLT5zaGFyZWRfZHBsbCk7Cj4gLQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgUE9S VF9DTEtfU0VMKFBPUlRfRSksIGRkaV9wbGxfc2VsKTsKPiAtCWRybV9XQVJOX09OKCZkZXZfcHJp di0+ZHJtLCBkZGlfcGxsX3NlbCAhPSBQT1JUX0NMS19TRUxfU1BMTCk7Cj4gLQo+IC0JLyogU3Rh cnQgdGhlIHRyYWluaW5nIGl0ZXJhdGluZyB0aHJvdWdoIGF2YWlsYWJsZSB2b2x0YWdlcyBhbmQg ZW1waGFzaXMsCj4gLQkgKiB0ZXN0aW5nIGVhY2ggdmFsdWUgdHdpY2UuICovCj4gLQlmb3IgKGkg PSAwOyBpIDwgbl9lbnRyaWVzICogMjsgaSsrKSB7Cj4gLQkJLyogQ29uZmlndXJlIERQX1RQX0NU TCB3aXRoIGF1dG8tdHJhaW5pbmcgKi8KPiAtCQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRFBf VFBfQ1RMKFBPUlRfRSksCj4gLQkJCSAgICAgICBEUF9UUF9DVExfRkRJX0FVVE9UUkFJTiB8Cj4g LQkJCSAgICAgICBEUF9UUF9DVExfRU5IQU5DRURfRlJBTUVfRU5BQkxFIHwKPiAtCQkJICAgICAg IERQX1RQX0NUTF9MSU5LX1RSQUlOX1BBVDEgfAo+IC0JCQkgICAgICAgRFBfVFBfQ1RMX0VOQUJM RSk7Cj4gLQo+IC0JCS8qIENvbmZpZ3VyZSBhbmQgZW5hYmxlIERESV9CVUZfQ1RMIGZvciBEREkg RSB3aXRoIG5leHQgdm9sdGFnZS4KPiAtCQkgKiBEREkgRSBkb2VzIG5vdCBzdXBwb3J0IHBvcnQg cmV2ZXJzYWwsIHRoZSBmdW5jdGlvbmFsaXR5IGlzCj4gLQkJICogYWNoaWV2ZWQgb24gdGhlIFBD SCBzaWRlIGluIEZESV9SWF9DVEwsIHNvIG5vIG5lZWQgdG8gc2V0IHRoZQo+IC0JCSAqIHBvcnQg cmV2ZXJzYWwgYml0ICovCj4gLQkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIERESV9CVUZfQ1RM KFBPUlRfRSksCj4gLQkJCSAgICAgICBERElfQlVGX0NUTF9FTkFCTEUgfCAoKGNydGNfc3RhdGUt PmZkaV9sYW5lcyAtIDEpIDw8IDEpIHwgRERJX0JVRl9UUkFOU19TRUxFQ1QoaSAvIDIpKTsKPiAt CQlpbnRlbF9kZV9wb3N0aW5nX3JlYWQoZGV2X3ByaXYsIERESV9CVUZfQ1RMKFBPUlRfRSkpOwo+ IC0KPiAtCQl1ZGVsYXkoNjAwKTsKPiAtCj4gLQkJLyogUHJvZ3JhbSBQQ0ggRkRJIFJlY2VpdmVy IFRVICovCj4gLQkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIEZESV9SWF9UVVNJWkUxKFBJUEVf QSksIFRVX1NJWkUoNjQpKTsKPiAtCj4gLQkJLyogRW5hYmxlIFBDSCBGREkgUmVjZWl2ZXIgd2l0 aCBhdXRvLXRyYWluaW5nICovCj4gLQkJcnhfY3RsX3ZhbCB8PSBGRElfUlhfRU5BQkxFIHwgRkRJ X0xJTktfVFJBSU5fQVVUTzsKPiAtCQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRkRJX1JYX0NU TChQSVBFX0EpLCByeF9jdGxfdmFsKTsKPiAtCQlpbnRlbF9kZV9wb3N0aW5nX3JlYWQoZGV2X3By aXYsIEZESV9SWF9DVEwoUElQRV9BKSk7Cj4gLQo+IC0JCS8qIFdhaXQgZm9yIEZESSByZWNlaXZl ciBsYW5lIGNhbGlicmF0aW9uICovCj4gLQkJdWRlbGF5KDMwKTsKPiAtCj4gLQkJLyogVW5zZXQg RkRJX1JYX01JU0MgcHdyZG4gbGFuZXMgKi8KPiAtCQl0ZW1wID0gaW50ZWxfZGVfcmVhZChkZXZf cHJpdiwgRkRJX1JYX01JU0MoUElQRV9BKSk7Cj4gLQkJdGVtcCAmPSB+KEZESV9SWF9QV1JETl9M QU5FMV9NQVNLIHwgRkRJX1JYX1BXUkROX0xBTkUwX01BU0spOwo+IC0JCWludGVsX2RlX3dyaXRl KGRldl9wcml2LCBGRElfUlhfTUlTQyhQSVBFX0EpLCB0ZW1wKTsKPiAtCQlpbnRlbF9kZV9wb3N0 aW5nX3JlYWQoZGV2X3ByaXYsIEZESV9SWF9NSVNDKFBJUEVfQSkpOwo+IC0KPiAtCQkvKiBXYWl0 IGZvciBGREkgYXV0byB0cmFpbmluZyB0aW1lICovCj4gLQkJdWRlbGF5KDUpOwo+IC0KPiAtCQl0 ZW1wID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgRFBfVFBfU1RBVFVTKFBPUlRfRSkpOwo+IC0J CWlmICh0ZW1wICYgRFBfVFBfU1RBVFVTX0FVVE9UUkFJTl9ET05FKSB7Cj4gLQkJCWRybV9kYmdf a21zKCZkZXZfcHJpdi0+ZHJtLAo+IC0JCQkJICAgICJGREkgbGluayB0cmFpbmluZyBkb25lIG9u IHN0ZXAgJWRcbiIsIGkpOwo+IC0JCQlicmVhazsKPiAtCQl9Cj4gLQo+IC0JCS8qCj4gLQkJICog TGVhdmUgdGhpbmdzIGVuYWJsZWQgZXZlbiBpZiB3ZSBmYWlsZWQgdG8gdHJhaW4gRkRJLgo+IC0J CSAqIFJlc3VsdHMgaW4gbGVzcyBmaXJld29ya3MgZnJvbSB0aGUgc3RhdGUgY2hlY2tlci4KPiAt CQkgKi8KPiAtCQlpZiAoaSA9PSBuX2VudHJpZXMgKiAyIC0gMSkgewo+IC0JCQlkcm1fZXJyKCZk ZXZfcHJpdi0+ZHJtLCAiRkRJIGxpbmsgdHJhaW5pbmcgZmFpbGVkIVxuIik7Cj4gLQkJCWJyZWFr Owo+IC0JCX0KPiAtCj4gLQkJcnhfY3RsX3ZhbCAmPSB+RkRJX1JYX0VOQUJMRTsKPiAtCQlpbnRl bF9kZV93cml0ZShkZXZfcHJpdiwgRkRJX1JYX0NUTChQSVBFX0EpLCByeF9jdGxfdmFsKTsKPiAt CQlpbnRlbF9kZV9wb3N0aW5nX3JlYWQoZGV2X3ByaXYsIEZESV9SWF9DVEwoUElQRV9BKSk7Cj4g LQo+IC0JCXRlbXAgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBERElfQlVGX0NUTChQT1JUX0Up KTsKPiAtCQl0ZW1wICY9IH5ERElfQlVGX0NUTF9FTkFCTEU7Cj4gLQkJaW50ZWxfZGVfd3JpdGUo ZGV2X3ByaXYsIERESV9CVUZfQ1RMKFBPUlRfRSksIHRlbXApOwo+IC0JCWludGVsX2RlX3Bvc3Rp bmdfcmVhZChkZXZfcHJpdiwgRERJX0JVRl9DVEwoUE9SVF9FKSk7Cj4gLQo+IC0JCS8qIERpc2Fi bGUgRFBfVFBfQ1RMIGFuZCBGRElfUlhfQ1RMIGFuZCByZXRyeSAqLwo+IC0JCXRlbXAgPSBpbnRl bF9kZV9yZWFkKGRldl9wcml2LCBEUF9UUF9DVEwoUE9SVF9FKSk7Cj4gLQkJdGVtcCAmPSB+KERQ X1RQX0NUTF9FTkFCTEUgfCBEUF9UUF9DVExfTElOS19UUkFJTl9NQVNLKTsKPiAtCQl0ZW1wIHw9 IERQX1RQX0NUTF9MSU5LX1RSQUlOX1BBVDE7Cj4gLQkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYs IERQX1RQX0NUTChQT1JUX0UpLCB0ZW1wKTsKPiAtCQlpbnRlbF9kZV9wb3N0aW5nX3JlYWQoZGV2 X3ByaXYsIERQX1RQX0NUTChQT1JUX0UpKTsKPiAtCj4gLQkJaW50ZWxfd2FpdF9kZGlfYnVmX2lk bGUoZGV2X3ByaXYsIFBPUlRfRSk7Cj4gLQo+IC0JCS8qIFJlc2V0IEZESV9SWF9NSVNDIHB3cmRu IGxhbmVzICovCj4gLQkJdGVtcCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIEZESV9SWF9NSVND KFBJUEVfQSkpOwo+IC0JCXRlbXAgJj0gfihGRElfUlhfUFdSRE5fTEFORTFfTUFTSyB8IEZESV9S WF9QV1JETl9MQU5FMF9NQVNLKTsKPiAtCQl0ZW1wIHw9IEZESV9SWF9QV1JETl9MQU5FMV9WQUwo MikgfCBGRElfUlhfUFdSRE5fTEFORTBfVkFMKDIpOwo+IC0JCWludGVsX2RlX3dyaXRlKGRldl9w cml2LCBGRElfUlhfTUlTQyhQSVBFX0EpLCB0ZW1wKTsKPiAtCQlpbnRlbF9kZV9wb3N0aW5nX3Jl YWQoZGV2X3ByaXYsIEZESV9SWF9NSVNDKFBJUEVfQSkpOwo+IC0JfQo+IC0KPiAtCS8qIEVuYWJs ZSBub3JtYWwgcGl4ZWwgc2VuZGluZyBmb3IgRkRJICovCj4gLQlpbnRlbF9kZV93cml0ZShkZXZf cHJpdiwgRFBfVFBfQ1RMKFBPUlRfRSksCj4gLQkJICAgICAgIERQX1RQX0NUTF9GRElfQVVUT1RS QUlOIHwKPiAtCQkgICAgICAgRFBfVFBfQ1RMX0xJTktfVFJBSU5fTk9STUFMIHwKPiAtCQkgICAg ICAgRFBfVFBfQ1RMX0VOSEFOQ0VEX0ZSQU1FX0VOQUJMRSB8Cj4gLQkJICAgICAgIERQX1RQX0NU TF9FTkFCTEUpOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfaW5pdF9kcF9idWZf cmVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICAgICAgY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmgKPiBpbmRleCBhNGRkODE1YzAwMDAuLmY5YTkxNmNhZDdl NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuaAo+IEBAIC0x Nyw2ICsxNyw3IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlOwo+ICBzdHJ1Y3QgaW50ZWxfZHA7 Cj4gIHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlOwo+ICBzdHJ1Y3QgaW50ZWxfZW5jb2RlcjsK PiArc3RydWN0IGludGVsX3NoYXJlZF9kcGxsOwo+ICBlbnVtIHRyYW5zY29kZXI7Cj4gIAo+ICBp OTE1X3JlZ190IGRwX3RwX2N0bF9yZWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g QEAgLTI3LDggKzI4LDExIEBAIHZvaWQgaW50ZWxfZGRpX2ZkaV9wb3N0X2Rpc2FibGUoc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq aW50ZWxfZW5jb2RlciwKPiAgCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRf Y3J0Y19zdGF0ZSwKPiAgCQkJCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRf Y29ubl9zdGF0ZSk7Cj4gLXZvaWQgaHN3X2ZkaV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+IC0JCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSk7Cj4gK3UzMiBoc3dfcGxsX3RvX2RkaV9wbGxfc2VsKGNvbnN0IHN0cnVjdCBpbnRlbF9z aGFyZWRfZHBsbCAqcGxsKTsKPiArdm9pZCBpbnRlbF9wcmVwYXJlX2RwX2RkaV9idWZmZXJzKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gK3ZvaWQgaW50ZWxfd2FpdF9kZGlfYnVmX2lkbGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkgICAgIGVudW0gcG9ydCBw b3J0KTsKPiAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIGVudW0gcG9ydCBwb3J0KTsKPiAgYm9vbCBpbnRlbF9kZGlfZ2V0X2h3X3N0YXRlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBlbnVtIHBpcGUgKnBpcGUpOwo+ICB2b2lkIGlu dGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Zk aS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mZGkuYwo+IGluZGV4IGIy ZWI5NmFlMTBhMi4uNzdkZjY3NWU2MDdlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZmRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2ZkaS5jCj4gQEAgLTMsNiArMyw4IEBACj4gICAqIENvcHlyaWdodCDCqSAyMDIw IEludGVsIENvcnBvcmF0aW9uCj4gICAqLwo+ICAjaW5jbHVkZSAiaW50ZWxfYXRvbWljLmgiCj4g KyNpbmNsdWRlICJpbnRlbF9kZGkuaCIKPiArI2luY2x1ZGUgImludGVsX2RkaV9idWZfdHJhbnMu aCIKPiAgI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKPiAgI2luY2x1ZGUgImludGVs X2ZkaS5oIgo+ICAKPiBAQCAtNTUwLDYgKzU1MiwxNDMgQEAgc3RhdGljIHZvaWQgaXZiX21hbnVh bF9mZGlfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCWRybV9kYmdfa21z KCZkZXZfcHJpdi0+ZHJtLCAiRkRJIHRyYWluIGRvbmUuXG4iKTsKPiAgfQo+ICAKPiArLyogU3Rh cnRpbmcgd2l0aCBIYXN3ZWxsLCBkaWZmZXJlbnQgRERJIHBvcnRzIGNhbiB3b3JrIGluIEZESSBt b2RlIGZvcgo+ICsgKiBjb25uZWN0aW9uIHRvIHRoZSBQQ0gtbG9jYXRlZCBjb25uZWN0b3JzLiBG b3IgdGhpcywgaXQgaXMgbmVjZXNzYXJ5IHRvIHRyYWluCj4gKyAqIGJvdGggdGhlIERESSBwb3J0 IGFuZCBQQ0ggcmVjZWl2ZXIgZm9yIHRoZSBkZXNpcmVkIERESSBidWZmZXIgc2V0dGluZ3MuCj4g KyAqCj4gKyAqIFRoZSByZWNvbW1lbmRlZCBwb3J0IHRvIHdvcmsgaW4gRkRJIG1vZGUgaXMgRERJ IEUsIHdoaWNoIHdlIHVzZSBoZXJlLiBBbHNvLAo+ICsgKiBwbGVhc2Ugbm90ZSB0aGF0IHdoZW4g RkRJIG1vZGUgaXMgYWN0aXZlIG9uIERESSBFLCBpdCBzaGFyZXMgMiBsaW5lcyB3aXRoCj4gKyAq IERESSBBICh3aGljaCBpcyB1c2VkIGZvciBlRFApCj4gKyAqLwo+ICt2b2lkIGhzd19mZGlfbGlu a190cmFpbihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4g Kwl1MzIgdGVtcCwgaSwgcnhfY3RsX3ZhbCwgZGRpX3BsbF9zZWw7Cj4gKwlpbnQgbl9lbnRyaWVz Owo+ICsKPiArCWludGVsX2RkaV9nZXRfYnVmX3RyYW5zX2ZkaShkZXZfcHJpdiwgJm5fZW50cmll cyk7Cj4gKwo+ICsJaW50ZWxfcHJlcGFyZV9kcF9kZGlfYnVmZmVycyhlbmNvZGVyLCBjcnRjX3N0 YXRlKTsKPiArCj4gKwkvKiBTZXQgdGhlIEZESV9SWF9NSVNDIHB3cmRuIGxhbmVzIGFuZCB0aGUg MiB3b3JrYXJvdW5kcyBsaXN0ZWQgYXQgdGhlCj4gKwkgKiBtb2RlIHNldCAic2VxdWVuY2UgZm9y IENSVCBwb3J0IiBkb2N1bWVudDoKPiArCSAqIC0gVFAxIHRvIFRQMiB0aW1lIHdpdGggdGhlIGRl ZmF1bHQgdmFsdWUKPiArCSAqIC0gRkRJIGRlbGF5IHRvIDkwaAo+ICsJICoKPiArCSAqIFdhRkRJ QXV0b0xpbmtTZXRUaW1pbmdPdmVycnJpZGU6aHN3Cj4gKwkgKi8KPiArCWludGVsX2RlX3dyaXRl KGRldl9wcml2LCBGRElfUlhfTUlTQyhQSVBFX0EpLAo+ICsJCSAgICAgICBGRElfUlhfUFdSRE5f TEFORTFfVkFMKDIpIHwgRkRJX1JYX1BXUkROX0xBTkUwX1ZBTCgyKSB8IEZESV9SWF9UUDFfVE9f VFAyXzQ4IHwgRkRJX1JYX0ZESV9ERUxBWV85MCk7Cj4gKwo+ICsJLyogRW5hYmxlIHRoZSBQQ0gg UmVjZWl2ZXIgRkRJIFBMTCAqLwo+ICsJcnhfY3RsX3ZhbCA9IGRldl9wcml2LT5mZGlfcnhfY29u ZmlnIHwgRkRJX1JYX0VOSEFOQ0VfRlJBTUVfRU5BQkxFIHwKPiArCQkgICAgIEZESV9SWF9QTExf RU5BQkxFIHwKPiArCQkgICAgIEZESV9EUF9QT1JUX1dJRFRIKGNydGNfc3RhdGUtPmZkaV9sYW5l cyk7Cj4gKwlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRkRJX1JYX0NUTChQSVBFX0EpLCByeF9j dGxfdmFsKTsKPiArCWludGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgRkRJX1JYX0NUTChQ SVBFX0EpKTsKPiArCXVkZWxheSgyMjApOwo+ICsKPiArCS8qIFN3aXRjaCBmcm9tIFJhd2NsayB0 byBQQ0RjbGsgKi8KPiArCXJ4X2N0bF92YWwgfD0gRkRJX1BDRENMSzsKPiArCWludGVsX2RlX3dy aXRlKGRldl9wcml2LCBGRElfUlhfQ1RMKFBJUEVfQSksIHJ4X2N0bF92YWwpOwo+ICsKPiArCS8q IENvbmZpZ3VyZSBQb3J0IENsb2NrIFNlbGVjdCAqLwo+ICsJZGRpX3BsbF9zZWwgPSBoc3dfcGxs X3RvX2RkaV9wbGxfc2VsKGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsKTsKPiArCWludGVsX2RlX3dy aXRlKGRldl9wcml2LCBQT1JUX0NMS19TRUwoUE9SVF9FKSwgZGRpX3BsbF9zZWwpOwo+ICsJZHJt X1dBUk5fT04oJmRldl9wcml2LT5kcm0sIGRkaV9wbGxfc2VsICE9IFBPUlRfQ0xLX1NFTF9TUExM KTsKPiArCj4gKwkvKiBTdGFydCB0aGUgdHJhaW5pbmcgaXRlcmF0aW5nIHRocm91Z2ggYXZhaWxh YmxlIHZvbHRhZ2VzIGFuZCBlbXBoYXNpcywKPiArCSAqIHRlc3RpbmcgZWFjaCB2YWx1ZSB0d2lj ZS4gKi8KPiArCWZvciAoaSA9IDA7IGkgPCBuX2VudHJpZXMgKiAyOyBpKyspIHsKPiArCQkvKiBD b25maWd1cmUgRFBfVFBfQ1RMIHdpdGggYXV0by10cmFpbmluZyAqLwo+ICsJCWludGVsX2RlX3dy aXRlKGRldl9wcml2LCBEUF9UUF9DVEwoUE9SVF9FKSwKPiArCQkJICAgICAgIERQX1RQX0NUTF9G RElfQVVUT1RSQUlOIHwKPiArCQkJICAgICAgIERQX1RQX0NUTF9FTkhBTkNFRF9GUkFNRV9FTkFC TEUgfAo+ICsJCQkgICAgICAgRFBfVFBfQ1RMX0xJTktfVFJBSU5fUEFUMSB8Cj4gKwkJCSAgICAg ICBEUF9UUF9DVExfRU5BQkxFKTsKPiArCj4gKwkJLyogQ29uZmlndXJlIGFuZCBlbmFibGUgRERJ X0JVRl9DVEwgZm9yIERESSBFIHdpdGggbmV4dCB2b2x0YWdlLgo+ICsJCSAqIERESSBFIGRvZXMg bm90IHN1cHBvcnQgcG9ydCByZXZlcnNhbCwgdGhlIGZ1bmN0aW9uYWxpdHkgaXMKPiArCQkgKiBh Y2hpZXZlZCBvbiB0aGUgUENIIHNpZGUgaW4gRkRJX1JYX0NUTCwgc28gbm8gbmVlZCB0byBzZXQg dGhlCj4gKwkJICogcG9ydCByZXZlcnNhbCBiaXQgKi8KPiArCQlpbnRlbF9kZV93cml0ZShkZXZf cHJpdiwgRERJX0JVRl9DVEwoUE9SVF9FKSwKPiArCQkJICAgICAgIERESV9CVUZfQ1RMX0VOQUJM RSB8ICgoY3J0Y19zdGF0ZS0+ZmRpX2xhbmVzIC0gMSkgPDwgMSkgfCBERElfQlVGX1RSQU5TX1NF TEVDVChpIC8gMikpOwo+ICsJCWludGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgRERJX0JV Rl9DVEwoUE9SVF9FKSk7Cj4gKwo+ICsJCXVkZWxheSg2MDApOwo+ICsKPiArCQkvKiBQcm9ncmFt IFBDSCBGREkgUmVjZWl2ZXIgVFUgKi8KPiArCQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRkRJ X1JYX1RVU0laRTEoUElQRV9BKSwgVFVfU0laRSg2NCkpOwo+ICsKPiArCQkvKiBFbmFibGUgUENI IEZESSBSZWNlaXZlciB3aXRoIGF1dG8tdHJhaW5pbmcgKi8KPiArCQlyeF9jdGxfdmFsIHw9IEZE SV9SWF9FTkFCTEUgfCBGRElfTElOS19UUkFJTl9BVVRPOwo+ICsJCWludGVsX2RlX3dyaXRlKGRl dl9wcml2LCBGRElfUlhfQ1RMKFBJUEVfQSksIHJ4X2N0bF92YWwpOwo+ICsJCWludGVsX2RlX3Bv c3RpbmdfcmVhZChkZXZfcHJpdiwgRkRJX1JYX0NUTChQSVBFX0EpKTsKPiArCj4gKwkJLyogV2Fp dCBmb3IgRkRJIHJlY2VpdmVyIGxhbmUgY2FsaWJyYXRpb24gKi8KPiArCQl1ZGVsYXkoMzApOwo+ ICsKPiArCQkvKiBVbnNldCBGRElfUlhfTUlTQyBwd3JkbiBsYW5lcyAqLwo+ICsJCXRlbXAgPSBp bnRlbF9kZV9yZWFkKGRldl9wcml2LCBGRElfUlhfTUlTQyhQSVBFX0EpKTsKPiArCQl0ZW1wICY9 IH4oRkRJX1JYX1BXUkROX0xBTkUxX01BU0sgfCBGRElfUlhfUFdSRE5fTEFORTBfTUFTSyk7Cj4g KwkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIEZESV9SWF9NSVNDKFBJUEVfQSksIHRlbXApOwo+ ICsJCWludGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgRkRJX1JYX01JU0MoUElQRV9BKSk7 Cj4gKwo+ICsJCS8qIFdhaXQgZm9yIEZESSBhdXRvIHRyYWluaW5nIHRpbWUgKi8KPiArCQl1ZGVs YXkoNSk7Cj4gKwo+ICsJCXRlbXAgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBEUF9UUF9TVEFU VVMoUE9SVF9FKSk7Cj4gKwkJaWYgKHRlbXAgJiBEUF9UUF9TVEFUVVNfQVVUT1RSQUlOX0RPTkUp IHsKPiArCQkJZHJtX2RiZ19rbXMoJmRldl9wcml2LT5kcm0sCj4gKwkJCQkgICAgIkZESSBsaW5r IHRyYWluaW5nIGRvbmUgb24gc3RlcCAlZFxuIiwgaSk7Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiAr Cj4gKwkJLyoKPiArCQkgKiBMZWF2ZSB0aGluZ3MgZW5hYmxlZCBldmVuIGlmIHdlIGZhaWxlZCB0 byB0cmFpbiBGREkuCj4gKwkJICogUmVzdWx0cyBpbiBsZXNzIGZpcmV3b3JrcyBmcm9tIHRoZSBz dGF0ZSBjaGVja2VyLgo+ICsJCSAqLwo+ICsJCWlmIChpID09IG5fZW50cmllcyAqIDIgLSAxKSB7 Cj4gKwkJCWRybV9lcnIoJmRldl9wcml2LT5kcm0sICJGREkgbGluayB0cmFpbmluZyBmYWlsZWQh XG4iKTsKPiArCQkJYnJlYWs7Cj4gKwkJfQo+ICsKPiArCQlyeF9jdGxfdmFsICY9IH5GRElfUlhf RU5BQkxFOwo+ICsJCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBGRElfUlhfQ1RMKFBJUEVfQSks IHJ4X2N0bF92YWwpOwo+ICsJCWludGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgRkRJX1JY X0NUTChQSVBFX0EpKTsKPiArCj4gKwkJdGVtcCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIERE SV9CVUZfQ1RMKFBPUlRfRSkpOwo+ICsJCXRlbXAgJj0gfkRESV9CVUZfQ1RMX0VOQUJMRTsKPiAr CQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRERJX0JVRl9DVEwoUE9SVF9FKSwgdGVtcCk7Cj4g KwkJaW50ZWxfZGVfcG9zdGluZ19yZWFkKGRldl9wcml2LCBERElfQlVGX0NUTChQT1JUX0UpKTsK PiArCj4gKwkJLyogRGlzYWJsZSBEUF9UUF9DVEwgYW5kIEZESV9SWF9DVEwgYW5kIHJldHJ5ICov Cj4gKwkJdGVtcCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIERQX1RQX0NUTChQT1JUX0UpKTsK PiArCQl0ZW1wICY9IH4oRFBfVFBfQ1RMX0VOQUJMRSB8IERQX1RQX0NUTF9MSU5LX1RSQUlOX01B U0spOwo+ICsJCXRlbXAgfD0gRFBfVFBfQ1RMX0xJTktfVFJBSU5fUEFUMTsKPiArCQlpbnRlbF9k ZV93cml0ZShkZXZfcHJpdiwgRFBfVFBfQ1RMKFBPUlRfRSksIHRlbXApOwo+ICsJCWludGVsX2Rl X3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgRFBfVFBfQ1RMKFBPUlRfRSkpOwo+ICsKPiArCQlpbnRl bF93YWl0X2RkaV9idWZfaWRsZShkZXZfcHJpdiwgUE9SVF9FKTsKPiArCj4gKwkJLyogUmVzZXQg RkRJX1JYX01JU0MgcHdyZG4gbGFuZXMgKi8KPiArCQl0ZW1wID0gaW50ZWxfZGVfcmVhZChkZXZf cHJpdiwgRkRJX1JYX01JU0MoUElQRV9BKSk7Cj4gKwkJdGVtcCAmPSB+KEZESV9SWF9QV1JETl9M QU5FMV9NQVNLIHwgRkRJX1JYX1BXUkROX0xBTkUwX01BU0spOwo+ICsJCXRlbXAgfD0gRkRJX1JY X1BXUkROX0xBTkUxX1ZBTCgyKSB8IEZESV9SWF9QV1JETl9MQU5FMF9WQUwoMik7Cj4gKwkJaW50 ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIEZESV9SWF9NSVNDKFBJUEVfQSksIHRlbXApOwo+ICsJCWlu dGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgRkRJX1JYX01JU0MoUElQRV9BKSk7Cj4gKwl9 Cj4gKwo+ICsJLyogRW5hYmxlIG5vcm1hbCBwaXhlbCBzZW5kaW5nIGZvciBGREkgKi8KPiArCWlu dGVsX2RlX3dyaXRlKGRldl9wcml2LCBEUF9UUF9DVEwoUE9SVF9FKSwKPiArCQkgICAgICAgRFBf VFBfQ1RMX0ZESV9BVVRPVFJBSU4gfAo+ICsJCSAgICAgICBEUF9UUF9DVExfTElOS19UUkFJTl9O T1JNQUwgfAo+ICsJCSAgICAgICBEUF9UUF9DVExfRU5IQU5DRURfRlJBTUVfRU5BQkxFIHwKPiAr CQkgICAgICAgRFBfVFBfQ1RMX0VOQUJMRSk7Cj4gK30KPiArCj4gIHZvaWQgaWxrX2ZkaV9wbGxf ZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4g IAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9mZGkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmRpLmgK PiBpbmRleCBhOWNkMjE2NjNlYjguLmFmMDFkMmMxNzNhOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZkaS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9mZGkuaAo+IEBAIC05LDYgKzksNyBAQAo+ICBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZTsKPiAgc3RydWN0IGludGVsX2NydGM7Cj4gIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlOwo+ICtzdHJ1Y3QgaW50ZWxfZW5jb2RlcjsKPiAgCj4gICNkZWZpbmUgSTkxNV9ESVNQ TEFZX0NPTkZJR19SRVRSWSAxCj4gIGludCBpbGtfZmRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjLAo+IEBAIC0xOCw1ICsxOSw3IEBAIHZvaWQgaWxrX2ZkaV9k aXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiAgdm9pZCBpbGtfZmRpX3BsbF9kaXNh YmxlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKTsKPiAgdm9pZCBpbGtfZmRpX3BsbF9l bmFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+ICB2b2lk IGludGVsX2ZkaV9pbml0X2hvb2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK PiArdm9pZCBoc3dfZmRpX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gKwkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAgCj4g ICNlbmRpZgoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBHcmFwaGljcyBDZW50 ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==