Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp1322990ybk; Thu, 21 May 2020 04:12:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw7WqdlPJOtDT7xRc8tMtYaVdwAF+0WjyGWBs2xKlMlPDWIcThn0W8wQCoaF1t1BZaPfxc9 X-Received: by 2002:a17:906:2ad4:: with SMTP id m20mr3095940eje.324.1590059536934; Thu, 21 May 2020 04:12:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590059536; cv=none; d=google.com; s=arc-20160816; b=QWZNA1vLrZIJMHuyvBj/pMCpIu4/L3Ax5qtVXs5omS4Muu1sToTctFLo1Q2YRtynVN N/7GrvMLifSdf448kn7KI0hcelEzooBTOP2x/M6MoYq4CxYPqOK+5jw2aoPJeaHN8OKS /9ok6nNXpVueLleEaUH3DC9eMZL4QzS+ya78b9RFUuF/pMb7u7aGq0BMZWyuhIrXmSU8 4CLB9AOEgAlyQ2JGkmuAgIm4iRrWpU8j8z3c5cziLLTMqGGzRZ7D9iag8LOr8DlvzvPo 4IdqdUmC4TRaXRFdvkhPqYKWf78pOTuZ/GJhvRTvSd5j1jvdSjAPPgJi0nakrxlaUxLp e0IQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:references :mime-version:message-id:in-reply-to:date:dkim-signature; bh=YxAJO5zjAlDcESQjL2hotUlRyCYCv27YW58n87FzjMM=; b=s0LMb9v7Q/p0G5yz4cS4Irtr36IPoDkRQHrhTGoRY/jdW4oohQYSZNKmWAU47YP+KO Wl1QBh/q5kNn2K6Op9NEbxc7QHIj1rHLyCih+UA+IdUDQl9cwHoCuVujOWgkx7B8wrKp waLY8CjAGJnykkCKU+0gGy0GJdYxlaJlGvnaxAfSyYwncBVkpRsM9e7qmgNi8ctGoA9x eZmBFodnz+lOLa4MBzQ/tZMEla/2/xEkKW2GKWqoCtYSNhJS/lzAQm/weqzSXq4noJ4E i/iWOGYx7zuTVXjaaypFsKxiZgSSCe7S2ABnMQHJBkfDo2HeGLIP8wyqg6RRk51vaW7u H/hw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=LW0ey+ZE; 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 i18si3247077ejk.81.2020.05.21.04.11.54; Thu, 21 May 2020 04:12:16 -0700 (PDT) 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=LW0ey+ZE; 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 S1729148AbgEULKP (ORCPT + 99 others); Thu, 21 May 2020 07:10:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52084 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729140AbgEULKL (ORCPT ); Thu, 21 May 2020 07:10:11 -0400 Received: from mail-qv1-xf4a.google.com (mail-qv1-xf4a.google.com [IPv6:2607:f8b0:4864:20::f4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A5B1FC061A0E for ; Thu, 21 May 2020 04:10:11 -0700 (PDT) Received: by mail-qv1-xf4a.google.com with SMTP id m9so6732406qvl.18 for ; Thu, 21 May 2020 04:10:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=YxAJO5zjAlDcESQjL2hotUlRyCYCv27YW58n87FzjMM=; b=LW0ey+ZEx7FduX4sBz7baHzBYGpMZsn5JeJwzMtQhMV+XjHJ0Efqu7NxADlITAIkPn XaKxPuta51yyd8aBik84u07fl2BBySt71rvhGhGRM3H00RanGAWeDaAd7O0b8BRdmZtK SSW5la3QtjUcQUUnYWP+GsxinITkagGwEBF3VlIickOly6XSD9ai8dAATRL6Vji336RW cETsdGhLswccP3cuT6Ty7kOBDmN4VfzD1N5hvj2j6XkB7aS4ZgglDWdjyuKaoB+Gzflr 0y6rYj1fMXnIxcyoVnrm+1MwVajBlntqYDZgYR5otqdA5j4sn48X8PspZ7Vg3icUCy25 5xRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=YxAJO5zjAlDcESQjL2hotUlRyCYCv27YW58n87FzjMM=; b=lxYVTW0jq0VQFNNgsUjvmgsffPPxPC1GVD9LzO70qycW3dmmJXiNpZr83XsBW+dt3S xVrvqAHT4BON+6+HJV5rAoE+019o9WkZ5T/H8cxbyMgaTJFq3QdIZxjjDSG8k1Q+lQrH cNZfQgwAURXVY8OeEMX0hNJAYpjclUQC63DuU3m7Jb47UKxofMB/FmiI6IGwPBr7y9wR ZVIPPCkKwGeJkB49xbr/9fLt/XPxokIAVXX0V3nbgYgl6aWaViWwuUCDgbDY0qSmSQV4 5gwcu4LB+51IdlAIRJHX4Dl7IqbYKsEe/5KKZJiMa3LwO5zSFwykJstVFLCWMmwCUFED uvSA== X-Gm-Message-State: AOAM5332z2/jVMgszHcC4FEYd2epeUy7+fCZ0fEw+hH+eO3V4XekQDuh RVxymlTW67FnvY1BQ5WZFJt5daZdlA== X-Received: by 2002:a0c:8d0d:: with SMTP id r13mr9507280qvb.53.1590059410838; Thu, 21 May 2020 04:10:10 -0700 (PDT) Date: Thu, 21 May 2020 13:08:52 +0200 In-Reply-To: <20200521110854.114437-1-elver@google.com> Message-Id: <20200521110854.114437-10-elver@google.com> Mime-Version: 1.0 References: <20200521110854.114437-1-elver@google.com> X-Mailer: git-send-email 2.26.2.761.g0e0b3e54be-goog Subject: [PATCH -tip v2 09/11] data_race: Avoid nested statement expression From: Marco Elver To: elver@google.com Cc: paulmck@kernel.org, dvyukov@google.com, glider@google.com, andreyknvl@google.com, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, tglx@linutronix.de, mingo@kernel.org, peterz@infradead.org, will@kernel.org, clang-built-linux@googlegroups.com, bp@alien8.de Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It appears that compilers have trouble with nested statements expressions, as such make the data_race() macro be only a single statement expression. This will help us avoid potential problems in future as its usage increases. Link: https://lkml.kernel.org/r/20200520221712.GA21166@zn.tnic Signed-off-by: Marco Elver --- v2: * Add patch to series in response to above linked discussion. --- include/linux/compiler.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 7444f026eead..1f9bd9f35368 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -211,12 +211,11 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val, */ #define data_race(expr) \ ({ \ + __unqual_scalar_typeof(({ expr; })) __v; \ __kcsan_disable_current(); \ - ({ \ - __unqual_scalar_typeof(({ expr; })) __v = ({ expr; }); \ - __kcsan_enable_current(); \ - __v; \ - }); \ + __v = ({ expr; }); \ + __kcsan_enable_current(); \ + __v; \ }) /* -- 2.26.2.761.g0e0b3e54be-goog