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.8 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 D7CDDC2B9F4 for ; Mon, 14 Jun 2021 16:28:43 +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 82AE7613D3 for ; Mon, 14 Jun 2021 16:28:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 82AE7613D3 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 29B1489B5F; Mon, 14 Jun 2021 16:28:43 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7383389B5F; Mon, 14 Jun 2021 16:28:42 +0000 (UTC) IronPort-SDR: l0CIW9g+PqRDOfDNa5VPW1iMxJxJdbUHAW6/1SXpc1UR7tu2C8mg51oioU81DsiHxdx5M52ejN /eGKVtB5s1mg== X-IronPort-AV: E=McAfee;i="6200,9189,10015"; a="192953881" X-IronPort-AV: E=Sophos;i="5.83,273,1616482800"; d="scan'208";a="192953881" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jun 2021 09:28:40 -0700 IronPort-SDR: 872yyFXLjdqnJvub87v8nh0onq5VdqcNLj67K0nK31C7qIPVYzRNtyPQONGwjML5FU//VkLPGu lbc7NOzmytcg== X-IronPort-AV: E=Sophos;i="5.83,273,1616482800"; d="scan'208";a="484138714" Received: from hwang1-mobl.ccr.corp.intel.com (HELO intel.com) ([10.254.36.39]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jun 2021 09:28:38 -0700 Date: Mon, 14 Jun 2021 12:28:35 -0400 From: Rodrigo Vivi To: Zbigniew =?utf-8?Q?Kempczy=C5=84ski?= Message-ID: References: <20210610103955.67802-1-zbigniew.kempczynski@intel.com> <20210611060900.GA3298@zkempczy-mobl2> <20210614083530.GB3302@zkempczy-mobl2> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210614083530.GB3302@zkempczy-mobl2> Subject: Re: [Intel-gfx] [PATCH] drm/i915: Add relocation exceptions for two other platforms 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: Daniel Vetter , intel-gfx@lists.freedesktop.org, Lucas De Marchi , dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gTW9uLCBKdW4gMTQsIDIwMjEgYXQgMTA6MzU6MzBBTSArMDIwMCwgWmJpZ25pZXcgS2VtcGN6 ecWEc2tpIHdyb3RlOgo+IE9uIEZyaSwgSnVuIDExLCAyMDIxIGF0IDA0OjU0OjMyQU0gLTA0MDAs IFJvZHJpZ28gVml2aSB3cm90ZToKPiA+IE9uIEZyaSwgSnVuIDExLCAyMDIxIGF0IDA4OjA5OjAw QU0gKzAyMDAsIFpiaWduaWV3IEtlbXBjennFhHNraSB3cm90ZToKPiA+ID4gT24gVGh1LCBKdW4g MTAsIDIwMjEgYXQgMTA6MzY6MTJBTSAtMDQwMCwgUm9kcmlnbyBWaXZpIHdyb3RlOgo+ID4gPiA+ IE9uIFRodSwgSnVuIDEwLCAyMDIxIGF0IDEyOjM5OjU1UE0gKzAyMDAsIFpiaWduaWV3IEtlbXBj ennFhHNraSB3cm90ZToKPiA+ID4gPiA+IFdlIGhhdmUgZXN0YWJsaXNoZWQgcHJldmlvdXNseSB3 ZSBzdG9wIHVzaW5nIHJlbG9jYXRpb25zIHN0YXJ0aW5nCj4gPiA+ID4gPiBmcm9tIGdlbjEyIHBs YXRmb3JtcyB3aXRoIFRpZ2VybGFrZSBhcyBhbiBleGNlcHRpb24uIFdlIGtlZXAgdGhpcwo+ID4g PiA+ID4gc3RhdGVtZW50IGJ1dCB3ZSB3YW50IHRvIGVuYWJsZSByZWxvY2F0aW9ucyBjb25kaXRp b25hbGx5IGZvcgo+ID4gPiA+ID4gUm9ja2V0bGFrZSBhbmQgQWxkZXJsYWtlIHVuZGVyIHJlcXVp cmVfZm9yY2VfcHJvYmUgZmxhZyBzZXQuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IEtlZXBpbmcgcmVs b2NhdGlvbnMgdW5kZXIgcmVxdWlyZV9mb3JjZV9wcm9iZSBmbGFnIGlzIGludGVyaW0gc29sdXRp b24KPiA+ID4gPiA+IHVudGlsIElHVHMgd2lsbCBiZSByZXdyaXR0ZW4gdG8gdXNlIHNvZnRwaW4u Cj4gPiA+ID4gCj4gPiA+ID4gaG1tLi4uIHRvIGJlIHJlYWxseSBob25lc3QgSSdtIG5vdCBzbyBo YXBweSB0aGF0IHdlIGFyZSBpbnRyb2R1Y2luZwo+ID4gPiA+IGEgbmV3IGNyaXRlcmlhIHRvIHRo ZSBmb3JjZV9wcm9iZS4KPiA+ID4gPiAKPiA+ID4gPiBUaGUgY3JpdGVyaWEgd2FzIHRvIGhhdmUg YSBmdW5jdGlvbmFsIGRyaXZlciBhbmQgbm90IHRvIHRyYWNrIHVhcGkuCj4gPiA+ID4gCj4gPiA+ ID4gQnV0IG9uIHRoZSBvdGhlciBoYW5kIEkgZG8gcmVjb2duaXplIHRoYXQgdGhlIGN1cnJlbnQg ZGVmaW5pdGlvbgo+ID4gPiA+IG9mIHRoZSBmbGFnIGFsbG93cyB0aGF0LCBiZWNhdXNlIHdlIGhh dmUgZXN0YWJsaXNoZWQgdGhhdCB3aXRoCj4gPiA+ID4gdGhpcyBiZWhhdmlvciwgdGhlICJkcml2 ZXIgZm9yIG5ldyBJbnRlbCBncmFwaGljcyBkZXZpY2VzIHRoYXQKPiA+ID4gPiBhcmUgcmVjb2du aXplZCBidXQgbm90IHByb3Blcmx5IHN1cHBvcnRlZCBieSB0aGlzIGtlcm5lbCB2ZXJzaW9uIgo+ ID4gPiA+IChhcyBzdGF0ZWQgaW4gdGhlIEtjb25maWcgZm9yIHRoZSBEUk1fSTkxNV9GT1JDRV9Q Uk9CRSkuCj4gPiA+ID4gCj4gPiA+ID4gSG93ZXZlci4uLgo+ID4gPiA+IAo+ID4gPiA+ID4gCj4g PiA+ID4gPiB2MjogLSByZW1vdmUgaW5saW5lIGZyb20gZnVuY3Rpb24gZGVmaW5pdGlvbiAoSmFu aSkKPiA+ID4gPiA+ICAgICAtIGZpeCBpbmRlbnRhdGlvbgo+ID4gPiA+ID4gCj4gPiA+ID4gPiB2 MzogY2hhbmdlIHRvIEdSQVBISUNTX1ZFUigpIChaYmlnbmlldykKPiA+ID4gPiA+IAo+ID4gPiA+ ID4gU2lnbmVkLW9mZi1ieTogWmJpZ25pZXcgS2VtcGN6ecWEc2tpIDx6Ymlnbmlldy5rZW1wY3p5 bnNraUBpbnRlbC5jb20+Cj4gPiA+ID4gPiBDYzogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0 LmNvbT4KPiA+ID4gPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNv bT4KPiA+ID4gPiA+IENjOiBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0cmFuZC5uZXQ+Cj4g PiA+ID4gPiBBY2tlZC1ieTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KPiA+ID4g PiA+IC0tLQo+ID4gPiA+ID4gIC4uLi9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYyAgICB8IDI0ICsrKysrKysrKysrKysrKy0tLS0KPiA+ID4gPiA+ICAxIGZpbGUgY2hhbmdl ZCwgMTkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPiA+ID4gPiA+IAo+ID4gPiA+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVjYnVmZmVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gPiA+ ID4gPiBpbmRleCBhOGFiYzlhZjVmZjQuLjMwYzRmMDU0OWVhMCAxMDA2NDQKPiA+ID4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiA+ID4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVjYnVmZmVyLmMK PiA+ID4gPiA+IEBAIC00OTEsMTYgKzQ5MSwzMCBAQCBlYl91bnJlc2VydmVfdm1hKHN0cnVjdCBl Yl92bWEgKmV2KQo+ID4gPiA+ID4gIAlldi0+ZmxhZ3MgJj0gfl9fRVhFQ19PQkpFQ1RfUkVTRVJW RUQ7Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gK3N0YXRpYyBib29sIHBsYXRm b3JtX2hhc19yZWxvY3NfZW5hYmxlZChjb25zdCBzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYikK PiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCS8qCj4gPiA+ID4gPiArCSAqIFJlbG9jYXRpb25zIGFy ZSBkaXNhbGxvd2VkIHN0YXJ0aW5nIGZyb20gZ2VuMTIgd2l0aCBUaWdlcmxha2UKPiA+ID4gPiA+ ICsJICogYXMgYW4gZXhjZXB0aW9uLiBXZSBhbGxvdyB0ZW1wb3JhcmlseSB1c2UgcmVsb2NhdGlv bnMgZm9yIFJvY2tldGxha2UKPiA+ID4gPiA+ICsJICogYW5kIEFsZGVybGFrZSB3aGVuIHJlcXVp cmVfZm9yY2VfcHJvYmUgZmxhZyBpcyBzZXQuCj4gPiA+ID4gPiArCSAqLwo+ID4gPiA+ID4gKwlp ZiAoR1JBUEhJQ1NfVkVSKGViLT5pOTE1KSA8IDEyIHx8IElTX1RJR0VSTEFLRShlYi0+aTkxNSkp Cj4gPiA+ID4gPiArCQlyZXR1cm4gdHJ1ZTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJaWYgKElO VEVMX0lORk8oZWItPmk5MTUpLT5yZXF1aXJlX2ZvcmNlX3Byb2JlICYmCj4gPiA+ID4gPiArCSAg ICAoSVNfUk9DS0VUTEFLRShlYi0+aTkxNSkKPiA+ID4gPiAKPiA+ID4gPiBUaGlzIHNoaXAgaGFz IHNhaWxlZC4uLiBSS0wgaXMgbm90IHByb3RlY3RlZCBieSB0aGlzIGZsYWcgYW55IGxvbmdlci4K PiA+ID4gPiBTaG91bGQgdGhpcyBiZSBvbiB0aGUgVEdMIHNpZGUgbm93Pwo+ID4gPiAKPiA+ID4g K0x1Y2FzCj4gPiA+IAo+ID4gPiBJIHRoaW5rIG5vLCBSS0wgaGFzIHJlbG9jYXRpb25zIGRpc2Fi bGVkIHNvIHdlIGNhbm5vdCBwdXQgaXQgdG8gVEdMIHNpZGUuCj4gPiA+IFNvIGlmIFJLTCBpcyBh bHJlYWR5IHJlbGVhc2VkIHRoZW4gcHV0dGluZyBpdCB1bmRlciByZXF1aXJlX2ZvcmNlX3Byb2Jl IAo+ID4gPiBmbGFnIGlzIHdyb25nIGFuZCBvbmx5IEkgY2FuIGRvIGlzIHRvIHJlbW92ZSBpdCBm cm9tIHRoYXQgY29uZGl0aW9uLiAKPiA+ID4gVGhlcmUncyBubyBvcHRpb24gdG8gdW5ibG9jayBS S0wgb24gSUdUIENJIHVudGlsIHdlIHJld3JpdGUgYWxsIHRoZSB0ZXN0cy4KPiA+ID4gV2UgaGF2 ZSB0byByZWx5IHRoZW4gb24gQURMKiB3aXRoIHJlcXVpcmVfZm9yY2VfcHJvYmUgZmxhZyB0byBj aGVjayBob3cKPiA+ID4gQURMIHdpbGwgd29yayB3aXRoIHJlbG9jYXRpb25zLiAKPiA+IAo+ID4g U28uLi4gSSdtIGNvbmZ1c2VkIG5vdy4gSSdtIG1pc3NpbmcgdGhlIHBvaW50IG9mIHRoaXMgcGF0 Y2ggdGhlbi4KPiA+IEkgdGhvdWdodCB0aGUgcmVhc29uIHdhcyB0byBwcm90ZWN0IGZyb20gYW55 IHVzZXIgc3BhY2UgdG8gYXR0ZW1wdCB0bwo+ID4gdXNlIHRoZSByZWxvY2F0aW9uLCB1bmxlc3Mg dXNpbmcgdGhlIGZvcmNlX3Byb2JlIHRlbXBvcmFyaWx5IG9ubHkgZm9yCj4gPiB0aGVzZSBwbGF0 Zm9ybXMuCj4gPiBCdXQgaWYgSSdtIHVuZGVyc3RhbmRpbmcgY29ycmVjdGx5IG5vdyBpdCBpcyBv bmx5IHRvIHNpbGVuY2UgQ0k/IQo+ID4gSXMgdGhhdCB0aGUgY2FzZT8KPiA+IElzIHRoZSBDSSBu b2lzZSBzbyBiYWQ/Cj4gCj4gVGhlIHBvaW50IG9mIHRoZSBwYXRjaCBpcyB0byB2ZXJpZnkgZHJp dmVyIG9uIEFETC4gSUdUIHN0aWxsIHVzZXMgCj4gcmVsb2NhdGlvbnMgKHdlJ3JlIHJld3JpdGlu ZyB0aGVtIG5vdyBidXQgaXQgdGFrZXMgdGltZSkgc28gZXhlY2J1Zgo+IG9uIEFETCBqdXN0IGV4 aXRzIHdpdGggZmFpbHVyZS4gV2UncmUgYmxpbmQgcmlnaHQgbm93IGFib3V0IGRyaXZlcgo+IGJl aGF2aW9yIGFuZCB3ZSB3YW50IHRvIGFkZHJlc3MgdGhpcyAtIHRlbXBvcmFyeSBlbmFibGUgcmVs b2NhdGlvbnMKPiBvbiBBREwgKHVuZGVyIGZsYWcpIHRvIHNlZSBpZiBkcml2ZXIgd29ya3MgcHJv cGVybHkgb24gdGhhdCBwbGF0Zm9ybS4KCk9rYXksIHNvIEkgYmVsaWV2ZSB3ZSBuZWVkIGEgYmln Z2VyIGNvZGUgcmVmYWN0b3IgaGVyZS4gV2hlbmV2ZXIKd2UgYXR0ZW1wdCB0byB1c2UgdGhlIHJl bG9jYXRpb24gYnV0IHdlIGFyZSBvbiBBREwgd2UgbmVlZCB0byBoYXZlCmEgYmlnIGJvbGQgbWVz c2FnZSBzYXlpbmcgdGhpcyBzaG91bGQgbm90IGJlIHVzZWQuIFRoYXQgdGhpcyBjb2RlCnBhdGgg aXMgZGVwcmVjYXRlZCBhbmQgZ2V0dGluZyByZW1vdmVkLi4uCgpNeSBmZWFyIGlzIHRoYXQgYWZ0 ZXIgYWRkaW5nIHRoaXMgc29tZSBVTUQsIG90aGVyIHRoYW4gSUdULAp3b3VsZCBzdGFydCB1c2lu ZyByZWxvY2F0aW9uIGJhY2sgYWdhaW4gYW5kIHRoZW4gdGhlIHJlbW92YWwKb2YgcmVxdWlyZV9m b3JjZV9wcm9iZSBvZiBBREwgd291bGQgbWVhbiByZWdyZXNzaW9uIGFuZCB3ZSB3b3VsZApuZWVk IHRvIHN1cHBvcnQgdGhhdCBmb3JldmVyIGFnYWluLgoKSWRlYWxseSBhIGJvbGQgZHJtX3dhcm4s IGJ1dCBJIHVuZGVyc3RhbmQgdGhpcyBtaWdodCBpbXBhY3QgQ0kKc28gYXQgbGVhc3QgYSBkcm1f aW5mbyB3aXRoIGNhcGl0YWwgbGV0dGVycy4uLgoKPiAKPiA+IAo+ID4gPiAKPiA+ID4gPiAKPiA+ ID4gPiA+ICB8fCBJU19BTERFUkxBS0VfUyhlYi0+aTkxNSkgfHwKPiA+ID4gPiA+ICsJICAgICBJ U19BTERFUkxBS0VfUChlYi0+aTkxNSkpKQo+ID4gPiA+IAo+ID4gPiA+IEhvdyB0byBlbnN1cmUg dGhhdCB3ZSB3aWxsIGVhc2lseSBjYXRjaCB0aGlzIHdoZW4gcmVtb3ZpbmcgdGhlCj4gPiA+ID4g ZmxhZz8KPiA+ID4gPiAKPiA+ID4gPiBJIG1lYW4sIHNob3VsZCB3ZSBoYXZlIGEgR0VNX0JVRyBv ciBkcm1fZXJyIG1lc3NhZ2Ugd2hlbiB0aGVzZQo+ID4gPiA+IHBsYXRmb3JtcyBpbiB0aGlzIGxp c3QgaGFzIG5vdCB0aGUgcmVxdWlyZWRfZm9yY2VfcHJvYmU/Cj4gPiA+IAo+ID4gPiBJIGRvbid0 IHRoaW5rIHdlIG5lZWQgR0VNX0JVRygpL2RybV9lcnIoKSAtIHdoZW4gSUdUIHRlc3RzIHdpbGwg c3VwcG9ydAo+ID4gPiBib3RoIC0gcmVsb2MgKyBuby1yZWxvYyAtIHRoZW4gY29uZGl0aW9uIHdp bGwgYmUgbGltaXRlZCB0bzoKPiA+ID4gCj4gPiA+ICAgICAgICAgaWYgKEdSQVBISUNTX1ZFUihl Yi0+aTkxNSkgPCAxMiB8fCBJU19USUdFUkxBS0UoZWItPmk5MTUpKQo+ID4gPiAgICAgICAgICAg ICAgICAgcmV0dXJuIHRydWU7Cj4gPiA+ICAKPiA+ID4gICAgICAgICByZXR1cm4gZmFsc2U7Cj4g PiA+IAo+ID4gPiBzbyByZXF1aXJlX2ZvcmNlX3Byb2JlIGNvbmRpdGlvbiB3aWxsIGJlIGRlbGV0 ZWQgYW5kIHdlIHdvbid0IG5lZWQgaXQKPiA+ID4gYW55bW9yZSAoSUdUcyB3aWxsIGJlIHJlYWR5 KS4KPiA+IAo+ID4geWVzLi4uCj4gPiBidXQgdGhlbiwgd2hlbiB3ZSByZW1vdmUgdGhlIGZsYWcg d2Ugd2lsbCBmb3JnZXQgdG8gY29tZSBoZXJlIGFuZCByZW1vdmUKPiA+IHRoaXMgY2hlY2suCj4g Cj4gSSB0aGluayB3ZSB3b24ndCBmb3JnZXQgLSB0aGlzIGlzIGNoZXJyeSBvbiB0b3Agb2YgcmV3 cml0aW5nIElHVCAtCj4gdG8gc3dpdGNoIHRvIG5vLXJlbG9jIG9uIEFETCwgc28gdGhhdCBjb25k aXRpb24gZGlzYXBwZWFyLgoKYmVsaWV2ZSBtZSwgd2Ugd2lsbCBmb3JnZXQgdG8gcmVtb3ZlIHRo aXMgZnVuY3Rpb24gaWYgd2UgZG9uJ3QKc3RhcnQgd2FybmluZyB0aGF0IEFETCBpcyBub3QgcHJv dGVjdGVkIGJ5IHRoZSBmbGFnIGFueW1vcmUuLi4KbGlrZSB3ZSB3ZXJlIGFib3V0IHRvIGFkZCBS S0wgYW5kIGxpdmUgdGhhdCB1c2VsZXNzIHRoZXJlIGZvcmV2ZXIuLi4KCj4gCj4gPiAKPiA+IE9o LCBhbmQgSSBqdXN0IHRob3VnaHQgdGhhdCB3ZSBtaWdodCBuZWVkIGRybV9lcnJvciB3aGVuIHRo ZSBwcm90ZWN0aW9uCj4gPiBkb2Vzbid0IGV4aXN0IGZvciB0aGUgcGxhdGZvcm0sIGJ1dCBhbHNv IGEgZHJtX2luZm8gdG8gdGhlIHVzZXIgdG8gdGVsbAo+ID4gdGhpcyBpcyBhIHRlbXBvcmFyeSBh Y2NlcHRlZCBiZWhhdmlvciwgYnV0IHRoYXQgd2lsbCBiZSByZW1vdmVkIGxhdGVyCj4gPiAKPiA+ IFRoZSBjb25jZXJuIGlzIGlmIGFueSBvdGhlciB1c2Vyc3BhY2Ugd2FzIHVzaW5nIHRoZSBmbGFn IGFuZCBzdWRkZW50bHkgbW92ZSB0byBhCj4gPiB2ZXJzaW9uIHdpdGhvdXQgdGhlIGZsYWcsIGl0 IHdvdWxkIGJlIGNvbnNpZGVyZWQgYSByZWdyZXNzaW9uLi4uCj4gCj4gVGhhdCBtZWFucyBJIGRv bid0IHVuZGVyc3RhbmQgdGhlIG1lYW5pbmcgb2YgdGhhdCBmbGFnLiBJIHRob3VnaHQgaXQgaXMK PiB0byBlbmZvcmNlIHByb2JlIG9mIGRyaXZlciBvbiBwbGF0Zm9ybSB3aGljaCBiZWhhdmlvciBp cyBub3QgYWxyZWFkeSAKPiB3ZWxsIGRlZmluZWQgYW5kIHdlIHdhbnQgdG8gInRyeSIgZHJpdmVy IG9uIGl0LgoKVGhlIGdvYWwgb2YgdGhlIGZsYWcgaXMgdG8gcHJvdGVjdCBlbmQgdXNlcnMgdG8g Z2V0IGEgdW5zdGFibGUgZHJpdmVyCnN1cHBvcnQuIEluIHNwZWNpYWwsIGxpbnV4IGluc3RhbGxl ciAuaXNvIGltYWdlcyB3aGVyZSBkcml2ZXIgY2Fubm90IGJlCnVwZGF0ZWQuLi4gaWYgdXNlciBn ZXRzIGEgb2xkIC5pc28gd2l0aCBkcml2ZXIgZnJvbSB0aGUgZW5hYmxpbmcgdGltZXMKYW5kIGEg YnJhbmQgbmV3IHBsYXRmb3JtLCB0aGUgaW5zdGFsbGF0aW9uIG1pZ2ggaGFuZyBvciBnZXQgYmxh bmsgc2NyZWVucy4KSXQgd2FzIGEgbmlnaHRtYXJlIGluIHRoZSBwYXN0LgoKQnV0IHRoZSBmbGFn IHdhcyBuZXZlciBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGggVUFQSSBkZWNpc2lvbnMsIHNvCnRo aXMgY2FzZSBoZXJlIGlzIGNoYW5naW5nIHRoaXMuLi4KCj4gCj4gLS0KPiBaYmlnbmlldwo+IAo+ ID4gCj4gPiA+IAo+ID4gPiAtLQo+ID4gPiBaYmlnbmlldwo+ID4gPiAKPiA+ID4gPiAKPiA+ID4g PiA+ICsJCXJldHVybiB0cnVlOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlyZXR1cm4gZmFsc2U7 Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIHN0YXRpYyBpbnQKPiA+ID4gPiA+ ICBlYl92YWxpZGF0ZV92bWEoc3RydWN0IGk5MTVfZXhlY2J1ZmZlciAqZWIsCj4gPiA+ID4gPiAg CQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiAqZW50cnksCj4gPiA+ID4gPiAgCQlz dHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiAtCS8qIFJlbG9jYXRp b25zIGFyZSBkaXNhbGxvd2VkIGZvciBhbGwgcGxhdGZvcm1zIGFmdGVyIFRHTC1MUC4gIFRoaXMK PiA+ID4gPiA+IC0JICogYWxzbyBjb3ZlcnMgYWxsIHBsYXRmb3JtcyB3aXRoIGxvY2FsIG1lbW9y eS4KPiA+ID4gPiA+IC0JICovCj4gPiA+ID4gPiAtCWlmIChlbnRyeS0+cmVsb2NhdGlvbl9jb3Vu dCAmJgo+ID4gPiA+ID4gLQkgICAgR1JBUEhJQ1NfVkVSKGViLT5pOTE1KSA+PSAxMiAmJiAhSVNf VElHRVJMQUtFKGViLT5pOTE1KSkKPiA+ID4gPiA+ICsJaWYgKGVudHJ5LT5yZWxvY2F0aW9uX2Nv dW50ICYmICFwbGF0Zm9ybV9oYXNfcmVsb2NzX2VuYWJsZWQoZWIpKQo+ID4gPiA+ID4gIAkJcmV0 dXJuIC1FSU5WQUw7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCWlmICh1bmxpa2VseShlbnRyeS0+ ZmxhZ3MgJiBlYi0+aW52YWxpZF9mbGFncykpCj4gPiA+ID4gPiAtLSAKPiA+ID4gPiA+IDIuMjYu MAo+ID4gPiA+ID4gCj4gPiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo+ID4gPiA+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gPiA+ID4g SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+ID4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxp c3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==