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 1C96DECAAD1 for ; Tue, 30 Aug 2022 15:21:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8204C6B0074; Tue, 30 Aug 2022 11:21:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7CFF28D0001; Tue, 30 Aug 2022 11:21:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 696EC6B0078; Tue, 30 Aug 2022 11:21:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 5686C6B0074 for ; Tue, 30 Aug 2022 11:21:52 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 25B32A13BE for ; Tue, 30 Aug 2022 15:21:52 +0000 (UTC) X-FDA: 79856624064.20.36CFB34 Received: from mail-yw1-f175.google.com (mail-yw1-f175.google.com [209.85.128.175]) by imf06.hostedemail.com (Postfix) with ESMTP id C6081180036 for ; Tue, 30 Aug 2022 15:21:51 +0000 (UTC) Received: by mail-yw1-f175.google.com with SMTP id 00721157ae682-3413ad0640dso126142247b3.13 for ; Tue, 30 Aug 2022 08:21:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc; bh=uqfm/6R6fkKJnneVeLdLuiqY/mudrNlydjep/s3PwB8=; b=YBKdHJyH76npWUrSAFcUV5WdHEmW7p6mf76VnDUTwkYdX1Ctop0BxBlxjtklfAUy+L kGBJ/XLJfJkHwuol0EPZKeoZF4lnqtdCIt56B6sQCWHGkC8wz5dxGgeyn00uZPAjHoaV zx05izzXoEEVDbWnPO7oxx6V+hor5z4Eahig2z9dPJucnHAUz/Xxi52JnxQQpnLrPlt4 9RzApL6ulclDreuMV+yNVhRPd+Lqt22wNVo1grU99eXMre0PbMwYrp832TA+MkW/Nfeu fOfUuTNN7im+QkWFHQNh4Rexf2f4yOxB+nNzGhhY3RR0Q/LqPfKH/r3/yKosz34QywEy ooJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc; bh=uqfm/6R6fkKJnneVeLdLuiqY/mudrNlydjep/s3PwB8=; b=2Ou69JNE0nUDzMo0oNn09aziKThNE6fW8DCk3+JNhXyeFuIxZjtxYMv/ekjQy/5hk1 m82I0Cz0RzLyKLdc3M9tKoOM7+UBjZClwlhVzyGFNQeBa4XbnagdGp5akKdvvtyCe2wj UCJnZjnVaV4NwAJtXnMQZhlBeWpgY9GEQdwv5ZUEULJtmZvJGAytJS2ToUuS23848Aw/ CqfvYFAHyM9928c220RPryOa5xiov7RhbgG4vRs48y2Wmgc0Ke+A2mbrIJ2MLUpmRHe8 9WaGR7nlt4Km7Am1ADtw9pwYPZ/fbj5Vx/O3VVEnAtXsuAXzSLszUGm7f8z6W06q7WZT RE1Q== X-Gm-Message-State: ACgBeo1gKQTIPqLZlbs1AVZmVpdGZ4DrUIRDU8PTPcaArEQaLi5sKDHW l8n0c3StPr/aSfVLHjHPNOe9mT60GkmV+cbUF57AnA== X-Google-Smtp-Source: AA6agR76ifppksQ4LEuS/e9x46ItocAdXbDDSCTZn2SNIVT/gChusn8HH9OwXZXE65iVWnOTgRgUrmp5Y+UCuFj8ldc= X-Received: by 2002:a81:b71c:0:b0:340:bb98:fb38 with SMTP id v28-20020a81b71c000000b00340bb98fb38mr12971069ywh.428.1661872910913; Tue, 30 Aug 2022 08:21:50 -0700 (PDT) MIME-Version: 1.0 References: <20220826150807.723137-1-glider@google.com> <20220826150807.723137-5-glider@google.com> <51077555-5341-cf53-78bb-842d2e39d1ec@csgroup.eu> In-Reply-To: <51077555-5341-cf53-78bb-842d2e39d1ec@csgroup.eu> From: Alexander Potapenko Date: Tue, 30 Aug 2022 17:21:14 +0200 Message-ID: Subject: Re: [PATCH v5 04/44] x86: asm: instrument usercopy in get_user() and put_user() To: Christophe Leroy Cc: Alexander Viro , Alexei Starovoitov , Andrew Morton , Andrey Konovalov , Andy Lutomirski , Arnd Bergmann , Borislav Petkov , Christoph Hellwig , Christoph Lameter , David Rientjes , Dmitry Vyukov , Eric Dumazet , Greg Kroah-Hartman , Herbert Xu , Ilya Leoshkevich , Ingo Molnar , Jens Axboe , Joonsoo Kim , Kees Cook , Marco Elver , Mark Rutland , Matthew Wilcox , "Michael S. Tsirkin" , Pekka Enberg , Peter Zijlstra , Petr Mladek , Steven Rostedt , Thomas Gleixner , Vasily Gorbik , Vegard Nossum , Vlastimil Babka , "kasan-dev@googlegroups.com" , "linux-mm@kvack.org" , "linux-arch@vger.kernel.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1661872911; a=rsa-sha256; cv=none; b=mmheB/QCE5VigSu13rC3sbCS7ou/DO7u2d3o+7eWLWlyTnPO0CPo3pMaiIXyCDM6gE/fKF X7EpbJRXorXa10hKBQ3ZffAL5DBx6evHQe9pTMX1YTSChYqrLMUzn+kInqsQxryud2VvL0 1Ud6S0SRqsBXs+I/Q6lyANTU9qbfT4w= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=YBKdHJyH; spf=pass (imf06.hostedemail.com: domain of glider@google.com designates 209.85.128.175 as permitted sender) smtp.mailfrom=glider@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1661872911; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=uqfm/6R6fkKJnneVeLdLuiqY/mudrNlydjep/s3PwB8=; b=BEQQynIPLnMwJfIUbZDiPqNlQVtP5szleaTviV6+zeuSPjk6cxAnYyvWYTzgAXeHb68jVE usAYb1cR0yk3DG7JBbPTJxm37jURp0uNBgMTfyxpq2Ku2JhU32Ad+PjuxvAIx3d2e3hAsy q00dsV2mey+KV9fJgzRrvfljz0kNBSA= X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: C6081180036 X-Rspam-User: Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=YBKdHJyH; spf=pass (imf06.hostedemail.com: domain of glider@google.com designates 209.85.128.175 as permitted sender) smtp.mailfrom=glider@google.com; dmarc=pass (policy=reject) header.from=google.com X-Stat-Signature: ec498s8hjgbzeexwgyyz7bf3m9j5tsyz X-HE-Tag: 1661872911-540747 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: On Tue, Aug 30, 2022 at 5:06 PM Christophe Leroy wrote: > > > > Le 26/08/2022 =C3=A0 17:07, Alexander Potapenko a =C3=A9crit : > > Use hooks from instrumented.h to notify bug detection tools about > > usercopy events in variations of get_user() and put_user(). > > > > Signed-off-by: Alexander Potapenko > > --- > > v5: > > -- handle put_user(), make sure to not evaluate pointer/value twice > > > > Link: https://linux-review.googlesource.com/id/Ia9f12bfe5832623250e20f1= 859fdf5cc485a2fce > > --- > > arch/x86/include/asm/uaccess.h | 22 +++++++++++++++------- > > 1 file changed, 15 insertions(+), 7 deletions(-) > > > > diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uacc= ess.h > > index 913e593a3b45f..c1b8982899eca 100644 > > --- a/arch/x86/include/asm/uaccess.h > > +++ b/arch/x86/include/asm/uaccess.h > > @@ -5,6 +5,7 @@ > > * User space memory access functions > > */ > > #include > > +#include > > #include > > #include > > #include > > @@ -103,6 +104,7 @@ extern int __get_user_bad(void); > > : "=3Da" (__ret_gu), "=3Dr" (__val_gu), = \ > > ASM_CALL_CONSTRAINT \ > > : "0" (ptr), "i" (sizeof(*(ptr)))); \ > > + instrument_get_user(__val_gu); \ > > Where is that instrument_get_user() defined ? I can't find it neither in > v6.0-rc3 nor in linux-next. > > > (x) =3D (__force __typeof__(*(ptr))) __val_gu; = \ > > __builtin_expect(__ret_gu, 0); \ > > }) > > Christophe Yeah, as mentioned above, I should've put an empty declaration of it in include/linux/instrumented.h, but failed to. I'll fix this in v6. The "real" implementation of instrument_get_user() will appear in "instrumented.h: add KMSAN support" --=20 Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Stra=C3=9Fe, 33 80636 M=C3=BCnchen Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Liana Sebastian Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg