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 X-Spam-Level: X-Spam-Status: No, score=-14.4 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 345C2C54FCB for ; Thu, 23 Apr 2020 19:21:03 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id D83C72075A for ; Thu, 23 Apr 2020 19:21:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="I0nLtvWH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D83C72075A Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 7BBD58E0009; Thu, 23 Apr 2020 15:21:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 745228E0003; Thu, 23 Apr 2020 15:21:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 60C8E8E0009; Thu, 23 Apr 2020 15:21:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0063.hostedemail.com [216.40.44.63]) by kanga.kvack.org (Postfix) with ESMTP id 45E808E0003 for ; Thu, 23 Apr 2020 15:21:02 -0400 (EDT) Received: from smtpin07.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id F2D8C180AD822 for ; Thu, 23 Apr 2020 19:21:01 +0000 (UTC) X-FDA: 76740087522.07.paper25_60402e02a260f X-HE-Tag: paper25_60402e02a260f X-Filterd-Recvd-Size: 6390 Received: from mail-pj1-f66.google.com (mail-pj1-f66.google.com [209.85.216.66]) by imf16.hostedemail.com (Postfix) with ESMTP for ; Thu, 23 Apr 2020 19:21:01 +0000 (UTC) Received: by mail-pj1-f66.google.com with SMTP id a7so2911981pju.2 for ; Thu, 23 Apr 2020 12:21:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=r+XVz7f29swK0yO7cjpo/Es+pKdUFMALTAFzE9aGCwY=; b=I0nLtvWHbQwPVfQCX+1jxmgB1aKssTBo0TKBM/EcabWzFh9Nk2Wo1unB0kNvvg/nGM m2dEEt48rcn79mDH3oooPQWhXYlW5SnbLR3WvzvkSWHhI6bIvj8UMXCXuE7R2ifcSGWq 1YMR8n+TW586bTXpz+f7huLNJcZWvssuk2adxoZPu/Ztwbq7Qnrs+5GfdYQdWpVwSxpP cJmjOuMdk5BEDlSZkq2bH4qzxJT8ybpH4SQr1Jin7FS5x2P4ZHcSJzSu5oYR7UUJkR9C c/2GkS4JoauePHHQvigoUX+TNrlkTsZhHrCG+a2slfELfUdgoJRbo/n6tmH5rG6Y9osF QmPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=r+XVz7f29swK0yO7cjpo/Es+pKdUFMALTAFzE9aGCwY=; b=G1kRL91PT4YSs0lf0oLIKSF7mlSwHqWNjP3qXa6PGo12bCrLZeLko9Kz2+Hw7PlV/a snC+IB5POCm40ZkxAGI3nu0ksXq0VeXLTHmu/deW/d4SNqWnM4hFg0dZkcNUQyAa7cYz nTiXPUiQppEJb8UwDOzTI8MNJKVmBNtv+CozlO5XUj6310VfPsPDuv2zgGvHY3JyRFN3 mJGgzJd2TUgVBzDOyWTDm7w0B81UE8ll11Qutg9HUkILeRtVH5TSR3y9qqcW9XrJ5NMR +IUQY8C7Rr8ArgRJpt135BGogNbf+aKKm+OGcb2mC0Lo9uMLshZQeS/p/RsivGThcLvZ VFwA== X-Gm-Message-State: AGi0PubLFLy5xnM5mE6Sobj5xJRvgfsj6W/PmufgmrzpOWKGSRu+N9jf IVX73lUw8J0WE/OHFm9MkwTUYMqa7AUefNT7aBgS/A== X-Google-Smtp-Source: APiQypK9bawJoPt+QpO4q66Of/qs0w4bm8tjLMCgNrUbCjhFS2IIX8nJ1fqlKLGQUYWA+d74KS9w1CPqBRVLuwdlRXU= X-Received: by 2002:a17:902:4c:: with SMTP id 70mr5113078pla.336.1587669660184; Thu, 23 Apr 2020 12:21:00 -0700 (PDT) MIME-Version: 1.0 References: <20200325161249.55095-1-glider@google.com> <20200325161249.55095-11-glider@google.com> In-Reply-To: <20200325161249.55095-11-glider@google.com> From: Andrey Konovalov Date: Thu, 23 Apr 2020 21:20:49 +0200 Message-ID: Subject: Re: [PATCH v5 10/38] kmsan: define READ_ONCE_NOCHECK() To: Alexander Potapenko Cc: Mark Rutland , Vegard Nossum , Dmitry Vyukov , Marco Elver , Linux Memory Management List , Alexander Viro , Andreas Dilger , Andrew Morton , Andrey Ryabinin , Andy Lutomirski , Ard Biesheuvel , Arnd Bergmann , Christoph Hellwig , Christoph Hellwig , "Darrick J. Wong" , "David S. Miller" , Dmitry Torokhov , Eric Biggers , Eric Dumazet , Eric Van Hensbergen , Greg Kroah-Hartman , Harry Wentland , Herbert Xu , Ilya Leoshkevich , Ingo Molnar , Jason Wang , Jens Axboe , Marek Szyprowski , "Martin K. Petersen" , Martin Schwidefsky , Matthew Wilcox , "Michael S . Tsirkin" , Michal Hocko , Michal Simek , Petr Mladek , Qian Cai , Randy Dunlap , Robin Murphy , Sergey Senozhatsky , Steven Rostedt , Takashi Iwai , "Theodore Ts'o" , Thomas Gleixner , Vasily Gorbik , Wolfram Sang Content-Type: text/plain; charset="UTF-8" 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 Wed, Mar 25, 2020 at 5:13 PM wrote: > > READ_ONCE_NOCHECK() is already used by KASAN to ignore memory accesses > from e.g. stack unwinders. > Define READ_ONCE_NOCHECK() for KMSAN so that it returns initialized > values. This helps defeat false positives from leftover stack contents. > > Signed-off-by: Alexander Potapenko > To: Alexander Potapenko > Cc: Mark Rutland > Cc: Vegard Nossum > Cc: Dmitry Vyukov > Cc: Marco Elver > Cc: Andrey Konovalov > Cc: linux-mm@kvack.org Reviewed-by: Andrey Konovalov > --- > v3: > - removed unnecessary #ifdef as requested by Mark Rutland > v4: > - added an #include as requested by Marco Elver > > Change-Id: Ib38369ba038ab3b581d8e45b81036c3304fb79cb > --- > include/linux/compiler.h | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/include/linux/compiler.h b/include/linux/compiler.h > index f504edebd5d71..c6c67729729e3 100644 > --- a/include/linux/compiler.h > +++ b/include/linux/compiler.h > @@ -279,6 +279,7 @@ void __write_once_size(volatile void *p, void *res, int size) > */ > #include > #include > +#include > > #define __READ_ONCE(x, check) \ > ({ \ > @@ -294,9 +295,9 @@ void __write_once_size(volatile void *p, void *res, int size) > > /* > * Use READ_ONCE_NOCHECK() instead of READ_ONCE() if you need > - * to hide memory access from KASAN. > + * to hide memory access from KASAN or KMSAN. > */ > -#define READ_ONCE_NOCHECK(x) __READ_ONCE(x, 0) > +#define READ_ONCE_NOCHECK(x) KMSAN_INIT_VALUE(__READ_ONCE(x, 0)) > > static __no_kasan_or_inline > unsigned long read_word_at_a_time(const void *addr) > -- > 2.25.1.696.g5e7596f4ac-goog >