From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vanshidhar Konda Subject: Re: [RFC PATCH i-g-t v4 2/4] lib: Add minimum GTT alignment helper Date: Thu, 31 Oct 2019 09:58:31 -0700 Message-ID: <20191031165831.4hwgkv7ehe7jhdgi@vrkonda-desk.ra.intel.com> References: <20191031152857.17143-1-janusz.krzysztofik@linux.intel.com> <20191031152857.17143-3-janusz.krzysztofik@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20191031152857.17143-3-janusz.krzysztofik@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Janusz Krzysztofik Cc: intel-gfx@lists.freedesktop.org, igt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMzEsIDIwMTkgYXQgMDQ6Mjg6NTVQTSArMDEwMCwgSmFudXN6IEtyenlzenRv ZmlrIHdyb3RlOgo+U29tZSB0ZXN0cyBhc3N1bWUgNGtCIG9mZnNldCBhbGlnbm1lbnQgd2hpbGUg dXNpbmcgc29mdHBpbi4gIFRoYXQKPmFzc3VtcHRpb24gbWF5IGJlIHdyb25nIG9uIGZ1dHVyZSBH RU0gYmFja2VuZHMgd2l0aCBwb3NzaWJseSBsYXJnZXIKPm1pbmltdW0gcGFnZSBzaXplcy4gIEFz IGEgcmVzdWx0LCB0aG9zZSB0ZXN0cyBtYXkgZWl0aGVyIGZhaWwgb24KPnNvZnRwaW4gYXQgb2Zm c2V0cyB3aGljaCBhcmUgaW5jb3JyZWN0bHkgYWxpZ25lZCwgbWF5IHNpbGVudGx5IHNraXAKPnN1 Y2ggaW5jb3JyZWN0bHkgYWxpZ25lZCBhZGRyZXNzZXMgYXNzdW1pbmcgdGhlbSBvY2N1cGllZCBi eSBvdGhlcgo+dXNlcnMgaWYgaW5jb3JyZWN0IGRldGVjdGlvbiBtZXRob2QgaXMgdXNlZCwgb3Ig bWF5IGFsd2F5cyBzdWNjZWVkCj53aGVuIGV4YW1pbmluZyBpbnZhbGlkIHVzZSBwYXR0ZXJucy4K Pgo+UHJvdmlkZSBhIGhlbHBlciBmdW5jdGlvbiB0aGF0IGRldGVjdHMgbWluaW11bSBHVFQgYWxp Z25tZW50LiAgVGVzdHMKPm1heSB1c2UgaXQgdG8gY2FsY3VsYXRlIHNvZnRwaW4gb2Zmc2V0cyB2 YWxpZCBmb3IgYWN0dWFsbHkgdXNlZCBiYWNraW5nCj5zdG9yZS4KPgo+djI6IFJlbmFtZSB0aGUg aGVscGVyLCB1c2UgJ21pbmltdW0gR1RUIGFsaWdubWVudCcgdGVybSBhY3Jvc3MgdGhlCj4gICAg Y2hhbmdlIChDaHJpcyksCj4gIC0gdXNlIGVycm9yIG51bWJlcnMgdG8gZGlzdGluZ3Vpc2ggYmV0 d2VlbiBpbnZhbGlkIG9mZnNldHMgYW5kCj4gICAgYWRkcmVzc2VzIG9jY3VwaWVkIGJ5IG90aGVy IHVzZXJzLCB0aGVuCj4gIC0gc2ltcGxpZnkgdGhlIGNvZGUgKENocmlzKS4KPgo+U2lnbmVkLW9m Zi1ieTogSmFudXN6IEtyenlzenRvZmlrIDxqYW51c3oua3J6eXN6dG9maWtAbGludXguaW50ZWwu Y29tPgo+Q2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+Q2M6IERh bmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+Cj5D YzogU3R1YXJ0IFN1bW1lcnMgPHN0dWFydC5zdW1tZXJzQGludGVsLmNvbT4KPi0tLQo+IGxpYi9p b2N0bF93cmFwcGVycy5jIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPiBsaWIvaW9jdGxfd3JhcHBlcnMuaCB8ICAyICsrCj4gMiBmaWxlcyBjaGFuZ2Vk LCA0OCBpbnNlcnRpb25zKCspCj4KPmRpZmYgLS1naXQgYS9saWIvaW9jdGxfd3JhcHBlcnMuYyBi L2xpYi9pb2N0bF93cmFwcGVycy5jCj5pbmRleCA2MjhmOGI4My4uZjBlZjhiMmUgMTAwNjQ0Cj4t LS0gYS9saWIvaW9jdGxfd3JhcHBlcnMuYwo+KysrIGIvbGliL2lvY3RsX3dyYXBwZXJzLmMKPkBA IC01NCw2ICs1NCw3IEBACj4gI2luY2x1ZGUgImludGVsX2lvLmgiCj4gI2luY2x1ZGUgImlndF9k ZWJ1Z2ZzLmgiCj4gI2luY2x1ZGUgImlndF9zeXNmcy5oIgo+KyNpbmNsdWRlICJpZ3RfeDg2Lmgi Cj4gI2luY2x1ZGUgImNvbmZpZy5oIgo+Cj4gI2lmZGVmIEhBVkVfVkFMR1JJTkQKPkBAIC0xMTU4 LDYgKzExNTksNTEgQEAgYm9vbCBnZW1faGFzX3NvZnRwaW4oaW50IGZkKQo+IAlyZXR1cm4gaGFz X3NvZnRwaW47Cj4gfQo+Cj4rLyoqCj4rICogZ2VtX2d0dF9taW5fYWxpZ25tZW50X29yZGVyOgo+ KyAqIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2NyaXB0b3IKPisgKgo+KyAqIFRoaXMgZnVu Y3Rpb24gZGV0ZWN0cyB0aGUgbWluaW11bSBwb3NzaWJsZSBhbGlnbm1lbnQgb2YgYSBzb2Z0LXBp bm5lZCBnZW0KPisgKiBvYmplY3QgYWxsb2NhdGVkIGZyb20gYSBkZWZhdWx0IGJhY2tpbmcgc3Rv cmUuICBJdCBpcyB1c2VmdWwgZm9yIGNhbGN1bGF0aW5nCj4rICogY29ycmVjdGx5IGFsaWduZWQg c29mdHBpbiBvZmZzZXRzLgo+KyAqIFNpbmNlIHNpemUgb3JkZXIgdG8gc2l6ZSBjb252ZXJzaW9u IChzaXplID0gMSA8PCBvcmRlcikgaXMgbGVzcyB0cml2aWFsCj4rICogdGhhbiB0aGUgb3Bwb3Np dGUsIHRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBhbGlnbm1lbnQgb3JkZXIgYXMgbW9yZSBoYW5k eS4KPisgKgo+KyAqIFJldHVybnM6Cj4rICogU2l6ZSBvcmRlciBvZiB0aGUgbWluaW11bSBHVFQg YWxpZ25tZW50Cj4rICovCj4raW50IGdlbV9ndHRfbWluX2FsaWdubWVudF9vcmRlcihpbnQgZmQp Cj4rewo+KwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmo7Cj4rCXN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZWI7Cj4rCWNvbnN0IHVpbnQzMl90IGJiZSA9IE1JX0JB VENIX0JVRkZFUl9FTkQ7Cj4rCWludCBvcmRlcjsKPisKPisJLyogbm8gc29mdHBpbiA9PiA0a0Ig cGFnZSBzaXplICovCj4rCWlmICghZ2VtX2hhc19zb2Z0cGluKGZkKSkKPisJCXJldHVybiAxMjsK PisKPisJbWVtc2V0KCZvYmosIDAsIHNpemVvZihvYmopKTsKPisJbWVtc2V0KCZlYiwgMCwgc2l6 ZW9mKGViKSk7Cj4rCj4rCW9iai5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKPisJb2Jq LmZsYWdzID0gRVhFQ19PQkpFQ1RfUElOTkVEIHwgRVhFQ19PQkpFQ1RfU1VQUE9SVFNfNDhCX0FE RFJFU1M7Cj4rCWViLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKCZvYmopOwo+KwllYi5i dWZmZXJfY291bnQgPSAxOwo+KwlnZW1fd3JpdGUoZmQsIG9iai5oYW5kbGUsIDAsICZiYmUsIHNp emVvZihiYmUpKTsKCkkgdGhpbmsgaXQgd2lsbCBiZSBzYWZlciB0byBjcmVhdGUgYSBuZXcgY29u dGV4dCB0byBleGVjdXRlIHRoaXMKZXhlY2J1ZmZlci4gRm9yIGEgbmV3IGNvbnRleHQgdGhlIGFk ZHJlc3Mgc3BhY2Ugc2hvdWxkIGJlIGVtcHR5IHJlZHVjaW5nCnRoZSBjaGFuY2UgdGhhdCB0aGVy ZSBpcyBhbm90aGVyIG9iamVjdCBtYXBwZWQgYnkgdGhlIGNhbGxlciBvZiB0aGUKaGVscGVyIGZ1 bmN0aW9uIGF0IHRoZSBhZGRyZXNzIHdlIHN0YXJ0IHRlc3RpbmcuCgpPdGhlcndpc2UgaXQgbG9v a3MgZ29vZCB0byBtZS4KClZhbnNoaQoKPisKPisJZm9yIChvcmRlciA9IDEyOyBvcmRlciA8IDY0 OyBvcmRlcisrKSB7Cj4rCQlvYmoub2Zmc2V0ID0gMXVsbCA8PCBvcmRlcjsKPisJCWlmIChfX2dl bV9leGVjYnVmKGZkLCAmZWIpICE9IC1FSU5WQUwpCj4rCQkJYnJlYWs7Cj4rCX0KPisJaWd0X2Fz c2VydChvYmoub2Zmc2V0IDwgZ2VtX2FwZXJ0dXJlX3NpemUoZmQpKTsKPisKPisJZ2VtX2Nsb3Nl KGZkLCBvYmouaGFuZGxlKTsKPisJaWd0X2RlYnVnKCJtaW5pbXVtIEdUVCBhbGlnbm1lbnQgaXMg JSNsbHhcbiIsIChsb25nIGxvbmcpb2JqLm9mZnNldCk7Cj4rCXJldHVybiBvcmRlcjsKPit9Cj4r Cj4gLyoqCj4gICogZ2VtX2hhc19leGVjX2ZlbmNlOgo+ICAqIEBmZDogb3BlbiBpOTE1IGRybSBm aWxlIGRlc2NyaXB0b3IKPmRpZmYgLS1naXQgYS9saWIvaW9jdGxfd3JhcHBlcnMuaCBiL2xpYi9p b2N0bF93cmFwcGVycy5oCj5pbmRleCAwMzIxMWM5Ny4uYzhkNTdhN2MgMTAwNjQ0Cj4tLS0gYS9s aWIvaW9jdGxfd3JhcHBlcnMuaAo+KysrIGIvbGliL2lvY3RsX3dyYXBwZXJzLmgKPkBAIC0xMzgs NiArMTM4LDggQEAgdWludDY0X3QgZ2VtX2FwZXJ0dXJlX3NpemUoaW50IGZkKTsKPiB1aW50NjRf dCBnZW1fZ2xvYmFsX2FwZXJ0dXJlX3NpemUoaW50IGZkKTsKPiB1aW50NjRfdCBnZW1fbWFwcGFi bGVfYXBlcnR1cmVfc2l6ZSh2b2lkKTsKPiBib29sIGdlbV9oYXNfc29mdHBpbihpbnQgZmQpOwo+ K2ludCBnZW1fZ3R0X21pbl9hbGlnbm1lbnRfb3JkZXIoaW50IGZkKTsKPisjZGVmaW5lIGdlbV9n dHRfbWluX2FsaWdubWVudChmZCkgKDF1bGwgPDwgZ2VtX2d0dF9taW5fYWxpZ25tZW50X29yZGVy KGZkKSkKPiBib29sIGdlbV9oYXNfZXhlY19mZW5jZShpbnQgZmQpOwo+Cj4gLyogY2hlY2sgZnVu Y3Rpb25zIHdoaWNoIGF1dG8tc2tpcCB0ZXN0cyBieSBjYWxsaW5nIGlndF9za2lwKCkgKi8KPi0t IAo+Mi4yMS4wCj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 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=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,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 1DCB2CA9ECB for ; Thu, 31 Oct 2019 16:58: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 C4DF92087F for ; Thu, 31 Oct 2019 16:58:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C4DF92087F 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 56F5A6F3B0; Thu, 31 Oct 2019 16:58:34 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 00ABB6F3AC; Thu, 31 Oct 2019 16:58:32 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 31 Oct 2019 09:58:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,252,1569308400"; d="scan'208";a="203593859" Received: from vrkonda-desk.ra.intel.com ([134.134.244.70]) by orsmga003.jf.intel.com with ESMTP; 31 Oct 2019 09:58:31 -0700 Date: Thu, 31 Oct 2019 09:58:31 -0700 From: Vanshidhar Konda To: Janusz Krzysztofik Message-ID: <20191031165831.4hwgkv7ehe7jhdgi@vrkonda-desk.ra.intel.com> References: <20191031152857.17143-1-janusz.krzysztofik@linux.intel.com> <20191031152857.17143-3-janusz.krzysztofik@linux.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191031152857.17143-3-janusz.krzysztofik@linux.intel.com> Subject: Re: [Intel-gfx] [RFC PATCH i-g-t v4 2/4] lib: Add minimum GTT alignment helper X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org, igt-dev@lists.freedesktop.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191031165831.HHjyE1e_vTNCDraAd0lbGKG0YW2Rn-3ZjOcjtRjJaek@z> T24gVGh1LCBPY3QgMzEsIDIwMTkgYXQgMDQ6Mjg6NTVQTSArMDEwMCwgSmFudXN6IEtyenlzenRv ZmlrIHdyb3RlOgo+U29tZSB0ZXN0cyBhc3N1bWUgNGtCIG9mZnNldCBhbGlnbm1lbnQgd2hpbGUg dXNpbmcgc29mdHBpbi4gIFRoYXQKPmFzc3VtcHRpb24gbWF5IGJlIHdyb25nIG9uIGZ1dHVyZSBH RU0gYmFja2VuZHMgd2l0aCBwb3NzaWJseSBsYXJnZXIKPm1pbmltdW0gcGFnZSBzaXplcy4gIEFz IGEgcmVzdWx0LCB0aG9zZSB0ZXN0cyBtYXkgZWl0aGVyIGZhaWwgb24KPnNvZnRwaW4gYXQgb2Zm c2V0cyB3aGljaCBhcmUgaW5jb3JyZWN0bHkgYWxpZ25lZCwgbWF5IHNpbGVudGx5IHNraXAKPnN1 Y2ggaW5jb3JyZWN0bHkgYWxpZ25lZCBhZGRyZXNzZXMgYXNzdW1pbmcgdGhlbSBvY2N1cGllZCBi eSBvdGhlcgo+dXNlcnMgaWYgaW5jb3JyZWN0IGRldGVjdGlvbiBtZXRob2QgaXMgdXNlZCwgb3Ig bWF5IGFsd2F5cyBzdWNjZWVkCj53aGVuIGV4YW1pbmluZyBpbnZhbGlkIHVzZSBwYXR0ZXJucy4K Pgo+UHJvdmlkZSBhIGhlbHBlciBmdW5jdGlvbiB0aGF0IGRldGVjdHMgbWluaW11bSBHVFQgYWxp Z25tZW50LiAgVGVzdHMKPm1heSB1c2UgaXQgdG8gY2FsY3VsYXRlIHNvZnRwaW4gb2Zmc2V0cyB2 YWxpZCBmb3IgYWN0dWFsbHkgdXNlZCBiYWNraW5nCj5zdG9yZS4KPgo+djI6IFJlbmFtZSB0aGUg aGVscGVyLCB1c2UgJ21pbmltdW0gR1RUIGFsaWdubWVudCcgdGVybSBhY3Jvc3MgdGhlCj4gICAg Y2hhbmdlIChDaHJpcyksCj4gIC0gdXNlIGVycm9yIG51bWJlcnMgdG8gZGlzdGluZ3Vpc2ggYmV0 d2VlbiBpbnZhbGlkIG9mZnNldHMgYW5kCj4gICAgYWRkcmVzc2VzIG9jY3VwaWVkIGJ5IG90aGVy IHVzZXJzLCB0aGVuCj4gIC0gc2ltcGxpZnkgdGhlIGNvZGUgKENocmlzKS4KPgo+U2lnbmVkLW9m Zi1ieTogSmFudXN6IEtyenlzenRvZmlrIDxqYW51c3oua3J6eXN6dG9maWtAbGludXguaW50ZWwu Y29tPgo+Q2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+Q2M6IERh bmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+Cj5D YzogU3R1YXJ0IFN1bW1lcnMgPHN0dWFydC5zdW1tZXJzQGludGVsLmNvbT4KPi0tLQo+IGxpYi9p b2N0bF93cmFwcGVycy5jIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPiBsaWIvaW9jdGxfd3JhcHBlcnMuaCB8ICAyICsrCj4gMiBmaWxlcyBjaGFuZ2Vk LCA0OCBpbnNlcnRpb25zKCspCj4KPmRpZmYgLS1naXQgYS9saWIvaW9jdGxfd3JhcHBlcnMuYyBi L2xpYi9pb2N0bF93cmFwcGVycy5jCj5pbmRleCA2MjhmOGI4My4uZjBlZjhiMmUgMTAwNjQ0Cj4t LS0gYS9saWIvaW9jdGxfd3JhcHBlcnMuYwo+KysrIGIvbGliL2lvY3RsX3dyYXBwZXJzLmMKPkBA IC01NCw2ICs1NCw3IEBACj4gI2luY2x1ZGUgImludGVsX2lvLmgiCj4gI2luY2x1ZGUgImlndF9k ZWJ1Z2ZzLmgiCj4gI2luY2x1ZGUgImlndF9zeXNmcy5oIgo+KyNpbmNsdWRlICJpZ3RfeDg2Lmgi Cj4gI2luY2x1ZGUgImNvbmZpZy5oIgo+Cj4gI2lmZGVmIEhBVkVfVkFMR1JJTkQKPkBAIC0xMTU4 LDYgKzExNTksNTEgQEAgYm9vbCBnZW1faGFzX3NvZnRwaW4oaW50IGZkKQo+IAlyZXR1cm4gaGFz X3NvZnRwaW47Cj4gfQo+Cj4rLyoqCj4rICogZ2VtX2d0dF9taW5fYWxpZ25tZW50X29yZGVyOgo+ KyAqIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2NyaXB0b3IKPisgKgo+KyAqIFRoaXMgZnVu Y3Rpb24gZGV0ZWN0cyB0aGUgbWluaW11bSBwb3NzaWJsZSBhbGlnbm1lbnQgb2YgYSBzb2Z0LXBp bm5lZCBnZW0KPisgKiBvYmplY3QgYWxsb2NhdGVkIGZyb20gYSBkZWZhdWx0IGJhY2tpbmcgc3Rv cmUuICBJdCBpcyB1c2VmdWwgZm9yIGNhbGN1bGF0aW5nCj4rICogY29ycmVjdGx5IGFsaWduZWQg c29mdHBpbiBvZmZzZXRzLgo+KyAqIFNpbmNlIHNpemUgb3JkZXIgdG8gc2l6ZSBjb252ZXJzaW9u IChzaXplID0gMSA8PCBvcmRlcikgaXMgbGVzcyB0cml2aWFsCj4rICogdGhhbiB0aGUgb3Bwb3Np dGUsIHRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBhbGlnbm1lbnQgb3JkZXIgYXMgbW9yZSBoYW5k eS4KPisgKgo+KyAqIFJldHVybnM6Cj4rICogU2l6ZSBvcmRlciBvZiB0aGUgbWluaW11bSBHVFQg YWxpZ25tZW50Cj4rICovCj4raW50IGdlbV9ndHRfbWluX2FsaWdubWVudF9vcmRlcihpbnQgZmQp Cj4rewo+KwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmo7Cj4rCXN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZWI7Cj4rCWNvbnN0IHVpbnQzMl90IGJiZSA9IE1JX0JB VENIX0JVRkZFUl9FTkQ7Cj4rCWludCBvcmRlcjsKPisKPisJLyogbm8gc29mdHBpbiA9PiA0a0Ig cGFnZSBzaXplICovCj4rCWlmICghZ2VtX2hhc19zb2Z0cGluKGZkKSkKPisJCXJldHVybiAxMjsK PisKPisJbWVtc2V0KCZvYmosIDAsIHNpemVvZihvYmopKTsKPisJbWVtc2V0KCZlYiwgMCwgc2l6 ZW9mKGViKSk7Cj4rCj4rCW9iai5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKPisJb2Jq LmZsYWdzID0gRVhFQ19PQkpFQ1RfUElOTkVEIHwgRVhFQ19PQkpFQ1RfU1VQUE9SVFNfNDhCX0FE RFJFU1M7Cj4rCWViLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKCZvYmopOwo+KwllYi5i dWZmZXJfY291bnQgPSAxOwo+KwlnZW1fd3JpdGUoZmQsIG9iai5oYW5kbGUsIDAsICZiYmUsIHNp emVvZihiYmUpKTsKCkkgdGhpbmsgaXQgd2lsbCBiZSBzYWZlciB0byBjcmVhdGUgYSBuZXcgY29u dGV4dCB0byBleGVjdXRlIHRoaXMKZXhlY2J1ZmZlci4gRm9yIGEgbmV3IGNvbnRleHQgdGhlIGFk ZHJlc3Mgc3BhY2Ugc2hvdWxkIGJlIGVtcHR5IHJlZHVjaW5nCnRoZSBjaGFuY2UgdGhhdCB0aGVy ZSBpcyBhbm90aGVyIG9iamVjdCBtYXBwZWQgYnkgdGhlIGNhbGxlciBvZiB0aGUKaGVscGVyIGZ1 bmN0aW9uIGF0IHRoZSBhZGRyZXNzIHdlIHN0YXJ0IHRlc3RpbmcuCgpPdGhlcndpc2UgaXQgbG9v a3MgZ29vZCB0byBtZS4KClZhbnNoaQoKPisKPisJZm9yIChvcmRlciA9IDEyOyBvcmRlciA8IDY0 OyBvcmRlcisrKSB7Cj4rCQlvYmoub2Zmc2V0ID0gMXVsbCA8PCBvcmRlcjsKPisJCWlmIChfX2dl bV9leGVjYnVmKGZkLCAmZWIpICE9IC1FSU5WQUwpCj4rCQkJYnJlYWs7Cj4rCX0KPisJaWd0X2Fz c2VydChvYmoub2Zmc2V0IDwgZ2VtX2FwZXJ0dXJlX3NpemUoZmQpKTsKPisKPisJZ2VtX2Nsb3Nl KGZkLCBvYmouaGFuZGxlKTsKPisJaWd0X2RlYnVnKCJtaW5pbXVtIEdUVCBhbGlnbm1lbnQgaXMg JSNsbHhcbiIsIChsb25nIGxvbmcpb2JqLm9mZnNldCk7Cj4rCXJldHVybiBvcmRlcjsKPit9Cj4r Cj4gLyoqCj4gICogZ2VtX2hhc19leGVjX2ZlbmNlOgo+ICAqIEBmZDogb3BlbiBpOTE1IGRybSBm aWxlIGRlc2NyaXB0b3IKPmRpZmYgLS1naXQgYS9saWIvaW9jdGxfd3JhcHBlcnMuaCBiL2xpYi9p b2N0bF93cmFwcGVycy5oCj5pbmRleCAwMzIxMWM5Ny4uYzhkNTdhN2MgMTAwNjQ0Cj4tLS0gYS9s aWIvaW9jdGxfd3JhcHBlcnMuaAo+KysrIGIvbGliL2lvY3RsX3dyYXBwZXJzLmgKPkBAIC0xMzgs NiArMTM4LDggQEAgdWludDY0X3QgZ2VtX2FwZXJ0dXJlX3NpemUoaW50IGZkKTsKPiB1aW50NjRf dCBnZW1fZ2xvYmFsX2FwZXJ0dXJlX3NpemUoaW50IGZkKTsKPiB1aW50NjRfdCBnZW1fbWFwcGFi bGVfYXBlcnR1cmVfc2l6ZSh2b2lkKTsKPiBib29sIGdlbV9oYXNfc29mdHBpbihpbnQgZmQpOwo+ K2ludCBnZW1fZ3R0X21pbl9hbGlnbm1lbnRfb3JkZXIoaW50IGZkKTsKPisjZGVmaW5lIGdlbV9n dHRfbWluX2FsaWdubWVudChmZCkgKDF1bGwgPDwgZ2VtX2d0dF9taW5fYWxpZ25tZW50X29yZGVy KGZkKSkKPiBib29sIGdlbV9oYXNfZXhlY19mZW5jZShpbnQgZmQpOwo+Cj4gLyogY2hlY2sgZnVu Y3Rpb25zIHdoaWNoIGF1dG8tc2tpcCB0ZXN0cyBieSBjYWxsaW5nIGlndF9za2lwKCkgKi8KPi0t IAo+Mi4yMS4wCj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4