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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15918C433F5 for ; Mon, 27 Sep 2021 23:33:34 +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 C368C611C3 for ; Mon, 27 Sep 2021 23:33:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org C368C611C3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2367D6E05F; Mon, 27 Sep 2021 23:33:33 +0000 (UTC) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7AA526E05F for ; Mon, 27 Sep 2021 23:33:32 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10120"; a="224652953" X-IronPort-AV: E=Sophos;i="5.85,327,1624345200"; d="scan'208";a="224652953" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Sep 2021 16:33:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,327,1624345200"; d="scan'208";a="476096892" Received: from irsmsx606.ger.corp.intel.com ([163.33.146.139]) by orsmga007.jf.intel.com with ESMTP; 27 Sep 2021 16:33:30 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by IRSMSX606.ger.corp.intel.com (163.33.146.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 28 Sep 2021 00:33:29 +0100 Received: from orsmsx610.amr.corp.intel.com ([10.22.229.23]) by ORSMSX610.amr.corp.intel.com ([10.22.229.23]) with mapi id 15.01.2242.012; Mon, 27 Sep 2021 16:33:27 -0700 From: "Souza, Jose" To: "Deak, Imre" CC: "intel-gfx@lists.freedesktop.org" Thread-Topic: [PATCH 08/13] drm/i915/tc: Refactor TC-cold block/unblock helpers Thread-Index: AQHXrn7nb8c7xbwLM06PECJcF7cxIqu47v2AgAADPYCAAAO8gIAAAHOAgAATsoA= Date: Mon, 27 Sep 2021 23:33:27 +0000 Message-ID: <3a866ccd940e4209eedae76229168fc713f940ed.camel@intel.com> References: <20210921002313.1132357-1-imre.deak@intel.com> <20210921002313.1132357-9-imre.deak@intel.com> <20210927221345.GB2043218@ideak-desk.fi.intel.com> <20210927222843.GC2043218@ideak-desk.fi.intel.com> In-Reply-To: <20210927222843.GC2043218@ideak-desk.fi.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.22.254.132] Content-Type: text/plain; charset="utf-8" Content-ID: <5AD7934AC0758D40855040865BD874EC@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH 08/13] drm/i915/tc: Refactor TC-cold block/unblock helpers 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: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVHVlLCAyMDIxLTA5LTI4IGF0IDAxOjI4ICswMzAwLCBJbXJlIERlYWsgd3JvdGU6DQo+IE9u IFR1ZSwgU2VwIDI4LCAyMDIxIGF0IDAxOjIxOjIxQU0gKzAzMDAsIFNvdXphLCBKb3NlIHdyb3Rl Og0KPiA+IE9uIFR1ZSwgMjAyMS0wOS0yOCBhdCAwMToxMyArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Og0KPiA+ID4gT24gVHVlLCBTZXAgMjgsIDIwMjEgYXQgMTI6NTY6MjRBTSArMDMwMCwgU291emEs IEpvc2Ugd3JvdGU6DQo+ID4gPiA+IE9uIFR1ZSwgMjAyMS0wOS0yMSBhdCAwMzoyMyArMDMwMCwg SW1yZSBEZWFrIHdyb3RlOg0KPiA+ID4gPiA+IEEgZm9sbG93LXVwIGNoYW5nZSB3aWxsIHNlbGVj dCB0aGUgVEMtY29sZCBibG9ja2luZyBwb3dlciBkb21haW4gYmFzZWQNCj4gPiA+ID4gPiBvbiB0 aGUgVHlwZUMgbW9kZSwgcHJlcGFyZSBmb3IgdGhhdCBoZXJlLg0KPiA+ID4gPiA+IA0KPiA+ID4g PiA+IEFsc28gYnJpbmcgaW50ZWxfdGNfY29sZF9yZXF1aXJlc19hdXhfcHcoKSBlYXJsaWVyIHRv IGl0cyBsb2dpY2FsIHBsYWNlDQo+ID4gPiA+ID4gZm9yIHJlYWRhYmlsaXR5Lg0KPiA+ID4gPiA+ IA0KPiA+ID4gPiA+IE5vIGZ1bmN0aW9uYWwgY2hhbmdlLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ IENjOiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4NCj4gPiA+ ID4gPiBTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+DQo+ID4g PiA+ID4gLS0tDQo+ID4gPiA+ID4gIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlf dHlwZXMuaCAgICB8ICAyICsNCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF90Yy5jICAgICAgIHwgNjMgKysrKysrKysrKystLS0tLS0tLQ0KPiA+ID4gPiA+ICAy IGZpbGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQ0KPiA+ID4g PiA+IA0KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheV90eXBlcy5oDQo+ID4gPiA+ID4gaW5kZXggZTllODA2ZDkwZWVjNC4uMDhhNzNm ZmRlZDk1NyAxMDA2NDQNCj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaA0KPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oDQo+ID4gPiA+ID4gQEAgLTE2NjMs OCArMTY2MywxMCBAQCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0IHsNCj4gPiA+ID4gPiAgCWVu dW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZGRpX2lvX3Bvd2VyX2RvbWFpbjsNCj4gPiA+ ID4gPiAgCWludGVsX3dha2VyZWZfdCBkZGlfaW9fd2FrZXJlZjsNCj4gPiA+ID4gPiAgCWludGVs X3dha2VyZWZfdCBhdXhfd2FrZXJlZjsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gIAlzdHJ1Y3Qg bXV0ZXggdGNfbG9jazsJLyogcHJvdGVjdHMgdGhlIFR5cGVDIHBvcnQgbW9kZSAqLw0KPiA+ID4g PiA+ICAJaW50ZWxfd2FrZXJlZl90IHRjX2xvY2tfd2FrZXJlZjsNCj4gPiA+ID4gPiArCWVudW0g aW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gdGNfbG9ja19wb3dlcl9kb21haW47DQo+ID4gPiA+ ID4gIAlpbnQgdGNfbGlua19yZWZjb3VudDsNCj4gPiA+ID4gPiAgCWJvb2wgdGNfbGVnYWN5X3Bv cnQ6MTsNCj4gPiA+ID4gPiAgCWNoYXIgdGNfcG9ydF9uYW1lWzhdOw0KPiA+ID4gPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmMNCj4gPiA+ID4gPiBpbmRleCA3N2IxNmE3 YzQzNDY2Li4yNGQyZGMyZTE5YTdkIDEwMDY0NA0KPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYw0KPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYw0KPiA+ID4gPiA+IEBAIC00OCw4ICs0OCwxNiBA QCBib29sIGludGVsX3RjX3BvcnRfaW5fbGVnYWN5X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQpDQo+ID4gPiA+ID4gIAlyZXR1cm4gaW50ZWxfdGNfcG9ydF9pbl9tb2Rl KGRpZ19wb3J0LCBUQ19QT1JUX0xFR0FDWSk7DQo+ID4gPiA+ID4gIH0NCj4gPiA+ID4gPiAgDQo+ ID4gPiA+ID4gK2Jvb2wgaW50ZWxfdGNfY29sZF9yZXF1aXJlc19hdXhfcHcoc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpDQo+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRl dik7DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsJcmV0dXJuIChESVNQTEFZX1ZFUihpOTE1KSA9 PSAxMSAmJiBkaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQpIHx8DQo+ID4gPiA+ID4gKwkJSVNfQUxE RVJMQUtFX1AoaTkxNSk7DQo+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gIHN0 YXRpYyBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluDQo+ID4gPiA+ID4gLXRjX2NvbGRf Z2V0X3Bvd2VyX2RvbWFpbihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkNCj4g PiA+ID4gPiArdGNfY29sZF9nZXRfcG93ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmRpZ19wb3J0LCBlbnVtIHRjX3BvcnRfbW9kZSBtb2RlKQ0KPiA+ID4gPiA+ICB7DQo+ID4g PiA+ID4gIAlpZiAoaW50ZWxfdGNfY29sZF9yZXF1aXJlc19hdXhfcHcoZGlnX3BvcnQpKQ0KPiA+ ID4gPiA+ICAJCXJldHVybiBpbnRlbF9sZWdhY3lfYXV4X3RvX3Bvd2VyX2RvbWFpbihkaWdfcG9y dC0+YXV4X2NoKTsNCj4gPiA+ID4gPiBAQCAtNTgsMjMgKzY2LDMwIEBAIHRjX2NvbGRfZ2V0X3Bv d2VyX2RvbWFpbihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkNCj4gPiA+ID4g PiAgfQ0KPiA+ID4gPiA+ICANCj4gPiA+ID4gPiAgc3RhdGljIGludGVsX3dha2VyZWZfdA0KPiA+ ID4gPiA+IC10Y19jb2xkX2Jsb2NrKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 KQ0KPiA+ID4gPiA+ICt0Y19jb2xkX2Jsb2NrX2luX21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQsIGVudW0gdGNfcG9ydF9tb2RlIG1vZGUsDQo+ID4gPiA+ID4gKwkJICAg ICAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiAqZG9tYWluKQ0KPiA+ID4gPiA+ICB7 DQo+ID4gPiA+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZGln X3BvcnQtPmJhc2UuYmFzZS5kZXYpOw0KPiA+ID4gPiA+IC0JZW51bSBpbnRlbF9kaXNwbGF5X3Bv d2VyX2RvbWFpbiBkb21haW47DQo+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ICAJaWYgKERJU1BMQVlf VkVSKGk5MTUpID09IDExICYmICFkaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQpDQo+ID4gPiA+ID4g IAkJcmV0dXJuIDA7DQo+ID4gPiA+ID4gIA0KPiA+ID4gPiA+IC0JZG9tYWluID0gdGNfY29sZF9n ZXRfcG93ZXJfZG9tYWluKGRpZ19wb3J0KTsNCj4gPiA+ID4gPiAtCXJldHVybiBpbnRlbF9kaXNw bGF5X3Bvd2VyX2dldChpOTE1LCBkb21haW4pOw0KPiA+ID4gPiA+ICsJKmRvbWFpbiA9IHRjX2Nv bGRfZ2V0X3Bvd2VyX2RvbWFpbihkaWdfcG9ydCwgbW9kZSk7DQo+ID4gPiA+IA0KPiA+ID4gPiBJ IHNlZSBwcm9ibGVtcyB3aXRoIHRoaXMgYXBwcm9hY2guDQo+ID4gPiA+IA0KPiA+ID4gPiBJZiB0 aGVyZSBpcyBhIFRDIGFsdC1tb2RlIGlzIGNvbm5lY3RlZCBhbmQgY3VycmVudCBzb2Z0d2FyZSBz dGF0ZSBpcw0KPiA+ID4gPiBUQlQgb3IgZGlzY29ubmVjdGVkIGl0IHdpbGwgbm90IGdldCB0aGUg cG93ZXIgZG9tYWluIHRvIGV4aXQgVEMgY29sZCwNCj4gPiA+ID4gd2hhdCBjb3VsZCBjYXNlIGlu dmFsaWQgcmVhZHMgb2YgcmVnaXN0ZXJzLg0KPiA+ID4gDQo+ID4gPiBJZiB0aGUgbW9kZSBuZWVk cyB0byBiZSBjaGFuZ2VkLCBsaWtlIGluIHRoZSBhYm92ZSBjYXNlcywgdGhlIHBvd2VyDQo+ID4g PiBkb21haW4gcmVxdWlyZWQgdG8gZXhpdCBUQyBjb2xkIHdpbGwgYmUgdGFrZW4uDQo+ID4gDQo+ ID4gSG93Pw0KPiA+IEkgc2VlIGF0IGxlYXN0IHRoaXMgMiBwcm9ibGVtYXRpYyBjYXNlcy4NCj4g PiANCj4gPiBpbnRlbF90Y19wb3J0X3Nhbml0aXplKCkNCj4gPiAJdGNfY29sZF9ibG9jayhtb2Rl PVRCVCkNCj4gDQo+IEl0J3MgaW4gZGlzY29ubmVjdGVkIG1vZGUgYXQgdGhpcyBwb2ludC4NCg0K T2theS4NCg0KPiANCj4gPiANCj4gPiAJZGlnX3BvcnQtPnRjX21vZGUgPSBpbnRlbF90Y19wb3J0 X2dldF9jdXJyZW50X21vZGUoZGlnX3BvcnQpOw0KPiA+IAkuLi4NCj4gPiANCj4gPiAJdGNfY29s ZF91bmJsb2NrKGRpZ19wb3J0LCBkb21haW4sIHRjX2NvbGRfd3JlZik7DQo+ID4gDQo+ID4gT3Ro ZXIgY2FzZQ0KPiA+IA0KPiA+IGludGVsX3RjX3BvcnRfY29ubmVjdGVkKCkNCj4gPiANCj4gPiAJ dGNfY29sZF9ibG9jayhtb2RlPVRCVCkNCj4gDQo+IFJlYWRpbmcgUE9SVF9UWF9ERkxFWERQU1Ag d2hpbGUgaW4gVEMtY29sZCByZXR1cm5zIDB4ZmZmZmZmZmYsIGFuZCBpdCdzDQo+IGhhbmRsZWQg d2hlbiByZWFkaW5nIGl0ICh3aGljaCBpcyBhbHNvIHJlcXVpcmVkIGJ5IHRoZSBzcGVjKS4NCg0K V2lsbCBvbmx5IGZvbGxvdyBhZGwtcCBmbG93IGZvciB0aGlzIGV4YW1wbGUswqBodHRwczovL3Bh c3RlYmluLmNvbS9yYXcvVFZYZEsxRXQgKHBhc3RlYmluIGp1c3QgdG8gbWFrZSBzdXJlIGluZGVu dGF0aW9uIGlzIG5vdCBsb3N0IGJldHdlZW4gZW1haWwNCmNsaWVudHMpDQoNCj4gDQo+ID4gCWlz X2Nvbm5lY3RlZCA9IHRjX3BvcnRfbGl2ZV9zdGF0dXNfbWFzayhkaWdfcG9ydCkgJg0KPiA+IAkJ ICAgICAgIEJJVChkaWdfcG9ydC0+dGNfbW9kZSk7DQo+ID4gDQo+ID4gCXRjX2NvbGRfdW5ibG9j ayhkaWdfcG9ydCwgZG9tYWluLCB0Y19jb2xkX3dyZWYpOw0KPiA+IA0KPiA+IA0KPiA+ID4gDQo+ ID4gPiA+IEZyb20gdGhlIG5leHQgcGF0Y2ggY29tbWl0IG1lc3NhZ2U6ICdGb3IgdGhlIEFETC1Q IFRCVCBtb2RlIHRoZSBzcGVjDQo+ID4gPiA+IGRvZXNuJ3QgcmVxdWlyZSBibG9ja2luZyBUQy1j b2xkIGJ5IHVzaW5nIHRoZSBsZWdhY3kgQVVYIHBvd2VyDQo+ID4gPiA+IGRvbWFpbicuDQo+ID4g PiA+IA0KPiA+ID4gPiBJdCBpcyBub3QgcmVxdWlyZWQgZm9yIFRCVCBidXQgd2hlbiB0aGVyZSBp cyBub3RoaW5nIGNvbm5lY3RlZCwNCj4gPiA+ID4gaGFyZHdhcmUgaXMgbm90IGluIFRCVCBtb2Rl IHNvIGl0IGNhbiBzdGlsbCBnZXQgaW50byBUQyBjb2xkLg0KPiA+ID4gDQo+ID4gPiBJZiB0aGVy ZSBpcyBub3RoaW5nIGNvbm5lY3RlZCB0aGUgcmVxdWlyZWQgcG93ZXIgZG9tYWluIHdpbGwgYmUg dGFrZW4gdG8NCj4gPiA+IGV4aXQgVEMgY29sZC4NCj4gPiA+IA0KPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiArCXJldHVybiBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChpOTE1LCAqZG9tYWluKTsNCj4g PiA+ID4gPiArfQ0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArc3RhdGljIGludGVsX3dha2VyZWZf dA0KPiA+ID4gPiA+ICt0Y19jb2xkX2Jsb2NrKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRp Z19wb3J0LCBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluICpkb21haW4pDQo+ID4gPiA+ ID4gK3sNCj4gPiA+ID4gPiArCXJldHVybiB0Y19jb2xkX2Jsb2NrX2luX21vZGUoZGlnX3BvcnQs IGRpZ19wb3J0LT50Y19tb2RlLCBkb21haW4pOw0KPiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4gIA0K PiA+ID4gPiA+ICBzdGF0aWMgdm9pZA0KPiA+ID4gPiA+IC10Y19jb2xkX3VuYmxvY2soc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsIGludGVsX3dha2VyZWZfdCB3YWtlcmVmKQ0K PiA+ID4gPiA+ICt0Y19jb2xkX3VuYmxvY2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQsIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluLA0KPiA+ID4gPiA+ ICsJCWludGVsX3dha2VyZWZfdCB3YWtlcmVmKQ0KPiA+ID4gPiA+ICB7DQo+ID4gPiA+ID4gIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFz ZS5kZXYpOw0KPiA+ID4gPiA+IC0JZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21h aW47DQo+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ICAJLyoNCj4gPiA+ID4gPiAgCSAqIHdha2VyZWYg PT0gLTEsIG1lYW5zIHNvbWUgZXJyb3IgaGFwcGVuZWQgc2F2aW5nIHNhdmVfZGVwb3Rfc3RhY2sg YnV0DQo+ID4gPiA+ID4gQEAgLTg0LDggKzk5LDcgQEAgdGNfY29sZF91bmJsb2NrKHN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LCBpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZikNCj4g PiA+ID4gPiAgCWlmICh3YWtlcmVmID09IDApDQo+ID4gPiA+ID4gIAkJcmV0dXJuOw0KPiA+ID4g PiA+ICANCj4gPiA+ID4gPiAtCWRvbWFpbiA9IHRjX2NvbGRfZ2V0X3Bvd2VyX2RvbWFpbihkaWdf cG9ydCk7DQo+ID4gPiA+ID4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dF9hc3luYyhpOTE1LCBk b21haW4sIHdha2VyZWYpOw0KPiA+ID4gPiA+ICsJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoaTkx NSwgZG9tYWluLCB3YWtlcmVmKTsNCj4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ICANCj4gPiA+ID4g PiAgc3RhdGljIHZvaWQNCj4gPiA+ID4gPiBAQCAtOTgsNyArMTEyLDggQEAgYXNzZXJ0X3RjX2Nv bGRfYmxvY2tlZChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkNCj4gPiA+ID4g PiAgCQlyZXR1cm47DQo+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ICAJZW5hYmxlZCA9IGludGVsX2Rp c3BsYXlfcG93ZXJfaXNfZW5hYmxlZChpOTE1LA0KPiA+ID4gPiA+IC0JCQkJCQkgdGNfY29sZF9n ZXRfcG93ZXJfZG9tYWluKGRpZ19wb3J0KSk7DQo+ID4gPiA+ID4gKwkJCQkJCSB0Y19jb2xkX2dl dF9wb3dlcl9kb21haW4oZGlnX3BvcnQsDQo+ID4gPiA+ID4gKwkJCQkJCQkJCSAgZGlnX3BvcnQt PnRjX21vZGUpKTsNCj4gPiA+ID4gPiAgCWRybV9XQVJOX09OKCZpOTE1LT5kcm0sICFlbmFibGVk KTsNCj4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ICANCj4gPiA+ID4gPiBAQCAtNjM0LDcgKzY0OSw4 IEBAIHZvaWQgaW50ZWxfdGNfcG9ydF9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICpkaWdfcG9ydCkNCj4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gIAlkcm1fV0FSTl9PTigmaTkxNS0+ ZHJtLCBkaWdfcG9ydC0+dGNfbW9kZSAhPSBUQ19QT1JUX0RJU0NPTk5FQ1RFRCk7DQo+ID4gPiA+ ID4gIAlpZiAoYWN0aXZlX2xpbmtzKSB7DQo+ID4gPiA+ID4gLQkJaW50ZWxfd2FrZXJlZl90IHRj X2NvbGRfd3JlZiA9IHRjX2NvbGRfYmxvY2soZGlnX3BvcnQpOw0KPiA+ID4gPiA+ICsJCWVudW0g aW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluOw0KPiA+ID4gPiA+ICsJCWludGVsX3dh a2VyZWZfdCB0Y19jb2xkX3dyZWYgPSB0Y19jb2xkX2Jsb2NrKGRpZ19wb3J0LCAmZG9tYWluKTsN Cj4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gIAkJZGlnX3BvcnQtPnRjX21vZGUgPSBpbnRlbF90Y19w b3J0X2dldF9jdXJyZW50X21vZGUoZGlnX3BvcnQpOw0KPiA+ID4gPiA+ICANCj4gPiA+ID4gPiBA QCAtNjQ0LDcgKzY2MCw3IEBAIHZvaWQgaW50ZWxfdGNfcG9ydF9zYW5pdGl6ZShzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkNCj4gPiA+ID4gPiAgCQkJCSAgICBkaWdfcG9ydC0+ dGNfcG9ydF9uYW1lLCBhY3RpdmVfbGlua3MpOw0KPiA+ID4gPiA+ICAJCWludGVsX3RjX3BvcnRf bGlua19pbml0X3JlZmNvdW50KGRpZ19wb3J0LCBhY3RpdmVfbGlua3MpOw0KPiA+ID4gPiA+ICAN Cj4gPiA+ID4gPiAtCQl0Y19jb2xkX3VuYmxvY2soZGlnX3BvcnQsIHRjX2NvbGRfd3JlZik7DQo+ ID4gPiA+ID4gKwkJdGNfY29sZF91bmJsb2NrKGRpZ19wb3J0LCBkb21haW4sIHRjX2NvbGRfd3Jl Zik7DQo+ID4gPiA+ID4gIAl9DQo+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ICAJZHJtX2RiZ19rbXMo Jmk5MTUtPmRybSwgIlBvcnQgJXM6IHNhbml0aXplIG1vZGUgKCVzKVxuIiwNCj4gPiA+ID4gPiBA QCAtNjczLDE1ICs2ODksMTYgQEAgYm9vbCBpbnRlbF90Y19wb3J0X2Nvbm5lY3RlZChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikNCj4gPiA+ID4gPiAgew0KPiA+ID4gPiA+ICAJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7 DQo+ID4gPiA+ID4gIAlib29sIGlzX2Nvbm5lY3RlZDsNCj4gPiA+ID4gPiArCWVudW0gaW50ZWxf ZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluOw0KPiA+ID4gPiA+ICAJaW50ZWxfd2FrZXJlZl90 IHRjX2NvbGRfd3JlZjsNCj4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gIAlpbnRlbF90Y19wb3J0X2xv Y2soZGlnX3BvcnQpOw0KPiA+ID4gPiA+IC0JdGNfY29sZF93cmVmID0gdGNfY29sZF9ibG9jayhk aWdfcG9ydCk7DQo+ID4gPiA+ID4gKwl0Y19jb2xkX3dyZWYgPSB0Y19jb2xkX2Jsb2NrKGRpZ19w b3J0LCAmZG9tYWluKTsNCj4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gIAlpc19jb25uZWN0ZWQgPSB0 Y19wb3J0X2xpdmVfc3RhdHVzX21hc2soZGlnX3BvcnQpICYNCj4gPiA+ID4gPiAgCQkgICAgICAg QklUKGRpZ19wb3J0LT50Y19tb2RlKTsNCj4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gLQl0Y19jb2xk X3VuYmxvY2soZGlnX3BvcnQsIHRjX2NvbGRfd3JlZik7DQo+ID4gPiA+ID4gKwl0Y19jb2xkX3Vu YmxvY2soZGlnX3BvcnQsIGRvbWFpbiwgdGNfY29sZF93cmVmKTsNCj4gPiA+ID4gPiAgCWludGVs X3RjX3BvcnRfdW5sb2NrKGRpZ19wb3J0KTsNCj4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gIAlyZXR1 cm4gaXNfY29ubmVjdGVkOw0KPiA+ID4gPiA+IEBAIC02OTgsMTUgKzcxNSwxNiBAQCBzdGF0aWMg dm9pZCBfX2ludGVsX3RjX3BvcnRfbG9jayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdf cG9ydCwNCj4gPiA+ID4gPiAgCW11dGV4X2xvY2soJmRpZ19wb3J0LT50Y19sb2NrKTsNCj4gPiA+ ID4gPiAgDQo+ID4gPiA+ID4gIAlpZiAoIWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50KSB7DQo+ ID4gPiA+ID4gKwkJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW47DQo+ID4g PiA+ID4gIAkJaW50ZWxfd2FrZXJlZl90IHRjX2NvbGRfd3JlZjsNCj4gPiA+ID4gPiAgDQo+ID4g PiA+ID4gLQkJdGNfY29sZF93cmVmID0gdGNfY29sZF9ibG9jayhkaWdfcG9ydCk7DQo+ID4gPiA+ ID4gKwkJdGNfY29sZF93cmVmID0gdGNfY29sZF9ibG9jayhkaWdfcG9ydCwgJmRvbWFpbik7DQo+ ID4gPiA+ID4gIA0KPiA+ID4gPiA+ICAJCWlmIChmb3JjZV9kaXNjb25uZWN0IHx8IGludGVsX3Rj X3BvcnRfbmVlZHNfcmVzZXQoZGlnX3BvcnQpKQ0KPiA+ID4gPiA+ICAJCQlpbnRlbF90Y19wb3J0 X3Jlc2V0X21vZGUoZGlnX3BvcnQsIHJlcXVpcmVkX2xhbmVzLA0KPiA+ID4gPiA+ICAJCQkJCQkg Zm9yY2VfZGlzY29ubmVjdCk7DQo+ID4gPiA+ID4gIA0KPiA+ID4gPiA+IC0JCXRjX2NvbGRfdW5i bG9jayhkaWdfcG9ydCwgdGNfY29sZF93cmVmKTsNCj4gPiA+ID4gPiArCQl0Y19jb2xkX3VuYmxv Y2soZGlnX3BvcnQsIGRvbWFpbiwgdGNfY29sZF93cmVmKTsNCj4gPiA+ID4gPiAgCX0NCj4gPiA+ ID4gPiAgDQo+ID4gPiA+ID4gIAlkcm1fV0FSTl9PTigmaTkxNS0+ZHJtLCBkaWdfcG9ydC0+dGNf bW9kZSA9PSBUQ19QT1JUX0RJU0NPTk5FQ1RFRCk7DQo+ID4gPiA+ID4gQEAgLTc3NSw2ICs3OTMs NyBAQCB2b2lkIGludGVsX3RjX3BvcnRfcHV0X2xpbmsoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqZGlnX3BvcnQpDQo+ID4gPiA+ID4gIHN0YXRpYyBib29sDQo+ID4gPiA+ID4gIHRjX2hhc19t b2R1bGFyX2ZpYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqZGlnX3BvcnQpDQo+ID4gPiA+ID4gIHsNCj4gPiA+ID4gPiArCWVudW0gaW50 ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluOw0KPiA+ID4gPiA+ICAJaW50ZWxfd2FrZXJl Zl90IHdha2VyZWY7DQo+ID4gPiA+ID4gIAl1MzIgdmFsOw0KPiA+ID4gPiA+ICANCj4gPiA+ID4g PiBAQCAtNzgyLDkgKzgwMSw5IEBAIHRjX2hhc19tb2R1bGFyX2ZpYShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnDQo+ID4gPiA+ID4g IAkJcmV0dXJuIGZhbHNlOw0KPiA+ID4gPiA+ICANCj4gPiA+ID4gPiAgCW11dGV4X2xvY2soJmRp Z19wb3J0LT50Y19sb2NrKTsNCj4gPiA+ID4gPiAtCXdha2VyZWYgPSB0Y19jb2xkX2Jsb2NrKGRp Z19wb3J0KTsNCj4gPiA+ID4gPiArCXdha2VyZWYgPSB0Y19jb2xkX2Jsb2NrKGRpZ19wb3J0LCAm ZG9tYWluKTsNCj4gPiA+ID4gPiAgCXZhbCA9IGludGVsX3VuY29yZV9yZWFkKCZpOTE1LT51bmNv cmUsIFBPUlRfVFhfREZMRVhEUFNQKEZJQTEpKTsNCj4gPiA+ID4gPiAtCXRjX2NvbGRfdW5ibG9j ayhkaWdfcG9ydCwgd2FrZXJlZik7DQo+ID4gPiA+ID4gKwl0Y19jb2xkX3VuYmxvY2soZGlnX3Bv cnQsIGRvbWFpbiwgd2FrZXJlZik7DQo+ID4gPiA+ID4gIAltdXRleF91bmxvY2soJmRpZ19wb3J0 LT50Y19sb2NrKTsNCj4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gIAlkcm1fV0FSTl9PTigmaTkxNS0+ ZHJtLCB2YWwgPT0gMHhmZmZmZmZmZik7DQo+ID4gPiA+ID4gQEAgLTgyOSwxMSArODQ4LDMgQEAg dm9pZCBpbnRlbF90Y19wb3J0X2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3Bv cnQsIGJvb2wgaXNfbGVnYWN5KQ0KPiA+ID4gPiA+ICAJZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291 bnQgPSAwOw0KPiA+ID4gPiA+ICAJdGNfcG9ydF9sb2FkX2ZpYV9wYXJhbXMoaTkxNSwgZGlnX3Bv cnQpOw0KPiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+IC1ib29sIGludGVsX3Rj X2NvbGRfcmVxdWlyZXNfYXV4X3B3KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 KQ0KPiA+ID4gPiA+IC17DQo+ID4gPiA+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOw0KPiA+ID4gPiA+IC0NCj4gPiA+ ID4gPiAtCXJldHVybiAoRElTUExBWV9WRVIoaTkxNSkgPT0gMTEgJiYgZGlnX3BvcnQtPnRjX2xl Z2FjeV9wb3J0KSB8fA0KPiA+ID4gPiA+IC0JCUlTX0FMREVSTEFLRV9QKGk5MTUpOw0KPiA+ID4g PiA+IC19DQo+ID4gPiA+IA0KPiA+IA0KDQo=