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 1BC49C433EF for ; Mon, 27 Sep 2021 21:56:31 +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 D67E260F4F for ; Mon, 27 Sep 2021 21:56:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org D67E260F4F 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 3E8F66E047; Mon, 27 Sep 2021 21:56:30 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F7B36E047 for ; Mon, 27 Sep 2021 21:56:28 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10120"; a="247072191" X-IronPort-AV: E=Sophos;i="5.85,327,1624345200"; d="scan'208";a="247072191" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Sep 2021 14:56:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,327,1624345200"; d="scan'208";a="561572455" Received: from irsmsx603.ger.corp.intel.com ([163.33.146.9]) by fmsmga002.fm.intel.com with ESMTP; 27 Sep 2021 14:56:27 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by irsmsx603.ger.corp.intel.com (163.33.146.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 27 Sep 2021 22:56:25 +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 14:56:24 -0700 From: "Souza, Jose" To: "intel-gfx@lists.freedesktop.org" , "Deak, Imre" Thread-Topic: [PATCH 08/13] drm/i915/tc: Refactor TC-cold block/unblock helpers Thread-Index: AQHXrn7nb8c7xbwLM06PECJcF7cxIqu47v2A Date: Mon, 27 Sep 2021 21:56:24 +0000 Message-ID: References: <20210921002313.1132357-1-imre.deak@intel.com> <20210921002313.1132357-9-imre.deak@intel.com> In-Reply-To: <20210921002313.1132357-9-imre.deak@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: <1113AC65EB53DD458232F68FAF6FDA4B@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" T24gVHVlLCAyMDIxLTA5LTIxIGF0IDAzOjIzICswMzAwLCBJbXJlIERlYWsgd3JvdGU6DQo+IEEg Zm9sbG93LXVwIGNoYW5nZSB3aWxsIHNlbGVjdCB0aGUgVEMtY29sZCBibG9ja2luZyBwb3dlciBk b21haW4gYmFzZWQNCj4gb24gdGhlIFR5cGVDIG1vZGUsIHByZXBhcmUgZm9yIHRoYXQgaGVyZS4N Cj4gDQo+IEFsc28gYnJpbmcgaW50ZWxfdGNfY29sZF9yZXF1aXJlc19hdXhfcHcoKSBlYXJsaWVy IHRvIGl0cyBsb2dpY2FsIHBsYWNlDQo+IGZvciByZWFkYWJpbGl0eS4NCj4gDQo+IE5vIGZ1bmN0 aW9uYWwgY2hhbmdlLg0KPiANCj4gQ2M6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291 emFAaW50ZWwuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRl bC5jb20+DQo+IC0tLQ0KPiAgLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBl cy5oICAgIHwgIDIgKw0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5j ICAgICAgIHwgNjMgKysrKysrKysrKystLS0tLS0tLQ0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAzOSBp bnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oDQo+IGluZGV4IGU5ZTgwNmQ5 MGVlYzQuLjA4YTczZmZkZWQ5NTcgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oDQo+IEBAIC0xNjYzLDggKzE2NjMsMTAg QEAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCB7DQo+ICAJZW51bSBpbnRlbF9kaXNwbGF5X3Bv d2VyX2RvbWFpbiBkZGlfaW9fcG93ZXJfZG9tYWluOw0KPiAgCWludGVsX3dha2VyZWZfdCBkZGlf aW9fd2FrZXJlZjsNCj4gIAlpbnRlbF93YWtlcmVmX3QgYXV4X3dha2VyZWY7DQo+ICsNCj4gIAlz dHJ1Y3QgbXV0ZXggdGNfbG9jazsJLyogcHJvdGVjdHMgdGhlIFR5cGVDIHBvcnQgbW9kZSAqLw0K PiAgCWludGVsX3dha2VyZWZfdCB0Y19sb2NrX3dha2VyZWY7DQo+ICsJZW51bSBpbnRlbF9kaXNw bGF5X3Bvd2VyX2RvbWFpbiB0Y19sb2NrX3Bvd2VyX2RvbWFpbjsNCj4gIAlpbnQgdGNfbGlua19y ZWZjb3VudDsNCj4gIAlib29sIHRjX2xlZ2FjeV9wb3J0OjE7DQo+ICAJY2hhciB0Y19wb3J0X25h bWVbOF07DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X3RjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmMNCj4gaW5kZXgg NzdiMTZhN2M0MzQ2Ni4uMjRkMmRjMmUxOWE3ZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfdGMuYw0KPiBAQCAtNDgsOCArNDgsMTYgQEAgYm9vbCBpbnRlbF90Y19w b3J0X2luX2xlZ2FjeV9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQ0K PiAgCXJldHVybiBpbnRlbF90Y19wb3J0X2luX21vZGUoZGlnX3BvcnQsIFRDX1BPUlRfTEVHQUNZ KTsNCj4gIH0NCj4gIA0KPiArYm9vbCBpbnRlbF90Y19jb2xkX3JlcXVpcmVzX2F1eF9wdyhzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkNCj4gK3sNCj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOw0KPiAr DQo+ICsJcmV0dXJuIChESVNQTEFZX1ZFUihpOTE1KSA9PSAxMSAmJiBkaWdfcG9ydC0+dGNfbGVn YWN5X3BvcnQpIHx8DQo+ICsJCUlTX0FMREVSTEFLRV9QKGk5MTUpOw0KPiArfQ0KPiArDQo+ICBz dGF0aWMgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbg0KPiAtdGNfY29sZF9nZXRfcG93 ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQ0KPiArdGNfY29s ZF9nZXRfcG93ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LCBl bnVtIHRjX3BvcnRfbW9kZSBtb2RlKQ0KPiAgew0KPiAgCWlmIChpbnRlbF90Y19jb2xkX3JlcXVp cmVzX2F1eF9wdyhkaWdfcG9ydCkpDQo+ICAJCXJldHVybiBpbnRlbF9sZWdhY3lfYXV4X3RvX3Bv d2VyX2RvbWFpbihkaWdfcG9ydC0+YXV4X2NoKTsNCj4gQEAgLTU4LDIzICs2NiwzMCBAQCB0Y19j b2xkX2dldF9wb3dlcl9kb21haW4oc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQp DQo+ICB9DQo+ICANCj4gIHN0YXRpYyBpbnRlbF93YWtlcmVmX3QNCj4gLXRjX2NvbGRfYmxvY2so c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpDQo+ICt0Y19jb2xkX2Jsb2NrX2lu X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsIGVudW0gdGNfcG9ydF9t b2RlIG1vZGUsDQo+ICsJCSAgICAgIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gKmRv bWFpbikNCj4gIHsNCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUo ZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOw0KPiAtCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9k b21haW4gZG9tYWluOw0KPiAgDQo+ICAJaWYgKERJU1BMQVlfVkVSKGk5MTUpID09IDExICYmICFk aWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQpDQo+ICAJCXJldHVybiAwOw0KPiAgDQo+IC0JZG9tYWlu ID0gdGNfY29sZF9nZXRfcG93ZXJfZG9tYWluKGRpZ19wb3J0KTsNCj4gLQlyZXR1cm4gaW50ZWxf ZGlzcGxheV9wb3dlcl9nZXQoaTkxNSwgZG9tYWluKTsNCj4gKwkqZG9tYWluID0gdGNfY29sZF9n ZXRfcG93ZXJfZG9tYWluKGRpZ19wb3J0LCBtb2RlKTsNCg0KSSBzZWUgcHJvYmxlbXMgd2l0aCB0 aGlzIGFwcHJvYWNoLg0KSWYgdGhlcmUgaXMgYSBUQyBhbHQtbW9kZSBpcyBjb25uZWN0ZWQgYW5k IGN1cnJlbnQgc29mdHdhcmUgc3RhdGUgaXMgVEJUIG9yIGRpc2Nvbm5lY3RlZCBpdCB3aWxsIG5v dCBnZXQgdGhlIHBvd2VyIGRvbWFpbiB0byBleGl0IFRDIGNvbGQsIHdoYXQgY291bGQNCmNhc2Ug aW52YWxpZCByZWFkcyBvZiByZWdpc3RlcnMuDQoNCkZyb20gdGhlIG5leHQgcGF0Y2ggY29tbWl0 IG1lc3NhZ2U6ICdGb3IgdGhlIEFETC1QIFRCVCBtb2RlIHRoZSBzcGVjIGRvZXNuJ3QgcmVxdWly ZSBibG9ja2luZyBUQy1jb2xkIGJ5DQp1c2luZyB0aGUgbGVnYWN5IEFVWCBwb3dlciBkb21haW4n Lg0KDQpJdCBpcyBub3QgcmVxdWlyZWQgZm9yIFRCVCBidXQgd2hlbiB0aGVyZSBpcyBub3RoaW5n IGNvbm5lY3RlZCwgaGFyZHdhcmUgaXMgbm90IGluIFRCVCBtb2RlIHNvIGl0IGNhbiBzdGlsbCBn ZXQgaW50byBUQyBjb2xkLg0KDQo+ICsNCj4gKwlyZXR1cm4gaW50ZWxfZGlzcGxheV9wb3dlcl9n ZXQoaTkxNSwgKmRvbWFpbik7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnRlbF93YWtlcmVmX3QN Cj4gK3RjX2NvbGRfYmxvY2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsIGVu dW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gKmRvbWFpbikNCj4gK3sNCj4gKwlyZXR1cm4g dGNfY29sZF9ibG9ja19pbl9tb2RlKGRpZ19wb3J0LCBkaWdfcG9ydC0+dGNfbW9kZSwgZG9tYWlu KTsNCj4gIH0NCj4gIA0KPiAgc3RhdGljIHZvaWQNCj4gLXRjX2NvbGRfdW5ibG9jayhzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwgaW50ZWxfd2FrZXJlZl90IHdha2VyZWYpDQo+ ICt0Y19jb2xkX3VuYmxvY2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsIGVu dW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluLA0KPiArCQlpbnRlbF93YWtlcmVm X3Qgd2FrZXJlZikNCj4gIHsNCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRv X2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOw0KPiAtCWVudW0gaW50ZWxfZGlzcGxheV9w b3dlcl9kb21haW4gZG9tYWluOw0KPiAgDQo+ICAJLyoNCj4gIAkgKiB3YWtlcmVmID09IC0xLCBt ZWFucyBzb21lIGVycm9yIGhhcHBlbmVkIHNhdmluZyBzYXZlX2RlcG90X3N0YWNrIGJ1dA0KPiBA QCAtODQsOCArOTksNyBAQCB0Y19jb2xkX3VuYmxvY2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqZGlnX3BvcnQsIGludGVsX3dha2VyZWZfdCB3YWtlcmVmKQ0KPiAgCWlmICh3YWtlcmVmID09 IDApDQo+ICAJCXJldHVybjsNCj4gIA0KPiAtCWRvbWFpbiA9IHRjX2NvbGRfZ2V0X3Bvd2VyX2Rv bWFpbihkaWdfcG9ydCk7DQo+IC0JaW50ZWxfZGlzcGxheV9wb3dlcl9wdXRfYXN5bmMoaTkxNSwg ZG9tYWluLCB3YWtlcmVmKTsNCj4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChpOTE1LCBkb21h aW4sIHdha2VyZWYpOw0KPiAgfQ0KPiAgDQo+ICBzdGF0aWMgdm9pZA0KPiBAQCAtOTgsNyArMTEy LDggQEAgYXNzZXJ0X3RjX2NvbGRfYmxvY2tlZChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCkNCj4gIAkJcmV0dXJuOw0KPiAgDQo+ICAJZW5hYmxlZCA9IGludGVsX2Rpc3BsYXlf cG93ZXJfaXNfZW5hYmxlZChpOTE1LA0KPiAtCQkJCQkJIHRjX2NvbGRfZ2V0X3Bvd2VyX2RvbWFp bihkaWdfcG9ydCkpOw0KPiArCQkJCQkJIHRjX2NvbGRfZ2V0X3Bvd2VyX2RvbWFpbihkaWdfcG9y dCwNCj4gKwkJCQkJCQkJCSAgZGlnX3BvcnQtPnRjX21vZGUpKTsNCj4gIAlkcm1fV0FSTl9PTigm aTkxNS0+ZHJtLCAhZW5hYmxlZCk7DQo+ICB9DQo+ICANCj4gQEAgLTYzNCw3ICs2NDksOCBAQCB2 b2lkIGludGVsX3RjX3BvcnRfc2FuaXRpemUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQpDQo+ICANCj4gIAlkcm1fV0FSTl9PTigmaTkxNS0+ZHJtLCBkaWdfcG9ydC0+dGNfbW9k ZSAhPSBUQ19QT1JUX0RJU0NPTk5FQ1RFRCk7DQo+ICAJaWYgKGFjdGl2ZV9saW5rcykgew0KPiAt CQlpbnRlbF93YWtlcmVmX3QgdGNfY29sZF93cmVmID0gdGNfY29sZF9ibG9jayhkaWdfcG9ydCk7 DQo+ICsJCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluOw0KPiArCQlpbnRl bF93YWtlcmVmX3QgdGNfY29sZF93cmVmID0gdGNfY29sZF9ibG9jayhkaWdfcG9ydCwgJmRvbWFp bik7DQo+ICANCj4gIAkJZGlnX3BvcnQtPnRjX21vZGUgPSBpbnRlbF90Y19wb3J0X2dldF9jdXJy ZW50X21vZGUoZGlnX3BvcnQpOw0KPiAgDQo+IEBAIC02NDQsNyArNjYwLDcgQEAgdm9pZCBpbnRl bF90Y19wb3J0X3Nhbml0aXplKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQ0K PiAgCQkJCSAgICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lLCBhY3RpdmVfbGlua3MpOw0KPiAgCQlp bnRlbF90Y19wb3J0X2xpbmtfaW5pdF9yZWZjb3VudChkaWdfcG9ydCwgYWN0aXZlX2xpbmtzKTsN Cj4gIA0KPiAtCQl0Y19jb2xkX3VuYmxvY2soZGlnX3BvcnQsIHRjX2NvbGRfd3JlZik7DQo+ICsJ CXRjX2NvbGRfdW5ibG9jayhkaWdfcG9ydCwgZG9tYWluLCB0Y19jb2xkX3dyZWYpOw0KPiAgCX0N Cj4gIA0KPiAgCWRybV9kYmdfa21zKCZpOTE1LT5kcm0sICJQb3J0ICVzOiBzYW5pdGl6ZSBtb2Rl ICglcylcbiIsDQo+IEBAIC02NzMsMTUgKzY4OSwxNiBAQCBib29sIGludGVsX3RjX3BvcnRfY29u bmVjdGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQ0KPiAgew0KPiAgCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOw0K PiAgCWJvb2wgaXNfY29ubmVjdGVkOw0KPiArCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21h aW4gZG9tYWluOw0KPiAgCWludGVsX3dha2VyZWZfdCB0Y19jb2xkX3dyZWY7DQo+ICANCj4gIAlp bnRlbF90Y19wb3J0X2xvY2soZGlnX3BvcnQpOw0KPiAtCXRjX2NvbGRfd3JlZiA9IHRjX2NvbGRf YmxvY2soZGlnX3BvcnQpOw0KPiArCXRjX2NvbGRfd3JlZiA9IHRjX2NvbGRfYmxvY2soZGlnX3Bv cnQsICZkb21haW4pOw0KPiAgDQo+ICAJaXNfY29ubmVjdGVkID0gdGNfcG9ydF9saXZlX3N0YXR1 c19tYXNrKGRpZ19wb3J0KSAmDQo+ICAJCSAgICAgICBCSVQoZGlnX3BvcnQtPnRjX21vZGUpOw0K PiAgDQo+IC0JdGNfY29sZF91bmJsb2NrKGRpZ19wb3J0LCB0Y19jb2xkX3dyZWYpOw0KPiArCXRj X2NvbGRfdW5ibG9jayhkaWdfcG9ydCwgZG9tYWluLCB0Y19jb2xkX3dyZWYpOw0KPiAgCWludGVs X3RjX3BvcnRfdW5sb2NrKGRpZ19wb3J0KTsNCj4gIA0KPiAgCXJldHVybiBpc19jb25uZWN0ZWQ7 DQo+IEBAIC02OTgsMTUgKzcxNSwxNiBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX3RjX3BvcnRfbG9j ayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwNCj4gIAltdXRleF9sb2NrKCZk aWdfcG9ydC0+dGNfbG9jayk7DQo+ICANCj4gIAlpZiAoIWRpZ19wb3J0LT50Y19saW5rX3JlZmNv dW50KSB7DQo+ICsJCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluOw0KPiAg CQlpbnRlbF93YWtlcmVmX3QgdGNfY29sZF93cmVmOw0KPiAgDQo+IC0JCXRjX2NvbGRfd3JlZiA9 IHRjX2NvbGRfYmxvY2soZGlnX3BvcnQpOw0KPiArCQl0Y19jb2xkX3dyZWYgPSB0Y19jb2xkX2Js b2NrKGRpZ19wb3J0LCAmZG9tYWluKTsNCj4gIA0KPiAgCQlpZiAoZm9yY2VfZGlzY29ubmVjdCB8 fCBpbnRlbF90Y19wb3J0X25lZWRzX3Jlc2V0KGRpZ19wb3J0KSkNCj4gIAkJCWludGVsX3RjX3Bv cnRfcmVzZXRfbW9kZShkaWdfcG9ydCwgcmVxdWlyZWRfbGFuZXMsDQo+ICAJCQkJCQkgZm9yY2Vf ZGlzY29ubmVjdCk7DQo+ICANCj4gLQkJdGNfY29sZF91bmJsb2NrKGRpZ19wb3J0LCB0Y19jb2xk X3dyZWYpOw0KPiArCQl0Y19jb2xkX3VuYmxvY2soZGlnX3BvcnQsIGRvbWFpbiwgdGNfY29sZF93 cmVmKTsNCj4gIAl9DQo+ICANCj4gIAlkcm1fV0FSTl9PTigmaTkxNS0+ZHJtLCBkaWdfcG9ydC0+ dGNfbW9kZSA9PSBUQ19QT1JUX0RJU0NPTk5FQ1RFRCk7DQo+IEBAIC03NzUsNiArNzkzLDcgQEAg dm9pZCBpbnRlbF90Y19wb3J0X3B1dF9saW5rKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRp Z19wb3J0KQ0KPiAgc3RhdGljIGJvb2wNCj4gIHRjX2hhc19tb2R1bGFyX2ZpYShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSwgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQp DQo+ICB7DQo+ICsJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW47DQo+ICAJ aW50ZWxfd2FrZXJlZl90IHdha2VyZWY7DQo+ICAJdTMyIHZhbDsNCj4gIA0KPiBAQCAtNzgyLDkg KzgwMSw5IEBAIHRjX2hhc19tb2R1bGFyX2ZpYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnDQo+ICAJCXJldHVybiBmYWxzZTsNCj4g IA0KPiAgCW11dGV4X2xvY2soJmRpZ19wb3J0LT50Y19sb2NrKTsNCj4gLQl3YWtlcmVmID0gdGNf Y29sZF9ibG9jayhkaWdfcG9ydCk7DQo+ICsJd2FrZXJlZiA9IHRjX2NvbGRfYmxvY2soZGlnX3Bv cnQsICZkb21haW4pOw0KPiAgCXZhbCA9IGludGVsX3VuY29yZV9yZWFkKCZpOTE1LT51bmNvcmUs IFBPUlRfVFhfREZMRVhEUFNQKEZJQTEpKTsNCj4gLQl0Y19jb2xkX3VuYmxvY2soZGlnX3BvcnQs IHdha2VyZWYpOw0KPiArCXRjX2NvbGRfdW5ibG9jayhkaWdfcG9ydCwgZG9tYWluLCB3YWtlcmVm KTsNCj4gIAltdXRleF91bmxvY2soJmRpZ19wb3J0LT50Y19sb2NrKTsNCj4gIA0KPiAgCWRybV9X QVJOX09OKCZpOTE1LT5kcm0sIHZhbCA9PSAweGZmZmZmZmZmKTsNCj4gQEAgLTgyOSwxMSArODQ4 LDMgQEAgdm9pZCBpbnRlbF90Y19wb3J0X2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq ZGlnX3BvcnQsIGJvb2wgaXNfbGVnYWN5KQ0KPiAgCWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50 ID0gMDsNCj4gIAl0Y19wb3J0X2xvYWRfZmlhX3BhcmFtcyhpOTE1LCBkaWdfcG9ydCk7DQo+ICB9 DQo+IC0NCj4gLWJvb2wgaW50ZWxfdGNfY29sZF9yZXF1aXJlc19hdXhfcHcoc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpDQo+IC17DQo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsNCj4gLQ0KPiAtCXJl dHVybiAoRElTUExBWV9WRVIoaTkxNSkgPT0gMTEgJiYgZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0 KSB8fA0KPiAtCQlJU19BTERFUkxBS0VfUChpOTE1KTsNCj4gLX0NCg0K