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 A9EEBC433EF for ; Thu, 7 Apr 2022 14:57:31 +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:From:References:CC:To:Subject: 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=R8bIZ+cVSBDRosyRd63KF+JAgq566Aa4Zdzft8lvAb8=; b=4b0ZpBEJSiTQTN pnExt7md426JDsR2ZgRIT7yh7oqQr8I8zYIGy8d7S9xGWePEb4DPjA+qxAEL4Ako/NhinQOxUVWBJ /MTZ39kSN9PfAFtX8VJeFkpb1GJiRfFZzhyLhzjAwAt5pmOSMI3CX35RqISDdugAVB9skw4i/KWy5 qh1ZpjrkRDR/1TCMSJ1Bb02OHnFL3G6MhnplBUvx5ew6kKgobKq05/lNFt2YNUomBPRK6a2AKSzm/ aJ+IFpGiWDNRujuldtQquKmZRyKFbE3KXqJp3mhiIYbJw2+saRseLiL8Sh8MunU1noN+xk8P/RpPT PXCFJuF5+19AAhLCA/ZA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ncTYW-00CWV7-Qz; Thu, 07 Apr 2022 14:56:16 +0000 Received: from szxga08-in.huawei.com ([45.249.212.255]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ncTYR-00CWTK-Pw for linux-arm-kernel@lists.infradead.org; Thu, 07 Apr 2022 14:56:14 +0000 Received: from kwepemi100022.china.huawei.com (unknown [172.30.72.56]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4KZ4F83dNvz1HBLx; Thu, 7 Apr 2022 22:55:40 +0800 (CST) Received: from kwepemm600017.china.huawei.com (7.193.23.234) by kwepemi100022.china.huawei.com (7.221.188.126) 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:56:08 +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:56:07 +0800 Message-ID: Date: Thu, 7 Apr 2022 22:56:00 +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 Subject: Re: [RFC PATCH -next V2 7/7] arm64: add pagecache reading to machine check 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-8-tongtiangen@huawei.com> From: Tong Tiangen 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_075612_298934_29EE20E5 X-CRM114-Status: GOOD ( 31.04 ) 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 CgrlnKggMjAyMi80LzYgMTk6MjcsIE1hcmsgUnV0bGFuZCDlhpnpgZM6Cj4gT24gV2VkLCBBcHIg MDYsIDIwMjIgYXQgMDk6MTM6MTFBTSArMDAwMCwgVG9uZyBUaWFuZ2VuIHdyb3RlOgo+PiBXaGVu IHVzZXIgcHJvY2VzcyByZWFkaW5nIGZpbGUsIHRoZSBkYXRhIGlzIGNhY2hlZCBpbiBwYWdlY2Fj aGUgYW5kCj4+IHRoZSBkYXRhIGJlbG9uZ3MgdG8gdGhlIHVzZXIgcHJvY2VzcywgV2hlbiBtYWNo aW5lIGNoZWNrIGVycm9yIGlzCj4+IGVuY291bnRlcmVkIGR1cmluZyBwYWdlY2FjaGUgcmVhZGlu Zywga2lsbGluZyB0aGUgdXNlciBwcm9jZXNzIGFuZAo+PiBpc29sYXRlIHRoZSB1c2VyIHBhZ2Ug d2l0aCBoYXJkd2FyZSBtZW1vcnkgZXJyb3JzIGlzIGEgbW9yZSByZWFzb25hYmxlCj4+IGNob2lj ZSB0aGFuIGtlcm5lbCBwYW5pYy4KPj4KPj4gVGhlIF9fYXJjaF9jb3B5X21jX3RvX3VzZXIoKSBp biBjb3B5X3RvX3VzZXJfbWMuUyBpcyBsYXJnZWx5IGJvcnJvd3MKPj4gZnJvbSBfX2FyY2hfY29w eV90b191c2VyKCkgaW4gY29weV90b191c2VyLlMgYW5kIHRoZSBtYWluIGRpZmZlcmVuY2UKPj4g aXMgX19hcmNoX2NvcHlfbWNfdG9fdXNlcigpIGFkZCB0aGUgZXh0YWJsZSBlbnRyeSB0byBzdXBw b3J0IG1hY2hpbmUKPj4gY2hlY2sgc2FmZS4KPiAKPiBBcyB3aXRoIHByaW9yIHBhdGNoZXMsICp3 aHkqIGlzIHRoZSBkaXN0aW5jdGlvbiBuZWNlc3Nhcnk/Cj4gCj4gVGhpcyBwYXRjaCBhZGRzIGEg YnVuY2ggb2YgY29uZGl0aW9uYWwgbG9naWMsIGJ1dCAqc3RydWN0dXJhbGx5KiBpdCBkb2Vzbid0 Cj4gYWx0ZXIgdGhlIGhhbmRsaW5nIHRvIGJlIHN1YnN0YW50aWFsbHkgZGlmZmVyZW50IGZvciB0 aGUgTUMgYW5kIG5vbi1NQyBjYXNlcy4KPiAKPiBUaGlzIHNlZW1zIGxpa2UgcG9pbnRsZXNzIGR1 cGxpY2F0aW9uIHRoYXQganVzdCBtYWtlcyBpdCBoYXJkZXIgdG8gbWFpbnRhaW4KPiB0aGlzIGNv ZGUuCj4gCj4gVGhhbmtzLAo+IE1hcmsuCgpBZ3JlZWQsIFRoZSBpbXBsZW1lbnRhdGlvbiBoZXJl IGxvb2tzIGEgbGl0dGxlIHVnbHkgYW5kIGhhcmRlciB0byBtYWludGFpbi4KClRoZSBwdXJwb3Nl IG9mIG15IGRvaW5nIHRoaXMgaXMgbm90IGFsbCBjb3B5X3RvX3VzZXIgY2FuIGJlIHJlY292ZXJl ZC4KCkEgbWVtb3J5IGVycm9yIGlzIGNvbnN1bWVkIHdoZW4gcmVhZGluZyBwYWdlY2FjaGUgdXNp bmcgY29weV90b191c2VyLgpJIHRoaW5rIGluIHRoaXMgc2NlbmFyaW8sIG9ubHkgdGhlIHByb2Nl c3MgaXMgYWZmZWN0ZWQgYmVjYXVzZSBpdCBjYW4ndCByZWFkCnBhZ2VjYWNoZSBkYXRhIGNvcnJl Y3RseS4gSnVzdCBraWxsIHRoZSBwcm9jZXNzIGFuZCBkb24ndCBuZWVkIHRoZSB3aG9sZQprZXJu ZWwgcGFuaWMuCgpTbyBJIG5lZWQgdHdvIGRpZmZlcmVudCBjb3B5X3RvX3VzZXIgaW1wbGVtZW50 YXRpb24sIG9uZSBpcyBleGlzdGluZyAKX19hcmNoX2NvcHlfdG9fdXNlciwKdGhpcyBmdW5jdGlv biB3aWxsIHBhbmljIHdoZW4gY29uc3VtaW5nIG1lbW9yeSBlcnJvcnMuIFRoZSBvdGhlciBvbmUg aXMgCnRoaXMgbmV3IGhlbHBlcgpfX2FyY2hfY29weV9tY190b191c2VyLCB0aGlzIGludGVyZmFj ZSBpcyB1c2VkIHdoZW4gcmVhZGluZyBwYWdlY2FjaGUuIApJdCBjYW4gcmVjb3ZlciBmcm9tCmNv bnN1bWUgbWVtb3J5IGVycm9yLgoKSW4gZnV0dXJlLCBpZiBmaW5kIGEgc2NlbmFyaW8gdXNlIGNv cHlfdG9fdXNlciBjYW4gYWxzbyBiZSByZWNvdmVyZWQsIHdlIApjYW4gYWxzbyB1c2UgdGhpcyBt YwpzYWZlIGhlbHBlciBpbnN0ZWFkIGl0LgoKVGhhbmtzLApUb25nLgoKPiAKPj4gSW4gX2NvcHlf cGFnZV90b19pdGVyKCksIG1hY2hpbmUgY2hlY2sgc2FmZSBvbmx5IGNvbnNpZGVyZWQgSVRFUl9J T1ZFQwo+PiB3aGljaCBpcyB1c2VkIGJ5IHBhZ2VjYWNoZSByZWFkaW5nLgo+Pgo+PiBTaWduZWQt b2ZmLWJ5OiBUb25nIFRpYW5nZW4gPHRvbmd0aWFuZ2VuQGh1YXdlaS5jb20+Cj4+IC0tLQo+PiAg IGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vdWFjY2Vzcy5oIHwgMTUgKysrKysrCj4+ICAgYXJjaC9h cm02NC9saWIvTWFrZWZpbGUgICAgICAgICAgfCAgMiArLQo+PiAgIGFyY2gvYXJtNjQvbGliL2Nv cHlfdG9fdXNlcl9tYy5TIHwgNzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gICBp bmNsdWRlL2xpbnV4L3Vpby5oICAgICAgICAgICAgICB8ICA5ICsrKy0KPj4gICBsaWIvaW92X2l0 ZXIuYyAgICAgICAgICAgICAgICAgICB8IDg1ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tCj4+ICAgNSBmaWxlcyBjaGFuZ2VkLCAxNzAgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25z KC0pCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtNjQvbGliL2NvcHlfdG9fdXNlcl9t Yy5TCj4+Cj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3VhY2Nlc3MuaCBi L2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vdWFjY2Vzcy5oCj4+IGluZGV4IDI0YjY2MjQwN2ZiZC4u ZjBkNWU4MTExNjVhIDEwMDY0NAo+PiAtLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3VhY2Nl c3MuaAo+PiArKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3VhY2Nlc3MuaAo+PiBAQCAtNDQ4 LDYgKzQ0OCwyMSBAQCBleHRlcm4gbG9uZyBzdHJuY3B5X2Zyb21fdXNlcihjaGFyICpkZXN0LCBj b25zdCBjaGFyIF9fdXNlciAqc3JjLCBsb25nIGNvdW50KTsKPj4gICAKPj4gICBleHRlcm4gX19t dXN0X2NoZWNrIGxvbmcgc3Rybmxlbl91c2VyKGNvbnN0IGNoYXIgX191c2VyICpzdHIsIGxvbmcg bik7Cj4+ICAgCj4+ICsjaWZkZWYgQ09ORklHX0FSQ0hfSEFTX0NPUFlfTUMKPj4gK2V4dGVybiB1 bnNpZ25lZCBsb25nIF9fbXVzdF9jaGVjayBfX2FyY2hfY29weV9tY190b191c2VyKHZvaWQgX191 c2VyICp0bywKPj4gKwkJCQkJCQkgY29uc3Qgdm9pZCAqZnJvbSwgdW5zaWduZWQgbG9uZyBuKTsK Pj4gK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBfX211c3RfY2hlY2sKPj4gK2NvcHlfbWNf dG9fdXNlcih2b2lkIF9fdXNlciAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHVuc2lnbmVkIGxvbmcg bikKPj4gK3sKPj4gKwl1YWNjZXNzX3R0YnIwX2VuYWJsZSgpOwo+PiArCW4gPSBfX2FyY2hfY29w eV9tY190b191c2VyKF9fdWFjY2Vzc19tYXNrX3B0cih0byksIGZyb20sIG4pOwo+PiArCXVhY2Nl c3NfdHRicjBfZGlzYWJsZSgpOwo+PiArCj4+ICsJcmV0dXJuIG47Cj4+ICt9Cj4+ICsjZGVmaW5l IGNvcHlfbWNfdG9fdXNlciBjb3B5X21jX3RvX3VzZXIKPj4gKyNlbmRpZgo+PiArCj4+ICAgI2lm ZGVmIENPTkZJR19BUkNIX0hBU19VQUNDRVNTX0ZMVVNIQ0FDSEUKPj4gICBzdHJ1Y3QgcGFnZTsK Pj4gICB2b2lkIG1lbWNweV9wYWdlX2ZsdXNoY2FjaGUoY2hhciAqdG8sIHN0cnVjdCBwYWdlICpw YWdlLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3QgbGVuKTsKPj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJt NjQvbGliL01ha2VmaWxlIGIvYXJjaC9hcm02NC9saWIvTWFrZWZpbGUKPj4gaW5kZXggMjljNTc4 NDE0YjEyLi45YjM1NzEyMjdmYjQgMTAwNjQ0Cj4+IC0tLSBhL2FyY2gvYXJtNjQvbGliL01ha2Vm aWxlCj4+ICsrKyBiL2FyY2gvYXJtNjQvbGliL01ha2VmaWxlCj4+IEBAIC0yMyw0ICsyMyw0IEBA IG9iai0kKENPTkZJR19BUk02NF9NVEUpICs9IG10ZS5vCj4+ICAgCj4+ICAgb2JqLSQoQ09ORklH X0tBU0FOX1NXX1RBR1MpICs9IGthc2FuX3N3X3RhZ3Mubwo+PiAgIAo+PiAtb2JqLSQoQ09ORklH X0FSQ0hfSEFTX0NQWV9NQykgKz0gY29weV9wYWdlX21jLm8KPj4gK29iai0kKENPTkZJR19BUkNI X0hBU19DT1BZX01DKSArPSBjb3B5X3BhZ2VfbWMubyBjb3B5X3RvX3VzZXJfbWMubwo+PiBkaWZm IC0tZ2l0IGEvYXJjaC9hcm02NC9saWIvY29weV90b191c2VyX21jLlMgYi9hcmNoL2FybTY0L2xp Yi9jb3B5X3RvX3VzZXJfbWMuUwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAw MDAwMDAwMDAuLjlkMjI4ZmYxNTQ0Ngo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2FyY2gvYXJt NjQvbGliL2NvcHlfdG9fdXNlcl9tYy5TCj4+IEBAIC0wLDAgKzEsNzggQEAKPj4gKy8qIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8KPj4gKy8qCj4+ICsgKiBDb3B5cmln aHQgKEMpIDIwMTIgQVJNIEx0ZC4KPj4gKyAqLwo+PiArCj4+ICsjaW5jbHVkZSA8bGludXgvbGlu a2FnZS5oPgo+PiArCj4+ICsjaW5jbHVkZSA8YXNtL2FzbS11YWNjZXNzLmg+Cj4+ICsjaW5jbHVk ZSA8YXNtL2Fzc2VtYmxlci5oPgo+PiArI2luY2x1ZGUgPGFzbS9jYWNoZS5oPgo+PiArCj4+ICsv Kgo+PiArICogQ29weSB0byB1c2VyIHNwYWNlIGZyb20gYSBrZXJuZWwgYnVmZmVyIChhbGlnbm1l bnQgaGFuZGxlZCBieSB0aGUgaGFyZHdhcmUpCj4+ICsgKgo+PiArICogUGFyYW1ldGVyczoKPj4g KyAqCXgwIC0gdG8KPj4gKyAqCXgxIC0gZnJvbQo+PiArICoJeDIgLSBuCj4+ICsgKiBSZXR1cm5z Ogo+PiArICoJeDAgLSBieXRlcyBub3QgY29waWVkCj4+ICsgKi8KPj4gKwkubWFjcm8gbGRyYjEg cmVnLCBwdHIsIHZhbAo+PiArCTEwMDA6IGxkcmIgIFxyZWcsIFtccHRyXSwgXHZhbDsKPj4gKwlf YXNtX2V4dGFibGVfbWMgMTAwMGIsIDk5OThmOwo+PiArCS5lbmRtCj4+ICsKPj4gKwkubWFjcm8g c3RyYjEgcmVnLCBwdHIsIHZhbAo+PiArCXVzZXJfbGRzdF9tYyA5OTk4Ziwgc3R0cmIsIFxyZWcs IFxwdHIsIFx2YWwKPj4gKwkuZW5kbQo+PiArCj4+ICsJLm1hY3JvIGxkcmgxIHJlZywgcHRyLCB2 YWwKPj4gKwkxMDAxOiBsZHJoICBccmVnLCBbXHB0cl0sIFx2YWw7Cj4+ICsJX2FzbV9leHRhYmxl X21jIDEwMDFiLCA5OTk4ZjsKPj4gKwkuZW5kbQo+PiArCj4+ICsJLm1hY3JvIHN0cmgxIHJlZywg cHRyLCB2YWwKPj4gKwl1c2VyX2xkc3RfbWMgOTk5N2YsIHN0dHJoLCBccmVnLCBccHRyLCBcdmFs Cj4+ICsJLmVuZG0KPj4gKwo+PiArCS5tYWNybyBsZHIxIHJlZywgcHRyLCB2YWwKPj4gKwkxMDAy OiBsZHIgXHJlZywgW1xwdHJdLCBcdmFsOwo+PiArCV9hc21fZXh0YWJsZV9tYyAxMDAyYiwgOTk5 OGY7Cj4+ICsJLmVuZG0KPj4gKwo+PiArCS5tYWNybyBzdHIxIHJlZywgcHRyLCB2YWwKPj4gKwl1 c2VyX2xkc3RfbWMgOTk5N2YsIHN0dHIsIFxyZWcsIFxwdHIsIFx2YWwKPj4gKwkuZW5kbQo+PiAr Cj4+ICsJLm1hY3JvIGxkcDEgcmVnMSwgcmVnMiwgcHRyLCB2YWwKPj4gKwkxMDAzOiBsZHAgXHJl ZzEsIFxyZWcyLCBbXHB0cl0sIFx2YWw7Cj4+ICsJX2FzbV9leHRhYmxlX21jIDEwMDNiLCA5OTk4 ZjsKPj4gKwkuZW5kbQo+PiArCj4+ICsJLm1hY3JvIHN0cDEgcmVnMSwgcmVnMiwgcHRyLCB2YWwK Pj4gKwl1c2VyX3N0cCA5OTk3ZiwgXHJlZzEsIFxyZWcyLCBccHRyLCBcdmFsCj4+ICsJLmVuZG0K Pj4gKwo+PiArZW5kCS5yZXEJeDUKPj4gK3NyY2luCS5yZXEJeDE1Cj4+ICtTWU1fRlVOQ19TVEFS VChfX2FyY2hfY29weV9tY190b191c2VyKQo+PiArCWFkZAllbmQsIHgwLCB4Mgo+PiArCW1vdglz cmNpbiwgeDEKPj4gKyNpbmNsdWRlICJjb3B5X3RlbXBsYXRlLlMiCj4+ICsJbW92CXgwLCAjMAo+ PiArCXJldAo+PiArCj4+ICsJLy8gRXhjZXB0aW9uIGZpeHVwcwo+PiArOTk5NzoJY2J6CXgwLCA5 OTk4ZgkJCS8vIENoZWNrIG1hY2hpbmUgY2hlY2sgZXhjZXB0aW9uCj4+ICsJY21wCWRzdCwgZHN0 aW4KPj4gKwliLm5lCTk5OThmCj4+ICsJLy8gQmVmb3JlIGJlaW5nIGFic29sdXRlbHkgc3VyZSB3 ZSBjb3VsZG4ndCBjb3B5IGFueXRoaW5nLCB0cnkgaGFyZGVyCj4+ICsJbGRyYgl0bXAxdywgW3Ny Y2luXQo+PiArVVNFUig5OTk4Ziwgc3R0cmIgdG1wMXcsIFtkc3RdKQo+PiArCWFkZAlkc3QsIGRz dCwgIzEKPj4gKzk5OTg6CXN1Ygl4MCwgZW5kLCBkc3QJCQkvLyBieXRlcyBub3QgY29waWVkCj4+ ICsJcmV0Cj4+ICtTWU1fRlVOQ19FTkQoX19hcmNoX2NvcHlfbWNfdG9fdXNlcikKPj4gK0VYUE9S VF9TWU1CT0woX19hcmNoX2NvcHlfbWNfdG9fdXNlcikKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvdWlvLmggYi9pbmNsdWRlL2xpbnV4L3Vpby5oCj4+IGluZGV4IDczOTI4NWZlNWEyZi4u NTM5ZDllZTliMDMyIDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L3Vpby5oCj4+ICsrKyBi L2luY2x1ZGUvbGludXgvdWlvLmgKPj4gQEAgLTE0NywxMCArMTQ3LDE3IEBAIHNpemVfdCBfY29w eV90b19pdGVyKGNvbnN0IHZvaWQgKmFkZHIsIHNpemVfdCBieXRlcywgc3RydWN0IGlvdl9pdGVy ICppKTsKPj4gICBzaXplX3QgX2NvcHlfZnJvbV9pdGVyKHZvaWQgKmFkZHIsIHNpemVfdCBieXRl cywgc3RydWN0IGlvdl9pdGVyICppKTsKPj4gICBzaXplX3QgX2NvcHlfZnJvbV9pdGVyX25vY2Fj aGUodm9pZCAqYWRkciwgc2l6ZV90IGJ5dGVzLCBzdHJ1Y3QgaW92X2l0ZXIgKmkpOwo+PiAgIAo+ PiArI2lmZGVmIENPTkZJR19BUkNIX0hBU19DT1BZX01DCj4+ICtzaXplX3QgY29weV9tY19wYWdl X3RvX2l0ZXIoc3RydWN0IHBhZ2UgKnBhZ2UsIHNpemVfdCBvZmZzZXQsIHNpemVfdCBieXRlcywK Pj4gKwkJCSAgICBzdHJ1Y3QgaW92X2l0ZXIgKmkpOwo+PiArI2Vsc2UKPj4gKyNkZWZpbmUgY29w eV9tY19wYWdlX3RvX2l0ZXIgY29weV9wYWdlX3RvX2l0ZXIKPj4gKyNlbmRpZgo+PiArCj4+ICAg c3RhdGljIGlubGluZSBzaXplX3QgY29weV9mb2xpb190b19pdGVyKHN0cnVjdCBmb2xpbyAqZm9s aW8sIHNpemVfdCBvZmZzZXQsCj4+ICAgCQlzaXplX3QgYnl0ZXMsIHN0cnVjdCBpb3ZfaXRlciAq aSkKPj4gICB7Cj4+IC0JcmV0dXJuIGNvcHlfcGFnZV90b19pdGVyKCZmb2xpby0+cGFnZSwgb2Zm c2V0LCBieXRlcywgaSk7Cj4+ICsJcmV0dXJuIGNvcHlfbWNfcGFnZV90b19pdGVyKCZmb2xpby0+ cGFnZSwgb2Zmc2V0LCBieXRlcywgaSk7Cj4+ICAgfQo+PiAgIAo+PiAgIHN0YXRpYyBfX2Fsd2F5 c19pbmxpbmUgX19tdXN0X2NoZWNrCj4+IGRpZmYgLS1naXQgYS9saWIvaW92X2l0ZXIuYyBiL2xp Yi9pb3ZfaXRlci5jCj4+IGluZGV4IDZkZDUzMzBmN2E5OS4uMmM1ZjNiYjYzOTFkIDEwMDY0NAo+ PiAtLS0gYS9saWIvaW92X2l0ZXIuYwo+PiArKysgYi9saWIvaW92X2l0ZXIuYwo+PiBAQCAtMTU3 LDYgKzE1NywxOSBAQCBzdGF0aWMgaW50IGNvcHlvdXQodm9pZCBfX3VzZXIgKnRvLCBjb25zdCB2 b2lkICpmcm9tLCBzaXplX3QgbikKPj4gICAJcmV0dXJuIG47Cj4+ICAgfQo+PiAgIAo+PiArI2lm ZGVmIENPTkZJR19BUkNIX0hBU19DT1BZX01DCj4+ICtzdGF0aWMgaW50IGNvcHlvdXRfbWModm9p ZCBfX3VzZXIgKnRvLCBjb25zdCB2b2lkICpmcm9tLCBzaXplX3QgbikKPj4gK3sKPj4gKwlpZiAo YWNjZXNzX29rKHRvLCBuKSkgewo+PiArCQlpbnN0cnVtZW50X2NvcHlfdG9fdXNlcih0bywgZnJv bSwgbik7Cj4+ICsJCW4gPSBjb3B5X21jX3RvX3VzZXIoKF9fZm9yY2Ugdm9pZCAqKSB0bywgZnJv bSwgbik7Cj4+ICsJfQo+PiArCXJldHVybiBuOwo+PiArfQo+PiArI2Vsc2UKPj4gKyNkZWZpbmUg Y29weW91dF9tYyBjb3B5b3V0Cj4+ICsjZW5kaWYKPj4gKwo+PiAgIHN0YXRpYyBpbnQgY29weWlu KHZvaWQgKnRvLCBjb25zdCB2b2lkIF9fdXNlciAqZnJvbSwgc2l6ZV90IG4pCj4+ICAgewo+PiAg IAlpZiAoc2hvdWxkX2ZhaWxfdXNlcmNvcHkoKSkKPj4gQEAgLTE2OSw3ICsxODIsNyBAQCBzdGF0 aWMgaW50IGNvcHlpbih2b2lkICp0bywgY29uc3Qgdm9pZCBfX3VzZXIgKmZyb20sIHNpemVfdCBu KQo+PiAgIH0KPj4gICAKPj4gICBzdGF0aWMgc2l6ZV90IGNvcHlfcGFnZV90b19pdGVyX2lvdmVj KHN0cnVjdCBwYWdlICpwYWdlLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3QgYnl0ZXMsCj4+IC0JCQkg c3RydWN0IGlvdl9pdGVyICppKQo+PiArCQkJIHN0cnVjdCBpb3ZfaXRlciAqaSwgYm9vbCBtY19z YWZlKQo+PiAgIHsKPj4gICAJc2l6ZV90IHNraXAsIGNvcHksIGxlZnQsIHdhbnRlZDsKPj4gICAJ Y29uc3Qgc3RydWN0IGlvdmVjICppb3Y7Cj4+IEBAIC0xOTQsNyArMjA3LDEwIEBAIHN0YXRpYyBz aXplX3QgY29weV9wYWdlX3RvX2l0ZXJfaW92ZWMoc3RydWN0IHBhZ2UgKnBhZ2UsIHNpemVfdCBv ZmZzZXQsIHNpemVfdCBiCj4+ICAgCQlmcm9tID0ga2FkZHIgKyBvZmZzZXQ7Cj4+ICAgCj4+ICAg CQkvKiBmaXJzdCBjaHVuaywgdXN1YWxseSB0aGUgb25seSBvbmUgKi8KPj4gLQkJbGVmdCA9IGNv cHlvdXQoYnVmLCBmcm9tLCBjb3B5KTsKPj4gKwkJaWYgKG1jX3NhZmUpCj4+ICsJCQlsZWZ0ID0g Y29weW91dF9tYyhidWYsIGZyb20sIGNvcHkpOwo+PiArCQllbHNlCj4+ICsJCQlsZWZ0ID0gY29w eW91dChidWYsIGZyb20sIGNvcHkpOwo+PiAgIAkJY29weSAtPSBsZWZ0Owo+PiAgIAkJc2tpcCAr PSBjb3B5Owo+PiAgIAkJZnJvbSArPSBjb3B5Owo+PiBAQCAtMjA0LDcgKzIyMCwxMCBAQCBzdGF0 aWMgc2l6ZV90IGNvcHlfcGFnZV90b19pdGVyX2lvdmVjKHN0cnVjdCBwYWdlICpwYWdlLCBzaXpl X3Qgb2Zmc2V0LCBzaXplX3QgYgo+PiAgIAkJCWlvdisrOwo+PiAgIAkJCWJ1ZiA9IGlvdi0+aW92 X2Jhc2U7Cj4+ICAgCQkJY29weSA9IG1pbihieXRlcywgaW92LT5pb3ZfbGVuKTsKPj4gLQkJCWxl ZnQgPSBjb3B5b3V0KGJ1ZiwgZnJvbSwgY29weSk7Cj4+ICsJCQlpZiAobWNfc2FmZSkKPj4gKwkJ CQlsZWZ0ID0gY29weW91dF9tYyhidWYsIGZyb20sIGNvcHkpOwo+PiArCQkJZWxzZQo+PiArCQkJ CWxlZnQgPSBjb3B5b3V0KGJ1ZiwgZnJvbSwgY29weSk7Cj4+ICAgCQkJY29weSAtPSBsZWZ0Owo+ PiAgIAkJCXNraXAgPSBjb3B5Owo+PiAgIAkJCWZyb20gKz0gY29weTsKPj4gQEAgLTIyMyw3ICsy NDIsMTAgQEAgc3RhdGljIHNpemVfdCBjb3B5X3BhZ2VfdG9faXRlcl9pb3ZlYyhzdHJ1Y3QgcGFn ZSAqcGFnZSwgc2l6ZV90IG9mZnNldCwgc2l6ZV90IGIKPj4gICAKPj4gICAJa2FkZHIgPSBrbWFw KHBhZ2UpOwo+PiAgIAlmcm9tID0ga2FkZHIgKyBvZmZzZXQ7Cj4+IC0JbGVmdCA9IGNvcHlvdXQo YnVmLCBmcm9tLCBjb3B5KTsKPj4gKwlpZiAobWNfc2FmZSkKPj4gKwkJbGVmdCA9IGNvcHlvdXRf bWMoYnVmLCBmcm9tLCBjb3B5KTsKPj4gKwllbHNlCj4+ICsJCWxlZnQgPSBjb3B5b3V0KGJ1Ziwg ZnJvbSwgY29weSk7Cj4+ICAgCWNvcHkgLT0gbGVmdDsKPj4gICAJc2tpcCArPSBjb3B5Owo+PiAg IAlmcm9tICs9IGNvcHk7Cj4+IEBAIC0yMzIsNyArMjU0LDEwIEBAIHN0YXRpYyBzaXplX3QgY29w eV9wYWdlX3RvX2l0ZXJfaW92ZWMoc3RydWN0IHBhZ2UgKnBhZ2UsIHNpemVfdCBvZmZzZXQsIHNp emVfdCBiCj4+ICAgCQlpb3YrKzsKPj4gICAJCWJ1ZiA9IGlvdi0+aW92X2Jhc2U7Cj4+ICAgCQlj b3B5ID0gbWluKGJ5dGVzLCBpb3YtPmlvdl9sZW4pOwo+PiAtCQlsZWZ0ID0gY29weW91dChidWYs IGZyb20sIGNvcHkpOwo+PiArCQlpZiAobWNfc2FmZSkKPj4gKwkJCWxlZnQgPSBjb3B5b3V0X21j KGJ1ZiwgZnJvbSwgY29weSk7Cj4+ICsJCWVsc2UKPj4gKwkJCWxlZnQgPSBjb3B5b3V0KGJ1Ziwg ZnJvbSwgY29weSk7Cj4+ICAgCQljb3B5IC09IGxlZnQ7Cj4+ICAgCQlza2lwID0gY29weTsKPj4g ICAJCWZyb20gKz0gY29weTsKPj4gQEAgLTY3NCwxNSArNjk5LDYgQEAgc2l6ZV90IF9jb3B5X3Rv X2l0ZXIoY29uc3Qgdm9pZCAqYWRkciwgc2l6ZV90IGJ5dGVzLCBzdHJ1Y3QgaW92X2l0ZXIgKmkp Cj4+ICAgRVhQT1JUX1NZTUJPTChfY29weV90b19pdGVyKTsKPj4gICAKPj4gICAjaWZkZWYgQ09O RklHX0FSQ0hfSEFTX0NPUFlfTUMKPj4gLXN0YXRpYyBpbnQgY29weW91dF9tYyh2b2lkIF9fdXNl ciAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHNpemVfdCBuKQo+PiAtewo+PiAtCWlmIChhY2Nlc3Nf b2sodG8sIG4pKSB7Cj4+IC0JCWluc3RydW1lbnRfY29weV90b191c2VyKHRvLCBmcm9tLCBuKTsK Pj4gLQkJbiA9IGNvcHlfbWNfdG9fdXNlcigoX19mb3JjZSB2b2lkICopIHRvLCBmcm9tLCBuKTsK Pj4gLQl9Cj4+IC0JcmV0dXJuIG47Cj4+IC19Cj4+IC0KPj4gICBzdGF0aWMgc2l6ZV90IGNvcHlf bWNfcGlwZV90b19pdGVyKGNvbnN0IHZvaWQgKmFkZHIsIHNpemVfdCBieXRlcywKPj4gICAJCQkJ c3RydWN0IGlvdl9pdGVyICppKQo+PiAgIHsKPj4gQEAgLTg0NiwxMCArODYyLDEwIEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBwYWdlX2NvcHlfc2FuZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc2l6ZV90IG9m ZnNldCwgc2l6ZV90IG4pCj4+ICAgfQo+PiAgIAo+PiAgIHN0YXRpYyBzaXplX3QgX19jb3B5X3Bh Z2VfdG9faXRlcihzdHJ1Y3QgcGFnZSAqcGFnZSwgc2l6ZV90IG9mZnNldCwgc2l6ZV90IGJ5dGVz LAo+PiAtCQkJIHN0cnVjdCBpb3ZfaXRlciAqaSkKPj4gKwkJCSBzdHJ1Y3QgaW92X2l0ZXIgKmks IGJvb2wgbWNfc2FmZSkKPj4gICB7Cj4+ICAgCWlmIChsaWtlbHkoaXRlcl9pc19pb3ZlYyhpKSkp Cj4+IC0JCXJldHVybiBjb3B5X3BhZ2VfdG9faXRlcl9pb3ZlYyhwYWdlLCBvZmZzZXQsIGJ5dGVz LCBpKTsKPj4gKwkJcmV0dXJuIGNvcHlfcGFnZV90b19pdGVyX2lvdmVjKHBhZ2UsIG9mZnNldCwg Ynl0ZXMsIGksIG1jX3NhZmUpOwo+PiAgIAlpZiAoaW92X2l0ZXJfaXNfYnZlYyhpKSB8fCBpb3Zf aXRlcl9pc19rdmVjKGkpIHx8IGlvdl9pdGVyX2lzX3hhcnJheShpKSkgewo+PiAgIAkJdm9pZCAq a2FkZHIgPSBrbWFwX2xvY2FsX3BhZ2UocGFnZSk7Cj4+ICAgCQlzaXplX3Qgd2FudGVkID0gX2Nv cHlfdG9faXRlcihrYWRkciArIG9mZnNldCwgYnl0ZXMsIGkpOwo+PiBAQCAtODc4LDcgKzg5NCw3 IEBAIHNpemVfdCBjb3B5X3BhZ2VfdG9faXRlcihzdHJ1Y3QgcGFnZSAqcGFnZSwgc2l6ZV90IG9m ZnNldCwgc2l6ZV90IGJ5dGVzLAo+PiAgIAlvZmZzZXQgJT0gUEFHRV9TSVpFOwo+PiAgIAl3aGls ZSAoMSkgewo+PiAgIAkJc2l6ZV90IG4gPSBfX2NvcHlfcGFnZV90b19pdGVyKHBhZ2UsIG9mZnNl dCwKPj4gLQkJCQltaW4oYnl0ZXMsIChzaXplX3QpUEFHRV9TSVpFIC0gb2Zmc2V0KSwgaSk7Cj4+ ICsJCQkJbWluKGJ5dGVzLCAoc2l6ZV90KVBBR0VfU0laRSAtIG9mZnNldCksIGksIGZhbHNlKTsK Pj4gICAJCXJlcyArPSBuOwo+PiAgIAkJYnl0ZXMgLT0gbjsKPj4gICAJCWlmICghYnl0ZXMgfHwg IW4pCj4+IEBAIC04OTMsNiArOTA5LDQxIEBAIHNpemVfdCBjb3B5X3BhZ2VfdG9faXRlcihzdHJ1 Y3QgcGFnZSAqcGFnZSwgc2l6ZV90IG9mZnNldCwgc2l6ZV90IGJ5dGVzLAo+PiAgIH0KPj4gICBF WFBPUlRfU1lNQk9MKGNvcHlfcGFnZV90b19pdGVyKTsKPj4gICAKPj4gKyNpZmRlZiBDT05GSUdf QVJDSF9IQVNfQ09QWV9NQwo+PiArLyoqCj4+ICsgKiBjb3B5X21jX3BhZ2VfdG9faXRlciAtIGNv cHkgcGFnZSB0byBpdGVyIHdpdGggc291cmNlIG1lbW9yeSBlcnJvciBleGNlcHRpb24gaGFuZGxp bmcuCj4+ICsgKgo+PiArICogVGhlIGZpbGVtYXBfcmVhZCBkZXBsb3lzIHRoaXMgZm9yIHBhZ2Vj YWNoZSByZWFkaW5nIGFuZCB0aGUgbWFpbiBkaWZmZXJlbmNlcyBiZXR3ZWVuCj4+ICsgKiB0aGlz IGFuZCB0eXBpY2FsIGNvcHlfcGFnZV90b19pdGVyKCkgaXMgY2FsbCBfX2NvcHlfcGFnZV90b19p dGVyIHdpdGggbWNfc2FmZSB0cnVlLgo+PiArICoKPj4gKyAqIFJldHVybjogbnVtYmVyIG9mIGJ5 dGVzIGNvcGllZCAobWF5IGJlICUwKQo+PiArICovCj4+ICtzaXplX3QgY29weV9tY19wYWdlX3Rv X2l0ZXIoc3RydWN0IHBhZ2UgKnBhZ2UsIHNpemVfdCBvZmZzZXQsIHNpemVfdCBieXRlcywKPj4g KwkJCSBzdHJ1Y3QgaW92X2l0ZXIgKmkpCj4+ICt7Cj4+ICsJc2l6ZV90IHJlcyA9IDA7Cj4+ICsK Pj4gKwlpZiAodW5saWtlbHkoIXBhZ2VfY29weV9zYW5lKHBhZ2UsIG9mZnNldCwgYnl0ZXMpKSkK Pj4gKwkJcmV0dXJuIDA7Cj4+ICsJcGFnZSArPSBvZmZzZXQgLyBQQUdFX1NJWkU7IC8vIGZpcnN0 IHN1YnBhZ2UKPj4gKwlvZmZzZXQgJT0gUEFHRV9TSVpFOwo+PiArCXdoaWxlICgxKSB7Cj4+ICsJ CXNpemVfdCBuID0gX19jb3B5X3BhZ2VfdG9faXRlcihwYWdlLCBvZmZzZXQsCj4+ICsJCQkJbWlu KGJ5dGVzLCAoc2l6ZV90KVBBR0VfU0laRSAtIG9mZnNldCksIGksIHRydWUpOwo+PiArCQlyZXMg Kz0gbjsKPj4gKwkJYnl0ZXMgLT0gbjsKPj4gKwkJaWYgKCFieXRlcyB8fCAhbikKPj4gKwkJCWJy ZWFrOwo+PiArCQlvZmZzZXQgKz0gbjsKPj4gKwkJaWYgKG9mZnNldCA9PSBQQUdFX1NJWkUpIHsK Pj4gKwkJCXBhZ2UrKzsKPj4gKwkJCW9mZnNldCA9IDA7Cj4+ICsJCX0KPj4gKwl9Cj4+ICsJcmV0 dXJuIHJlczsKPj4gK30KPj4gKyNlbmRpZgo+PiArCj4+ICAgc2l6ZV90IGNvcHlfcGFnZV9mcm9t X2l0ZXIoc3RydWN0IHBhZ2UgKnBhZ2UsIHNpemVfdCBvZmZzZXQsIHNpemVfdCBieXRlcywKPj4g ICAJCQkgc3RydWN0IGlvdl9pdGVyICppKQo+PiAgIHsKPj4gLS0gCj4+IDIuMTguMC5odWF3ZWku MjUKPj4KPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPj4gbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKPj4gbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCj4+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo+IC4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK