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 0A0D1CCF9E3 for ; Tue, 4 Nov 2025 06:20:22 +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=gmx/cb1HOVLKftLIm4ivtCPIuCnle4UNsZSsSeOCaAY=; b=YPKjCpnHstIMyw tPnlW+mf+jkvBruru3SKc1QcMWKOtBj4bt5+q9o1KP2eGcjyDIAQP04jLrMHLjHdOhqKJQI95u0ew 0iFa473yhKlRKGRQVy2hM6oS6I0Q7g6t3ucmsY9RasxDIuhlvhYSiPcP6crp4WUd+lqMtVhQZXoNm b9mnVA4UhW+E92wFWqpLv9YAe9W+3NVa1AAMzbrZ5tviTSMt5sPWkqEiu0i2wBeJTtu4nVe3IYPut MHd5wqOpx0bFBU4l3Q3gxRdMgZvxLTNk5Ipgx4fT6ainrzzFaxN7bV4zl6JGOx7Q6LdDApsKyZT9B 40B7bu63AkOFLQTQb9Lw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vGAOo-0000000BELC-477L; Tue, 04 Nov 2025 06:20:10 +0000 Received: from pegase2.c-s.fr ([93.17.235.10]) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vGAOk-0000000BEK4-1lPU; Tue, 04 Nov 2025 06:20:07 +0000 Received: from localhost (mailhub4.si.c-s.fr [172.26.127.67]) by localhost (Postfix) with ESMTP id 4d0ylC5twsz9sS7; Tue, 4 Nov 2025 07:11:35 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from pegase2.c-s.fr ([172.26.127.65]) by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1V_DzEabRqdH; Tue, 4 Nov 2025 07:11:35 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase2.c-s.fr (Postfix) with ESMTP id 4d0ylC4fs9z9sRy; Tue, 4 Nov 2025 07:11:35 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 7EE558B76C; Tue, 4 Nov 2025 07:11:35 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id bDAKbX6wpuSV; Tue, 4 Nov 2025 07:11:35 +0100 (CET) Received: from [192.168.235.99] (unknown [192.168.235.99]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 6D0C78B763; Tue, 4 Nov 2025 07:11:33 +0100 (CET) Message-ID: <14010da0-9fba-4627-a499-e71034cd9bac@csgroup.eu> Date: Tue, 4 Nov 2025 07:11:30 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [patch V5 02/12] uaccess: Provide ASM GOTO safe wrappers for unsafe_*_user() To: Thomas Gleixner , LKML Cc: Linus Torvalds , kernel test robot , Russell King , linux-arm-kernel@lists.infradead.org, x86@kernel.org, Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Paul Walmsley , Palmer Dabbelt , linux-riscv@lists.infradead.org, Heiko Carstens , Christian Borntraeger , Sven Schnelle , linux-s390@vger.kernel.org, Mathieu Desnoyers , Andrew Cooper , David Laight , Julia Lawall , Nicolas Palix , Peter Zijlstra , Darren Hart , Davidlohr Bueso , =?UTF-8?Q?Andr=C3=A9_Almeida?= , Alexander Viro , Christian Brauner , Jan Kara , linux-fsdevel@vger.kernel.org References: <20251027083700.573016505@linutronix.de> <20251027083745.231716098@linutronix.de> From: Christophe Leroy Content-Language: fr-FR In-Reply-To: <20251027083745.231716098@linutronix.de> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251103_222006_652768_1478C76F X-CRM114-Status: GOOD ( 28.60 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org CgpMZSAyNy8xMC8yMDI1IMOgIDA5OjQzLCBUaG9tYXMgR2xlaXhuZXIgYSDDqWNyaXTCoDoKPiBB U00gR09UTyBpcyBtaXNjb21waWxlZCBieSBHQ0Mgd2hlbiBpdCBpcyB1c2VkIGluc2lkZSBhIGF1 dG8gY2xlYW51cCBzY29wZToKPiAKPiBib29sIGZvbyh1MzIgX191c2VyICpwLCB1MzIgdmFsKQo+ IHsKPiAJc2NvcGVkX2d1YXJkKHBhZ2VmYXVsdCkKPiAJCXVuc2FmZV9wdXRfdXNlcih2YWwsIHAs IGVmYXVsdCk7Cj4gCXJldHVybiB0cnVlOwo+IGVmYXVsdDoKPiAJcmV0dXJuIGZhbHNlOwo+IH0K PiAKPiAgIGU4MDoJZTggMDAgMDAgMDAgMDAgICAgICAgCWNhbGwgICBlODUgPGZvbysweDU+Cj4g ICBlODU6CTY1IDQ4IDhiIDA1IDAwIDAwIDAwIDAwIG1vdiAgICAlZ3M6MHgwKCVyaXApLCVyYXgK PiAgIGU4ZDoJODMgODAgMDQgMTQgMDAgMDAgMDEgCWFkZGwgICAkMHgxLDB4MTQwNCglcmF4KSAg IC8vIHBmX2Rpc2FibGUrKwo+ICAgZTk0Ogk4OSAzNyAgICAgICAgICAgICAgICAJbW92ICAgICVl c2ksKCVyZGkpCj4gICBlOTY6CTgzIGE4IDA0IDE0IDAwIDAwIDAxIAlzdWJsICAgJDB4MSwweDE0 MDQoJXJheCkgICAvLyBwZl9kaXNhYmxlLS0KPiAgIGU5ZDoJYjggMDEgMDAgMDAgMDAgICAgICAg CW1vdiAgICAkMHgxLCVlYXggICAgICAgICAgIC8vIHN1Y2Nlc3MKPiAgIGVhMjoJZTkgMDAgMDAg MDAgMDAgICAgICAgCWptcCAgICBlYTcgPGZvbysweDI3PiAgICAgIC8vIHJldAo+ICAgZWE3Ogkz MSBjMCAgICAgICAgICAgICAgICAJeG9yICAgICVlYXgsJWVheCAgICAgICAgICAgLy8gZmFpbAo+ ICAgZWE5OgllOSAwMCAwMCAwMCAwMCAgICAgICAJam1wICAgIGVhZSA8Zm9vKzB4MmU+ICAgICAg Ly8gcmV0Cj4gCj4gd2hpY2ggaXMgYnJva2VuIGFzIGl0IGxlYWtzIHRoZSBwYWdlZmF1bHQgZGlz YWJsZSBjb3VudGVyIG9uIGZhaWx1cmUuCgpJcyB0aGVyZSBhIEdDQyBidWcgcmVwb3J0IGZvciBp dCA/Cgo+IAo+IENsYW5nIGF0IGxlYXN0IGZhaWxzIHRoZSBidWlsZC4KCklzIGl0IGV4cGVjdGVk ID8gSXMgdGhlIGVycm9yIG1lc3NhZ2UgbWVhbmluZ2Z1bGwgPwoKPiAKPiBMaW51cyBzdWdnZXN0 ZWQgdG8gYWRkIGEgbG9jYWwgbGFiZWwgaW50byB0aGUgbWFjcm8gc2NvcGUgYW5kIGxldCB0aGF0 Cj4ganVtcCB0byB0aGUgYWN0dWFsIGNhbGxlciBzdXBwbGllZCBlcnJvciBsYWJlbC4KPiAKPiAg ICAgICAgIAlfX2xhYmVsX18gbG9jYWxfbGFiZWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKPiAgICAgICAgICBhcmNoX3Vuc2FmZV9nZXRfdXNlcih4LCBwdHIsIGxvY2FsX2xh YmVsKTsgICAgICAgICAgICAgIFwKPiAJaWYgKDApIHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCj4gCWxvY2FsX2xhYmVsOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+IAkJZ290byBsYWJlbDsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAoKVGhhdCdzIGluIGEgd2hpbGUgbG9vcCBzbyBpdCB3 b3VsZCBoYXZlIGJlZW4gY2xlYW5lciAobW9yZSByZWFkYWJsZSkgdG8gCmJyZWFrIGluc3RlYWQg b2YgdGhhdCB1Z2x5IGlmKDApLCBzZWUgX19nZXRfdXNlcl9zaXplX2FsbG93ZWQoKSBpbiAKcG93 ZXJwYyB1YWNjZXNzLmgKCj4gCj4gVGhhdCB3b3JrcyBmb3IgYm90aCBHQ0MgYW5kIGNsYW5nLgo+ IAo+IGNsYW5nOgo+IAo+ICAgYzgwOgkwZiAxZiA0NCAwMCAwMCAgICAgICAJICAgbm9wbCAgIDB4 MCglcmF4LCVyYXgsMSkJCj4gICBjODU6CTY1IDQ4IDhiIDBjIDI1IDAwIDAwIDAwIDAwIG1vdiAg ICAlZ3M6MHgwLCVyY3gKPiAgIGM4ZToJZmYgODEgMDQgMTQgMDAgMDAgICAgCSAgIGluY2wgICAw eDE0MDQoJXJjeCkJICAgLy8gcGZfZGlzYWJsZSsrCj4gICBjOTQ6CTMxIGMwICAgICAgICAgICAg ICAgIAkgICB4b3IgICAgJWVheCwlZWF4ICAgICAgICAvLyBzZXQgcmV0dmFsIHRvIGZhbHNlCj4g ICBjOTY6CTg5IDM3ICAgICAgICAgICAgICAgICAgICAgIG1vdiAgICAlZXNpLCglcmRpKSAgICAg IC8vIHdyaXRlCj4gICBjOTg6CWIwIDAxICAgICAgICAgICAgICAgIAkgICBtb3YgICAgJDB4MSwl YWwgICAgICAgICAvLyBzZXQgcmV0dmFsIHRvIHRydWUKPiAgIGM5YToJZmYgODkgMDQgMTQgMDAg MDAgICAgCSAgIGRlY2wgICAweDE0MDQoJXJjeCkgICAgIC8vIHBmX2Rpc2FibGUtLQo+ICAgY2Ew OgkyZSBlOSAwMCAwMCAwMCAwMCAgICAJICAgY3Mgam1wIGNhNiA8Zm9vKzB4MjY+ICAgLy8gcmV0 Cj4gCj4gVGhlIGV4Y2VwdGlvbiB0YWJsZSBlbnRyeSBwb2ludHMgY29ycmVjdGx5IHRvIGM5YQo+ IAo+IEdDQzoKPiAKPiAgIGY3MDogICBlOCAwMCAwMCAwMCAwMCAgICAgICAgICBjYWxsICAgZjc1 IDxiYXorMHg1Pgo+ICAgZjc1OiAgIDY1IDQ4IDhiIDA1IDAwIDAwIDAwIDAwIG1vdiAgICAlZ3M6 MHgwKCVyaXApLCVyYXgKPiAgIGY3ZDogICA4MyA4MCAwNCAxNCAwMCAwMCAwMSAgICBhZGRsICAg JDB4MSwweDE0MDQoJXJheCkgIC8vIHBmX2Rpc2FibGUrKwo+ICAgZjg0OiAgIDhiIDE3ICAgICAg ICAgICAgICAgICAgIG1vdiAgICAoJXJkaSksJWVkeAo+ICAgZjg2OiAgIDg5IDE2ICAgICAgICAg ICAgICAgICAgIG1vdiAgICAlZWR4LCglcnNpKQo+ICAgZjg4OiAgIDgzIGE4IDA0IDE0IDAwIDAw IDAxICAgIHN1YmwgICAkMHgxLDB4MTQwNCglcmF4KSAvLyBwZl9kaXNhYmxlLS0KPiAgIGY4Zjog ICBiOCAwMSAwMCAwMCAwMCAgICAgICAgICBtb3YgICAgJDB4MSwlZWF4ICAgICAgICAgLy8gc3Vj Y2Vzcwo+ICAgZjk0OiAgIGU5IDAwIDAwIDAwIDAwICAgICAgICAgIGptcCAgICBmOTkgPGJheisw eDI5PiAgICAvLyByZXQKPiAgIGY5OTogICA4MyBhOCAwNCAxNCAwMCAwMCAwMSAgICBzdWJsICAg JDB4MSwweDE0MDQoJXJheCkgLy8gcGZfZGlzYWJsZS0tCj4gICBmYTA6ICAgMzEgYzAgICAgICAg ICAgICAgICAgICAgeG9yICAgICVlYXgsJWVheCAgICAgICAgIC8vIGZhaWwKPiAgIGZhMjogICBl OSAwMCAwMCAwMCAwMCAgICAgICAgICBqbXAgICAgZmE3IDxiYXorMHgzNz4gICAgLy8gcmV0Cj4g Cj4gVGhlIGV4Y2VwdGlvbiB0YWJsZSBlbnRyeSBwb2ludHMgY29ycmVjdGx5IHRvIGY5OQo+IAo+ IFNvIGJvdGggY29tcGlsZXJzIG9wdGltaXplIG91dCB0aGUgZXh0cmEgZ290byBhbmQgZW1pdCBj b3JyZWN0IGFuZAo+IGVmZmljaWVudCBjb2RlLgogPiA+IFByb3ZpZGUgYSBnZW5lcmljIHdyYXBw ZXIgdG8gZG8gdGhhdCB0byBhdm9pZCBtb2RpZnlpbmcgYWxsIHRoZSAKYWZmZWN0ZWQKPiBhcmNo aXRlY3R1cmUgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gd2l0aCB0aGF0IHdvcmthcm91bmQuCj4g Cj4gVGhlIG9ubHkgY2hhbmdlIHJlcXVpcmVkIGZvciBhcmNoaXRlY3R1cmVzIGlzIHRvIHJlbmFt ZSB1bnNhZmVfKl91c2VyKCkgdG8KPiBhcmNoX3Vuc2FmZV8qX3VzZXIoKS4gVGhhdCdzIGRvbmUg aW4gc3Vic2VxdWVudCBjaGFuZ2VzLgo+IAo+IFN1Z2dlc3RlZC1ieTogTGludXMgVG9ydmFsZHMg PHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgo+IFNpZ25lZC1vZmYtYnk6IFRob21hcyBH bGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgoKUmV2aWV3ZWQtYnk6IENocmlzdG9waGUgTGVy b3kgPGNocmlzdG9waGUubGVyb3lAY3Nncm91cC5ldT4KCgo+IC0tLQo+ICAgaW5jbHVkZS9saW51 eC91YWNjZXNzLmggfCAgIDcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCj4gCj4gLS0tIGEvaW5jbHVkZS9saW51eC91YWNjZXNzLmgKPiArKysgYi9pbmNsdWRl L2xpbnV4L3VhY2Nlc3MuaAo+IEBAIC01MTgsNyArNTE4LDM0IEBAIGxvbmcgc3RybmNweV9mcm9t X3VzZXJfbm9mYXVsdChjaGFyICpkc3QKPiAgIAkJbG9uZyBjb3VudCk7Cj4gICBsb25nIHN0cm5s ZW5fdXNlcl9ub2ZhdWx0KGNvbnN0IHZvaWQgX191c2VyICp1bnNhZmVfYWRkciwgbG9uZyBjb3Vu dCk7Cj4gICAKPiAtI2lmbmRlZiBfX2dldF9rZXJuZWxfbm9mYXVsdAo+ICsjaWZkZWYgYXJjaF9n ZXRfa2VybmVsX25vZmF1bHQKPiArLyoKPiArICogV3JhcCB0aGUgYXJjaGl0ZWN0dXJlIGltcGxl bWVudGF0aW9uIHNvIHRoYXQgQGxhYmVsIGNhbiBiZSBvdXRzaWRlIG9mIGEKPiArICogY2xlYW51 cCgpIHNjb3BlLiBBIHJlZ3VsYXIgQyBnb3RvIHdvcmtzIGNvcnJlY3RseSwgYnV0IEFTTSBnb3Rv IGRvZXMKPiArICogbm90LiBDbGFuZyByZWplY3RzIHN1Y2ggYW4gYXR0ZW1wdCwgYnV0IEdDQyBz aWxlbnRseSBlbWl0cyBidWdneSBjb2RlLgo+ICsgKi8KPiArI2RlZmluZSBfX2dldF9rZXJuZWxf bm9mYXVsdChkc3QsIHNyYywgdHlwZSwgbGFiZWwpCQlcCj4gK2RvIHsJCQkJCQkJCVwKPiArCV9f bGFiZWxfXyBsb2NhbF9sYWJlbDsJCQkJCVwKPiArCWFyY2hfZ2V0X2tlcm5lbF9ub2ZhdWx0KGRz dCwgc3JjLCB0eXBlLCBsb2NhbF9sYWJlbCk7CVwKPiArCWlmICgwKSB7CQkJCQkJXAo+ICsJbG9j YWxfbGFiZWw6CQkJCQkJXAo+ICsJCWdvdG8gbGFiZWw7CQkJCQlcCj4gKwl9CQkJCQkJCVwKPiAr fSB3aGlsZSAoMCkKPiArCj4gKyNkZWZpbmUgX19wdXRfa2VybmVsX25vZmF1bHQoZHN0LCBzcmMs IHR5cGUsIGxhYmVsKQkJXAo+ICtkbyB7CQkJCQkJCQlcCj4gKwlfX2xhYmVsX18gbG9jYWxfbGFi ZWw7CQkJCQlcCj4gKwlhcmNoX2dldF9rZXJuZWxfbm9mYXVsdChkc3QsIHNyYywgdHlwZSwgbG9j YWxfbGFiZWwpOwlcCj4gKwlpZiAoMCkgewkJCQkJCVwKPiArCWxvY2FsX2xhYmVsOgkJCQkJCVwK PiArCQlnb3RvIGxhYmVsOwkJCQkJXAo+ICsJfQkJCQkJCQlcCj4gK30gd2hpbGUgKDApCj4gKwo+ ICsjZWxpZiAhZGVmaW5lZChfX2dldF9rZXJuZWxfbm9mYXVsdCkgLyogYXJjaF9nZXRfa2VybmVs X25vZmF1bHQgKi8KPiArCj4gICAjZGVmaW5lIF9fZ2V0X2tlcm5lbF9ub2ZhdWx0KGRzdCwgc3Jj LCB0eXBlLCBsYWJlbCkJXAo+ICAgZG8gewkJCQkJCQlcCj4gICAJdHlwZSBfX3VzZXIgKnAgPSAo dHlwZSBfX2ZvcmNlIF9fdXNlciAqKShzcmMpOwlcCj4gQEAgLTUzNSw3ICs1NjIsOCBAQCBkbyB7 CQkJCQkJCVwKPiAgIAlpZiAoX19wdXRfdXNlcihkYXRhLCBwKSkJCQlcCj4gICAJCWdvdG8gbGFi ZWw7CQkJCVwKPiAgIH0gd2hpbGUgKDApCj4gLSNlbmRpZgo+ICsKPiArI2VuZGlmICAvKiAhX19n ZXRfa2VybmVsX25vZmF1bHQgKi8KPiAgIAo+ICAgLyoqCj4gICAgKiBnZXRfa2VybmVsX25vZmF1 bHQoKTogc2FmZWx5IGF0dGVtcHQgdG8gcmVhZCBmcm9tIGEgbG9jYXRpb24KPiBAQCAtNTQ5LDcg KzU3Nyw0MiBAQCBkbyB7CQkJCQkJCVwKPiAgIAljb3B5X2Zyb21fa2VybmVsX25vZmF1bHQoJih2 YWwpLCBfX2drX3B0ciwgc2l6ZW9mKHZhbCkpO1wKPiAgIH0pCj4gICAKPiAtI2lmbmRlZiB1c2Vy X2FjY2Vzc19iZWdpbgo+ICsjaWZkZWYgdXNlcl9hY2Nlc3NfYmVnaW4KPiArCj4gKyNpZmRlZiBh cmNoX3Vuc2FmZV9nZXRfdXNlcgo+ICsvKgo+ICsgKiBXcmFwIHRoZSBhcmNoaXRlY3R1cmUgaW1w bGVtZW50YXRpb24gc28gdGhhdCBAbGFiZWwgY2FuIGJlIG91dHNpZGUgb2YgYQo+ICsgKiBjbGVh bnVwKCkgc2NvcGUuIEEgcmVndWxhciBDIGdvdG8gd29ya3MgY29ycmVjdGx5LCBidXQgQVNNIGdv dG8gZG9lcwo+ICsgKiBub3QuIENsYW5nIHJlamVjdHMgc3VjaCBhbiBhdHRlbXB0LCBidXQgR0ND IHNpbGVudGx5IGVtaXRzIGJ1Z2d5IGNvZGUuCj4gKyAqCj4gKyAqIFNvbWUgYXJjaGl0ZWN0dXJl cyB1c2UgaW50ZXJuYWwgbG9jYWwgbGFiZWxzIGFscmVhZHksIGJ1dCB0aGlzIGV4dHJhCj4gKyAq IGluZGlyZWN0aW9uIGhlcmUgaXMgaGFybWxlc3MgYmVjYXVzZSB0aGUgY29tcGlsZXIgb3B0aW1p emVzIGl0IG91dAo+ICsgKiBjb21wbGV0ZWx5IGluIGFueSBjYXNlLiBUaGlzIGNvbnN0cnVjdCBq dXN0IGVuc3VyZXMgdGhhdCB0aGUgQVNNIEdPVE8KPiArICogdGFyZ2V0IGlzIGFsd2F5cyBpbiB0 aGUgbG9jYWwgc2NvcGUuIFRoZSBDIGdvdG8gJ2xhYmVsJyB3b3JrcyBjb3JyZWN0Cj4gKyAqIHdo ZW4gbGVhdmluZyBhIGNsZWFudXAoKSBzY29wZS4KPiArICovCj4gKyNkZWZpbmUgdW5zYWZlX2dl dF91c2VyKHgsIHB0ciwgbGFiZWwpCQkJXAo+ICtkbyB7CQkJCQkJCVwKPiArCV9fbGFiZWxfXyBs b2NhbF9sYWJlbDsJCQkJXAo+ICsJYXJjaF91bnNhZmVfZ2V0X3VzZXIoeCwgcHRyLCBsb2NhbF9s YWJlbCk7CVwKPiArCWlmICgwKSB7CQkJCQlcCj4gKwlsb2NhbF9sYWJlbDoJCQkJCVwKPiArCQln b3RvIGxhYmVsOwkJCQlcCj4gKwl9CQkJCQkJXAo+ICt9IHdoaWxlICgwKQo+ICsKPiArI2RlZmlu ZSB1bnNhZmVfcHV0X3VzZXIoeCwgcHRyLCBsYWJlbCkJCQlcCj4gK2RvIHsJCQkJCQkJXAo+ICsJ X19sYWJlbF9fIGxvY2FsX2xhYmVsOwkJCQlcCj4gKwlhcmNoX3Vuc2FmZV9wdXRfdXNlcih4LCBw dHIsIGxvY2FsX2xhYmVsKTsJXAo+ICsJaWYgKDApIHsJCQkJCVwKPiArCWxvY2FsX2xhYmVsOgkJ CQkJXAo+ICsJCWdvdG8gbGFiZWw7CQkJCVwKPiArCX0JCQkJCQlcCj4gK30gd2hpbGUgKDApCj4g KyNlbmRpZiAvKiBhcmNoX3Vuc2FmZV9nZXRfdXNlciAqLwo+ICsKPiArI2Vsc2UgLyogdXNlcl9h Y2Nlc3NfYmVnaW4gKi8KPiAgICNkZWZpbmUgdXNlcl9hY2Nlc3NfYmVnaW4ocHRyLGxlbikgYWNj ZXNzX29rKHB0ciwgbGVuKQo+ICAgI2RlZmluZSB1c2VyX2FjY2Vzc19lbmQoKSBkbyB7IH0gd2hp bGUgKDApCj4gICAjZGVmaW5lIHVuc2FmZV9vcF93cmFwKG9wLCBlcnIpIGRvIHsgaWYgKHVubGlr ZWx5KG9wKSkgZ290byBlcnI7IH0gd2hpbGUgKDApCj4gQEAgLTU1OSw3ICs2MjIsOCBAQCBkbyB7 CQkJCQkJCVwKPiAgICNkZWZpbmUgdW5zYWZlX2NvcHlfZnJvbV91c2VyKGQscyxsLGUpIHVuc2Fm ZV9vcF93cmFwKF9fY29weV9mcm9tX3VzZXIoZCxzLGwpLGUpCj4gICBzdGF0aWMgaW5saW5lIHVu c2lnbmVkIGxvbmcgdXNlcl9hY2Nlc3Nfc2F2ZSh2b2lkKSB7IHJldHVybiAwVUw7IH0KPiAgIHN0 YXRpYyBpbmxpbmUgdm9pZCB1c2VyX2FjY2Vzc19yZXN0b3JlKHVuc2lnbmVkIGxvbmcgZmxhZ3Mp IHsgfQo+IC0jZW5kaWYKPiArI2VuZGlmIC8qICF1c2VyX2FjY2Vzc19iZWdpbiAqLwo+ICsKPiAg ICNpZm5kZWYgdXNlcl93cml0ZV9hY2Nlc3NfYmVnaW4KPiAgICNkZWZpbmUgdXNlcl93cml0ZV9h Y2Nlc3NfYmVnaW4gdXNlcl9hY2Nlc3NfYmVnaW4KPiAgICNkZWZpbmUgdXNlcl93cml0ZV9hY2Nl c3NfZW5kIHVzZXJfYWNjZXNzX2VuZAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtcmlzY3YK