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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F2D38C433F5 for ; Thu, 7 Apr 2022 14:27:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:References:CC:To:Subject:From: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Fmrz3mxyEPeK7EG6HzcCkXkAZfzUSKIW8KLErroR+EU=; b=vVGedJXQxxpPaa o2KNIZD80tIv7ApCqD0Nsm4isIo8FoihvF8DX5nXl5x1mE5kEdxdWuRUAOdxIP3DyIQ0mvGZlpYgF xkNIfUUctZT6HIUY1+5cqundCUw1WEj3a+oPF9SKW1ug6LWm8VVw1bo8+GD1cQL4n7AjLy/c6V8AS bV+RBEhk/NjRvTiF802x3WHgz1P6YMiuP4sp+8VAzB6utJbp07vboRH8Z4OfSj8RzePvNG3Zj0txC jMJ03CFj0D8yFedZTZ5e1san9z7HPJQkUhiwa95wPtzUxsdtvhea/URJSTlGBcGZMl9Fm2Yo6s5rk 0OsGdZQ83omne7dXeEbA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ncT5g-00CMCb-8C; Thu, 07 Apr 2022 14:26:28 +0000 Received: from szxga02-in.huawei.com ([45.249.212.188]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ncT5a-00CM9V-UC for linux-arm-kernel@lists.infradead.org; Thu, 07 Apr 2022 14:26:26 +0000 Received: from kwepemi100009.china.huawei.com (unknown [172.30.72.54]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4KZ3XQ1zfhzFpZv; Thu, 7 Apr 2022 22:23:50 +0800 (CST) Received: from kwepemm600017.china.huawei.com (7.193.23.234) by kwepemi100009.china.huawei.com (7.221.188.242) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Thu, 7 Apr 2022 22:26:10 +0800 Received: from [10.174.179.234] (10.174.179.234) by kwepemm600017.china.huawei.com (7.193.23.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Thu, 7 Apr 2022 22:26:09 +0800 Message-ID: Date: Thu, 7 Apr 2022 22:26:08 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 From: Tong Tiangen Subject: Re: [RFC PATCH -next V2 3/7] arm64: add support for machine check error safe To: Mark Rutland CC: Andrew Morton , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , Catalin Marinas , Will Deacon , Alexander Viro , , "H. Peter Anvin" , , , , References: <20220406091311.3354723-1-tongtiangen@huawei.com> <20220406091311.3354723-4-tongtiangen@huawei.com> In-Reply-To: X-Originating-IP: [10.174.179.234] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemm600017.china.huawei.com (7.193.23.234) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220407_072623_377170_46BC5AEE X-CRM114-Status: GOOD ( 43.11 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 CgrlnKggMjAyMi80LzYgMTg6NTgsIE1hcmsgUnV0bGFuZCDlhpnpgZM6Cj4gT24gV2VkLCBBcHIg MDYsIDIwMjIgYXQgMDk6MTM6MDdBTSArMDAwMCwgVG9uZyBUaWFuZ2VuIHdyb3RlOgo+PiBJbiBh cm02NCBrZXJuZWwgaGFyZHdhcmUgbWVtb3J5IGVycm9ycyBwcm9jZXNzKGRvX3NlYSgpKSwgaWYg dGhlIGVycm9ycwo+PiBpcyBjb25zdW1lZCBpbiB0aGUga2VybmVsLCB0aGUgY3VycmVudCBwcm9j ZXNzaW5nIGlzIHBhbmljLiBIb3dldmVyLAo+PiBpdCBpcyBub3Qgb3B0aW1hbC4gSW4gc29tZSBj YXNlLCB0aGUgcGFnZSBhY2Nlc3NlZCBpbiBrZXJuZWwgaXMgYSB1c2VyCj4+IHBhZ2UgKHN1Y2gg YXMgY29weV9mcm9tX3VzZXIvZ2V0X3VzZXIpLCBraWxsIHRoZSB1c2VyIHByb2Nlc3MgYW5kCj4+ IGlzb2xhdGUgdGhlIHVzZXIgcGFnZSB3aXRoIGhhcmR3YXJlIG1lbW9yeSBlcnJvcnMgaXMgYSBi ZXR0ZXIgY2hvaWNlLgo+Pgo+PiBDb25zaXN0ZW50IHdpdGggUFBDL3g4NiwgaXQgaXMgaW1wbGVt ZW50ZWQgYnkgQ09ORklHX0FSQ0hfSEFTX0NPUFlfTUMuCj4gCj4gV2h5IGRvIHdlIG5lZWQgbmV3 IGhlbHBlcnMgZm9yIHRoaXMsIHJhdGhlciB0aGFuIGRvaW5nIHRoaXMgZm9yICphbnkqIHVhY2Nl c3MgPgo+IEkgdW5kZXJzdGFuZCB0aGlzIGlzIGNvbnNpc3RlbnQgd2l0aCBQUEMgJiBYODYsIGJ1 dCAqd2h5KiBpcyBpdCBkb25lIHRoYXQgd2F5Cj4gdG9kYXk/IGUuZy4gYXJlIHRoZXJlIGNhc2Vz IHdoZXJlIHdlIGFjY2VzcyBtZW1yb3kgd2hlcmUgd2UgZG8gbm90IGV4cGVjdCB0aGUKPiBzaXR1 YXRpb24gdG8gYmUgcmVjb3ZlcmFibGU/CgpIZXJlWzFdIGkgZXhwbGFpbiB3aHkgbm90IGFsbCB1 YWNjZXNzIG5lZWRzIHRvIGJlIHJlY292ZXJhYmxlLgoKWzFdaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvbGttbC9iZGY2N2ZmNi05ZWI4LWMyYjQtMmMyZi1iMTYwZDRmODc5Y2RAaHVhd2VpLmNvbS8K Cj4gCj4+IFRoaXMgcGF0Y2ggb25seSBlbmFibGUgbWFjaGluZSBlcnJvciBjaGVjayBmcmFtZXdv cmssIGl0IGFkZCBleGNlcHRpb24KPj4gZml4dXAgYmVmb3JlIGtlcm5lbCBwYW5pYyBpbiBkb19z ZWEoKSBhbmQgb25seSBsaW1pdCB0aGUgY29uc3VtcHRpb24gb2YKPj4gaGFyZHdhcmUgbWVtb3J5 IGVycm9ycyBpbiBrZXJuZWwgbW9kZSB0cmlnZ2VyZWQgYnkgdXNlciBtb2RlIHByb2Nlc3Nlcy4K Pj4gSWYgZml4dXAgc3VjY2Vzc2Z1bCwgdGhlcmUgaXMgbm8gbmVlZCB0byBwYW5pYy4KPj4KPj4g QWxzbyBhZGQgX2FzbV9leHRhYmxlX21jIG1hY3JvIHVzZWQgZm9yIGFkZCBleHRhYmxlIGVudHJ5 IHRvIGhlbHAKPj4gZml4dXAuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFRvbmcgVGlhbmdlbiA8dG9u Z3RpYW5nZW5AaHVhd2VpLmNvbT4KPj4gLS0tCj4+ICAgYXJjaC9hcm02NC9LY29uZmlnICAgICAg ICAgICAgICAgICAgIHwgIDEgKwo+PiAgIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXNtLWV4dGFi bGUuaCB8IDEzICsrKysrKysrKysrKwo+PiAgIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vZXNyLmgg ICAgICAgICB8ICA1ICsrKysrCj4+ICAgYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9leHRhYmxlLmgg ICAgIHwgIDIgKy0KPj4gICBhcmNoL2FybTY0L2tlcm5lbC9wcm9iZXMva3Byb2Jlcy5jICAgfCAg MiArLQo+PiAgIGFyY2gvYXJtNjQvbW0vZXh0YWJsZS5jICAgICAgICAgICAgICB8IDIwICsrKysr KysrKysrKysrKysrKy0KPj4gICBhcmNoL2FybTY0L21tL2ZhdWx0LmMgICAgICAgICAgICAgICAg fCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrKystCj4+ICAgaW5jbHVkZS9saW51eC91YWNj ZXNzLmggICAgICAgICAgICAgIHwgIDggKysrKysrKysKPj4gICA4IGZpbGVzIGNoYW5nZWQsIDc3 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9hcmNoL2Fy bTY0L0tjb25maWcgYi9hcmNoL2FybTY0L0tjb25maWcKPj4gaW5kZXggZDkzMjVkZDk1ZWJhLi4w MTJlMzgzMDk5NTUgMTAwNjQ0Cj4+IC0tLSBhL2FyY2gvYXJtNjQvS2NvbmZpZwo+PiArKysgYi9h cmNoL2FybTY0L0tjb25maWcKPj4gQEAgLTE5LDYgKzE5LDcgQEAgY29uZmlnIEFSTTY0Cj4+ICAg CXNlbGVjdCBBUkNIX0VOQUJMRV9TUExJVF9QTURfUFRMT0NLIGlmIFBHVEFCTEVfTEVWRUxTID4g Mgo+PiAgIAlzZWxlY3QgQVJDSF9FTkFCTEVfVEhQX01JR1JBVElPTiBpZiBUUkFOU1BBUkVOVF9I VUdFUEFHRQo+PiAgIAlzZWxlY3QgQVJDSF9IQVNfQ0FDSEVfTElORV9TSVpFCj4+ICsJc2VsZWN0 IEFSQ0hfSEFTX0NPUFlfTUMgaWYgQUNQSV9BUEVJX0dIRVMKPj4gICAJc2VsZWN0IEFSQ0hfSEFT X0NVUlJFTlRfU1RBQ0tfUE9JTlRFUgo+PiAgIAlzZWxlY3QgQVJDSF9IQVNfREVCVUdfVklSVFVB TAo+PiAgIAlzZWxlY3QgQVJDSF9IQVNfREVCVUdfVk1fUEdUQUJMRQo+PiBkaWZmIC0tZ2l0IGEv YXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hc20tZXh0YWJsZS5oIGIvYXJjaC9hcm02NC9pbmNsdWRl L2FzbS9hc20tZXh0YWJsZS5oCj4+IGluZGV4IGMzOWYyNDM3ZTA4ZS4uNzRkMWRiNzRmZDg2IDEw MDY0NAo+PiAtLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2FzbS1leHRhYmxlLmgKPj4gKysr IGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hc20tZXh0YWJsZS5oCj4+IEBAIC04LDYgKzgsMTEg QEAKPj4gICAjZGVmaW5lIEVYX1RZUEVfVUFDQ0VTU19FUlJfWkVSTwkzCj4+ICAgI2RlZmluZSBF WF9UWVBFX0xPQURfVU5BTElHTkVEX1pFUk9QQUQJNAo+PiAgIAo+PiArLyogX01DIGluZGljYXRl cyB0aGF0IGNhbiBmaXh1cCBmcm9tIG1hY2hpbmUgY2hlY2sgZXJyb3JzICovCj4+ICsjZGVmaW5l IEVYX1RZUEVfRklYVVBfTUMJCTUKPj4gKwo+PiArI2RlZmluZSBJU19FWF9UWVBFX01DKHR5cGUp ICh0eXBlID09IEVYX1RZUEVfRklYVVBfTUMpCj4gCj4gSWYgd2UgbmVlZCB0aGlzLCBJJ2Qgc3Ry b25nbHkgcHJlZmVyIHRoYXQgd2UgaGF2ZSBhIEVYX1RZUEVfVUFDQ0VTU19NQyBvcgo+IEVYX1RZ UEVfVUFDQ0VTU19NQ19FUlJfWkVSTyBmb3IgdGhlIHVhY2Nlc3MgY2FzZXMsIHNvIHRoYXQgd2Ug Y2FuIGNsZWFybHkKPiBkaXN0aW5ndWlzaCB0aG9zZSBmcm9tIG5vbi11YWNjZXNzIGNhc2VzLgoK QWdyZWVkLgoKPiAKPiBBRkFJQ1QgdGhlIG9ubHkgcmVtYWluaW5nIHJhdyBFWF9UWVBFX0ZJWFVQ IGNhc2VzIHdlIGhhdmUgdG9kYXkgYXJlIGluIHNvbWUKPiBjYWNoZSBtYWludGVuYW5jZSByb3V0 aW5lcywgYW5kIHdlIHNob3VsZCBiZSBhYmxlIHRvIGNvbnZlcnQgdGhvc2UgdG8gYSBuZXcKPiBF WF9UWVBFX0ZJWFVQX1VBQ0NFU1MsIG9yIEVYX1RZUEVfVUFDQ0VTU19FUlJfWkVSTy4KCkkgd2ls bCByZWRlc2lnbiB0aGlzIHBhcnQuIFRoZSBnZW5lcmFsIGlkZWEgaXMgbm90IHRvIHVzZSB4MCB0 byBzYXZlCmV4Y2VwdGlvbiBpbmZvcm1hdGlvbi4gQXQgdGhhdCB0aW1lLCBpdCBtYXkgYmUgbWVy Z2VkIGludG8gcmF3CkVYX1RZUEVfRklYVVAgcHJvY2Vzc2luZy4KPiAKPj4gKwo+PiAgICNpZmRl ZiBfX0FTU0VNQkxZX18KPj4gICAKPj4gICAjZGVmaW5lIF9fQVNNX0VYVEFCTEVfUkFXKGluc24s IGZpeHVwLCB0eXBlLCBkYXRhKQlcCj4+IEBAIC0yNyw2ICszMiwxNCBAQAo+PiAgIAlfX0FTTV9F WFRBQkxFX1JBVyhcaW5zbiwgXGZpeHVwLCBFWF9UWVBFX0ZJWFVQLCAwKQo+PiAgIAkuZW5kbQo+ PiAgIAo+PiArLyoKPj4gKyAqIENyZWF0ZSBhbiBleGNlcHRpb24gdGFibGUgZW50cnkgZm9yIGBp bnNuYCwgd2hpY2ggd2lsbCBicmFuY2ggdG8gYGZpeHVwYAo+PiArICogd2hlbiBhbiB1bmhhbmRs ZWQgZmF1bHQoaW5jbHVkZSBzZWEgZmF1bHQpIGlzIHRha2VuLgo+PiArICovCj4+ICsJLm1hY3Jv CQlfYXNtX2V4dGFibGVfbWMsIGluc24sIGZpeHVwCj4+ICsJX19BU01fRVhUQUJMRV9SQVcoXGlu c24sIFxmaXh1cCwgRVhfVFlQRV9GSVhVUF9NQywgMCkKPj4gKwkuZW5kbQo+PiArCj4+ICAgLyoK Pj4gICAgKiBDcmVhdGUgYW4gZXhjZXB0aW9uIHRhYmxlIGVudHJ5IGZvciBgaW5zbmAgaWYgYGZp eHVwYCBpcyBwcm92aWRlZC4gT3RoZXJ3aXNlCj4+ICAgICogZG8gbm90aGluZy4KPj4gZGlmZiAt LWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZXNyLmggYi9hcmNoL2FybTY0L2luY2x1ZGUv YXNtL2Vzci5oCj4+IGluZGV4IGQ1MmEwYjI2OWVlOC4uMTFmY2ZjMDAyNjU0IDEwMDY0NAo+PiAt LS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2Vzci5oCj4+ICsrKyBiL2FyY2gvYXJtNjQvaW5j bHVkZS9hc20vZXNyLmgKPj4gQEAgLTMzMCw2ICszMzAsMTEgQEAKPj4gICAjaWZuZGVmIF9fQVNT RU1CTFlfXwo+PiAgICNpbmNsdWRlIDxhc20vdHlwZXMuaD4KPj4gICAKPj4gK3N0YXRpYyBpbmxp bmUgYm9vbCBlc3JfaXNfc2VhKHUzMiBlc3IpCj4+ICt7Cj4+ICsJcmV0dXJuIChlc3IgJiBFU1Jf RUx4X0ZTQykgPT0gRVNSX0VMeF9GU0NfRVhUQUJUOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIGlu bGluZSBib29sIGVzcl9pc19kYXRhX2Fib3J0KHUzMiBlc3IpCj4+ICAgewo+PiAgIAljb25zdCB1 MzIgZWMgPSBFU1JfRUx4X0VDKGVzcik7Cj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1 ZGUvYXNtL2V4dGFibGUuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZXh0YWJsZS5oCj4+IGlu ZGV4IDcyYjBlNzFjYzNkZS4uZjc4MzViMGY0NzNiIDEwMDY0NAo+PiAtLS0gYS9hcmNoL2FybTY0 L2luY2x1ZGUvYXNtL2V4dGFibGUuaAo+PiArKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2V4 dGFibGUuaAo+PiBAQCAtNDUsNSArNDUsNSBAQCBib29sIGV4X2hhbmRsZXJfYnBmKGNvbnN0IHN0 cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgKmV4LAo+PiAgIH0KPj4gICAjZW5kaWYgLyogIUNP TkZJR19CUEZfSklUICovCj4+ICAgCj4+IC1ib29sIGZpeHVwX2V4Y2VwdGlvbihzdHJ1Y3QgcHRf cmVncyAqcmVncyk7Cj4+ICtib29sIGZpeHVwX2V4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVn cywgdW5zaWduZWQgaW50IGVzcik7Cj4+ICAgI2VuZGlmCj4+IGRpZmYgLS1naXQgYS9hcmNoL2Fy bTY0L2tlcm5lbC9wcm9iZXMva3Byb2Jlcy5jIGIvYXJjaC9hcm02NC9rZXJuZWwvcHJvYmVzL2tw cm9iZXMuYwo+PiBpbmRleCBkOWRmYTgyYzFmMTguLjE2YTA2OWU4ZWVjMyAxMDA2NDQKPj4gLS0t IGEvYXJjaC9hcm02NC9rZXJuZWwvcHJvYmVzL2twcm9iZXMuYwo+PiArKysgYi9hcmNoL2FybTY0 L2tlcm5lbC9wcm9iZXMva3Byb2Jlcy5jCj4+IEBAIC0yODUsNyArMjg1LDcgQEAgaW50IF9fa3By b2JlcyBrcHJvYmVfZmF1bHRfaGFuZGxlcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQg aW50IGZzcikKPj4gICAJCSAqIEluIGNhc2UgdGhlIHVzZXItc3BlY2lmaWVkIGZhdWx0IGhhbmRs ZXIgcmV0dXJuZWQKPj4gICAJCSAqIHplcm8sIHRyeSB0byBmaXggdXAuCj4+ICAgCQkgKi8KPj4g LQkJaWYgKGZpeHVwX2V4Y2VwdGlvbihyZWdzKSkKPj4gKwkJaWYgKGZpeHVwX2V4Y2VwdGlvbihy ZWdzLCBmc3IpKQo+PiAgIAkJCXJldHVybiAxOwo+PiAgIAl9Cj4+ICAgCXJldHVybiAwOwo+PiBk aWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9tbS9leHRhYmxlLmMgYi9hcmNoL2FybTY0L21tL2V4dGFi bGUuYwo+PiBpbmRleCA0ODk0NTUzMDk2OTUuLmYxMTM0Yzg4ZTg0OSAxMDA2NDQKPj4gLS0tIGEv YXJjaC9hcm02NC9tbS9leHRhYmxlLmMKPj4gKysrIGIvYXJjaC9hcm02NC9tbS9leHRhYmxlLmMK Pj4gQEAgLTksNiArOSw3IEBACj4+ICAgCj4+ICAgI2luY2x1ZGUgPGFzbS9hc20tZXh0YWJsZS5o Pgo+PiAgICNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Cj4+ICsjaW5jbHVkZSA8YXNtL2Vzci5oPgo+ PiAgIAo+PiAgIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZwo+PiAgIGdldF9leF9maXh1cChj b25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpleCkKPj4gQEAgLTIzLDYgKzI0LDE4 IEBAIHN0YXRpYyBib29sIGV4X2hhbmRsZXJfZml4dXAoY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90 YWJsZV9lbnRyeSAqZXgsCj4+ICAgCXJldHVybiB0cnVlOwo+PiAgIH0KPj4gICAKPj4gK3N0YXRp YyBib29sIGV4X2hhbmRsZXJfZml4dXBfbWMoY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9l bnRyeSAqZXgsCj4+ICsJCQkJc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGludCBlc3Ip Cj4+ICt7Cj4+ICsJaWYgKGVzcl9pc19zZWEoZXNyKSkKPj4gKwkJcmVncy0+cmVnc1swXSA9IDA7 Cj4+ICsJZWxzZQo+PiArCQlyZWdzLT5yZWdzWzBdID0gMTsKPiAKPiBUaGlzIG5lZWRzIG1vcmUg ZXhwbGFuYXRpb24uCj4gCj4gV2h5IGRvZXMgdGhpcyBoYXJkLWNvZGUgYW4gYXNzdW1wdGlvbiB0 aGF0IHdlIGNhbiBhbHRlciB4MD8KPiAKPiBXaHkgaXMgdGhlIHgwIHZhbHVlIGRpc3RpbmN0IGZv ciBTRUEgb3Igbm9uLVNFQT8gV2hhdCBpcyB0aGlzIG1lYW50IHRvCj4gcmVwcmVzZW50IHNwZWNp ZmljYWxseT8KPiAKPiBXaGF0IGlmIHRoaXMgU0VBIHdhcyB0YWtlbiBmb3IgYSByZWFzb24gb3Ro ZXIgdGhhbiBhIG1lbW9yeSBlcnJvcj8KClRoZXJlIGlzIGEgcHJvYmxlbSB3aXRoIHRoZSBkZXNp Z24gb2YgdGhpcyBwbGFjZSBhbmQgaXQgbmVlZHMgdG8gYmUKbW9kaWZpZWQuIFRoZSB2YWx1ZSBp biB4MCBjYW5ub3QgYmUgb3ZlcndyaXR0ZW4uIHdpbGwgYmUgZml4ZWQgaW4gbmV4dAp2ZXJzaW9u LgoKPiAKPj4gKwo+PiArCXJlZ3MtPnBjID0gZ2V0X2V4X2ZpeHVwKGV4KTsKPj4gKwlyZXR1cm4g dHJ1ZTsKPj4gK30KPj4gKwo+PiAgIHN0YXRpYyBib29sIGV4X2hhbmRsZXJfdWFjY2Vzc19lcnJf emVybyhjb25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpleCwKPj4gICAJCQkJCXN0 cnVjdCBwdF9yZWdzICpyZWdzKQo+PiAgIHsKPj4gQEAgLTYzLDcgKzc2LDcgQEAgZXhfaGFuZGxl cl9sb2FkX3VuYWxpZ25lZF96ZXJvcGFkKGNvbnN0IHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50 cnkgKmV4LAo+PiAgIAlyZXR1cm4gdHJ1ZTsKPj4gICB9Cj4+ICAgCj4+IC1ib29sIGZpeHVwX2V4 Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncykKPj4gK2Jvb2wgZml4dXBfZXhjZXB0aW9uKHN0 cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBpbnQgZXNyKQo+PiAgIHsKPj4gICAJY29uc3Qg c3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqZXg7Cj4+ICAgCj4+IEBAIC03MSw5ICs4NCwx NCBAQCBib29sIGZpeHVwX2V4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncykKPj4gICAJaWYg KCFleCkKPj4gICAJCXJldHVybiBmYWxzZTsKPj4gICAKPj4gKwlpZiAoZXNyX2lzX3NlYShlc3Ip ICYmICFJU19FWF9UWVBFX01DKGV4LT50eXBlKSkKPj4gKwkJcmV0dXJuIGZhbHNlOwo+IAo+IEkg ZG9uJ3QgdGhpbmsgdGhpcyBjaGVjayBiZWxvbmdzIGhlcmUuCj4gCj4gRWl0aGVyIHRoaXMgc2hv dWxkIGJlIGZvbGRlZCBpbnRvIGV4X2hhbmRsZXJfZml4dXBfbWMoKSwgb3Igd2Ugc2hvdWxkIG1h a2UgdGhlCj4ganVkZ2VtZW50IGVhcmxpZXIgaW4gdGhlIGZhdWx0IGhhbmRsaW5nIHBhdGgsIGFu ZCBoYXZlIGEgc2VwYXJhdGUKPiBmaXh1cF9leGNlcHRpb25fbWMoKSB0aGF0IHdlIGNhbiBjYWxs IHNwZWNpZmljYWxseSBpbiB0aGUgY2FzZSBvZiBhIG1lbW9yeQo+IGVycm9yLgoKQWdyZWVkLCBN YXliZSBpdCdzIGJldHRlciB0byB1c2UgYSBzZXBhcmF0ZSBmaXh1cF9leGNlcHRpb25fbWMoKS4K Cj4gCj4+ICsKPj4gICAJc3dpdGNoIChleC0+dHlwZSkgewo+PiAgIAljYXNlIEVYX1RZUEVfRklY VVA6Cj4+ICAgCQlyZXR1cm4gZXhfaGFuZGxlcl9maXh1cChleCwgcmVncyk7Cj4+ICsJY2FzZSBF WF9UWVBFX0ZJWFVQX01DOgo+PiArCQlyZXR1cm4gZXhfaGFuZGxlcl9maXh1cF9tYyhleCwgcmVn cywgZXNyKTsKPj4gICAJY2FzZSBFWF9UWVBFX0JQRjoKPj4gICAJCXJldHVybiBleF9oYW5kbGVy X2JwZihleCwgcmVncyk7Cj4+ICAgCWNhc2UgRVhfVFlQRV9VQUNDRVNTX0VSUl9aRVJPOgo+PiBk aWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9tbS9mYXVsdC5jIGIvYXJjaC9hcm02NC9tbS9mYXVsdC5j Cj4+IGluZGV4IDc3MzQxYjE2MGFjYS4uZmZkZmFiMmZkZDYwIDEwMDY0NAo+PiAtLS0gYS9hcmNo L2FybTY0L21tL2ZhdWx0LmMKPj4gKysrIGIvYXJjaC9hcm02NC9tbS9mYXVsdC5jCj4+IEBAIC0z NjEsNyArMzYxLDcgQEAgc3RhdGljIHZvaWQgX19kb19rZXJuZWxfZmF1bHQodW5zaWduZWQgbG9u ZyBhZGRyLCB1bnNpZ25lZCBpbnQgZXNyLAo+PiAgIAkgKiBBcmUgd2UgcHJlcGFyZWQgdG8gaGFu ZGxlIHRoaXMga2VybmVsIGZhdWx0Pwo+PiAgIAkgKiBXZSBhcmUgYWxtb3N0IGNlcnRhaW5seSBu b3QgcHJlcGFyZWQgdG8gaGFuZGxlIGluc3RydWN0aW9uIGZhdWx0cy4KPj4gICAJICovCj4+IC0J aWYgKCFpc19lbDFfaW5zdHJ1Y3Rpb25fYWJvcnQoZXNyKSAmJiBmaXh1cF9leGNlcHRpb24ocmVn cykpCj4+ICsJaWYgKCFpc19lbDFfaW5zdHJ1Y3Rpb25fYWJvcnQoZXNyKSAmJiBmaXh1cF9leGNl cHRpb24ocmVncywgZXNyKSkKPj4gICAJCXJldHVybjsKPj4gICAKPj4gICAJaWYgKFdBUk5fUkFU RUxJTUlUKGlzX3NwdXJpb3VzX2VsMV90cmFuc2xhdGlvbl9mYXVsdChhZGRyLCBlc3IsIHJlZ3Mp LAo+PiBAQCAtNjk1LDYgKzY5NSwzMCBAQCBzdGF0aWMgaW50IGRvX2JhZCh1bnNpZ25lZCBsb25n IGZhciwgdW5zaWduZWQgaW50IGVzciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ICAgCXJldHVy biAxOyAvKiAiZmF1bHQiICovCj4+ICAgfQo+PiAgIAo+PiArc3RhdGljIGJvb2wgYXJtNjRfcHJv Y2Vzc19rZXJuZWxfc2VhKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgaW50IGVzciwKPj4g KwkJCQkgICAgIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgc2lnLCBpbnQgY29kZSkKPj4gK3sK Pj4gKwlpZiAoIUlTX0VOQUJMRUQoQ09ORklHX0FSQ0hfSEFTX0NPUFlfTUMpKQo+PiArCQlyZXR1 cm4gZmFsc2U7Cj4+ICsKPj4gKwlpZiAodXNlcl9tb2RlKHJlZ3MpIHx8ICFjdXJyZW50LT5tbSkK Pj4gKwkJcmV0dXJuIGZhbHNlOwo+PiArCj4+ICsJaWYgKGFwZWlfY2xhaW1fc2VhKHJlZ3MpIDwg MCkKPj4gKwkJcmV0dXJuIGZhbHNlOwo+PiArCj4+ICsJY3VycmVudC0+dGhyZWFkLmZhdWx0X2Fk ZHJlc3MgPSAwOwo+PiArCWN1cnJlbnQtPnRocmVhZC5mYXVsdF9jb2RlID0gZXNyOwo+PiArCj4+ ICsJaWYgKCFmaXh1cF9leGNlcHRpb24ocmVncywgZXNyKSkKPj4gKwkJcmV0dXJuIGZhbHNlOwo+ PiArCj4+ICsJYXJtNjRfZm9yY2Vfc2lnX2ZhdWx0KHNpZywgY29kZSwgYWRkciwKPj4gKwkJIlVu Y29ycmVjdGVkIGhhcmR3YXJlIG1lbW9yeSBlcnJvciBpbiBrZXJuZWwtYWNjZXNzXG4iKTsKPj4g Kwo+PiArCXJldHVybiB0cnVlOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIGludCBkb19zZWEodW5z aWduZWQgbG9uZyBmYXIsIHVuc2lnbmVkIGludCBlc3IsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQo+ PiAgIHsKPj4gICAJY29uc3Qgc3RydWN0IGZhdWx0X2luZm8gKmluZjsKPj4gQEAgLTcyMCw2ICs3 NDQsMTAgQEAgc3RhdGljIGludCBkb19zZWEodW5zaWduZWQgbG9uZyBmYXIsIHVuc2lnbmVkIGlu dCBlc3IsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQo+PiAgIAkJICovCj4+ICAgCQlzaWFkZHIgID0g dW50YWdnZWRfYWRkcihmYXIpOwo+PiAgIAl9Cj4+ICsKPj4gKwlpZiAoYXJtNjRfcHJvY2Vzc19r ZXJuZWxfc2VhKHNpYWRkciwgZXNyLCByZWdzLCBpbmYtPnNpZywgaW5mLT5jb2RlKSkKPj4gKwkJ cmV0dXJuIDA7Cj4+ICsKPj4gICAJYXJtNjRfbm90aWZ5X2RpZShpbmYtPm5hbWUsIHJlZ3MsIGlu Zi0+c2lnLCBpbmYtPmNvZGUsIHNpYWRkciwgZXNyKTsKPj4gICAKPj4gICAJcmV0dXJuIDA7Cj4+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaCBiL2luY2x1ZGUvbGludXgvdWFj Y2Vzcy5oCj4+IGluZGV4IDU0NjE3OTQxOGZmYS4uZGQ5NTJhZWVjZGMxIDEwMDY0NAo+PiAtLS0g YS9pbmNsdWRlL2xpbnV4L3VhY2Nlc3MuaAo+PiArKysgYi9pbmNsdWRlL2xpbnV4L3VhY2Nlc3Mu aAo+PiBAQCAtMTc0LDYgKzE3NCwxNCBAQCBjb3B5X21jX3RvX2tlcm5lbCh2b2lkICpkc3QsIGNv bnN0IHZvaWQgKnNyYywgc2l6ZV90IGNudCkKPj4gICB9Cj4+ICAgI2VuZGlmCj4+ICAgCj4+ICsj aWZuZGVmIGNvcHlfbWNfdG9fdXNlcgo+PiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIF9f bXVzdF9jaGVjawo+PiArY29weV9tY190b191c2VyKHZvaWQgKmRzdCwgY29uc3Qgdm9pZCAqc3Jj LCBzaXplX3QgY250KQo+PiArewo+PiArCXJldHVybiByYXdfY29weV90b191c2VyKGRzdCwgc3Jj LCBjbnQpOwo+PiArfQo+IAo+IC4uLiB0aGlzIGlzbid0IHVzaW5nIHRoZSBuZXcgRVhfVFlQRV9G SVhVUF9NQyB0eXBlLCBzbyBpc24ndCB0aGlzIGp1c3QgYnJva2VuCj4gYXMgb2YgdGhpcyBwYXRj aD8KPiAKPiBUaGFua3MsCj4gTWFyay4KCkl0IGlzIHVzZWZ1bCBpbiB0aGUgbGF0ZXIgcGF0Y2gg KGFkZGluZyBzcGVjaWZpYyBzY2VuYXJpb3MgdG8gdXNlIHRoaXMKZnJhbWV3b3JrKSwgaGVyZSBq dXN0IGFkZCBoZWxwZXIuCgpHcmVhdCB0aGFua3MsClRvbmcuCj4gCj4+ICsjZW5kaWYKPj4gKwo+ PiAgIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBwYWdlZmF1bHRfZGlzYWJsZWRfaW5jKHZv aWQpCj4+ICAgewo+PiAgIAljdXJyZW50LT5wYWdlZmF1bHRfZGlzYWJsZWQrKzsKPj4gLS0gCj4+ IDIuMTguMC5odWF3ZWkuMjUKPj4KPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPj4gbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKPj4gbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCj4+IGh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo+IC4KCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK