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=-15.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable 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 DF4BCC5519F for ; Wed, 18 Nov 2020 16:03:00 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 60FBF247C4 for ; Wed, 18 Nov 2020 16:03:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="JlOT2k9u" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 60FBF247C4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ZL3n2wLKzSvp3/Skmj606fYmCt26NoWmR9g9GMzCVUo=; b=JlOT2k9uXcfg/5Q/smc82Ybd0 WfskrVbscPztb95tG53YQf3W2XqAc+JiKebn8G4gax0KbTYaVp/buFONyziKmiuWhf9bz2E8LEKsU xyQ9c97T+kzrZea8sM7WrkKI3BzS48/mII3ScPqwuwyLv1yXlDm3NUE0YylMyA39/s6Um1rv1gaIp AwHE4K91nNy5BYKmEBkF0Z+rMVU+U5Ynn2VFxfLzn02HvxvFOc7rxxCI+BPCTiZEMX6bfcPgy71iU JNdGfX3BUbXEsy9BN84WXg/uLpiZA3RF1EU04Ai+w3cVtbtE1qpJKgHofadKLgGxLY/EVDIp0TSTD mkcYYYpGA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kfPtg-0008KF-EG; Wed, 18 Nov 2020 16:01:28 +0000 Received: from foss.arm.com ([217.140.110.172]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kfPtd-0008JZ-5O for linux-arm-kernel@lists.infradead.org; Wed, 18 Nov 2020 16:01:26 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id BF7011396; Wed, 18 Nov 2020 08:01:21 -0800 (PST) Received: from [192.168.1.179] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 201683F719; Wed, 18 Nov 2020 08:01:19 -0800 (PST) Subject: Re: [PATCH v4 1/2] arm64: kvm: Save/restore MTE registers To: Marc Zyngier References: <20201026155727.36685-1-steven.price@arm.com> <20201026155727.36685-2-steven.price@arm.com> From: Steven Price Message-ID: <98eaa539-0ae8-ce4c-8886-3040542ede80@arm.com> Date: Wed, 18 Nov 2020 16:01:18 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-GB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201118_110125_338775_47DBDD16 X-CRM114-Status: GOOD ( 32.23 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Peter Maydell , "Dr. David Alan Gilbert" , Andrew Jones , Haibo Xu , Suzuki K Poulose , qemu-devel@nongnu.org, Catalin Marinas , Juan Quintela , Richard Henderson , linux-kernel@vger.kernel.org, Dave Martin , James Morse , linux-arm-kernel@lists.infradead.org, Thomas Gleixner , Will Deacon , kvmarm@lists.cs.columbia.edu, Julien Thierry Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMTcvMTEvMjAyMCAxOToyMCwgTWFyYyBaeW5naWVyIHdyb3RlOgo+IEhpIFN0ZXZlbiwKCkhp IE1hcmMKCj4gVGhlc2UgcGF0Y2hlcyB1bmZvcnR1bmF0ZWx5IGRvbid0IGFwcGx5IHRvIC1yYzQg YW55bW9yZSwgYXMgd2UgcmVwYWludGVkCj4gcXVpdGUgYSBiaXQgd2hpbGUgd29ya2luZyBvbiBm aXhlcy4gSSdkIGJlIGdyYXRlZnVsIGlmIHlvdSBjb3VsZCByZWJhc2UgCj4gdGhlbS4KCk5vIHBy b2JsZW0gLSB0aGUgY2hhbmdlcyBsb29rIHJlbGF0aXZlbHkgbWlub3IuCgo+IAo+IEEgZmV3IG90 aGVyIHRoaW5ncyB0aG91Z2g6Cj4gCj4gT24gMjAyMC0xMC0yNiAxNTo1NywgU3RldmVuIFByaWNl IHdyb3RlOgo+PiBEZWZpbmUgdGhlIG5ldyBzeXN0ZW0gcmVnaXN0ZXJzIHRoYXQgTVRFIGludHJv ZHVjZXMgYW5kIGNvbnRleHQgc3dpdGNoCj4+IHRoZW0uIFRoZSBNVEUgZmVhdHVyZSBpcyBzdGls bCBoaWRkZW4gZnJvbSB0aGUgSUQgcmVnaXN0ZXIgYXMgaXQgaXNuJ3QKPj4gc3VwcG9ydGVkIGlu IGEgVk0geWV0Lgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBTdGV2ZW4gUHJpY2UgPHN0ZXZlbi5wcmlj ZUBhcm0uY29tPgo+PiBSZXZpZXdlZC1ieTogQW5kcmV3IEpvbmVzIDxkcmpvbmVzQHJlZGhhdC5j b20+Cj4+IC0tLQo+PiDCoGFyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2hvc3QuaMKgwqDCoMKg wqDCoMKgwqDCoCB8wqAgNCArKysrCj4+IMKgYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9zeXNyZWcu aMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDMgKystCj4+IMKgYXJjaC9hcm02NC9rdm0vaHlw L2luY2x1ZGUvaHlwL3N5c3JlZy1zci5oIHwgMTQgKysrKysrKysrKysrKysKPj4gwqBhcmNoL2Fy bTY0L2t2bS9zeXNfcmVncy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDE0 ICsrKysrKysrKystLS0tCj4+IMKgNCBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCA1 IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9r dm1faG9zdC5oCj4+IGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCj4+IGluZGV4 IDBhZWNiYWI2YTdmYi4uOTVhYjczNDVkY2M4IDEwMDY0NAo+PiAtLS0gYS9hcmNoL2FybTY0L2lu Y2x1ZGUvYXNtL2t2bV9ob3N0LmgKPj4gKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1f aG9zdC5oCj4+IEBAIC0xMzQsNiArMTM0LDggQEAgZW51bSB2Y3B1X3N5c3JlZyB7Cj4+IMKgwqDC oMKgIFNDVExSX0VMMSzCoMKgwqAgLyogU3lzdGVtIENvbnRyb2wgUmVnaXN0ZXIgKi8KPj4gwqDC oMKgwqAgQUNUTFJfRUwxLMKgwqDCoCAvKiBBdXhpbGlhcnkgQ29udHJvbCBSZWdpc3RlciAqLwo+ PiDCoMKgwqDCoCBDUEFDUl9FTDEswqDCoMKgIC8qIENvcHJvY2Vzc29yIEFjY2VzcyBDb250cm9s ICovCj4+ICvCoMKgwqAgUkdTUl9FTDEswqDCoMKgIC8qIFJhbmRvbSBBbGxvY2F0aW9uIFRhZyBT ZWVkIFJlZ2lzdGVyICovCj4+ICvCoMKgwqAgR0NSX0VMMSzCoMKgwqAgLyogVGFnIENvbnRyb2wg UmVnaXN0ZXIgKi8KPj4gwqDCoMKgwqAgWkNSX0VMMSzCoMKgwqAgLyogU1ZFIENvbnRyb2wgKi8K Pj4gwqDCoMKgwqAgVFRCUjBfRUwxLMKgwqDCoCAvKiBUcmFuc2xhdGlvbiBUYWJsZSBCYXNlIFJl Z2lzdGVyIDAgKi8KPj4gwqDCoMKgwqAgVFRCUjFfRUwxLMKgwqDCoCAvKiBUcmFuc2xhdGlvbiBU YWJsZSBCYXNlIFJlZ2lzdGVyIDEgKi8KPj4gQEAgLTE1MCw2ICsxNTIsOCBAQCBlbnVtIHZjcHVf c3lzcmVnIHsKPj4gwqDCoMKgwqAgVFBJRFJfRUwxLMKgwqDCoCAvKiBUaHJlYWQgSUQsIFByaXZp bGVnZWQgKi8KPj4gwqDCoMKgwqAgQU1BSVJfRUwxLMKgwqDCoCAvKiBBdXggTWVtb3J5IEF0dHJp YnV0ZSBJbmRpcmVjdGlvbiBSZWdpc3RlciAqLwo+PiDCoMKgwqDCoCBDTlRLQ1RMX0VMMSzCoMKg wqAgLyogVGltZXIgQ29udHJvbCBSZWdpc3RlciAoRUwxKSAqLwo+PiArwqDCoMKgIFRGU1JFMF9F TDEswqDCoMKgIC8qIFRhZyBGYXVsdCBTdGF0dXMgUmVnaXN0ZXIgKEVMMCkgKi8KPj4gK8KgwqDC oCBURlNSX0VMMSzCoMKgwqAgLyogVGFnIEZhdWx0IFN0YXV0cyBSZWdpc3RlciAoRUwxKSAqLwo+ PiDCoMKgwqDCoCBQQVJfRUwxLMKgwqDCoCAvKiBQaHlzaWNhbCBBZGRyZXNzIFJlZ2lzdGVyICov Cj4+IMKgwqDCoMKgIE1EU0NSX0VMMSzCoMKgwqAgLyogTW9uaXRvciBEZWJ1ZyBTeXN0ZW0gQ29u dHJvbCBSZWdpc3RlciAqLwo+PiDCoMKgwqDCoCBNRENDSU5UX0VMMSzCoMKgwqAgLyogTW9uaXRv ciBEZWJ1ZyBDb21tcyBDaGFubmVsIEludGVycnVwdCBFbmFibGUgCj4+IFJlZyAqLwo+PiBkaWZm IC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9zeXNyZWcuaCAKPj4gYi9hcmNoL2FybTY0 L2luY2x1ZGUvYXNtL3N5c3JlZy5oCj4+IGluZGV4IGQ1MmMxYjNjZTU4OS4uNzcyN2RmMGJjMDlk IDEwMDY0NAo+PiAtLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3N5c3JlZy5oCj4+ICsrKyBi L2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vc3lzcmVnLmgKPj4gQEAgLTU2NSw3ICs1NjUsOCBAQAo+ PiDCoCNkZWZpbmUgU0NUTFJfRUx4X03CoMKgwqAgKEJJVCgwKSkKPj4KPj4gwqAjZGVmaW5lIFND VExSX0VMeF9GTEFHU8KgwqDCoCAoU0NUTFJfRUx4X03CoCB8IFNDVExSX0VMeF9BIHwgU0NUTFJf RUx4X0MgfCBcCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgU0NUTFJfRUx4X1NBIHwgU0NU TFJfRUx4X0kgfCBTQ1RMUl9FTHhfSUVTQikKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBT Q1RMUl9FTHhfU0EgfCBTQ1RMUl9FTHhfSSB8IFNDVExSX0VMeF9JRVNCIHwgXAo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIFNDVExSX0VMeF9JVEZTQikKPj4KPj4gwqAvKiBTQ1RMUl9FTDIg c3BlY2lmaWMgZmxhZ3MuICovCj4+IMKgI2RlZmluZSBTQ1RMUl9FTDJfUkVTMcKgwqDCoCAoKEJJ VCg0KSnCoCB8IChCSVQoNSkpwqAgfCAoQklUKDExKSkgfCAKPj4gKEJJVCgxNikpIHwgXAo+PiBk aWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vaHlwL2luY2x1ZGUvaHlwL3N5c3JlZy1zci5oCj4+ IGIvYXJjaC9hcm02NC9rdm0vaHlwL2luY2x1ZGUvaHlwL3N5c3JlZy1zci5oCj4+IGluZGV4IDdh OTg2MDMwMTQ1Zi4uYTEyNGZmYTQ5YmEzIDEwMDY0NAo+PiAtLS0gYS9hcmNoL2FybTY0L2t2bS9o eXAvaW5jbHVkZS9oeXAvc3lzcmVnLXNyLmgKPj4gKysrIGIvYXJjaC9hcm02NC9rdm0vaHlwL2lu Y2x1ZGUvaHlwL3N5c3JlZy1zci5oCj4+IEBAIC0xOCw2ICsxOCwxMSBAQAo+PiDCoHN0YXRpYyBp bmxpbmUgdm9pZCBfX3N5c3JlZ19zYXZlX2NvbW1vbl9zdGF0ZShzdHJ1Y3Qga3ZtX2NwdV9jb250 ZXh0IAo+PiAqY3R4dCkKPj4gwqB7Cj4+IMKgwqDCoMKgIGN0eHRfc3lzX3JlZyhjdHh0LCBNRFND Ul9FTDEpwqDCoMKgID0gcmVhZF9zeXNyZWcobWRzY3JfZWwxKTsKPj4gK8KgwqDCoCBpZiAoc3lz dGVtX3N1cHBvcnRzX210ZSgpKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBjdHh0X3N5c19yZWcoY3R4 dCwgUkdTUl9FTDEpwqDCoMKgID0gcmVhZF9zeXNyZWdfcyhTWVNfUkdTUl9FTDEpOwo+PiArwqDC oMKgwqDCoMKgwqAgY3R4dF9zeXNfcmVnKGN0eHQsIEdDUl9FTDEpwqDCoMKgID0gcmVhZF9zeXNy ZWdfcyhTWVNfR0NSX0VMMSk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBjdHh0X3N5c19yZWcoY3R4dCwg VEZTUkUwX0VMMSnCoMKgwqAgPSAKPj4gcmVhZF9zeXNyZWdfcyhTWVNfVEZTUkUwX0VMMSk7Cj4g Cj4gQXMgZmFyIGFzIEkgY2FuIHRlbGwsIEhDUl9FTDIuQVRBIGlzIHN0aWxsIGNsZWFyIHdoZW4g cnVubmluZyBhIGd1ZXN0Lgo+IFNvIHdoeSwgZG8gd2Ugc2F2ZS9yZXN0b3JlIHRoaXMgc3RhdGUg eWV0PwoKQXQgdGhpcyBzdGFnZSBpdCBpcyBpbmRlZWQgbm90IG5lY2Vzc2FyeS4gQ2xlYXJseSBp dCdzIG5lZWRlZCBhZnRlciB0aGUgCnNlY29uZCBwYXRjaCBiZWNhdXNlIEFUQSBpcyBlbmFibGVk IGZvciB0aGUgZ3Vlc3QuIFRoaXMgaXMganVzdCBhbiAKYXJ0aWZhY3Qgb2YgZG9pbmcgdGhpcyBh cyB0d28gcGF0Y2hlcy4gVGhlIGZpcnN0IHBhdGNoIGFkZHMgYWxsIHRoZSAKc2F2ZS9yZXN0b3Jp bmcgbG9naWMgdGhlIHNlY29uZCB0aGUgbWFjaGluZXJ5IGZvciBlbmFibGluZyBBVEEgc2FmZWx5 LiAKSWYgeW91J3ZlIGdvdCBhbnkgc3VnZ2VzdGlvbnMgYWJvdXQgaG93IHRvIGJldHRlciBzcGxp dCBpdCAob3IgaW5kZWVkIGlmIAp5b3UnZCBwcmVmZXIgdGhlIHBhdGNoZXMgc3F1YXNoZWQpIGxl dCBtZSBrbm93LiBUaGUgb25seSBhbHRlcm5hdGl2ZSBJIApjYW4gdGhpbmsgb2YgaXMgdGhyZWUg cGF0Y2hlczogdGhlICdtdGVfZW5hYmxlZCcgbWFjaGluZXJ5IChidXQgd2l0aG91dCAKYSB3YXkg b2YgZW5hYmxpbmcgaXQpLCB0aGlzIHBhdGNoLCBmb2xsb3dlZCBieSBhIHdheSBvZiB0dXJuaW5n IAptdGVfZW5hYmxlZCBvbi4gQnV0IHRoYXQgZG9lc24ndCBzZWVtIGFuIGltcHJvdmVtZW50IHRv IGFueXRoaW5nIG90aGVyIAp0aGFuIG15IHBhdGNoIGNvdW50IDspCgo+IAo+IEFsc28sIEkgd29u ZGVyIHdoZXRoZXIgd2Ugc2hvdWxkIGtlZXAgdGhlc2UgaW4gdGhlIEMgY29kZS4gSWYgb25lIGRh eQo+IHdlIGVuYWJsZSBNVEUgaW4gdGhlIGtlcm5lbCwgd2Ugd2lsbCBoYXZlIHRvIG1vdmUgdGhl bSB0byB0aGUgYXNzZW1ibHkKPiBwYXJ0LCBtdWNoIGxpa2Ugd2UgZG8gZm9yIFBBdXRoLiBBbmQg SSBmZWFyIHRoYXQgIm9uZSBkYXkiIGlzIHByZXR0eQo+IHNvb246Cj4gCj4gaHR0cHM6Ly9sb3Jl Lmtlcm5lbC5vcmcvbGludXgtYXJtLWtlcm5lbC9jb3Zlci4xNjA1MDQ2MTkyLmdpdC5hbmRyZXlr bnZsQGdvb2dsZS5jb20vIAoKR29vZCBwb2ludC4gQWx0aG91Z2ggZm9yIE1URSB3ZSBkbyBoYXZl IHRoZSBvcHRpb24gb2Ygc2V0dGluZyBUQ08gaW4gClBTVEFURSBzbyB0aGlzIGNvdWxkIHJlbWFp biBpbiBDIGlmIHdlJ3JlIG5vdCBib3RoZXJlZCBhYm91dCB0aGUgJ2dhcCcgCmluIEtBU0FOIGNv dmVyYWdlLiBJIGhhdmVuJ3QgeWV0IGdvdCBteSBoZWFkIGFyb3VuZCBob3cgKG9yIGluZGVlZCBp ZikgCnRoYXQgc2VyaWVzIGhhbmRsZXMgZ3Vlc3RzLgoKPiAKPiAKPiAKPj4gK8KgwqDCoCB9Cj4+ IMKgfQo+Pgo+PiDCoHN0YXRpYyBpbmxpbmUgdm9pZCBfX3N5c3JlZ19zYXZlX3VzZXJfc3RhdGUo c3RydWN0IGt2bV9jcHVfY29udGV4dCAKPj4gKmN0eHQpCj4+IEBAIC00NSw2ICs1MCw4IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBfX3N5c3JlZ19zYXZlX2VsMV9zdGF0ZShzdHJ1Y3QKPj4ga3ZtX2Nw dV9jb250ZXh0ICpjdHh0KQo+PiDCoMKgwqDCoCBjdHh0X3N5c19yZWcoY3R4dCwgQ05US0NUTF9F TDEpwqDCoMKgID0gcmVhZF9zeXNyZWdfZWwxKFNZU19DTlRLQ1RMKTsKPj4gwqDCoMKgwqAgY3R4 dF9zeXNfcmVnKGN0eHQsIFBBUl9FTDEpwqDCoMKgID0gcmVhZF9zeXNyZWcocGFyX2VsMSk7Cj4+ IMKgwqDCoMKgIGN0eHRfc3lzX3JlZyhjdHh0LCBUUElEUl9FTDEpwqDCoMKgID0gcmVhZF9zeXNy ZWcodHBpZHJfZWwxKTsKPj4gK8KgwqDCoCBpZiAoc3lzdGVtX3N1cHBvcnRzX210ZSgpKQo+PiAr wqDCoMKgwqDCoMKgwqAgY3R4dF9zeXNfcmVnKGN0eHQsIFRGU1JfRUwxKSA9IHJlYWRfc3lzcmVn X2VsMShTWVNfVEZTUik7Cj4+Cj4+IMKgwqDCoMKgIGN0eHRfc3lzX3JlZyhjdHh0LCBTUF9FTDEp wqDCoMKgID0gcmVhZF9zeXNyZWcoc3BfZWwxKTsKPj4gwqDCoMKgwqAgY3R4dF9zeXNfcmVnKGN0 eHQsIEVMUl9FTDEpwqDCoMKgID0gcmVhZF9zeXNyZWdfZWwxKFNZU19FTFIpOwo+PiBAQCAtNjMs NiArNzAsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkCj4+IF9fc3lzcmVnX3NhdmVfZWwyX3JldHVy bl9zdGF0ZShzdHJ1Y3Qga3ZtX2NwdV9jb250ZXh0ICpjdHh0KQo+PiDCoHN0YXRpYyBpbmxpbmUg dm9pZCBfX3N5c3JlZ19yZXN0b3JlX2NvbW1vbl9zdGF0ZShzdHJ1Y3QgCj4+IGt2bV9jcHVfY29u dGV4dCAqY3R4dCkKPj4gwqB7Cj4+IMKgwqDCoMKgIHdyaXRlX3N5c3JlZyhjdHh0X3N5c19yZWco Y3R4dCwgTURTQ1JfRUwxKSzCoCBtZHNjcl9lbDEpOwo+PiArwqDCoMKgIGlmIChzeXN0ZW1fc3Vw cG9ydHNfbXRlKCkpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHdyaXRlX3N5c3JlZ19zKGN0eHRfc3lz X3JlZyhjdHh0LCBSR1NSX0VMMSksIFNZU19SR1NSX0VMMSk7Cj4+ICvCoMKgwqDCoMKgwqDCoCB3 cml0ZV9zeXNyZWdfcyhjdHh0X3N5c19yZWcoY3R4dCwgR0NSX0VMMSksIFNZU19HQ1JfRUwxKTsK Pj4gK8KgwqDCoMKgwqDCoMKgIHdyaXRlX3N5c3JlZ19zKGN0eHRfc3lzX3JlZyhjdHh0LCBURlNS RTBfRUwxKSwgU1lTX1RGU1JFMF9FTDEpOwo+PiArwqDCoMKgIH0KPj4gwqB9Cj4+Cj4+IMKgc3Rh dGljIGlubGluZSB2b2lkIF9fc3lzcmVnX3Jlc3RvcmVfdXNlcl9zdGF0ZShzdHJ1Y3Qga3ZtX2Nw dV9jb250ZXh0IAo+PiAqY3R4dCkKPj4gQEAgLTEwNiw2ICsxMTgsOCBAQCBzdGF0aWMgaW5saW5l IHZvaWQKPj4gX19zeXNyZWdfcmVzdG9yZV9lbDFfc3RhdGUoc3RydWN0IGt2bV9jcHVfY29udGV4 dCAqY3R4dCkKPj4gwqDCoMKgwqAgd3JpdGVfc3lzcmVnX2VsMShjdHh0X3N5c19yZWcoY3R4dCwg Q05US0NUTF9FTDEpLCBTWVNfQ05US0NUTCk7Cj4+IMKgwqDCoMKgIHdyaXRlX3N5c3JlZyhjdHh0 X3N5c19yZWcoY3R4dCwgUEFSX0VMMSkswqDCoMKgIHBhcl9lbDEpOwo+PiDCoMKgwqDCoCB3cml0 ZV9zeXNyZWcoY3R4dF9zeXNfcmVnKGN0eHQsIFRQSURSX0VMMSkswqDCoMKgIHRwaWRyX2VsMSk7 Cj4+ICvCoMKgwqAgaWYgKHN5c3RlbV9zdXBwb3J0c19tdGUoKSkKPj4gK8KgwqDCoMKgwqDCoMKg IHdyaXRlX3N5c3JlZ19lbDEoY3R4dF9zeXNfcmVnKGN0eHQsIFRGU1JfRUwxKSwgU1lTX1RGU1Ip Owo+Pgo+PiDCoMKgwqDCoCBpZiAoIWhhc192aGUoKSAmJgo+PiDCoMKgwqDCoMKgwqDCoMKgIGNw dXNfaGF2ZV9maW5hbF9jYXAoQVJNNjRfV09SS0FST1VORF9TUEVDVUxBVElWRV9BVCkgJiYKPj4g ZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva3ZtL3N5c19yZWdzLmMgYi9hcmNoL2FybTY0L2t2bS9z eXNfcmVncy5jCj4+IGluZGV4IGQ5MTE3YmM1NjIzNy4uNDMwZTM2ZTFhMTNkIDEwMDY0NAo+PiAt LS0gYS9hcmNoL2FybTY0L2t2bS9zeXNfcmVncy5jCj4+ICsrKyBiL2FyY2gvYXJtNjQva3ZtL3N5 c19yZWdzLmMKPj4gQEAgLTEzOTEsNiArMTM5MSwxMiBAQCBzdGF0aWMgYm9vbCBhY2Nlc3NfbXRl X3JlZ3Moc3RydWN0IGt2bV92Y3B1Cj4+ICp2Y3B1LCBzdHJ1Y3Qgc3lzX3JlZ19wYXJhbXMgKnAs Cj4+IMKgwqDCoMKgIHJldHVybiBmYWxzZTsKPj4gwqB9Cj4+Cj4+ICtzdGF0aWMgdW5zaWduZWQg aW50IG10ZV92aXNpYmlsaXR5KGNvbnN0IHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25zdCBzdHJ1Y3Qgc3lzX3JlZ19kZXNj ICpyZCkKPj4gK3sKPj4gK8KgwqDCoCByZXR1cm4gUkVHX0hJRERFTl9VU0VSIHwgUkVHX0hJRERF Tl9HVUVTVDsKPiAKPiBUaGUgaGFuZGxpbmcgb2YgdmlzaWJpbGl0eSBoYXMgY2hhbmdlZCBzb21l aG93IHNpbmNlIDAxZmU1YWNlOTJkZC4KClRoYW5rcyBmb3IgdGhlIHBvaW50ZXIhCgpTdGV2ZQoK Pj4gK30KPj4gKwo+PiDCoC8qIHN5c19yZWdfZGVzYyBpbml0aWFsaXNlciBmb3Iga25vd24gY3B1 ZmVhdHVyZSBJRCByZWdpc3RlcnMgKi8KPj4gwqAjZGVmaW5lIElEX1NBTklUSVNFRChuYW1lKSB7 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4+IMKgwqDCoMKgIFNZU19ERVNDKFNZU18jI25hbWUp LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+PiBAQCAtMTU1Nyw4ICsxNTYzLDggQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBzeXNfcmVnX2Rlc2Mgc3lzX3JlZ19kZXNjc1tdIAo+PiA9IHsKPj4gwqDC oMKgwqAgeyBTWVNfREVTQyhTWVNfQUNUTFJfRUwxKSwgYWNjZXNzX2FjdGxyLCByZXNldF9hY3Rs ciwgQUNUTFJfRUwxIH0sCj4+IMKgwqDCoMKgIHsgU1lTX0RFU0MoU1lTX0NQQUNSX0VMMSksIE5V TEwsIHJlc2V0X3ZhbCwgQ1BBQ1JfRUwxLCAwIH0sCj4+Cj4+IC3CoMKgwqAgeyBTWVNfREVTQyhT WVNfUkdTUl9FTDEpLCBhY2Nlc3NfbXRlX3JlZ3MgfSwKPj4gLcKgwqDCoCB7IFNZU19ERVNDKFNZ U19HQ1JfRUwxKSwgYWNjZXNzX210ZV9yZWdzIH0sCj4+ICvCoMKgwqAgeyBTWVNfREVTQyhTWVNf UkdTUl9FTDEpLCBhY2Nlc3NfbXRlX3JlZ3MsIHJlc2V0X3Vua25vd24sIFJHU1JfRUwxLAo+PiAu dmlzaWJpbGl0eSA9IG10ZV92aXNpYmlsaXR5IH0sCj4+ICvCoMKgwqAgeyBTWVNfREVTQyhTWVNf R0NSX0VMMSksIGFjY2Vzc19tdGVfcmVncywgcmVzZXRfdW5rbm93biwgR0NSX0VMMSwKPj4gLnZp c2liaWxpdHkgPSBtdGVfdmlzaWJpbGl0eSB9LAo+Pgo+PiDCoMKgwqDCoCB7IFNZU19ERVNDKFNZ U19aQ1JfRUwxKSwgTlVMTCwgcmVzZXRfdmFsLCBaQ1JfRUwxLCAwLCAudmlzaWJpbGl0eSA9Cj4+ IHN2ZV92aXNpYmlsaXR5IH0sCj4+IMKgwqDCoMKgIHsgU1lTX0RFU0MoU1lTX1RUQlIwX0VMMSks IGFjY2Vzc192bV9yZWcsIHJlc2V0X3Vua25vd24sIAo+PiBUVEJSMF9FTDEgfSwKPj4gQEAgLTE1 ODQsOCArMTU5MCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3lzX3JlZ19kZXNjIHN5c19yZWdf ZGVzY3NbXSAKPj4gPSB7Cj4+IMKgwqDCoMKgIHsgU1lTX0RFU0MoU1lTX0VSWE1JU0MwX0VMMSks IHRyYXBfcmF6X3dpIH0sCj4+IMKgwqDCoMKgIHsgU1lTX0RFU0MoU1lTX0VSWE1JU0MxX0VMMSks IHRyYXBfcmF6X3dpIH0sCj4+Cj4+IC3CoMKgwqAgeyBTWVNfREVTQyhTWVNfVEZTUl9FTDEpLCBh Y2Nlc3NfbXRlX3JlZ3MgfSwKPj4gLcKgwqDCoCB7IFNZU19ERVNDKFNZU19URlNSRTBfRUwxKSwg YWNjZXNzX210ZV9yZWdzIH0sCj4+ICvCoMKgwqAgeyBTWVNfREVTQyhTWVNfVEZTUl9FTDEpLCBh Y2Nlc3NfbXRlX3JlZ3MsIHJlc2V0X3Vua25vd24sIFRGU1JfRUwxLAo+PiAudmlzaWJpbGl0eSA9 IG10ZV92aXNpYmlsaXR5IH0sCj4+ICvCoMKgwqAgeyBTWVNfREVTQyhTWVNfVEZTUkUwX0VMMSks IGFjY2Vzc19tdGVfcmVncywgcmVzZXRfdW5rbm93biwKPj4gVEZTUkUwX0VMMSwgLnZpc2liaWxp dHkgPSBtdGVfdmlzaWJpbGl0eSB9LAo+Pgo+PiDCoMKgwqDCoCB7IFNZU19ERVNDKFNZU19GQVJf RUwxKSwgYWNjZXNzX3ZtX3JlZywgcmVzZXRfdW5rbm93biwgRkFSX0VMMSB9LAo+PiDCoMKgwqDC oCB7IFNZU19ERVNDKFNZU19QQVJfRUwxKSwgTlVMTCwgcmVzZXRfdW5rbm93biwgUEFSX0VMMSB9 LAo+IAo+IFRoYW5rcywKPiAKPiAgwqDCoMKgwqDCoMKgwqAgTS4KCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==