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=-13.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,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 5E469C433DB for ; Wed, 23 Dec 2020 11:53:51 +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 14D43223E8 for ; Wed, 23 Dec 2020 11:53:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 14D43223E8 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 664C689B45; Wed, 23 Dec 2020 11:53:50 +0000 (UTC) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 797FF89B45 for ; Wed, 23 Dec 2020 11:53:49 +0000 (UTC) IronPort-SDR: 7cSRUKrVVwoMZjPwzu7CE8proyR/wPMfF5Ru3Uz8oque5L34DTn+ezCkYABArl6zF2iYxZG1hW mPhtME8zEUcQ== X-IronPort-AV: E=McAfee;i="6000,8403,9843"; a="176150988" X-IronPort-AV: E=Sophos;i="5.78,441,1599548400"; d="scan'208";a="176150988" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Dec 2020 03:53:48 -0800 IronPort-SDR: 4mfTxKFkHgYSSpui4debtsoglpeGoSRtKKCFFAwCOAt5mdSf1eY2I7SmmgDOC+42+3c9NY3Qgy qkVTCofkjDyg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,441,1599548400"; d="scan'208";a="338777031" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga007.fm.intel.com with ESMTP; 23 Dec 2020 03:53:48 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 23 Dec 2020 03:53:47 -0800 Received: from irsmsx605.ger.corp.intel.com (163.33.146.138) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 23 Dec 2020 03:53:46 -0800 Received: from irsmsx605.ger.corp.intel.com ([163.33.146.138]) by IRSMSX605.ger.corp.intel.com ([163.33.146.138]) with mapi id 15.01.1713.004; Wed, 23 Dec 2020 11:53:45 +0000 From: "Mun, Gwan-gyeong" To: "intel-gfx@lists.freedesktop.org" , "Souza, Jose" Thread-Topic: [PATCH v9 2/5] drm/i915/display/psr: Use plane damage clips to calculate damaged area Thread-Index: AQHW1W4lmpiGqlxBlUq3C3iqd3/6p6oEmZAA Date: Wed, 23 Dec 2020 11:53:45 +0000 Message-ID: <7b2a48af1b56af9622b8b6be580ccce148c48e44.camel@intel.com> References: <20201218184701.111857-1-jose.souza@intel.com> <20201218184701.111857-2-jose.souza@intel.com> In-Reply-To: <20201218184701.111857-2-jose.souza@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.253.164] Content-ID: <140AB2C36E546943BF90BC1151D2F77B@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v9 2/5] drm/i915/display/psr: Use plane damage clips to calculate damaged area 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" SSd2ZSB0ZXN0ZWQgdGhpcyBwYXRjaCB3aXRoIFNlbGVjdGl2ZUZldGNoIC8gUFNSIFNlbGVjdGl2 ZSBVcGRhdGUgSUdUDQp0ZXN0Lg0KDQppZ3QgcGF0Y2ggOiBBZGQgRkJfREFNQUdFX0NMSVBTIHBy b3AgYW5kIG5ldyB0ZXN0IGZvciBTZWxlY3RpdmUgZmV0Y2gNCjogaHR0cHM6Ly9wYXRjaHdvcmsu ZnJlZWRlc2t0b3Aub3JnL3Nlcmllcy84NDY5Ni8gICh0aGlzIGlndCBwYXRjaCBpcw0KdW5kZXIg cmV2aWV3aW5nKQ0KDQpBcyBwZXIgYnNwZWMsIHdoZW4gSSBjaGVja2VkIHRoaXMgcGF0Y2ggYnkg Y29kZSBsZXZlbCwgaXQgbG9va2VkIGhhdmluZw0Kbm8gaXNzdWVzLg0KQnV0IGl0IHNob3dlZCB0 aGF0IHNvbWUgdGVzdHMgZmFpbGVkLg0KQmFzaWNhbGx5LCB0aGlzIGZlYXR1cmUgaXMgbm90IGVu YWJsZWQgYnkgZGVmYXVsdCBhbmQgb3RoZXIgdW5kZXItDQpkZXZlbG9wbWVudCBmZWF0dXJlcyAo bGlrZSBEU0MgZm9yIFBTUiBhbmQgRFAgcGFubmVsIHJlcGxheSkgYXJlDQpkZXBlbmRhbnQgb24g dGhpcyBmZWF0dXJlLg0KdGhlcmVmb3JlIEkgc3VnZ2VzdCBsYW5kIGl0IGZpcnN0IGFuZCBzZW5k IGFub3RoZXIgcGF0Y2ggZm9yIGZpeGluZw0KZmFpbGluZyBTRiBpZ3QgdGVzdC4NCg0KUmV2aWV3 ZWQtYnk6IEd3YW4tZ3llb25nIE11biA8Z3dhbi1neWVvbmcubXVuQGludGVsLmNvbT4NCg0KLSBQ YXNzZWQgY2FzZXMNCklHVC1WZXJzaW9uOiAxLjI1LWc5ZTM2ZmFmNiAoeDg2XzY0KSAoTGludXg6 IDUuMTAuMC1EUk0tVElQKyB4ODZfNjQpDQpTdGFydGluZyBzdWJ0ZXN0OiBwcmltYXJ5LXBsYW5l LXVwZGF0ZS1zZi1kbWctYXJlYS0xDQpTdWJ0ZXN0IHByaW1hcnktcGxhbmUtdXBkYXRlLXNmLWRt Zy1hcmVhLTE6IFNVQ0NFU1MgKDAuNDc3cykNClN0YXJ0aW5nIHN1YnRlc3Q6IHByaW1hcnktcGxh bmUtdXBkYXRlLXNmLWRtZy1hcmVhLTINClN1YnRlc3QgcHJpbWFyeS1wbGFuZS11cGRhdGUtc2Yt ZG1nLWFyZWEtMjogU1VDQ0VTUyAoMC40OTlzKQ0KU3RhcnRpbmcgc3VidGVzdDogcHJpbWFyeS1w bGFuZS11cGRhdGUtc2YtZG1nLWFyZWEtMw0KU3VidGVzdCBwcmltYXJ5LXBsYW5lLXVwZGF0ZS1z Zi1kbWctYXJlYS0zOiBTVUNDRVNTICgwLjQ5N3MpDQpTdGFydGluZyBzdWJ0ZXN0OiBwcmltYXJ5 LXBsYW5lLXVwZGF0ZS1zZi1kbWctYXJlYS00DQpTdWJ0ZXN0IHByaW1hcnktcGxhbmUtdXBkYXRl LXNmLWRtZy1hcmVhLTQ6IFNVQ0NFU1MgKDAuNDgzcykNClN0YXJ0aW5nIHN1YnRlc3Q6IHByaW1h cnktcGxhbmUtdXBkYXRlLXNmLWRtZy1hcmVhLTUNClN1YnRlc3QgcHJpbWFyeS1wbGFuZS11cGRh dGUtc2YtZG1nLWFyZWEtNTogU1VDQ0VTUyAoMC40ODVzKQ0KU3RhcnRpbmcgc3VidGVzdDogb3Zl cmxheS1wbGFuZS11cGRhdGUtc2YtZG1nLWFyZWEtMQ0KU3VidGVzdCBvdmVybGF5LXBsYW5lLXVw ZGF0ZS1zZi1kbWctYXJlYS0xOiBTVUNDRVNTICgwLjQ4OHMpDQpTdGFydGluZyBzdWJ0ZXN0OiBv dmVybGF5LXBsYW5lLXVwZGF0ZS1zZi1kbWctYXJlYS0yDQpTdWJ0ZXN0IG92ZXJsYXktcGxhbmUt dXBkYXRlLXNmLWRtZy1hcmVhLTI6IFNVQ0NFU1MgKDAuNjcycykNClN0YXJ0aW5nIHN1YnRlc3Q6 IG92ZXJsYXktcGxhbmUtdXBkYXRlLXNmLWRtZy1hcmVhLTMNClN1YnRlc3Qgb3ZlcmxheS1wbGFu ZS11cGRhdGUtc2YtZG1nLWFyZWEtMzogU1VDQ0VTUyAoMC41MzBzKQ0KU3RhcnRpbmcgc3VidGVz dDogb3ZlcmxheS1wbGFuZS11cGRhdGUtc2YtZG1nLWFyZWEtNA0KU3VidGVzdCBvdmVybGF5LXBs YW5lLXVwZGF0ZS1zZi1kbWctYXJlYS00OiBTVUNDRVNTICgwLjUzMXMpDQpTdGFydGluZyBzdWJ0 ZXN0OiBvdmVybGF5LXBsYW5lLXVwZGF0ZS1zZi1kbWctYXJlYS01DQpTdWJ0ZXN0IG92ZXJsYXkt cGxhbmUtdXBkYXRlLXNmLWRtZy1hcmVhLTU6IFNVQ0NFU1MgKDAuNTMxcykNClN0YXJ0aW5nIHN1 YnRlc3Q6IGN1cnNvci1wbGFuZS11cGRhdGUtc2YNClN1YnRlc3QgY3Vyc29yLXBsYW5lLXVwZGF0 ZS1zZjogU1VDQ0VTUyAoMC41MTNzKQ0KU3RhcnRpbmcgc3VidGVzdDogcGxhbmUtbW92ZS1zZi1k bWctYXJlYS0wDQpTdWJ0ZXN0IHBsYW5lLW1vdmUtc2YtZG1nLWFyZWEtMDogU1VDQ0VTUyAoMC42 NzJzKQ0KU3RhcnRpbmcgc3VidGVzdDogcGxhbmUtbW92ZS1zZi1kbWctYXJlYS0xDQpTdWJ0ZXN0 IHBsYW5lLW1vdmUtc2YtZG1nLWFyZWEtMTogU1VDQ0VTUyAoMC42NzJzKQ0KU3RhcnRpbmcgc3Vi dGVzdDogcGxhbmUtbW92ZS1zZi1kbWctYXJlYS0yDQpTdWJ0ZXN0IHBsYW5lLW1vdmUtc2YtZG1n LWFyZWEtMjogU1VDQ0VTUyAoMC41MzFzKQ0KU3RhcnRpbmcgc3VidGVzdDogcGxhbmUtbW92ZS1z Zi1kbWctYXJlYS0zDQpTdWJ0ZXN0IHBsYW5lLW1vdmUtc2YtZG1nLWFyZWEtMzogU1VDQ0VTUyAo MC42NzRzKQ0KU3RhcnRpbmcgc3VidGVzdDogb3ZlcmxheS1wcmltYXJ5LXVwZGF0ZS1zZi1kbWct YXJlYS0xDQpTdWJ0ZXN0IG92ZXJsYXktcHJpbWFyeS11cGRhdGUtc2YtZG1nLWFyZWEtMTogU1VD Q0VTUyAoMC42MDhzKQ0KU3RhcnRpbmcgc3VidGVzdDogb3ZlcmxheS1wcmltYXJ5LXVwZGF0ZS1z Zi1kbWctYXJlYS0yDQpTdWJ0ZXN0IG92ZXJsYXktcHJpbWFyeS11cGRhdGUtc2YtZG1nLWFyZWEt MjogU1VDQ0VTUyAoMC42MDVzKQ0KU3RhcnRpbmcgc3VidGVzdDogb3ZlcmxheS1wcmltYXJ5LXVw ZGF0ZS1zZi1kbWctYXJlYS0zDQpTdWJ0ZXN0IG92ZXJsYXktcHJpbWFyeS11cGRhdGUtc2YtZG1n LWFyZWEtMzogU1VDQ0VTUyAoMC42MDZzKQ0KDQotIEZhaWxlZCB0ZXN0DQpzdWJ0ZXN0OiBvdmVy bGF5LXByaW1hcnktdXBkYXRlLXNmLWRtZy1hcmVhLTQNCg0KQnIsDQpHLkcuDQoNCk9uIEZyaSwg MjAyMC0xMi0xOCBhdCAxMDo0NiAtMDgwMCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSB3cm90ZToN Cj4gTm93IHVzaW5nIHBsYW5lIGRhbWFnZSBjbGlwcyBwcm9wZXJ0eSB0byBjYWxjdWFsdGUgdGhl IGRhbWFnZWQgYXJlYS4NCj4gU2VsZWN0aXZlIGZldGNoIG9ubHkgc3VwcG9ydHMgb25lIHJlZ2lv biB0byBiZSBmZXRjaGVkIHNvIHNvZnR3YXJlDQo+IG5lZWRzIHRvIGNhbGN1bGF0ZSBhIGJvdW5k aW5nIGJveCBhcm91bmQgYWxsIGRhbWFnZSBjbGlwcy4NCj4gDQo+IE5vdyB0aGF0IHdlIGFyZSBu b3QgY29tcGxldGUgZmV0Y2hpbmcgZWFjaCBwbGFuZSwgdGhlcmUgaXMgYW5vdGhlcg0KPiBsb29w IG5lZWRlZCBhcyBhbGwgdGhlIHBsYW5lIGFyZWFzIHRoYXQgaW50ZXJzZWN0IHdpdGggdGhlIHBp cGUNCj4gZGFtYWdlZCBhcmVhIG5lZWRzIHRvIGJlIGZldGNoZWQgZnJvbSBtZW1vcnkgc28gdGhl IGNvbXBsZXRlIGJsZW5kaW5nDQo+IG9mIGFsbCBwbGFuZXMgY2FuIGhhcHBlbi4NCj4gDQo+IHYy Og0KPiAtIGRvIG5vdCBzaGlmdGluZyBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0IG9ubHkgc3Jj IGlzIGluIDE2LjE2DQo+IGZvcm1hdA0KPiANCj4gdjQ6DQo+IC0gc2V0dGluZyBwbGFuZSBzZWxl Y3RpdmUgZmV0Y2ggYXJlYSB1c2luZyB0aGUgd2hvbGUgcGlwZSBkYW1hZ2UgYXJlYQ0KPiAtIG1h cmsgdGhlIHdob2xlIHBsYW5lIGFyZWEgZGFtYWdlZCBpZiBwbGFuZSB2aXNpYmlsaXR5IG9yIGFs cGhhDQo+IGNoYW5nZWQNCj4gDQo+IHY1Og0KPiAtIHRha2luZyBpbiBjb25zaWRlcmF0aW9uIHNy Yy55MSBpbiB0aGUgZGFtYWdlIGNvb3JkaW5hdGVzDQo+IC0gYWRkaW5nIHRvIHRoZSBwaXBlIGRh bWFnZWQgYXJlYSBwbGFuZXMgdGhhdCB3ZXJlIHZpc2libGUgYnV0IGFyZQ0KPiBpbnZpc2libGUg aW4gdGhlIG5ldyBzdGF0ZQ0KPiANCj4gdjY6DQo+IC0gY29uc2lkZXIgb2xkIHN0YXRlIHBsYW5l IGNvb3JkaW5hdGVzIHdoZW4gdmlzaWJpbGl0eSBjaGFuZ2VzIG9yIGl0DQo+IG1vdmVkIHRvIGNh bGN1bGF0ZSBkYW1hZ2VkIGFyZWENCj4gLSByZW1vdmUgZnJvbSBkYW1hZ2VkIGFyZWEgdGhlIHBv cnRpb24gbm90IGluIHNyYyBjbGlwDQo+IA0KPiB2NzoNCj4gLSBpbnRlcnNlYyBldmVyeSBkYW1h Z2UgY2xpcCB3aXRoIHNyYyB0byBtaW5pbWl6ZSBkYW1hZ2VkIGFyZWENCj4gDQo+IHY4Og0KPiAt IGFkanVzdCBwaXBlX2RhbWFnZWQgYXJlYSB0byA0IGxpbmVzIGdyb3VwaW5nDQo+IC0gYWRqdXN0 IGNhbGN1bGF0aW9uIG5vdyB0aGF0IGlzIHVuZGVyc3Rvb2QgdGhhdCB1YXBpLnNyYyBpcyB0aGUN Cj4gZnJhbWVidWZmZXIgY29vcmRpbmF0ZXMgdGhhdCBwbGFuZSB3aWxsIHN0YXJ0IHRvIGZldGNo IGZyb20NCj4gDQo+IHY5Og0KPiAtIE9ubHkgYWRkIHBsYW5lIGRzdCBvciBzcmMgdG8gZGFtYWdl ZF9hcmVhIGlmIHZpc2libGUNCj4gLSBFYXJseSBza2lwIHBsYW5lIGRhbWFnZSBjYWxjdWxhdGlv biBpZiBpdCB3YXMgbm90IHZpc2libGUgaW4gb2xkDQo+IGFuZA0KPiBuZXcgc3RhdGUNCj4gDQo+ IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPg0KPiBD YzogR3dhbi1neWVvbmcgTXVuIDxnd2FuLWd5ZW9uZy5tdW5AaW50ZWwuY29tPg0KPiBTaWduZWQt b2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4NCj4g LS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jIHwgMTEzICsr KysrKysrKysrKysrKysrKysrLQ0KPiAtLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDk5IGluc2VydGlv bnMoKyksIDE0IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3Bzci5jDQo+IGluZGV4IGQ5YTM5NWM0ODZkMy4uZjViOTUxOWIzNzU2IDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jDQo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMNCj4gQEAgLTEyNDIs OSArMTI0MiwxMSBAQCBzdGF0aWMgdm9pZCBwc3IyX21hbl90cmtfY3RsX2NhbGMoc3RydWN0DQo+ IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsDQo+ICAJaWYgKGNsaXAtPnkxID09IC0xKQ0K PiAgCQlnb3RvIGV4aXQ7DQo+ICANCj4gKwlkcm1fV0FSTl9PTihjcnRjX3N0YXRlLT51YXBpLmNy dGMtPmRldiwgY2xpcC0+eTEgJSA0IHx8IGNsaXAtDQo+ID55MiAlIDQpOw0KPiArDQo+ICAJdmFs IHw9IFBTUjJfTUFOX1RSS19DVExfU0ZfUEFSVElBTF9GUkFNRV9VUERBVEU7DQo+ICAJdmFsIHw9 IFBTUjJfTUFOX1RSS19DVExfU1VfUkVHSU9OX1NUQVJUX0FERFIoY2xpcC0+eTEgLyA0ICsgMSk7 DQo+IC0JdmFsIHw9IFBTUjJfTUFOX1RSS19DVExfU1VfUkVHSU9OX0VORF9BRERSKERJVl9ST1VO RF9VUChjbGlwLQ0KPiA+eTIsIDQpICsgMSk7DQo+ICsJdmFsIHw9IFBTUjJfTUFOX1RSS19DVExf U1VfUkVHSU9OX0VORF9BRERSKGNsaXAtPnkyIC8gNCArIDEpOw0KPiAgZXhpdDoNCj4gIAljcnRj X3N0YXRlLT5wc3IyX21hbl90cmFja19jdGwgPSB2YWw7DQo+ICB9DQo+IEBAIC0xMjY5LDggKzEy NzEsOCBAQCBpbnQgaW50ZWxfcHNyMl9zZWxfZmV0Y2hfdXBkYXRlKHN0cnVjdA0KPiBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLA0KPiAgCQkJCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQ0KPiAg ew0KPiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0NCj4gaW50ZWxfYXRv bWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7DQo+ICsJc3RydWN0IGRybV9yZWN0 IHBpcGVfY2xpcCA9IHsgLngxID0gMCwgLnkxID0gLTEsIC54MiA9IElOVF9NQVgsDQo+IC55MiA9 IC0xIH07DQo+ICAJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3RhdGUsICpv bGRfcGxhbmVfc3RhdGU7DQo+IC0Jc3RydWN0IGRybV9yZWN0IHBpcGVfY2xpcCA9IHsgLnkxID0g LTEgfTsNCj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOw0KPiAgCWJvb2wgZnVsbF91cGRh dGUgPSBmYWxzZTsNCj4gIAlpbnQgaSwgcmV0Ow0KPiBAQCAtMTI4MiwxMyArMTI4NCwyNSBAQCBp bnQgaW50ZWxfcHNyMl9zZWxfZmV0Y2hfdXBkYXRlKHN0cnVjdA0KPiBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlLA0KPiAgCWlmIChyZXQpDQo+ICAJCXJldHVybiByZXQ7DQo+ICANCj4gKwkvKg0K PiArCSAqIENhbGN1bGF0ZSBtaW5pbWFsIHNlbGVjdGl2ZSBmZXRjaCBhcmVhIG9mIGVhY2ggcGxh bmUgYW5kDQo+IGNhbGN1bGF0ZQ0KPiArCSAqIHRoZSBwaXBlIGRhbWFnZWQgYXJlYS4NCj4gKwkg KiBJbiB0aGUgbmV4dCBsb29wIHRoZSBwbGFuZSBzZWxlY3RpdmUgZmV0Y2ggYXJlYSB3aWxsDQo+ IGFjdHVhbGx5IGJlIHNldA0KPiArCSAqIHVzaW5nIHdob2xlIHBpcGUgZGFtYWdlZCBhcmVhLg0K PiArCSAqLw0KPiAgCWZvcl9lYWNoX29sZG5ld19pbnRlbF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwg cGxhbmUsDQo+IG9sZF9wbGFuZV9zdGF0ZSwNCj4gIAkJCQkJICAgICBuZXdfcGxhbmVfc3RhdGUs IGkpIHsNCj4gLQkJc3RydWN0IGRybV9yZWN0ICpzZWxfZmV0Y2hfYXJlYSwgdGVtcDsNCj4gKwkJ c3RydWN0IGRybV9yZWN0IHNyYywgZGFtYWdlZF9hcmVhID0geyAueTEgPSAtMSB9Ow0KPiArCQlz dHJ1Y3QgZHJtX21vZGVfcmVjdCAqZGFtYWdlZF9jbGlwczsNCj4gKwkJdTMyIG51bV9jbGlwcywg ajsNCj4gIA0KPiAgCQlpZiAobmV3X3BsYW5lX3N0YXRlLT51YXBpLmNydGMgIT0gY3J0Y19zdGF0 ZS0NCj4gPnVhcGkuY3J0YykNCj4gIAkJCWNvbnRpbnVlOw0KPiAgDQo+ICsJCWlmICghbmV3X3Bs YW5lX3N0YXRlLT51YXBpLnZpc2libGUgJiYNCj4gKwkJICAgICFvbGRfcGxhbmVfc3RhdGUtPnVh cGkudmlzaWJsZSkNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ICAJCS8qDQo+ICAJCSAqIFRPRE86 IE5vdCBjbGVhciBob3cgdG8gaGFuZGxlIHBsYW5lcyB3aXRoIG5lZ2F0aXZlDQo+IHBvc2l0aW9u LA0KPiAgCQkgKiBhbHNvIHBsYW5lcyBhcmUgbm90IHVwZGF0ZWQgaWYgdGhleSBoYXZlIGEgbmVn YXRpdmUNCj4gWA0KPiBAQCAtMTMwMCwyMyArMTMxNCw5NCBAQCBpbnQgaW50ZWxfcHNyMl9zZWxf ZmV0Y2hfdXBkYXRlKHN0cnVjdA0KPiBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLA0KPiAgCQkJ YnJlYWs7DQo+ICAJCX0NCj4gIA0KPiAtCQlpZiAoIW5ld19wbGFuZV9zdGF0ZS0+dWFwaS52aXNp YmxlKQ0KPiAtCQkJY29udGludWU7DQo+ICsJCW51bV9jbGlwcyA9DQo+IGRybV9wbGFuZV9nZXRf ZGFtYWdlX2NsaXBzX2NvdW50KCZuZXdfcGxhbmVfc3RhdGUtPnVhcGkpOw0KPiAgDQo+ICAJCS8q DQo+IC0JCSAqIEZvciBub3cgZG9pbmcgYSBzZWxlY3RpdmUgZmV0Y2ggaW4gdGhlIHdob2xlIHBs YW5lDQo+IGFyZWEsDQo+IC0JCSAqIG9wdGltaXphdGlvbnMgd2lsbCBjb21lIGluIHRoZSBmdXR1 cmUuDQo+ICsJCSAqIElmIHZpc2liaWxpdHkgb3IgcGxhbmUgbW92ZWQsIG1hcmsgdGhlIHdob2xl IHBsYW5lDQo+IGFyZWEgYXMNCj4gKwkJICogZGFtYWdlZCBhcyBpdCBuZWVkcyB0byBiZSBjb21w bGV0ZSByZWRyYXcgaW4gdGhlIG5ldw0KPiBhbmQgb2xkDQo+ICsJCSAqIHBvc2l0aW9uLg0KPiAg CQkgKi8NCj4gLQkJc2VsX2ZldGNoX2FyZWEgPSAmbmV3X3BsYW5lX3N0YXRlLT5wc3IyX3NlbF9m ZXRjaF9hcmVhOw0KPiAtCQlzZWxfZmV0Y2hfYXJlYS0+eTEgPSBuZXdfcGxhbmVfc3RhdGUtPnVh cGkuc3JjLnkxID4+DQo+IDE2Ow0KPiAtCQlzZWxfZmV0Y2hfYXJlYS0+eTIgPSBuZXdfcGxhbmVf c3RhdGUtPnVhcGkuc3JjLnkyID4+DQo+IDE2Ow0KPiArCQlpZiAobmV3X3BsYW5lX3N0YXRlLT51 YXBpLnZpc2libGUgIT0gb2xkX3BsYW5lX3N0YXRlLQ0KPiA+dWFwaS52aXNpYmxlIHx8DQo+ICsJ CSAgICAhZHJtX3JlY3RfZXF1YWxzKCZuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0LA0KPiArCQkJ CSAgICAgJm9sZF9wbGFuZV9zdGF0ZS0+dWFwaS5kc3QpKSB7DQo+ICsJCQlpZiAob2xkX3BsYW5l X3N0YXRlLT51YXBpLnZpc2libGUpIHsNCj4gKwkJCQlkYW1hZ2VkX2FyZWEueTEgPSBvbGRfcGxh bmVfc3RhdGUtDQo+ID51YXBpLmRzdC55MTsNCj4gKwkJCQlkYW1hZ2VkX2FyZWEueTIgPSBvbGRf cGxhbmVfc3RhdGUtDQo+ID51YXBpLmRzdC55MjsNCj4gKwkJCQljbGlwX2FyZWFfdXBkYXRlKCZw aXBlX2NsaXAsDQo+ICZkYW1hZ2VkX2FyZWEpOw0KPiArCQkJfQ0KPiArDQo+ICsJCQlpZiAobmV3 X3BsYW5lX3N0YXRlLT51YXBpLnZpc2libGUpIHsNCj4gKwkJCQlkYW1hZ2VkX2FyZWEueTEgPSBu ZXdfcGxhbmVfc3RhdGUtDQo+ID51YXBpLmRzdC55MTsNCj4gKwkJCQlkYW1hZ2VkX2FyZWEueTIg PSBuZXdfcGxhbmVfc3RhdGUtDQo+ID51YXBpLmRzdC55MjsNCj4gKwkJCQljbGlwX2FyZWFfdXBk YXRlKCZwaXBlX2NsaXAsDQo+ICZkYW1hZ2VkX2FyZWEpOw0KPiArCQkJfQ0KPiArCQkJY29udGlu dWU7DQo+ICsJCX0gZWxzZSBpZiAobmV3X3BsYW5lX3N0YXRlLT51YXBpLmFscGhhICE9DQo+IG9s ZF9wbGFuZV9zdGF0ZS0+dWFwaS5hbHBoYSB8fA0KPiArCQkJICAgKCFudW1fY2xpcHMgJiYNCj4g KwkJCSAgICBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZmIgIT0NCj4gb2xkX3BsYW5lX3N0YXRlLT51 YXBpLmZiKSkgew0KPiArCQkJLyoNCj4gKwkJCSAqIElmIHRoZSBwbGFuZSBkb24ndCBoYXZlIGRh bWFnZWQgYXJlYXMgYnV0DQo+IHRoZQ0KPiArCQkJICogZnJhbWVidWZmZXIgY2hhbmdlZCBvciBh bHBoYSBjaGFuZ2VkLCBtYXJrDQo+IHRoZSB3aG9sZQ0KPiArCQkJICogcGxhbmUgYXJlYSBhcyBk YW1hZ2VkLg0KPiArCQkJICovDQo+ICsJCQlkYW1hZ2VkX2FyZWEueTEgPSBuZXdfcGxhbmVfc3Rh dGUtPnVhcGkuZHN0LnkxOw0KPiArCQkJZGFtYWdlZF9hcmVhLnkyID0gbmV3X3BsYW5lX3N0YXRl LT51YXBpLmRzdC55MjsNCj4gKwkJCWNsaXBfYXJlYV91cGRhdGUoJnBpcGVfY2xpcCwgJmRhbWFn ZWRfYXJlYSk7DQo+ICsJCQljb250aW51ZTsNCj4gKwkJfQ0KPiArDQo+ICsJCWRybV9yZWN0X2Zw X3RvX2ludCgmc3JjLCAmbmV3X3BsYW5lX3N0YXRlLT51YXBpLnNyYyk7DQo+ICsJCWRhbWFnZWRf Y2xpcHMgPQ0KPiBkcm1fcGxhbmVfZ2V0X2RhbWFnZV9jbGlwcygmbmV3X3BsYW5lX3N0YXRlLT51 YXBpKTsNCj4gKw0KPiArCQlmb3IgKGogPSAwOyBqIDwgbnVtX2NsaXBzOyBqKyspIHsNCj4gKwkJ CXN0cnVjdCBkcm1fcmVjdCBjbGlwOw0KPiArDQo+ICsJCQljbGlwLngxID0gZGFtYWdlZF9jbGlw c1tqXS54MTsNCj4gKwkJCWNsaXAueTEgPSBkYW1hZ2VkX2NsaXBzW2pdLnkxOw0KPiArCQkJY2xp cC54MiA9IGRhbWFnZWRfY2xpcHNbal0ueDI7DQo+ICsJCQljbGlwLnkyID0gZGFtYWdlZF9jbGlw c1tqXS55MjsNCj4gKwkJCWlmIChkcm1fcmVjdF9pbnRlcnNlY3QoJmNsaXAsICZzcmMpKQ0KPiAr CQkJCWNsaXBfYXJlYV91cGRhdGUoJmRhbWFnZWRfYXJlYSwgJmNsaXApOw0KPiArCQl9DQo+ICAN Cj4gLQkJdGVtcCA9ICpzZWxfZmV0Y2hfYXJlYTsNCj4gLQkJdGVtcC55MSArPSBuZXdfcGxhbmVf c3RhdGUtPnVhcGkuZHN0LnkxOw0KPiAtCQl0ZW1wLnkyICs9IG5ld19wbGFuZV9zdGF0ZS0+dWFw aS5kc3QueTI7DQo+IC0JCWNsaXBfYXJlYV91cGRhdGUoJnBpcGVfY2xpcCwgJnRlbXApOw0KPiAr CQlpZiAoZGFtYWdlZF9hcmVhLnkxID09IC0xKQ0KPiArCQkJY29udGludWU7DQo+ICsNCj4gKwkJ ZGFtYWdlZF9hcmVhLnkxICs9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3QueTEgLQ0KPiBzcmMu eTE7DQo+ICsJCWRhbWFnZWRfYXJlYS55MiArPSBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0Lnkx IC0NCj4gc3JjLnkxOw0KPiArCQljbGlwX2FyZWFfdXBkYXRlKCZwaXBlX2NsaXAsICZkYW1hZ2Vk X2FyZWEpOw0KPiArCX0NCj4gKw0KPiArCWlmIChmdWxsX3VwZGF0ZSkNCj4gKwkJZ290byBza2lw X3NlbF9mZXRjaF9zZXRfbG9vcDsNCj4gKw0KPiArCS8qIEl0IG11c3QgYmUgYWxpZ25lZCB0byA0 IGxpbmVzICovDQo+ICsJcGlwZV9jbGlwLnkxIC09IHBpcGVfY2xpcC55MSAlIDQ7DQo+ICsJaWYg KHBpcGVfY2xpcC55MiAlIDQpDQo+ICsJCXBpcGVfY2xpcC55MiA9ICgocGlwZV9jbGlwLnkyIC8g NCkgKyAxKSAqIDQ7DQo+ICsNCj4gKwkvKg0KPiArCSAqIE5vdyB0aGF0IHdlIGhhdmUgdGhlIHBp cGUgZGFtYWdlZCBhcmVhIGNoZWNrIGlmIGl0IGludGVyc2VjdA0KPiB3aXRoDQo+ICsJICogZXZl cnkgcGxhbmUsIGlmIGl0IGRvZXMgc2V0IHRoZSBwbGFuZSBzZWxlY3RpdmUgZmV0Y2ggYXJlYS4N Cj4gKwkgKi8NCj4gKwlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfcGxhbmVfaW5fc3RhdGUoc3RhdGUs IHBsYW5lLA0KPiBvbGRfcGxhbmVfc3RhdGUsDQo+ICsJCQkJCSAgICAgbmV3X3BsYW5lX3N0YXRl LCBpKSB7DQo+ICsJCXN0cnVjdCBkcm1fcmVjdCAqc2VsX2ZldGNoX2FyZWEsIGludGVyOw0KPiAr DQo+ICsJCWlmIChuZXdfcGxhbmVfc3RhdGUtPnVhcGkuY3J0YyAhPSBjcnRjX3N0YXRlLT51YXBp LmNydGMgDQo+IHx8DQo+ICsJCSAgICAhbmV3X3BsYW5lX3N0YXRlLT51YXBpLnZpc2libGUpDQo+ ICsJCQljb250aW51ZTsNCj4gKw0KPiArCQlpbnRlciA9IHBpcGVfY2xpcDsNCj4gKwkJaWYgKCFk cm1fcmVjdF9pbnRlcnNlY3QoJmludGVyLCAmbmV3X3BsYW5lX3N0YXRlLQ0KPiA+dWFwaS5kc3Qp KQ0KPiArCQkJY29udGludWU7DQo+ICsNCj4gKwkJc2VsX2ZldGNoX2FyZWEgPSAmbmV3X3BsYW5l X3N0YXRlLT5wc3IyX3NlbF9mZXRjaF9hcmVhOw0KPiArCQlzZWxfZmV0Y2hfYXJlYS0+eTEgPSBp bnRlci55MSAtIG5ld19wbGFuZV9zdGF0ZS0NCj4gPnVhcGkuZHN0LnkxOw0KPiArCQlzZWxfZmV0 Y2hfYXJlYS0+eTIgPSBpbnRlci55MiAtIG5ld19wbGFuZV9zdGF0ZS0NCj4gPnVhcGkuZHN0Lnkx Ow0KPiAgCX0NCj4gIA0KPiArc2tpcF9zZWxfZmV0Y2hfc2V0X2xvb3A6DQo+ICAJcHNyMl9tYW5f dHJrX2N0bF9jYWxjKGNydGNfc3RhdGUsICZwaXBlX2NsaXAsIGZ1bGxfdXBkYXRlKTsNCj4gIAly ZXR1cm4gMDsNCj4gIH0NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=