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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76A52C63797 for ; Thu, 12 Jan 2023 19:57:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6940B8000A; Thu, 12 Jan 2023 14:57:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 61C2B80009; Thu, 12 Jan 2023 14:57:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3AC278000A; Thu, 12 Jan 2023 14:57:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 2D72180009 for ; Thu, 12 Jan 2023 14:57:30 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 0B8C4140E01 for ; Thu, 12 Jan 2023 19:57:30 +0000 (UTC) X-FDA: 80347206660.10.63BF0B6 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf21.hostedemail.com (Postfix) with ESMTP id CB9471C0015 for ; Thu, 12 Jan 2023 19:57:27 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=BJ9XJoRA; spf=none (imf21.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673553448; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:references:dkim-signature; bh=tM6S3oZ3zLjQ2zmmTNKitB7HqpfpXnjxYwChM2FqbVs=; b=yaItNNhJzzWd9zB/lGBPty/kQx5Ycg/HhSYOuw4z+no1ayfrvYgtcmOw0cwRcL9DpEsZda KKw6uinBFhNVjVIi5Kt+Rqa7xJuLztIEqxNe70fyJX8GF2qcnU0HApksFArH7ruEqMyyLF wiznABh76Jq1Jl9ZU0NmbmL/z2HzHxk= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=BJ9XJoRA; spf=none (imf21.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673553448; a=rsa-sha256; cv=none; b=N0mlLKEYWeD0PASC4VlQAU6vc7074z5CRThn+oL+wms1FNa9Q0HOIX2Kd1aRsW8Q4XNCFI MGRKyVlCYHcxycIs93p/J0SsgNX4Wq3+4CgdLHLtFCtEwWvZolL2DXdHqC28DRE0WRJAAV tLLZbK511mkY+oa7YdASF145fYTn850= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Type:MIME-Version:References: Subject:Cc:To:From:Date:Message-ID:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:In-Reply-To; bh=tM6S3oZ3zLjQ2zmmTNKitB7HqpfpXnjxYwChM2FqbVs=; b=BJ9XJoRA5PVXo6NmK1y1j4mgxX DGfe1Ta896F3qkk57KxqOit856Whx7pXr9WTIch0khohftRzZ6nkeSuCiqiAyMa3qg2JMRqTwkdcK SZHkiVrlqToqnjdTi1BQtMwas89d1b41aRk7eR9kktg5N/gi7TNwV9TPbfoKKOtW1UuX+e5CZ4VVW USTGfBuu27oryL5tL5ug+EeZMBWzLYDuLZxBl37/OJYoY11N2gX+VEM60a0w4sEUZTi5GdGd5oNiD v4tH8MxJ/EqxydLuQw6fRM3cmCP9pHy61QtCS2aoYs8Sik/mr9QPx70CAPy2SGTADTK3V7C39icf4 nbFCLrEQ==; Received: from j130084.upc-j.chello.nl ([24.132.130.84] helo=noisy.programming.kicks-ass.net) by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1pG3hh-005Okk-PF; Thu, 12 Jan 2023 19:57:37 +0000 Received: from hirez.programming.kicks-ass.net (hirez.programming.kicks-ass.net [192.168.1.225]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by noisy.programming.kicks-ass.net (Postfix) with ESMTPS id 0B5C030346C; Thu, 12 Jan 2023 20:57:14 +0100 (CET) Received: by hirez.programming.kicks-ass.net (Postfix, from userid 0) id 573AE2CD066CC; Thu, 12 Jan 2023 20:57:08 +0100 (CET) Message-ID: <20230112195541.906007455@infradead.org> User-Agent: quilt/0.66 Date: Thu, 12 Jan 2023 20:43:56 +0100 From: Peter Zijlstra To: peterz@infradead.org Cc: richard.henderson@linaro.org, ink@jurassic.park.msu.ru, mattst88@gmail.com, vgupta@kernel.org, linux@armlinux.org.uk, nsekhar@ti.com, brgl@bgdev.pl, ulli.kroll@googlemail.com, linus.walleij@linaro.org, shawnguo@kernel.org, Sascha Hauer , kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, tony@atomide.com, khilman@kernel.org, krzysztof.kozlowski@linaro.org, alim.akhtar@samsung.com, catalin.marinas@arm.com, will@kernel.org, guoren@kernel.org, bcain@quicinc.com, chenhuacai@kernel.org, kernel@xen0n.name, geert@linux-m68k.org, sammy@sammy.net, monstr@monstr.eu, tsbogend@alpha.franken.de, dinguyen@kernel.org, jonas@southpole.se, stefan.kristiansson@saunalahti.fi, shorne@gmail.com, James.Bottomley@HansenPartnership.com, deller@gmx.de, mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@csgroup.eu, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, ysato@users.sourceforge.jp, dalias@libc.org, davem@davemloft.net, richard@nod.at, anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org, namhyung@kernel.org, jgross@suse.com, srivatsa@csail.mit.edu, amakhalov@vmware.com, pv-drivers@vmware.com, boris.ostrovsky@oracle.com, chris@zankel.net, jcmvbkbc@gmail.com, rafael@kernel.org, lenb@kernel.org, pavel@ucw.cz, gregkh@linuxfoundation.org, mturquette@baylibre.com, sboyd@kernel.org, daniel.lezcano@linaro.org, lpieralisi@kernel.org, sudeep.holla@arm.com, agross@kernel.org, andersson@kernel.org, konrad.dybcio@linaro.org, anup@brainfault.org, thierry.reding@gmail.com, jonathanh@nvidia.com, jacob.jun.pan@linux.intel.com, atishp@atishpatra.org, Arnd Bergmann , yury.norov@gmail.com, andriy.shevchenko@linux.intel.com, linux@rasmusvillemoes.dk, dennis@kernel.org, tj@kernel.org, cl@linux.com, rostedt@goodmis.org, mhiramat@kernel.org, frederic@kernel.org, paulmck@kernel.org, pmladek@suse.com, senozhatsky@chromium.org, john.ogness@linutronix.de, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, vschneid@redhat.com, ryabinin.a.a@gmail.com, glider@google.com, andreyknvl@gmail.com, dvyukov@google.com, vincenzo.frascino@arm.com, Andrew Morton , jpoimboe@kernel.org, linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-omap@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org, loongarch@lists.linux.dev, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, openrisc@lists.librecores.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-perf-users@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-xtensa@linux-xtensa.org, linux-acpi@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-tegra@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org, kasan-dev@googlegroups.com, "Rafael J. Wysocki" , Ulf Hansson Subject: [PATCH v3 42/51] ubsan: Fix objtool UACCESS warns References: <20230112194314.845371875@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: CB9471C0015 X-Rspam-User: X-Stat-Signature: uii1px47azmx98oaymxrs6n5f7txwy3a X-HE-Tag: 1673553447-149418 X-HE-Meta: U2FsdGVkX19oIBKnVwTC0r7ublKo9inQkd2EoeTD2cLZWYuEkXF6EIdDsJLPaSbrVQDf9RNHB5J5SiySXmjCx0ao/cLlggBceJqPynL2yLbqK50chySGtIHP0pa6VCX8LI5O0WuEt3OP9hv5wmt86E6O3WiRXkZ+K7xCGx7VjDG1B44huLkZtQJnAqmR/WK3s7QoJusHcg5TvFlWslGoDcefy+e0LmY7Yd0rIcx++H7AfH6N4dT9AC9+GQeDCS71GXafFZuVF/8txJT/Ki6tEuJGEiMp8UdNbPj3q7aYZU/Cd/7JzxQnMkOlrcucTyyvvHLQmc8XakNRdYfs8Zsi3RG1m3UYMGd88umAUavQHmnvSF+gEiJcT07MSXlfNyfgyEXlFicFV6gisjibVo5VV/Zr3dKPLpnhnqD8esq3irE7SOXw/6j8SbBOLHHCVe0bZGee2Tk/53hOy93h5P9LstLbch1Bt6MEgjAJEbejnOYVMDl+vXxWjqZtPug28a7Nwl4L5o+hp7+0AMgzXz6vD2zo8hHenxpIcqnEgEnYE7OWHdXS0yVsBj77Qi8PBqUfYTL3kXQcUvs+rYjaWVFNiIyserh9H4RW9ZftjcXvx5pBpqVtFxMGB4gk2m8bR7e0Xsmn9FsbPajII+tTYS2y03eHwaoxqOvCBjEH3FqmU+xbtaRFiOMglrPjCFV3vjMMvX0HSmV5VRQyDzb8VrU2dzDtpcG91JFYmxTvrKm4135Jr5hxlpKqm54Ubrn3xFdXD0zhNdDhzbIBkEcStvnPR9rRPM/BMo8jnUiHK+Qa63hz6z6cSnUpB3wYkEBEvc8vZWP5oomDZMW11uJkgsMZu/DMCuLDqHtOuozzIkkctscKjqQeXuUAmBIkGvWvxpteZYWvXWldWINvRAQgEU5fKC7LQJfP7lJ48X2Vgvl/Ofq0qqJ7lSC8rNW/FbXflX2nUiyxGJ5cnDpdXTJUuL/ CdgBckgy aZjaQmzmKcl4Iqf/Yu+49C6GHl8hIXziPo66umOUsFDZ/uSCYKKjM+3BdSrTnIr83+vtFlwkgwWC0cPeGqXyMtijQAZV1VJRfuBRVP9Uf7zARvJm/fNNf9Bw1YptdcGX/NVLjKOeEWdSZL3SyfEUlE8lBjDuFe7ZWORSrmuDGanj4OtrXt+1+4fOsPkmSpwTr0gJr7BhAsgVRh5BaFrT/POlv6ismUnb+TSq1JhmLe2aWcya3wyVzjxvCP/Gptd0NqGoinmBWSLlnHF6M0E8xnrkn16js5TOSGYK1VLTs9p2uMihOk/lCwq0v+eIsrHXBiWCCEAa4EQ37HPE9+VsnOWeMuOQEgCCcM54Hr1xLjLYBMiY3rwtryKpZ/ujmZcdLBUeHXYsXc9RcmtQ0H2cZgoEKBOpk/S/IDZcShwC4PxnIxZG3lGKVCSKzt3QBsBaDLdKh4iPg3Bsyv+Xp9s0FpvLooFFKLD2Zgtp/D0fc9HGpPmF/I7pWtCBoSUcUVFCEHWvj461U4zBSQyOWZbThcMs9qwZd3AJRxw3me+A1H4+Y+NaIB6NlEPg2eCTGzfmu9xpdDKw3DtmVlAm7Pu0AWaE2RKCFD3+rpfwY93lyJteXZf+zH22wdt21duJC52IlOwQvjI76tMarkAtdeG7s++RuphUkvNTJVb/BsN8uQUTCH/Lkk+lUPXXCjYO35M106pLYO3V3wK1PAXeAeICNTALwriKvdN2PKKcQmORYDYLacXnQlXCwkAnuj5gkK5PvQtr/2NEFB5OnkeHmqodXoVvzrvXamZ6gCdubQnhEZeppuFCqXiqfr7NxBqNp93I+K/kue+fskf2oTdmDQUpqLX6rPfFEgdfB+WV0TpCFCRJVZ2VC30Y75Xm3y7ZXfR+/ztP7pAIx+jWZDG/uPK2tt50HtI5iETf//nA2uGa4AXhoYz8lRndAnUTiFbWDvt6v0ANd20dLh3lJ4seDGWQpfReLzrqr KUry9VSg 27QfpMWzVtuFN59DbeP6/9i7/rCt72yYKvRS1UMd37h5hwbLYwzuBla+YgQGPZM40doaM9tPrFZxCB/vk89TbbIWS2L5aDu/uxtvZJcDR/YvMZTYppLn7vs/sT50TPbp1HoM3SQmhsmy21BW+8Tfnopo0SVtDj/1OqTG5qjO1QfGrvlZn02swm6ACZEbG7aUSEUBI155eT5P4u3hEkPVuoiy5OgKc5ptx4vA4pLB7JR6M4VFyy+BLunQmMQuAQXWwK7iC21c1pNDpWhA62kuusQvdGDFgN2GPtFZxgvMrY8/csiDWczpv5fZG8BKPt8SWl1rBD3+czvCU5t/EFrbrwgQB27ZJo9aQuy3Hjb611O2DJC0BCx0dikIXrGinwt3AnMPCSB4NWfwf2TUkyojOoQ+rJmJznbEM7DAOV5Ar+rgNJBdJisgj+QLpe5HtyNUwktWMu84/84yKvqEswJ9OcUlNAbR1xmTDTIm1dhVM8HUvmzqI2Gp4mpsoqDl4oF+/uXa5bZPFazxiLrJrrSZIdHL21L6O3SIF+S8j4U/JRCFH8Uahpb7+xcpszXG/n7wS2Ovot75EbnRemtnJFVNtK1Hzagf0XcmZrkUCk6zU7lNUpPTZPnfAjd85acAxe4NbT/4tgBEl2ZeM9w4I2bz6cWbIbSGem21VWIiXGS/69phsgK+rzz+5+9Am/0+MxzLs0esAzre1n4wwucL/n8xmNE0r1ZzY3XP1Gi06WupfRamgOw8+6FasamRF4CcYXC5D/RCyni7a23SooRllKeYmPk7zmRn7l1H395/FXWVp4liU/sBLDhs229EpG4fMvklOEAaZXWkAziy/iLoM97Zg13BqpaWkP77bt708KKCyfRXC+7xB1csGwhLPdDlbTYPtsIEXBbGc+PeH1tPUcGDh28wh3PukEOkei/XafAw4PtoEI9H2BLXrvpXrArvTBaHgnXYswDDbjoRmDveatFCUiqLst74n j0+12/IW 1t2+qxukQsKUKv4Uj/5mTEOUvewf+8UepIvl4U1crlaJ8GR4czLU5k5KicUgObd+UWpzeAkVposj1MYiJ7InLKKcnBsWbO8nOjci8LSXJe3sTFQYOHCY1unEFxK32ZFwxfYTyjbx9v/fcpG0D474iVuhTVw2vl75Mqx+j8c3tN83b6vyf8qcwxPl4ZOt5KBKuMG2AG7HLIZPTFMwQs4lvRoo/a3pf4kATgjtLn6Vn7b7N/eXPWLs7gjYBItffvrH20DjKR4TohAlQJnTLZfrN2z+/jeOF9lMc8ZRlZgmYXWQ/tOtd/OFvTdOWag4kuFRyKgLCfqpXC3CbKvGTgzpiID0SGc8G7FNhXMiPwqcWOjkR3krjYGqffIq8t1gptCQGRfZ5vYq/wxktwBEh6k+yQpeeS6eHWSaSrMQ7daW0sAHquIGA6EilScg2biNKps8m+ThBgzCdY8EYGpl2qqmxac0JC1Fxb8/LeIB1F0idZANsvs922dkAMMBxG/8rx5r860XsidBCKR9BamqHW4KPg8YyEQiflVLyLAGGiNwACKGcy2tHUCG1h8qmQetyhYJWlcGzRgS75kekbzvL74e3/vsMyOsSVi94rgjRlUl3H9sy12j5zMRaKi4VvBfw9RR//9DSHXVosDa05DFu90fSGgT+NS3MPP+yXrXIqPpMtc22JLHbiKCKuA8WGQARiMolRZy7QX7agSY0qAr8Uc45izIMom97wbl5VlLVP+GOSFBpgoOF7ZXRdf7w/bzCUEsmfks2WPFn7fd4moV5BaS2zfg5brUrnpJad3/VlnGlZHFj+JUAMOkA3BdeyRkS+KIzVbWQoUqNRpFAkp2G4JPgQ2+zOC4euiV+P15Oio65EWv3bWvBNx6xGRuJ1sGTust1N+DxP4iNyKiQFOPrdt6GNJ4breeMLYXAW0boqKqARCK211ELrMyxO7ANBJviP/Qd9xrMNtcCTvs/KLxnA6ikfcK1anBr iDZZBJC9 2017dJU25RK9hoVRJ8SBAPFSrBId7Wn3X8ZxkhVq1mS3Dt7xoDzEAjTR1JkDU4XaU27k5SjUirEmOAPKQhQTRxDlcppbgGuXIiC06HVPnpxw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: clang-14 allyesconfig gives: vmlinux.o: warning: objtool: emulator_cmpxchg_emulated+0x705: call to __ubsan_handle_load_invalid_value() with UACCESS enabled vmlinux.o: warning: objtool: paging64_update_accessed_dirty_bits+0x39e: call to __ubsan_handle_load_invalid_value() with UACCESS enabled vmlinux.o: warning: objtool: paging32_update_accessed_dirty_bits+0x390: call to __ubsan_handle_load_invalid_value() with UACCESS enabled vmlinux.o: warning: objtool: ept_update_accessed_dirty_bits+0x43f: call to __ubsan_handle_load_invalid_value() with UACCESS enabled Add the required eflags save/restore and whitelist the thing. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Rafael J. Wysocki Acked-by: Frederic Weisbecker Tested-by: Tony Lindgren Tested-by: Ulf Hansson --- lib/ubsan.c | 5 ++++- tools/objtool/check.c | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) --- a/lib/ubsan.c +++ b/lib/ubsan.c @@ -340,9 +340,10 @@ void __ubsan_handle_load_invalid_value(v { struct invalid_value_data *data = _data; char val_str[VALUE_LENGTH]; + unsigned long ua_flags = user_access_save(); if (suppress_report(&data->location)) - return; + goto out; ubsan_prologue(&data->location, "invalid-load"); @@ -352,6 +353,8 @@ void __ubsan_handle_load_invalid_value(v val_str, data->type->type_name); ubsan_epilogue(); +out: + user_access_restore(ua_flags); } EXPORT_SYMBOL(__ubsan_handle_load_invalid_value); --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -1068,6 +1068,7 @@ static const char *uaccess_safe_builtin[ "__ubsan_handle_type_mismatch", "__ubsan_handle_type_mismatch_v1", "__ubsan_handle_shift_out_of_bounds", + "__ubsan_handle_load_invalid_value", /* misc */ "csum_partial_copy_generic", "copy_mc_fragile",