Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1383674pxb; Sun, 21 Feb 2021 23:42:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJzxO3iyxGeZPFS57fldQbRsJHttm90hNsjzW94cFa6Hp9iL9NCt4WASHO4wVNKGhA9KN0PL X-Received: by 2002:a50:d9cc:: with SMTP id x12mr21638554edj.68.1613979768457; Sun, 21 Feb 2021 23:42:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613979768; cv=none; d=google.com; s=arc-20160816; b=Gi1sl5AWy5xrGBgtEZUNJY2IDPP5qYVntB+A5kdD38sU87zp0POvto5s6lvAb/xPxs 3xj3oy9oJtRTsA/eq5JNcorwMB4zvXIR0pqTmoC03ljzn6sFMjjxQFwE7XDcJfIyWXD+ UCwrBxB/KZObr1ULiMOCXlAZIQ12jbwHzmftdXcqlYslxblkVNLiVJ3adeD/xsAfap3U Ph1akFw+NziOb262Z6J4XZjNlt3GZpi0m2+esi3o8TDgdPp4dqt+kDsX4XHgvjL2bpiE 6duI984YT9rkc4fPemuX4QR9eYgLix6++pamRSGqEkLw7Y95nhe09d6NmtBMNUhsaWBb AQMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=DA1rxnC139fkp05L9pB0MTnjTfTAu6RLwtL0vBni21U=; b=dQ7tdBI8RmS2U4yCZ2hcWxW6x5UMNtmi2iYzPMmAHllyopPfgrk4a1BPQ+yktsl8jD PLzlf+QX1OB8J3sXA+QOm8mF4huDarHp3hncKRRg733N7UNMSMKLDG3B1ofWb4EUwz9X K+jWUMuFgawDP0jpGjYrP2D0PA+A6Feg7iYCYBTow4CLxirp61pFo/fIe+85E4E1ahZO QdxqsYNO0hurG1ymRRIPnWSF58mvYQ0TZ/v79hj77s7kLhARsgWNPzJ2nBGXQ1kmMRFN wJTctTsSa8xqugeF+qYbtkKD4Xu5KJAdWnSemJB3+pQ1CypcHW97SWJL9LK/Cv3vkkeY 6+Ug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=nGMJCi59; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id qx15si11091792ejb.25.2021.02.21.23.42.26; Sun, 21 Feb 2021 23:42:48 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=nGMJCi59; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230185AbhBVHlw (ORCPT + 99 others); Mon, 22 Feb 2021 02:41:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56244 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230179AbhBVHlo (ORCPT ); Mon, 22 Feb 2021 02:41:44 -0500 Received: from mail-qt1-x829.google.com (mail-qt1-x829.google.com [IPv6:2607:f8b0:4864:20::829]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 61804C061786 for ; Sun, 21 Feb 2021 23:41:04 -0800 (PST) Received: by mail-qt1-x829.google.com with SMTP id c1so8644771qtc.1 for ; Sun, 21 Feb 2021 23:41:04 -0800 (PST) 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=DA1rxnC139fkp05L9pB0MTnjTfTAu6RLwtL0vBni21U=; b=nGMJCi599OHaEdNZ7F43xUzzmAXDfVdQdevDDxZSt5NjkfL4LbvGXHAeJeiAUjEMi8 b0R4hhKY1/Cphtdr0MlSZiSRPN/DGgc2HlwkLxpRZvdjvyWeOGzu9dAd3ZSvDt6uRAKO RZ8sM752Ey3Ypv4veCTldoJuGk9Fpgk5NIRlUoDZw3fxcvKbe7UEGvPJiZJheb1Qrkfw 6XXMjuAj0xLP31uoZcbem8bWq6LziPqzDTutOl1wx1dApsrSGKZgkHzCxuvnDV9J+8pg duw6CKmByxa8vExGrFIiYIxwSSLlwjO5G9TX0eswcM9w+4ir6gkTXgDwlXoK7UL4C6cb MtdQ== 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=DA1rxnC139fkp05L9pB0MTnjTfTAu6RLwtL0vBni21U=; b=gCA7WA9EuRZc3JY/tgHPTShGRj5V/ucE7zC5134brBMs4aeq4OXD9jS/7VpMUZXWlX lnbZ9HnT9nMyn/DudJm7sNiPgu0NSqQ8D5ms4D2nhGZsBXsoKExfi2G5BDQxsvJF9jEz vDgHnpC15IRF0GmP3clCwHISYEFfqeU9s9uCQ48osrhoGrb10A0TykgE4itfrrhJOS/M tPwZETvtm1zgM7YDzXduvcAMfzER6mOjQ2tH3Zx8Bb2ICPZm3geSSs9FJ6j9cJrG/9Gb aRgQjAszR7R0+iXUB5OLEmbn5uD1FnK0fvrbYYS3ED3cef+neY1abWrfdfIpCkcOjcyC N/SQ== X-Gm-Message-State: AOAM532ElkgIdOgn14o4ndILmaiwJ5Y6z7bHacZpAeVYpWMmN4Mt06Ne +29tGTzOFNYA02DBXhqVG3XX8tuhY70RDiZUDUOQCA== X-Received: by 2002:ac8:7514:: with SMTP id u20mr19064148qtq.66.1613979663168; Sun, 21 Feb 2021 23:41:03 -0800 (PST) MIME-Version: 1.0 References: <1613971347-24213-1-git-send-email-daizhiyuan@phytium.com.cn> In-Reply-To: <1613971347-24213-1-git-send-email-daizhiyuan@phytium.com.cn> From: Dmitry Vyukov Date: Mon, 22 Feb 2021 08:40:51 +0100 Message-ID: Subject: Re: [PATCH] mm/kasan: remove volatile keyword To: Zhiyuan Dai Cc: Andrey Ryabinin , Alexander Potapenko , Andrey Konovalov , Andrew Morton , kasan-dev , Linux-MM , LKML Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Feb 22, 2021 at 6:22 AM Zhiyuan Dai wrote: > > Like volatile, the kernel primitives which make concurrent > access to data safe (spinlocks, mutexes, memory barriers, > etc.) are designed to prevent unwanted optimization. > > If they are being used properly, there will be no need to > use volatile as well. If volatile is still necessary, > there is almost certainly a bug in the code somewhere. > In properly-written kernel code, volatile can only serve > to slow things down. > > see: Documentation/process/volatile-considered-harmful.rst Nack. This function does not require volatile variables. It uses volatile in the same way as C/C++ atomic functions -- it only supports operating on volatile variables. The same meaning as for const here. Such functions need to use all possible type modifiers to support all possible uses. Anyway, the function is declared in kasan.h. So you would need to change the signate there in the first place. But the kernel will either not compile, or it won't compile in future when somebody adds __kasan_check_read/write for a volatile variable. Such a change first requires removing all volatile uses from the entire kernel and banning volatile. > Signed-off-by: Zhiyuan Dai > --- > mm/kasan/shadow.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c > index 7c2c08c..d5ff9ca 100644 > --- a/mm/kasan/shadow.c > +++ b/mm/kasan/shadow.c > @@ -25,13 +25,13 @@ > > #include "kasan.h" > > -bool __kasan_check_read(const volatile void *p, unsigned int size) > +bool __kasan_check_read(const void *p, unsigned int size) > { > return check_memory_region((unsigned long)p, size, false, _RET_IP_); > } > EXPORT_SYMBOL(__kasan_check_read); > > -bool __kasan_check_write(const volatile void *p, unsigned int size) > +bool __kasan_check_write(const void *p, unsigned int size) > { > return check_memory_region((unsigned long)p, size, true, _RET_IP_); > } > -- > 1.8.3.1 >