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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 3C696C433FE for ; Wed, 18 May 2022 20:00:31 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B87EF10E55B; Wed, 18 May 2022 20:00:30 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id C79C310E55B for ; Wed, 18 May 2022 20:00:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1652904029; x=1684440029; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=2ryGIL/xbl5hcsrHf9cQvekVOZNL+Ogm1yKHFDsyIdM=; b=eRXyLW1Dxi7tBm2dVHasfOYaZLM7TzoJsNSZk797oUuOSr7UnKxlvcn5 MU87ZIKNVC33KCQKfd57KHJi7FPIy4cnoEpj3LCuq5U9MvNTNFjTXEBBT s6+ko6XeDeQGO7/qJGRyYoTCuXT8kf0yuloSXA0PjltQe9JRG42muxFMy ISeWNCOIIh7ETy7zFtKnEXdFuyt3gDyb8V7DOx7Zkmx6Yk+NCfx8nK0o+ XNkjJeZMXfdCqNWy9+jvOZfvRQytJcRRKwdozqlGtzXkoH867MfNS2E8a UikNKtBMsB1dIntVam7bhqQwqJKFqBxyJMxq+UIwEcmZR4JV5qX8dIVmo w==; X-IronPort-AV: E=McAfee;i="6400,9594,10351"; a="271998286" X-IronPort-AV: E=Sophos;i="5.91,235,1647327600"; d="scan'208";a="271998286" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 May 2022 13:00:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,235,1647327600"; d="scan'208";a="556520534" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga002.jf.intel.com with ESMTP; 18 May 2022 13:00:05 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 18 May 2022 13:00:04 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 18 May 2022 13:00:04 -0700 Received: from fmsmsx612.amr.corp.intel.com ([10.18.126.92]) by fmsmsx612.amr.corp.intel.com ([10.18.126.92]) with mapi id 15.01.2308.027; Wed, 18 May 2022 13:00:04 -0700 From: "Souza, Jose" To: "intel-gfx@lists.freedesktop.org" , "Hogander, Jouni" Thread-Topic: [RFC PATCH] drm/i915: Debugfs statistics interface for psr Thread-Index: AQHYaote97yKowMqCUaxaoHkOR4WRa0lg/oA Date: Wed, 18 May 2022 20:00:03 +0000 Message-ID: References: <20220518074540.36398-1-jouni.hogander@intel.com> In-Reply-To: <20220518074540.36398-1-jouni.hogander@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.1.200.100] Content-Type: text/plain; charset="utf-8" Content-ID: <4C5F26C963A5CC4785D4B06792AE9758@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Intel-gfx] [RFC PATCH] drm/i915: Debugfs statistics interface for psr 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: "Varide, Nischal" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCAyMDIyLTA1LTE4IGF0IDEwOjQ1ICswMzAwLCBKb3VuaSBIw7ZnYW5kZXIgd3JvdGU6 DQo+IEN1cnJlbnRseSB0aGVyZSBpcyBubyBtZWFuIHRvIGdldCB1bmRlcnN0YW5kaW5nIGhvdyBw c3IgaXMgdXRpbGl6ZWQuDQo+IEUuZy4gSG93IG11Y2ggcHNyIGlzIGFjdHVhbGx5IGVuYWJsZWQg b3IgaG93IG9mdGVuIGRyaXZlciBmYWxscyBiYWNrDQo+IHRvIGZ1bGwgdXBkYXRlLg0KDQpCdXQg d2l0aCB0aGlzIGluZm9ybWF0aW9uIHdoYXQgY2FuIHlvdSBkbz8NCg0KSSBkb24ndCBzZWUgbXVj aCB2YWx1ZSBvbiBpdC4NCldlIGhhdmUgbm93IHNvbWUgY2FzZXMgdGhhdCBsZWFkcyB0byBmdWxs IHVwZGF0ZSwgdGhhdCBuZWVkcyB0byBiZSBwcm9wZXJseSBmaXhlZCBzbyBpdCBjYW4gYWx3YXlz IGRvIHBhcnRpYWwgdXBkYXRlcy4NCg0KRGlkIG5vdCBjaGVja2VkIHRoZSBpbXBsZW1lbnRhdGlv biBkZXRhaWxzLg0KDQo+IA0KPiBUaGlzIHBhdGNoIGFkZHJlc3NlcyB0aGlzIGJ5IGFkZGluZyBu ZXcgZGVidWdmcyBpbnRlcmZhY2UNCj4gaTkxNV9lZHBfcHNyX3N0YXRzLiBTdGF0aXN0aWNzIGdh dGhlcmluZyBpcyBzdGFydGVkIGJ5IHdyaXRpbmcgMS95L1kgYW5kDQo+IHN0b3BwZWQgYnkgd3Jp dGluZyAwL24vTiBpbnRvIHRoaXMgbmV3IGludGVyZmFjZS4NCj4gDQo+IEZvbGxvd2luZyBmaWVs ZHMgYXJlIHByb3ZpZGVkIGZvciByZWFkaW5nIGJ5IHRoaXMgbmV3IGludGVyZmFjZToNCj4gDQo+ ICJQU1IgZGlzYWJsZWQgdmJsYW5rIGNvdW50Ig0KPiANCj4gT3ZlciBob3cgbWFueSB2Ymxhbmsg cGVyaW9kcyAgUFNSIHdhcyBkaXNhYmxlZCBhZnRlciBzdGF0aXN0aWNzDQo+IGdhdGhlcmluZyBn b3Qgc3RhcnRlZC4gSS5lLiBIb3cgbWFueSBub3JtYWwgdXBkYXRlcyB3ZXJlIHNlbnQgdG8gcGFu ZWwuDQo+IA0KPiAiVG90YWwgdmJsYW5rIGNvdW50Ig0KPiANCj4gVG90YWwgdmJsYW5rIGNvdW50 IGFmdGVyIHN0YXRpc3RpY3MgZ2F0aGVyaW5nIGdvdCBzdGFydGVkLg0KPiANCj4gIlNlbGVjdGl2 ZSB1cGRhdGUgY291bnQiDQo+IA0KPiBIb3cgbWFueSBzZWxlY3RpdmUgdXBkYXRlcyAoUFNSMikg d2VyZSBkb25lIGFmdGVyIHN0YXRpc3RpY3MgZ2F0aGVyaW5nDQo+IGdvdCBzdGFydGVkLg0KPiAN Cj4gIkZ1bGwgdXBkYXRlIGNvdW50Ig0KPiANCj4gSG93IG1hbnkgdGltZXMgZHJpdmVyIGRlY2lk ZWQgdG8gZmFsbCBiYWNrIHRvIGZ1bGwgdXBkYXRlIHdoZW4gdHJ5aW5nIHRvDQo+IHBlcmZvcm0g c2VsZWN0aXZlIHVwZGF0ZS4NCj4gDQo+IENjOiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3Nl LnNvdXphQGludGVsLmNvbT4NCj4gQ2M6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5j b20+DQo+IENjOiBVbWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPg0KPiBDYzogTmlz Y2hhbCBWYXJpZGUgPG5pc2NoYWwudmFyaWRlQGludGVsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTog Sm91bmkgSMO2Z2FuZGVyIDxqb3VuaS5ob2dhbmRlckBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgLi4u L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9kZWJ1Z2ZzLmMgIHwgMTAwICsrKysrKysr KysrKw0KPiAgLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwg IDE2ICsrDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jICAgICAg fCAxNDQgKysrKysrKysrKysrKystLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX3Bzci5oICAgICAgfCAgIDIgKw0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAyMzYgaW5zZXJ0 aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9kZWJ1Z2ZzLmMNCj4gaW5kZXggNDUyZDc3M2Zk NGUzLi5jMjlmMTUxMDYyZTQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV9kZWJ1Z2ZzLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RlYnVnZnMuYw0KPiBAQCAtOSw2ICs5LDcgQEANCj4g ICNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPg0KPiAgDQo+ICAjaW5jbHVkZSAiaTkxNV9kZWJ1 Z2ZzLmgiDQo+ICsjaW5jbHVkZSAiaW50ZWxfY3J0Yy5oIg0KPiAgI2luY2x1ZGUgImludGVsX2Rl LmgiDQo+ICAjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV9kZWJ1Z2ZzLmgiDQo+ICAjaW5jbHVkZSAi aW50ZWxfZGlzcGxheV9wb3dlci5oIg0KPiBAQCAtMTg2OCw2ICsxODY5LDk1IEBAIGk5MTVfZmlm b191bmRlcnJ1bl9yZXNldF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwNCj4gIAlyZXR1cm4gY250 Ow0KPiAgfQ0KPiAgDQo+ICtzdGF0aWMgaW50IGludGVsX3Bzcl9zdGF0cyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ICt7DQo+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gKG0tPnByaXZhdGUpOw0KPiArCXN0cnVjdCBpbnRlbF9w c3IgKnBzciA9ICZpbnRlbF9kcC0+cHNyOw0KPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZp bnRlbF9jcnRjX2Zvcl9waXBlKGRldl9wcml2LCBwc3ItPnBpcGUpLT5iYXNlOw0KPiArCXU2NCB0 b3RhbF92YmxhbmtfY291bnQgPSBwc3ItPnN0YXRzLnRvdGFsX3ZibGFua19jb3VudCwNCj4gKwkJ bm9uX3Bzcl92YmxhbmtfY291bnQgPSBwc3ItPnN0YXRzLm5vbl9wc3JfdmJsYW5rX2NvdW50Ow0K PiArCWt0aW1lX3QgdmJsYW5rdGltZTsNCj4gKw0KPiArCWlmICghcHNyLT5hY3RpdmUpDQo+ICsJ CW5vbl9wc3JfdmJsYW5rX2NvdW50ICs9IGRybV9jcnRjX3ZibGFua19jb3VudF9hbmRfdGltZShj cnRjLCAmdmJsYW5rdGltZSkgLQ0KPiArCQkJcHNyLT5zdGF0cy5wc3JfZGlzYWJsZV92Ymxhbms7 DQo+ICsNCj4gKwlzZXFfcHJpbnRmKG0sICJQU1IgZGlzYWJsZWQgdmJsYW5rIGNvdW50IDogJWxs dVxuIiwgbm9uX3Bzcl92YmxhbmtfY291bnQpOw0KPiArDQo+ICsJaWYgKHBzci0+c3RhdHMuZW5h YmxlKQ0KPiArCQl0b3RhbF92YmxhbmtfY291bnQgKz0gZHJtX2NydGNfdmJsYW5rX2NvdW50X2Fu ZF90aW1lKGNydGMsICZ2Ymxhbmt0aW1lKSAtDQo+ICsJCQlwc3ItPnN0YXRzLnN0YXJ0X3ZibGFu azsNCj4gKw0KPiArCXNlcV9wcmludGYobSwgIlRvdGFsIHZibGFuayBjb3VudCA6ICVsbHVcbiIs IHRvdGFsX3ZibGFua19jb3VudCk7DQo+ICsJc2VxX3ByaW50ZihtLCAiU2VsZWN0aXZlIHVwZGF0 ZSBjb3VudCA6ICVsbHVcbiIsIHBzci0+c3RhdHMuc2VsZWN0aXZlX3VwZGF0ZV9jb3VudCk7DQo+ ICsJc2VxX3ByaW50ZihtLCAiRnVsbCB1cGRhdGUgY291bnQgOiAlbGx1XG4iLCBwc3ItPnN0YXRz LmZ1bGxfdXBkYXRlX2NvdW50KTsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtz dGF0aWMgaW50IGk5MTVfZWRwX3Bzcl9zdGF0c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqZGF0YSkNCj4gK3sNCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSAo bS0+cHJpdmF0ZSk7DQo+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IE5VTEw7DQo+ICsJ c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7DQo+ICsNCj4gKwlpZiAoIUhBU19QU1IoZGV2 X3ByaXYpKQ0KPiArCQlyZXR1cm4gLUVOT0RFVjsNCj4gKw0KPiArCS8qIEZpbmQgdGhlIGZpcnN0 IEVEUCB3aGljaCBzdXBwb3J0cyBQU1IgKi8NCj4gKwlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyX3dp dGhfcHNyKCZkZXZfcHJpdi0+ZHJtLCBlbmNvZGVyKSB7DQo+ICsJCWludGVsX2RwID0gZW5jX3Rv X2ludGVsX2RwKGVuY29kZXIpOw0KPiArCQlicmVhazsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoIWlu dGVsX2RwKQ0KPiArCQlyZXR1cm4gLUVOT0RFVjsNCj4gKw0KPiArCXJldHVybiBpbnRlbF9wc3Jf c3RhdHMobSwgaW50ZWxfZHApOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgc3NpemVfdA0KPiAraTkx NV9lZHBfcHNyX3N0YXRzX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNl ciAqdWJ1ZiwNCj4gKwkJCSBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpDQo+ICt7DQo+ICsJc3Ry dWN0IHNlcV9maWxlICptID0gZmlscC0+cHJpdmF0ZV9kYXRhOw0KPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IG0tPnByaXZhdGU7DQo+ICsJc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCA9IE5VTEw7DQo+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7DQo+ICsJ aW50IHJldDsNCj4gKwlib29sIGVuYWJsZV9zdGF0czsNCj4gKw0KPiArCXJldCA9IGtzdHJ0b2Jv b2xfZnJvbV91c2VyKHVidWYsIGNudCwgJmVuYWJsZV9zdGF0cyk7DQo+ICsJaWYgKHJldCkNCj4g KwkJcmV0dXJuIHJldDsNCj4gKw0KPiArCWlmICghSEFTX1BTUihkZXZfcHJpdikpDQo+ICsJCXJl dHVybiAtRU5PREVWOw0KPiArDQo+ICsJLyogRmluZCB0aGUgZmlyc3QgRURQIHdoaWNoIHN1cHBv cnRzIFBTUiAqLw0KPiArCWZvcl9lYWNoX2ludGVsX2VuY29kZXJfd2l0aF9wc3IoJmRldl9wcml2 LT5kcm0sIGVuY29kZXIpIHsNCj4gKwkJaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rl cik7DQo+ICsJCWJyZWFrOw0KPiArCX0NCj4gKw0KPiArCWlmICghaW50ZWxfZHApDQo+ICsJCXJl dHVybiAtRU5PREVWOw0KPiArDQo+ICsJaWYgKGVuYWJsZV9zdGF0cykNCj4gKwkJaW50ZWxfcHNy X3N0YXRzX2VuYWJsZV9zdGF0cyhpbnRlbF9kcCk7DQo+ICsJZWxzZQ0KPiArCQlpbnRlbF9wc3Jf c3RhdHNfZGlzYWJsZV9zdGF0cyhpbnRlbF9kcCk7DQo+ICsNCj4gKwlyZXR1cm4gY250Ow0KPiAr fQ0KPiArDQo+ICtzdGF0aWMgaW50IGk5MTVfZWRwX3Bzcl9zdGF0c19vcGVuKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQ0KPiArew0KPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGlub2RlLT5pX3ByaXZhdGU7DQo+ICsNCj4gKwlyZXR1cm4gc2lu Z2xlX29wZW4oZmlsZSwgaTkxNV9lZHBfcHNyX3N0YXRzX3Nob3csIGRldl9wcml2KTsNCj4gK30N Cj4gKw0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaTkxNV9maWZvX3Vu ZGVycnVuX3Jlc2V0X29wcyA9IHsNCj4gIAkub3duZXIgPSBUSElTX01PRFVMRSwNCj4gIAkub3Bl biA9IHNpbXBsZV9vcGVuLA0KPiBAQCAtMTg3NSw2ICsxOTY1LDE1IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGk5MTVfZmlmb191bmRlcnJ1bl9yZXNldF9vcHMgPSB7DQo+ ICAJLmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLA0KPiAgfTsNCj4gIA0KPiArc3RhdGljIGNvbnN0 IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaTkxNV9lZHBfcHNyX3N0YXRzX29wcyA9IHsNCj4gKwku b3duZXIgPSBUSElTX01PRFVMRSwNCj4gKwkub3BlbiA9IGk5MTVfZWRwX3Bzcl9zdGF0c19vcGVu LA0KPiArCS5yZWFkID0gc2VxX3JlYWQsDQo+ICsJLndyaXRlID0gaTkxNV9lZHBfcHNyX3N0YXRz X3dyaXRlLA0KPiArCS5sbHNlZWsgPSBkZWZhdWx0X2xsc2VlaywNCj4gKwkucmVsZWFzZSA9IHNp bmdsZV9yZWxlYXNlLA0KPiArfTsNCj4gKw0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW5m b19saXN0IGludGVsX2Rpc3BsYXlfZGVidWdmc19saXN0W10gPSB7DQo+ICAJeyJpOTE1X2Zyb250 YnVmZmVyX3RyYWNraW5nIiwgaTkxNV9mcm9udGJ1ZmZlcl90cmFja2luZywgMH0sDQo+ICAJeyJp OTE1X2lwc19zdGF0dXMiLCBpOTE1X2lwc19zdGF0dXMsIDB9LA0KPiBAQCAtMTkwOCw2ICsyMDA3 LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7DQo+ICAJeyJpOTE1X2lwY19zdGF0dXMiLCAmaTkx NV9pcGNfc3RhdHVzX2ZvcHN9LA0KPiAgCXsiaTkxNV9kcnJzX2N0bCIsICZpOTE1X2RycnNfY3Rs X2ZvcHN9LA0KPiAgCXsiaTkxNV9lZHBfcHNyX2RlYnVnIiwgJmk5MTVfZWRwX3Bzcl9kZWJ1Z19m b3BzfSwNCj4gKwl7Imk5MTVfZWRwX3Bzcl9zdGF0cyIsICZpOTE1X2VkcF9wc3Jfc3RhdHNfb3Bz fSwNCj4gIH07DQo+ICANCj4gIHZvaWQgaW50ZWxfZGlzcGxheV9kZWJ1Z2ZzX3JlZ2lzdGVyKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaA0KPiBpbmRleCA0MDgxNTJmOWY0NmEu LjA3ZmE4MjAxODdlZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgNCj4gQEAgLTE0OTgsNiArMTQ5OCwyMSBAQCBzdHJ1 Y3QgaW50ZWxfcHBzIHsNCj4gIAlzdHJ1Y3QgZWRwX3Bvd2VyX3NlcSBwcHNfZGVsYXlzOw0KPiAg fTsNCj4gIA0KPiArc3RydWN0IGludGVsX3Bzcl9zdGF0cyB7DQo+ICsJLyogdmJsYW5rIGNvdW50 cyB1c2VkIHRvIGNhbGN1bGF0ZSBwc3IgdXNhZ2UgKi8NCj4gKwl1NjQgc3RhcnRfdmJsYW5rOw0K PiArCXU2NCBwc3JfZGlzYWJsZV92Ymxhbms7DQo+ICsNCj4gKwl1NjQgbm9uX3Bzcl92Ymxhbmtf Y291bnQ7DQo+ICsJdTY0IHRvdGFsX3ZibGFua19jb3VudDsNCj4gKw0KPiArCS8qIHBzciBzdGF0 aXN0aWNzICovDQo+ICsJdTY0IHNlbGVjdGl2ZV91cGRhdGVfY291bnQ7DQo+ICsJdTY0IGZ1bGxf dXBkYXRlX2NvdW50Ow0KPiArDQo+ICsJYm9vbCBlbmFibGU7DQo+ICt9Ow0KPiArDQo+ICBzdHJ1 Y3QgaW50ZWxfcHNyIHsNCj4gIAkvKiBNdXRleCBmb3IgUFNSIHN0YXRlIG9mIHRoZSB0cmFuc2Nv ZGVyICovDQo+ICAJc3RydWN0IG11dGV4IGxvY2s7DQo+IEBAIC0xNTM3LDYgKzE1NTIsNyBAQCBz dHJ1Y3QgaW50ZWxfcHNyIHsNCj4gIAl1MzIgZGMzY29fZXhpdGxpbmU7DQo+ICAJdTMyIGRjM2Nv X2V4aXRfZGVsYXk7DQo+ICAJc3RydWN0IGRlbGF5ZWRfd29yayBkYzNjb193b3JrOw0KPiArCXN0 cnVjdCBpbnRlbF9wc3Jfc3RhdHMgc3RhdHM7DQo+ICB9Ow0KPiAgDQo+ICBzdHJ1Y3QgaW50ZWxf ZHAgew0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9w c3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMNCj4gaW5kZXgg MzYzNTY4OTNjN2NhLi5mZTQ5M2ZmNTNlNGQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9wc3IuYw0KPiBAQCAtMTA0OCw2ICsxMDQ4LDExOCBAQCB2b2lkIGludGVs X3Bzcl9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLA0KPiAgCW11dGV4 X3VubG9jaygmaW50ZWxfZHAtPnBzci5sb2NrKTsNCj4gIH0NCj4gIA0KPiArc3RhdGljIHUzMiBt YW5fdHJrX2N0bF9lbmFibGVfYml0X2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpDQo+ICt7DQo+ICsJcmV0dXJuIElTX0FMREVSTEFLRV9QKGRldl9wcml2KSA/IDAgOiBQU1Iy X01BTl9UUktfQ1RMX0VOQUJMRTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHUzMiBtYW5fdHJrX2N0 bF9zaW5nbGVfZnVsbF9mcmFtZV9iaXRfZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikNCj4gK3sNCj4gKwlyZXR1cm4gSVNfQUxERVJMQUtFX1AoZGV2X3ByaXYpID8NCj4gKwkg ICAgICAgQURMUF9QU1IyX01BTl9UUktfQ1RMX1NGX1NJTkdMRV9GVUxMX0ZSQU1FIDoNCj4gKwkg ICAgICAgUFNSMl9NQU5fVFJLX0NUTF9TRl9TSU5HTEVfRlVMTF9GUkFNRTsNCj4gK30NCj4gKw0K PiArc3RhdGljIHUzMiBtYW5fdHJrX2N0bF9wYXJ0aWFsX2ZyYW1lX2JpdF9nZXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiArew0KPiArCXJldHVybiBJU19BTERFUkxBS0Vf UChkZXZfcHJpdikgPw0KPiArCSAgICAgICBBRExQX1BTUjJfTUFOX1RSS19DVExfU0ZfUEFSVElB TF9GUkFNRV9VUERBVEUgOg0KPiArCSAgICAgICBQU1IyX01BTl9UUktfQ1RMX1NGX1BBUlRJQUxf RlJBTUVfVVBEQVRFOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdTMyIG1hbl90cmtfY3RsX2NvbnRp bnVvc19mdWxsX2ZyYW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gK3sN Cj4gKwlyZXR1cm4gSVNfQUxERVJMQUtFX1AoZGV2X3ByaXYpID8NCj4gKwkJQURMUF9QU1IyX01B Tl9UUktfQ1RMX1NGX0NPTlRJTlVPU19GVUxMX0ZSQU1FIDoNCj4gKwkJUFNSMl9NQU5fVFJLX0NU TF9TRl9DT05USU5VT1NfRlVMTF9GUkFNRTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgaW50 ZWxfcHNyX3N0YXRzX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1MzIgcHNyMl9t YW5fdHJhY2tfY3RsKQ0KPiArew0KPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOw0KPiArCXN0cnVjdCBpbnRlbF9wc3IgKnBzciA9ICZp bnRlbF9kcC0+cHNyOw0KPiArDQo+ICsJaWYgKCFwc3ItPmVuYWJsZWQgfHwgIXBzci0+c3RhdHMu ZW5hYmxlKQ0KPiArCQlyZXR1cm47DQo+ICsNCj4gKwlpZiAocHNyLT5wc3IyX3NlbF9mZXRjaF9j ZmZfZW5hYmxlZCB8fA0KPiArCSAgICBwc3IyX21hbl90cmFja19jdGwgJiAobWFuX3Rya19jdGxf c2luZ2xlX2Z1bGxfZnJhbWVfYml0X2dldChkZXZfcHJpdikgfA0KPiArCQkJCW1hbl90cmtfY3Rs X3NpbmdsZV9mdWxsX2ZyYW1lX2JpdF9nZXQoZGV2X3ByaXYpKSkNCj4gKwkJcHNyLT5zdGF0cy5m dWxsX3VwZGF0ZV9jb3VudCArPSAxOw0KPiArCWVsc2UgaWYgKHBzcjJfbWFuX3RyYWNrX2N0bCAm IG1hbl90cmtfY3RsX3BhcnRpYWxfZnJhbWVfYml0X2dldChkZXZfcHJpdikpDQo+ICsJCXBzci0+ c3RhdHMuc2VsZWN0aXZlX3VwZGF0ZV9jb3VudCArPSAxOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMg dm9pZCBpbnRlbF9wc3Jfc3RhdHNfZW5hYmxlX3BzcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQ0KPiArew0KPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5 MTUoaW50ZWxfZHApOw0KPiArCXN0cnVjdCBpbnRlbF9wc3IgKnBzciA9ICZpbnRlbF9kcC0+cHNy Ow0KPiArCWt0aW1lX3QgdmJsYW5rdGltZTsNCj4gKw0KPiArCWlmIChwc3ItPnN0YXRzLmVuYWJs ZSkNCj4gKwkJcHNyLT5zdGF0cy5ub25fcHNyX3ZibGFua19jb3VudCArPQ0KPiArCQkJZHJtX2Ny dGNfdmJsYW5rX2NvdW50X2FuZF90aW1lKCZpbnRlbF9jcnRjX2Zvcl9waXBlKGRldl9wcml2LA0K PiArCQkJCQkJCQkJICAgIHBzci0+cGlwZSktPmJhc2UsDQo+ICsJCQkJCQkgICAgICAgJnZibGFu a3RpbWUpIC0NCj4gKwkJCXBzci0+c3RhdHMucHNyX2Rpc2FibGVfdmJsYW5rOw0KPiArfQ0KPiAr DQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9wc3Jfc3RhdHNfZGlzYWJsZV9wc3Ioc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkNCj4gK3sNCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsNCj4gKwlzdHJ1Y3QgaW50ZWxfcHNyICpwc3IgPSAm aW50ZWxfZHAtPnBzcjsNCj4gKwlrdGltZV90IHZibGFua3RpbWU7DQo+ICsNCj4gKwlpZiAocHNy LT5zdGF0cy5lbmFibGUpDQo+ICsJCXBzci0+c3RhdHMucHNyX2Rpc2FibGVfdmJsYW5rID0NCj4g KwkJCWRybV9jcnRjX3ZibGFua19jb3VudF9hbmRfdGltZSgmaW50ZWxfY3J0Y19mb3JfcGlwZShk ZXZfcHJpdiwNCj4gKwkJCQkJCQkJCSAgICBwc3ItPnBpcGUpLT5iYXNlLA0KPiArCQkJCQkJICAg ICAgICZ2Ymxhbmt0aW1lKTsNCj4gK30NCj4gKw0KPiArdm9pZCBpbnRlbF9wc3Jfc3RhdHNfZW5h YmxlX3N0YXRzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ICt7DQo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7DQo+ICsJc3Ry dWN0IGludGVsX3BzciAqcHNyID0gJmludGVsX2RwLT5wc3I7DQo+ICsJa3RpbWVfdCB2Ymxhbmt0 aW1lOw0KPiArDQo+ICsJbXV0ZXhfbG9jaygmaW50ZWxfZHAtPnBzci5sb2NrKTsNCj4gKwltZW1z ZXQoJnBzci0+c3RhdHMsIDAsIHNpemVvZihwc3ItPnN0YXRzKSk7DQo+ICsJcHNyLT5zdGF0cy5z dGFydF92YmxhbmsgPQ0KPiArCQlkcm1fY3J0Y192YmxhbmtfY291bnRfYW5kX3RpbWUoJmludGVs X2NydGNfZm9yX3BpcGUoZGV2X3ByaXYsDQo+ICsJCQkJCQkJCSAgICBwc3ItPnBpcGUpLT5iYXNl LA0KPiArCQkJCQkgICAgICAgJnZibGFua3RpbWUpOw0KPiArCWlmICghcHNyLT5hY3RpdmUpDQo+ ICsJCXBzci0+c3RhdHMucHNyX2Rpc2FibGVfdmJsYW5rID0gcHNyLT5zdGF0cy5zdGFydF92Ymxh bms7DQo+ICsJcHNyLT5zdGF0cy5lbmFibGUgPSB0cnVlOw0KPiArCW11dGV4X3VubG9jaygmcHNy LT5sb2NrKTsNCj4gK30NCj4gKw0KPiArdm9pZCBpbnRlbF9wc3Jfc3RhdHNfZGlzYWJsZV9zdGF0 cyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiArew0KPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOw0KPiArCXN0cnVjdCBpbnRl bF9wc3IgKnBzciA9ICZpbnRlbF9kcC0+cHNyOw0KPiArCWt0aW1lX3QgdmJsYW5rdGltZTsNCj4g Kw0KPiArCWlmICghcHNyLT5zdGF0cy5lbmFibGUpDQo+ICsJCXJldHVybjsNCj4gKw0KPiArCW11 dGV4X2xvY2soJnBzci0+bG9jayk7DQo+ICsJcHNyLT5zdGF0cy5lbmFibGUgPSBmYWxzZTsNCj4g Kwlwc3ItPnN0YXRzLnRvdGFsX3ZibGFua19jb3VudCA9DQo+ICsJCWRybV9jcnRjX3ZibGFua19j b3VudF9hbmRfdGltZSgmaW50ZWxfY3J0Y19mb3JfcGlwZShkZXZfcHJpdiwNCj4gKwkJCQkJCQkJ ICAgIHBzci0+cGlwZSktPmJhc2UsDQo+ICsJCQkJCSAgICAgICAmdmJsYW5rdGltZSkgLQ0KPiAr CQlwc3ItPnN0YXRzLnN0YXJ0X3ZibGFuazsNCj4gKwlpZiAoIXBzci0+YWN0aXZlKQ0KPiArCQlw c3ItPnN0YXRzLm5vbl9wc3JfdmJsYW5rX2NvdW50ICs9DQo+ICsJCQlkcm1fY3J0Y192Ymxhbmtf Y291bnRfYW5kX3RpbWUoJmludGVsX2NydGNfZm9yX3BpcGUoZGV2X3ByaXYsDQo+ICsJCQkJCQkJ CQkgICAgcHNyLT5waXBlKS0+YmFzZSwNCj4gKwkJCQkJCSAgICAgICAmdmJsYW5rdGltZSkgLQ0K PiArCQkJcHNyLT5zdGF0cy5wc3JfZGlzYWJsZV92Ymxhbms7DQo+ICsJbXV0ZXhfdW5sb2NrKCZw c3ItPmxvY2spOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfYWN0aXZhdGUo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gIHsNCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsNCj4gQEAgLTEwNjksNiArMTE4 MSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bzcl9hY3RpdmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQ0KPiAgCQloc3dfYWN0aXZhdGVfcHNyMShpbnRlbF9kcCk7DQo+ICANCj4gIAlpbnRl bF9kcC0+cHNyLmFjdGl2ZSA9IHRydWU7DQo+ICsNCj4gKwlpbnRlbF9wc3Jfc3RhdHNfZW5hYmxl X3BzcihpbnRlbF9kcCk7DQo+ICB9DQo+ICANCj4gIHN0YXRpYyB1MzIgd2FfMTYwMTM4MzU0Njhf Yml0X2dldChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiBAQCAtMTI4MCw2ICsxMzk0LDgg QEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2V4aXQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkN Cj4gIAkJCSAgICAgICBFRFBfUFNSX0NUTChpbnRlbF9kcC0+cHNyLnRyYW5zY29kZXIpLCB2YWwp Ow0KPiAgCX0NCj4gIAlpbnRlbF9kcC0+cHNyLmFjdGl2ZSA9IGZhbHNlOw0KPiArDQo+ICsJaW50 ZWxfcHNyX3N0YXRzX2Rpc2FibGVfcHNyKGludGVsX2RwKTsNCj4gIH0NCj4gIA0KPiAgc3RhdGlj IHZvaWQgaW50ZWxfcHNyX3dhaXRfZXhpdF9sb2NrZWQoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkNCj4gQEAgLTE0NDQsMzIgKzE1NjAsNiBAQCB2b2lkIGludGVsX3Bzcl9yZXN1bWUoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkNCj4gIAltdXRleF91bmxvY2soJnBzci0+bG9jayk7DQo+ICB9 DQo+ICANCj4gLXN0YXRpYyB1MzIgbWFuX3Rya19jdGxfZW5hYmxlX2JpdF9nZXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiAtew0KPiAtCXJldHVybiBJU19BTERFUkxBS0Vf UChkZXZfcHJpdikgPyAwIDogUFNSMl9NQU5fVFJLX0NUTF9FTkFCTEU7DQo+IC19DQo+IC0NCj4g LXN0YXRpYyB1MzIgbWFuX3Rya19jdGxfc2luZ2xlX2Z1bGxfZnJhbWVfYml0X2dldChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+IC17DQo+IC0JcmV0dXJuIElTX0FMREVSTEFL RV9QKGRldl9wcml2KSA/DQo+IC0JICAgICAgIEFETFBfUFNSMl9NQU5fVFJLX0NUTF9TRl9TSU5H TEVfRlVMTF9GUkFNRSA6DQo+IC0JICAgICAgIFBTUjJfTUFOX1RSS19DVExfU0ZfU0lOR0xFX0ZV TExfRlJBTUU7DQo+IC19DQo+IC0NCj4gLXN0YXRpYyB1MzIgbWFuX3Rya19jdGxfcGFydGlhbF9m cmFtZV9iaXRfZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gLXsNCj4g LQlyZXR1cm4gSVNfQUxERVJMQUtFX1AoZGV2X3ByaXYpID8NCj4gLQkgICAgICAgQURMUF9QU1Iy X01BTl9UUktfQ1RMX1NGX1BBUlRJQUxfRlJBTUVfVVBEQVRFIDoNCj4gLQkgICAgICAgUFNSMl9N QU5fVFJLX0NUTF9TRl9QQVJUSUFMX0ZSQU1FX1VQREFURTsNCj4gLX0NCj4gLQ0KPiAtc3RhdGlj IHUzMiBtYW5fdHJrX2N0bF9jb250aW51b3NfZnVsbF9mcmFtZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpDQo+IC17DQo+IC0JcmV0dXJuIElTX0FMREVSTEFLRV9QKGRldl9wcml2 KSA/DQo+IC0JICAgICAgIEFETFBfUFNSMl9NQU5fVFJLX0NUTF9TRl9DT05USU5VT1NfRlVMTF9G UkFNRSA6DQo+IC0JICAgICAgIFBTUjJfTUFOX1RSS19DVExfU0ZfQ09OVElOVU9TX0ZVTExfRlJB TUU7DQo+IC19DQo+IC0NCj4gIHN0YXRpYyB2b2lkIHBzcl9mb3JjZV9od190cmFja2luZ19leGl0 KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ICB7DQo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7DQo+IEBAIC0xOTExLDYgKzIw MDEsOCBAQCBzdGF0aWMgdm9pZCBfaW50ZWxfcHNyX3Bvc3RfcGxhbmVfdXBkYXRlKGNvbnN0IHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLA0KPiAgDQo+ICAJCWRybV9XQVJOX09OKCZk ZXZfcHJpdi0+ZHJtLCBwc3ItPmVuYWJsZWQgJiYgIWNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMp Ow0KPiAgDQo+ICsJCWludGVsX3Bzcl9zdGF0c191cGRhdGUoaW50ZWxfZHAsIGNydGNfc3RhdGUt PnBzcjJfbWFuX3RyYWNrX2N0bCk7DQo+ICsNCj4gIAkJLyogT25seSBlbmFibGUgaWYgdGhlcmUg aXMgYWN0aXZlIHBsYW5lcyAqLw0KPiAgCQlpZiAoIXBzci0+ZW5hYmxlZCAmJiBjcnRjX3N0YXRl LT5hY3RpdmVfcGxhbmVzKQ0KPiAgCQkJaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoaW50ZWxfZHAs IGNydGNfc3RhdGUpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9wc3IuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmgN Cj4gaW5kZXggMmFjM2E0NmNjY2M1Li5jZGE1MGU0MjNlYzkgMTAwNjQ0DQo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmgNCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuaA0KPiBAQCAtNTgsNCArNTgsNiBAQCB2b2lkIGlu dGVsX3Bzcl9yZXN1bWUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7DQo+ICB2b2lkIGludGVs X3Bzcl9sb2NrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsNCj4g IHZvaWQgaW50ZWxfcHNyX3VubG9jayhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSk7DQo+ICANCj4gK3ZvaWQgaW50ZWxfcHNyX3N0YXRzX2VuYWJsZV9zdGF0cyhzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsNCj4gK3ZvaWQgaW50ZWxfcHNyX3N0YXRzX2Rpc2FibGVf c3RhdHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7DQo+ICAjZW5kaWYgLyogX19JTlRFTF9Q U1JfSF9fICovDQoNCg==