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 E0B78C433EF for ; Mon, 1 Nov 2021 21:07:35 +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 89E4E60E05 for ; Mon, 1 Nov 2021 21:07:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 89E4E60E05 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 3974D8972B; Mon, 1 Nov 2021 21:07:35 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 122C28972B for ; Mon, 1 Nov 2021 21:07:34 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10155"; a="211879072" X-IronPort-AV: E=Sophos;i="5.87,200,1631602800"; d="scan'208";a="211879072" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Nov 2021 13:53:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,200,1631602800"; d="scan'208";a="496705223" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga007.fm.intel.com with ESMTP; 01 Nov 2021 13:53:00 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 1 Nov 2021 13:53:00 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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.2242.12; Mon, 1 Nov 2021 13:52:59 -0700 Received: from orsmsx611.amr.corp.intel.com ([10.22.229.24]) by ORSMSX611.amr.corp.intel.com ([10.22.229.24]) with mapi id 15.01.2242.012; Mon, 1 Nov 2021 13:52:59 -0700 From: "Kasireddy, Vivek" To: Tvrtko Ursulin , "intel-gfx@lists.freedesktop.org" Thread-Topic: [PATCH] drm/i915/gem: Don't try to map and fence large scanout buffers (v3) Thread-Index: AQHXzJqhXzFnjT3OUUqa5oSLG6AuJ6vu7lyAgAAu+9A= Date: Mon, 1 Nov 2021 20:52:59 +0000 Message-ID: <7b81b344df3c467ca3b5b3488b82b338@intel.com> References: <20211029074303.1566344-1-vivek.kasireddy@intel.com> <8e12249c-0253-a786-db19-661cd48b20d7@linux.intel.com> In-Reply-To: <8e12249c-0253-a786-db19-661cd48b20d7@linux.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.200.16 dlp-reaction: no-action x-originating-ip: [10.1.200.100] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH] drm/i915/gem: Don't try to map and fence large scanout buffers (v3) 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" SGkgVHZydGtvLA0KDQo+IE9uIDI5LzEwLzIwMjEgMDg6NDMsIFZpdmVrIEthc2lyZWRkeSB3cm90 ZToNCj4gPiBPbiBwbGF0Zm9ybXMgY2FwYWJsZSBvZiBhbGxvd2luZyA4SyAoNzY4MCB4IDQzMjAp IG1vZGVzLCBwaW5uaW5nIDIgb3INCj4gPiBtb3JlIGZyYW1lYnVmZmVycy9zY2Fub3V0IGJ1ZmZl cnMgcmVzdWx0cyBpbiBvbmx5IG9uZSB0aGF0IGlzIG1hcHBhYmxlLw0KPiA+IGZlbmNlYWJsZS4g VGhlcmVmb3JlLCBwYWdlZmxpcHBpbmcgYmV0d2VlbiB0aGVzZSAyIEZCcyB3aGVyZSBvbmx5IG9u ZQ0KPiA+IGlzIG1hcHBhYmxlL2ZlbmNlYWJsZSBjcmVhdGVzIGxhdGVuY2llcyBsYXJnZSBlbm91 Z2ggdG8gbWlzcyBhbHRlcm5hdGUNCj4gPiB2YmxhbmtzIHRoZXJlYnkgcHJvZHVjaW5nIGxlc3Mg b3B0aW1hbCBmcmFtZXJhdGUuDQo+ID4NCj4gPiBUaGlzIG1haW5seSBoYXBwZW5zIGJlY2F1c2Ug d2hlbiBpOTE1X2dlbV9vYmplY3RfcGluX3RvX2Rpc3BsYXlfcGxhbmUoKQ0KPiA+IGlzIGNhbGxl ZCB0byBwaW4gb25lIG9mIHRoZSBGQiBvYmpzLCB0aGUgYXNzb2NpYXRlZCB2bWEgaXMgaWRlbnRp ZmllZA0KPiA+IGFzIG1pc3BsYWNlZCBhbmQgdGhlcmVmb3JlIGk5MTVfdm1hX3VuYmluZCgpIGlz IGNhbGxlZCB3aGljaCB1bmJpbmRzIGFuZA0KPiA+IGV2aWN0cyBpdC4gVGhpcyBtaXNwbGFjZWQg dm1hIGdldHMgc3Vic2VxZW50bHkgcGlubmVkIG9ubHkgd2hlbg0KPiA+IGk5MTVfZ2VtX29iamVj dF9nZ3R0X3Bpbl93dygpIGlzIGNhbGxlZCB3aXRob3V0IHRoZSBtYXBwYWJsZSBmbGFnLiBUaGlz DQo+ID4gcmVzdWx0cyBpbiBhIGxhdGVuY3kgb2YgfjEwbXMgYW5kIGhhcHBlbnMgZXZlcnkgb3Ro ZXIgdmJsYW5rL3JlcGFpbnQgY3ljbGUuDQo+IA0KPiBUaGlzIGhhcHBlbnMgYmVjYXVzZSBvZiBQ SU5fTUFQUEFCTEUgYmVpbmcgdHJpZWQgZmlyc3QganVzdCBpbiBjYXNlPyBJZS46DQpbS2FzaXJl ZGR5LCBWaXZla10gWWVzLCB0aGF0IGlzIGV4YWN0bHkgd2h5IHRoaXMgaXNzdWUgaGFwcGVucy4g SSBzaG91bGQgaGF2ZQ0KcHJvYmFibHkgZGVzY3JpYmVkIGhvdyB0aGUgcGF0Y2ggZml4ZXMgdGhl IHByb2JsZW0gYnV0IHRoZSBnb2FsIHdpdGggdGhpcyBwYXRjaA0KaXMgdG8gbWFrZSBzdXJlIHRo YXQgd2UgcmV0dXJuIGVhcmx5IGlmIHdlIHRyeSB0byBwaW4gd2l0aCBQSU5fTUFQUEFCTEUgZm9y IA0KOEsgRkJzLg0KDQo+IA0KPiAJdm1hID0gRVJSX1BUUigtRU5PU1BDKTsNCj4gCWlmICgoZmxh Z3MgJiBQSU5fTUFQUEFCTEUpID09IDAgJiYNCj4gCSAgICAoIXZpZXcgfHwgdmlldy0+dHlwZSA9 PSBJOTE1X0dHVFRfVklFV19OT1JNQUwpKQ0KPiAJCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0 X3Bpbl93dyhvYmosIHd3LCB2aWV3LCAwLCBhbGlnbm1lbnQsDQo+IAkJCQkJCSAgZmxhZ3MgfCBQ SU5fTUFQUEFCTEUgfA0KPiAJCQkJCQkgIFBJTl9OT05CTE9DSyk7DQo+IAlpZiAoSVNfRVJSKHZt YSkgJiYgdm1hICE9IEVSUl9QVFIoLUVERUFETEspKQ0KPiAJCXZtYSA9IGk5MTVfZ2VtX29iamVj dF9nZ3R0X3Bpbl93dyhvYmosIHd3LCB2aWV3LCAwLA0KPiAJCQkJCQkgIGFsaWdubWVudCwgZmxh Z3MpOw0KPiANCj4gQ29tbWVudCBqdXN0aWZ5aW5nIHRoaXMgYmVoYXZpb3VyIHRhbGtzIGFib3V0 IEFCSToNCj4gDQo+IAkvKg0KPiAJICogQXMgdGhlIHVzZXIgbWF5IG1hcCB0aGUgYnVmZmVyIG9u Y2UgcGlubmVkIGluIHRoZSBkaXNwbGF5IHBsYW5lDQo+IAkgKiAoZS5nLiBsaWJrbXMgZm9yIHRo ZSBib290dXAgc3BsYXNoKSwgd2UgaGF2ZSB0byBlbnN1cmUgdGhhdCB3ZQ0KPiAJICogYWx3YXlz IHVzZSBtYXBfYW5kX2ZlbmNlYWJsZSBmb3IgYWxsIHNjYW5vdXQgYnVmZmVycy4gSG93ZXZlciwN Cj4gCSAqIGl0IG1heSBzaW1wbHkgYmUgdG9vIGJpZyB0byBmaXQgaW50byBtYXBwYWJsZSwgaW4g d2hpY2ggY2FzZQ0KPiAJICogcHV0IGl0IGFueXdheSBhbmQgaG9wZSB0aGF0IHVzZXJzcGFjZSBj YW4gY29wZSAoYnV0IGFsd2F5cyBmaXJzdA0KPiAJICogdHJ5IHRvIHByZXNlcnZlIHRoZSBleGlz dGluZyBBQkkpLg0KPiAJICovDQo+IA0KPiBJIGhhdmUgbm8gY2x1ZSBob3cgaW1wb3J0YW50IGl0 IGlzIHRvZGF5LiBTbyBpZiBJIGFzayBjb3VsZCB3ZSBqdXN0IGRyb3BwZWQgdGhlICJvcHRpbWlz dGljIg0KPiBQSU5fTUFQUEFCTEUgb24gbW9kZXJuIHBsYXRmb3JtcyB3b3VsZCB0aGF0IGJlIGEg c3R1cGlkIHF1ZXN0aW9uPw0KW0thc2lyZWRkeSwgVml2ZWtdIE5vdCBzdXJlIGlmIHdlIGNvdWxk IGp1c3QgZHJvcCBpdCBhcyB3ZSBkb24ndCBrbm93IHdoYXQgaXMgb3V0IHRoZXJlIHRoYXQNCnJl bGllcyBvbiB0aGlzLiBJIHRvb2sgYSBxdWljayBsb29rIGF0IFBseW1vdXRoIGFuZCBpdCBkb2Vz IHNlZW0gdG8gc3RpbGwgdXNlIHNpbmdsZSBidWZmZXJlZA0KZGlydHlmYiBtZXRob2QgKG9yIG1t YXAoKSBkZXBlbmRpbmcgb24gdGhlIHBsdWdpbikgZm9yIHVwZGF0aW5nIHRoZSBGQi4gDQoNCiBC ZWNhdXNlIGV2ZW4NCj4gd2l0aCB0aGlzIHBhdGNoIHRoZSBjaGFuZ2Ugd291bGQgZWZmZWN0aXZl bHkgYWxyZWFkeSBoYXBwZW4gZm9yIDhLIGJvb3Qgc3BsYXNoLCBubz8gKFNpbmNlDQo+IGNvZGUg Y2FuIG5vdCBrbm93IGlmIHRoaXMgaXMgc2luZ2xlIGJ1ZmZlcmVkIGJvb3Qgc3BsYXNoIGNsaWVu dCBvciBkb3VibGUgYnVmZmVyZWQNCj4gY29tcG9zaXRvciBhbmQgdGhlIGNyaXRlcmlhIGZvciBQ SU5fTUFQUEFCTEUgaXMgdGhlIHNhbWUuKQ0KW0thc2lyZWRkeSwgVml2ZWtdIE1heWJlIGl0IHdv dWxkIG1ha2Ugc2Vuc2UgdG8gbGltaXQgOEsgbW9kZXMgb25seSB0byBhIGNvbXBvc2l0b3INCmFu ZCBub3QgZXhwb3NlIHRoZW0gdG8gc29tZXRoaW5nIGxpa2UgYm9vdHVwIHNwbGFzaC9QbHltb3V0 aD8gRXZlbiB0aGVuLCBHbm9tZSB3aXRoIFggY2FuDQpzdGlsbCB1c2Ugc2luZ2xlIGJ1ZmZlcmlu Zy9kaXJ0eWZiIG1ldGhvZCB0byB1cGRhdGUgRkIuIEFzIEkgbWVudGlvbmVkIGluIHRoZSBwYXRj aCBkZXNjcmlwdGlvbiwNCndlIGFyZSBhYmxlIHRvIG1hcCBhbmQgZmVuY2Ugb25lIDhLIEZCIGJ1 dCBub3QgbW9yZSB0aGFuIHRoYXQuIEkgdGhpbmsgd2UgY291bGQgbGV0IHRoaXMgc3RhbmQNCmFu ZCBvbmx5IHByZXZlbnQgdGhlIHVuYmluZCAtLSB3aGljaCBpcyB0aGUgY2F1c2Ugb2YgdGhlIGxh dGVuY3kuIEJ1dCB0aGlzIG1pZ2h0IGZhbGwgYXBhcnQgaWYgdGhlDQp1c2Vyc3BhY2UgdHJpZXMg dG8gbW1hcCBib3RoIEZCcyAtLSB3aGljaCBjb3VsZCBoYXBwZW4gaWYgd2UgZW5hYmxlIHJlbW90 ZSBkZXNrdG9wIHN0cmVhbWluZw0Kd2l0aCBXZXN0b24uIEJlY2F1c2UgdGhlcmUgYXJlIGFsbCB0 aGVzZSBzcGVjaWFsIGNhc2VzIHRoYXQgd2UgY2Fubm90IGtub3cgYmVmb3JlaGFuZCwgSQ0KdGhv dWdodCBtYXJraW5nIGFsbCB0aGUgOEsgRkJzIGFzIG5vbi1tYXBwYWJsZS9ub24tZmVuY2VhYmxl IHdvdWxkIGF1dG9tYXRpY2FsbHkNCnByZXZlbnQgKG9yIGZhaWwpIHN1Y2ggYXR0ZW1wdHMuDQoN Cj4gDQo+ID4NCj4gPiBUZXN0Y2FzZToNCj4gPiBSdW5uaW5nIFdlc3RvbiBhbmQgd2VzdG9uLXNp bXBsZS1lZ2wgb24gYW4gQWxkZXJsYWtlX1MgKEFETFMpIHBsYXRmb3JtDQo+ID4gd2l0aCBhIDhL QDYwIG1vZGUgcmVzdWx0cyBpbiBvbmx5IH40MCBGUFMuIFNpbmNlIHVwc3RyZWFtIFdlc3RvbiBz dWJtaXRzDQo+ID4gYSBmcmFtZSB+N21zIGJlZm9yZSB0aGUgbmV4dCB2YmxhbmssIHRoZSBsYXRl bmNpZXMgc2VlbiBiZXR3ZWVuIGF0b21pYw0KPiA+IGNvbW1pdCBhbmQgZmxpcCBldmVudCBhcmUg NywgMjQgKDcgKyAxNi42NiksIDcsIDI0Li4uLi4gc3VnZ2VzdGluZyB0aGF0DQo+ID4gaXQgbWlz c2VzIHRoZSB2YmxhbmsgZXZlcnkgb3RoZXIgZnJhbWUuDQo+ID4NCj4gPiBIZXJlIGlzIHRoZSBm dHJhY2Ugc25pcHBldCB0aGF0IHNob3dzIHRoZSBzb3VyY2Ugb2YgdGhlIH4xMG1zIGxhdGVuY3k6 DQo+ID4gICAgICAgICAgICAgICAgaTkxNV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3BsYW5l KCkgew0KPiA+IDAuMTAyIHVzICAgfCAgICBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2xldmVs KCk7DQo+ID4gICAgICAgICAgICAgICAgICBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW5fd3coKSB7 DQo+ID4gMC4zOTAgdXMgICB8ICAgICAgaTkxNV92bWFfaW5zdGFuY2UoKTsNCj4gPiAwLjE3OCB1 cyAgIHwgICAgICBpOTE1X3ZtYV9taXNwbGFjZWQoKTsNCj4gPiAgICAgICAgICAgICAgICAgICAg aTkxNV92bWFfdW5iaW5kKCkgew0KPiA+ICAgICAgICAgICAgICAgICAgICBfX2k5MTVfYWN0aXZl X3dhaXQoKSB7DQo+ID4gMC4wODIgdXMgICB8ICAgICAgICBpOTE1X2FjdGl2ZV9hY3F1aXJlX2lm X2J1c3koKTsNCj4gPiAwLjQ3NSB1cyAgIHwgICAgICB9DQo+ID4gICAgICAgICAgICAgICAgICAg IGludGVsX3J1bnRpbWVfcG1fZ2V0KCkgew0KPiA+IDAuMDg3IHVzICAgfCAgICAgICAgaW50ZWxf cnVudGltZV9wbV9hY3F1aXJlKCk7DQo+ID4gMC4yNTkgdXMgICB8ICAgICAgfQ0KPiA+ICAgICAg ICAgICAgICAgICAgICBfX2k5MTVfYWN0aXZlX3dhaXQoKSB7DQo+ID4gMC4wODUgdXMgICB8ICAg ICAgICBpOTE1X2FjdGl2ZV9hY3F1aXJlX2lmX2J1c3koKTsNCj4gPiAwLjI0MCB1cyAgIHwgICAg ICB9DQo+ID4gICAgICAgICAgICAgICAgICAgIF9faTkxNV92bWFfZXZpY3QoKSB7DQo+ID4gICAg ICAgICAgICAgICAgICAgICAgZ2d0dF91bmJpbmRfdm1hKCkgew0KPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgZ2VuOF9nZ3R0X2NsZWFyX3JhbmdlKCkgew0KPiA+IDEwNTA3LjI1NSB1cyB8ICAg ICAgICB9DQo+ID4gMTA1MDcuNjg5IHVzIHwgICAgICB9DQo+ID4gMTA1MDguNTE2IHVzIHwgICB9 DQo+ID4NCj4gPiB2MjogSW5zdGVhZCBvZiB1c2luZyBiaWdqb2luZXIgY2hlY2tzLCBkZXRlcm1p bmUgd2hldGhlciBhIHNjYW5vdXQNCj4gPiAgICAgIGJ1ZmZlciBpcyB0b28gYmlnIGJ5IGNoZWNr aW5nIHRvIHNlZSBpZiBpdCBpcyBwb3NzaWJsZSB0byBtYXANCj4gPiAgICAgIHR3byBvZiB0aGVt IGludG8gdGhlIGdndHQuDQo+ID4NCj4gPiB2MyAoVmlsbGUpOg0KPiA+IC0gQ291bnQgaG93IG1h bnkgZmIgb2JqZWN0cyBjYW4gYmUgZml0IGludG8gdGhlIGF2YWlsYWJsZSBob2xlcw0KPiA+ICAg IGluc3RlYWQgb2YgY2hlY2tpbmcgZm9yIGEgaG9sZSB0d2ljZSB0aGUgb2JqZWN0IHNpemUuDQo+ ID4gLSBUYWtlIGFsaWdubWVudCBjb25zdHJhaW50cyBpbnRvIGFjY291bnQuDQo+ID4gLSBMaW1p dCB0aGlzIGxhcmdlIHNjYW5vdXQgYnVmZmVyIGNoZWNrIHRvID49IEdlbiAxMiBwbGF0Zm9ybXMu DQo+ID4NCj4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4NCj4gPiBDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4 LmludGVsLmNvbT4NCj4gPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4 LmludGVsLmNvbT4NCj4gPiBDYzogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVs LmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBWaXZlayBLYXNpcmVkZHkgPHZpdmVrLmthc2lyZWRk eUBpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jIHwgNjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tDQo+ID4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jIHwgIDIgKy0NCj4gPiAgIDIgZmlsZXMgY2hhbmdlZCwg NTcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMNCj4gPiBpbmRleCA5ODFlMzgzZDFhNWQuLjc2MWRjMzg1ZmJmYyAxMDA2NDQNCj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jDQo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYw0KPiA+IEBAIC04NjYsNiArODY2LDYxIEBAIHN0YXRp YyB2b2lkIGRpc2NhcmRfZ2d0dF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEpDQo+ID4gICAJc3Bp bl91bmxvY2soJm9iai0+dm1hLmxvY2spOw0KPiA+ICAgfQ0KPiA+DQo+ID4gK3N0YXRpYyBib29s IGk5MTVfZ2VtX29ial90b29fYmlnKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosDQo+ ID4gKwkJCQkgdTY0IGFsaWdubWVudCkNCj4gPiArew0KPiA+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOw0KPiA+ICsJc3RydWN0IGk5MTVf Z2d0dCAqZ2d0dCA9ICZpOTE1LT5nZ3R0Ow0KPiA+ICsJc3RydWN0IGRybV9tbV9ub2RlICpob2xl Ow0KPiA+ICsJdTY0IGhvbGVfc3RhcnQsIGhvbGVfZW5kLCBzdGFydCwgZW5kOw0KPiA+ICsJdTY0 IGZlbmNlX3NpemUsIGZlbmNlX2FsaWdubWVudDsNCj4gPiArCXVuc2lnbmVkIGludCBjb3VudCA9 IDA7DQo+ID4gKw0KPiA+ICsJLyoNCj4gPiArCSAqIElmIHRoZSByZXF1aXJlZCBzcGFjZSBpcyBs YXJnZXIgdGhhbiB0aGUgYXZhaWxhYmxlDQo+ID4gKwkgKiBhcGVydHVyZSwgd2Ugd2lsbCBub3Qg YWJsZSB0byBmaW5kIGEgc2xvdCBmb3IgdGhlDQo+ID4gKwkgKiBvYmplY3QgYW5kIHVuYmluZGlu ZyB0aGUgb2JqZWN0IG5vdyB3aWxsIGJlIGluDQo+ID4gKwkgKiB2YWluLiBXb3JzZSwgZG9pbmcg c28gbWF5IGNhdXNlIHVzIHRvIHBpbmctcG9uZw0KPiA+ICsJICogdGhlIG9iamVjdCBpbiBhbmQg b3V0IG9mIHRoZSBHbG9iYWwgR1RUIGFuZA0KPiA+ICsJICogd2FzdGUgYSBsb3Qgb2YgY3ljbGVz IHVuZGVyIHRoZSBtdXRleC4NCj4gPiArCSAqLw0KPiA+ICsJaWYgKG9iai0+YmFzZS5zaXplID4g Z2d0dC0+bWFwcGFibGVfZW5kKQ0KPiA+ICsJCXJldHVybiB0cnVlOw0KPiA+ICsNCj4gPiArCWlm IChIQVNfR01DSChpOTE1KSB8fCBESVNQTEFZX1ZFUihpOTE1KSA8IDExIHx8DQo+ID4gKwkgICAg IWk5MTVfZ2VtX29iamVjdF9pc19mcmFtZWJ1ZmZlcihvYmopKQ0KPiA+ICsJCXJldHVybiBmYWxz ZTsNCj4gDQo+IE5vdCBzdXJlIGFib3V0IHRoZXNlIGNoZWNrcyAtIGFyZSB5b3Ugc3VyZSB0aGV5 IGFyZSBwcmVzZXJ2aW5nIGxpa2UtZm9yLWxpa2U/DQpbS2FzaXJlZGR5LCBWaXZla10gSSB0aGlu ayBzbzsgcGxhdGZvcm1zIHdpdGggaGFzX2dtY2ggbXVzdCBoYXZlIFBJTl9NQVBQQUJMRQ0KYW5k IDhLIGlzIG5vdCBhdmFpbGFibGUgZm9yIERJU1BMQVlfVkVSKGk5MTUpIDwgMTEuIFRoZSBsYXN0 IGNoZWNrIGlzIGp1c3QNCmZvciBzYW5pdHkuDQoNCj4gDQo+ID4gKw0KPiA+ICsJZmVuY2Vfc2l6 ZSA9IGk5MTVfZ2VtX2ZlbmNlX3NpemUoaTkxNSwgb2JqLT5iYXNlLnNpemUsDQo+ID4gKwkJCQkJ IGk5MTVfZ2VtX29iamVjdF9nZXRfdGlsaW5nKG9iaiksDQo+ID4gKwkJCQkJIGk5MTVfZ2VtX29i amVjdF9nZXRfc3RyaWRlKG9iaikpOw0KPiA+ICsJZmVuY2VfYWxpZ25tZW50ID0gaTkxNV9nZW1f ZmVuY2VfYWxpZ25tZW50KGk5MTUsIG9iai0+YmFzZS5zaXplLA0KPiA+ICsJCQkJCSBpOTE1X2dl bV9vYmplY3RfZ2V0X3RpbGluZyhvYmopLA0KPiA+ICsJCQkJCSBpOTE1X2dlbV9vYmplY3RfZ2V0 X3N0cmlkZShvYmopKTsNCj4gPiArCWFsaWdubWVudCA9IG1heF90KHU2NCwgYWxpZ25tZW50LCBm ZW5jZV9hbGlnbm1lbnQpOw0KPiA+ICsNCj4gPiArCS8qDQo+ID4gKwkgKiBBc3N1bWluZyB0aGlz IG9iamVjdCBpcyBhIGxhcmdlIHNjYW5vdXQgYnVmZmVyLCB3ZSB0cnkgdG8gZmluZA0KPiA+ICsJ ICogb3V0IGlmIHRoZXJlIGlzIHJvb20gdG8gbWFwIGF0LWxlYXN0IHR3byBvZiB0aGVtLiBUaGVy ZSBjb3VsZA0KPiA+ICsJICogYmUgc3BhY2UgYXZhaWxhYmxlIHRvIG1hcCBvbmUgYnV0IHRvIGJl IGNvbnNpc3RlbnQsIHdlIHRyeSB0bw0KPiA+ICsJICogYXZvaWQgbWFwcGluZy9mZW5jaW5nIGFu eSBvZiB0aGVtLg0KPiA+ICsJICovDQo+ID4gKwlkcm1fbW1fZm9yX2VhY2hfaG9sZShob2xlLCAm Z2d0dC0+dm0ubW0sIGhvbGVfc3RhcnQsIGhvbGVfZW5kKSB7DQo+ID4gKwkJZG8gew0KPiA+ICsJ CQlzdGFydCA9IHJvdW5kX3VwKGhvbGVfc3RhcnQsIGFsaWdubWVudCk7DQo+ID4gKwkJCWVuZCA9 IG1pbl90KHU2NCwgaG9sZV9lbmQsIGdndHQtPm1hcHBhYmxlX2VuZCk7DQo+ID4gKw0KPiA+ICsJ CQlpZiAocmFuZ2Vfb3ZlcmZsb3dzKHN0YXJ0LCBmZW5jZV9zaXplLCBlbmQpKQ0KPiA+ICsJCQkJ YnJlYWs7DQo+ID4gKw0KPiA+ICsJCQljb3VudCsrOw0KPiANCj4gSWYgdGhpcyBzb2x1dGlvbiBy ZW1haW5zLCB5b3UgY291bGQgYnJlYWsgb3V0IHdoZW4gY291bnQgcmVhY2hlcyB0d28uDQpbS2Fz aXJlZGR5LCBWaXZla10gWWVzLCBJIHdhcyBnb2luZyB0byBkbyB0aGF0IGluIHY0LiANCg0KVGhh bmtzLA0KVml2ZWsNCj4gDQo+IFJlZ2FyZHMsDQo+IA0KPiBUdnJ0a28NCj4gDQo+ID4gKwkJCWhv bGVfc3RhcnQgPSBzdGFydCArIGZlbmNlX3NpemU7DQo+ID4gKwkJfSB3aGlsZSAoMSk7DQo+ID4g Kwl9DQo+ID4gKw0KPiA+ICsJcmV0dXJuIGNvdW50IDwgMjsNCj4gPiArfQ0KPiA+ICsNCj4gPiAg IHN0cnVjdCBpOTE1X3ZtYSAqDQo+ID4gICBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW5fd3coc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwNCj4gPiAgIAkJCSAgICBzdHJ1Y3QgaTkxNV9n ZW1fd3dfY3R4ICp3dywNCj4gPiBAQCAtODc5LDE1ICs5MzQsNyBAQCBpOTE1X2dlbV9vYmplY3Rf Z2d0dF9waW5fd3coc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QNCj4gKm9iaiwNCj4gPg0KPiA+ ICAgCWlmIChmbGFncyAmIFBJTl9NQVBQQUJMRSAmJg0KPiA+ICAgCSAgICAoIXZpZXcgfHwgdmll dy0+dHlwZSA9PSBJOTE1X0dHVFRfVklFV19OT1JNQUwpKSB7DQo+ID4gLQkJLyoNCj4gPiAtCQkg KiBJZiB0aGUgcmVxdWlyZWQgc3BhY2UgaXMgbGFyZ2VyIHRoYW4gdGhlIGF2YWlsYWJsZQ0KPiA+ IC0JCSAqIGFwZXJ0dXJlLCB3ZSB3aWxsIG5vdCBhYmxlIHRvIGZpbmQgYSBzbG90IGZvciB0aGUN Cj4gPiAtCQkgKiBvYmplY3QgYW5kIHVuYmluZGluZyB0aGUgb2JqZWN0IG5vdyB3aWxsIGJlIGlu DQo+ID4gLQkJICogdmFpbi4gV29yc2UsIGRvaW5nIHNvIG1heSBjYXVzZSB1cyB0byBwaW5nLXBv bmcNCj4gPiAtCQkgKiB0aGUgb2JqZWN0IGluIGFuZCBvdXQgb2YgdGhlIEdsb2JhbCBHVFQgYW5k DQo+ID4gLQkJICogd2FzdGUgYSBsb3Qgb2YgY3ljbGVzIHVuZGVyIHRoZSBtdXRleC4NCj4gPiAt CQkgKi8NCj4gPiAtCQlpZiAob2JqLT5iYXNlLnNpemUgPiBnZ3R0LT5tYXBwYWJsZV9lbmQpDQo+ ID4gKwkJaWYgKGk5MTVfZ2VtX29ial90b29fYmlnKG9iaiwgYWxpZ25tZW50KSkNCj4gPiAgIAkJ CXJldHVybiBFUlJfUFRSKC1FMkJJRyk7DQo+ID4NCj4gPiAgIAkJLyoNCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfdm1hLmMNCj4gPiBpbmRleCA5MDU0NmZhNThmYzEuLjU1MTY0NGRiZmE4YSAxMDA2NDQN Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jDQo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYw0KPiA+IEBAIC05NzcsNyArOTc3LDcgQEAgaW50 IGk5MTVfdm1hX3Bpbl93dyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgc3RydWN0DQo+IGk5MTVfZ2Vt X3d3X2N0eCAqd3csDQo+ID4gICAJCWlmIChlcnIpDQo+ID4gICAJCQlnb3RvIGVycl9hY3RpdmU7 DQo+ID4NCj4gPiAtCQlpZiAoaTkxNV9pc19nZ3R0KHZtYS0+dm0pKQ0KPiA+ICsJCWlmIChpOTE1 X2lzX2dndHQodm1hLT52bSkgJiYgZmxhZ3MgJiBQSU5fTUFQUEFCTEUpDQo+ID4gICAJCQlfX2k5 MTVfdm1hX3NldF9tYXBfYW5kX2ZlbmNlYWJsZSh2bWEpOw0KPiA+ICAgCX0NCj4gPg0KPiA+DQo=