Received: by 2002:a25:5b86:0:0:0:0:0 with SMTP id p128csp891157ybb; Thu, 28 Mar 2019 14:25:44 -0700 (PDT) X-Google-Smtp-Source: APXvYqxMapyqUKqWf/3lNkSs+i9282wuSOsWqLjGexYLI75OB9xh59hP8IyQc7Xe8Hb5meh2bMmA X-Received: by 2002:aa7:8589:: with SMTP id w9mr43289232pfn.97.1553808344619; Thu, 28 Mar 2019 14:25:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553808344; cv=none; d=google.com; s=arc-20160816; b=ctCYl8m3ysrw8mUxOEWDOqmOSzWShz7dD7J9EUix3hm2ci9QGFm5m0Ifg1LrV3AWN4 X/0gmoXvBDyy5ibcGjbI+mMTysbsfaFBRwd39xikRIjao8u7gtT8J5jDy3VHStQEejbD ilRzG748DnCaNba6Tf8bxzJNl+bdx3K346RXxtbKl/Y0D3+FJyhgSMGBwuinvLqQG1Xy LTtDhY7Fkn5SdeWyF37S/KasxTTsCQYGN1RoiGl7FBYiHlKezDrxiLghzC+q2QclyXGn SA4YenJvCkhVbDhqrju/0vkdn+3lbbwIE+n3xSYIZUNG/zf+gpjU26KSSxXI4B/BWy+A rVAw== 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:mime-version :message-id:date:dkim-signature; bh=FTQNddlHZsmLTvmgUqkS3owI3qJO1ApHDbsDyvuVOwE=; b=CID2uXoOFsoDsB63K4JMlFWoBTGjEgWMIg9S7k8vpYG45h4xETFxu/542yVO1BQ8Ce ks2xI9ZHN5bH/XThDmp3Pfz3bhAbr6I3E718FvBDq5csp1ohz2PSyAcis6EN+QcpjbSY xr6JeSR++1s6uCQwFl1App2mN8Uts5rC+272OsBhmHkJ1GWixuAIetFG5KXDf4Fe14KL Uit2ztjAtMpv3Fo5tau0Pqn19LWnNhpa4i87TJmoc8vyKUJ4kTMdwfHypPXsWG+h0Uf+ R+P006SeZTXQHKhWxMvzcA3Ai/diu/6Jt0mv7VQ8BAXdBWBhwCV7q9mZsNVEt2fdJLH9 6Kqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Fa9c+8vG; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id p22si161239pgi.449.2019.03.28.14.25.28; Thu, 28 Mar 2019 14:25:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Fa9c+8vG; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1727675AbfC1VX1 (ORCPT + 99 others); Thu, 28 Mar 2019 17:23:27 -0400 Received: from mail-pf1-f201.google.com ([209.85.210.201]:48665 "EHLO mail-pf1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726307AbfC1VX0 (ORCPT ); Thu, 28 Mar 2019 17:23:26 -0400 Received: by mail-pf1-f201.google.com with SMTP id b11so17274702pfo.15 for ; Thu, 28 Mar 2019 14:23:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=FTQNddlHZsmLTvmgUqkS3owI3qJO1ApHDbsDyvuVOwE=; b=Fa9c+8vGa1Oh7baZAD1kg9Z22RmkQpiwX9z+ROJPUB4Zl3RiQlmZtIvoseGtxAoQ3/ EcflQUhg8K4eD84FThc1/ziLAIIv4P+RjRoMw4HpBN68sDU2jHUvnFYAzHI6EgzBc/fS GzDa6T4ZfW8Cly9diEjmGWjMvNC1UaUEZpbAumuhI11sKiYDTMYkFUQ6veIc12/dMOiN thUjyo7aihrNdtKihXhI8RQwR5Pl6mh3JnTPmkmHo+xtFvH7uC4zsYNhCWHKSSIdYV75 XuQGzDpP4jdm7ARenURxSFm59KmOXszck7XyyWgg6S3p/vnOZjb/uxf9YnozyQvcDxI0 NXhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=FTQNddlHZsmLTvmgUqkS3owI3qJO1ApHDbsDyvuVOwE=; b=gx8tKShkinB3hyHjyGJXUkVAdA+RTLWF69HwMHKlf72QUZcyryTiJVsfs4x5aQlZFk 7XsD6I+SK03VzVKsgVo6nq1VLo8QyG1PNBEG2JaEu2uEahywYvnRDn9vYyRwdZKm5903 heRdzSloY15CyXo6XhJb20sdPVRInv1HPQt7nJxRi5OyL3Kf0i0Esruljhzn2dwaQ9tn qE5Q/rs4XU99Q9E0qibWn3jBBDIJWO2Jxtsx0BZxVdB3m+xD/DwKU/eppSrdeeqdzCsK KWEaLxdMnA1nc8ANnlD4LoCT3Hc5gpFq9YymaY79XWpsu9UvEv4z1u2vR49cyaJwG8Rm Hk/g== X-Gm-Message-State: APjAAAWfSlHNKQAZLlLkVUkvITugsaZ7X8lw0ATTSAS9ofN0a34+ZzE9 JP0urJVvQyR+xY/uGzWkavwIjTWWCw== X-Received: by 2002:a62:5e43:: with SMTP id s64mr383531pfb.71.1553808205861; Thu, 28 Mar 2019 14:23:25 -0700 (PDT) Date: Thu, 28 Mar 2019 22:23:20 +0100 Message-Id: <20190328212321.92463-1-jannh@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.21.0.392.gf8f6787159e-goog Subject: [PATCH 1/2] kernel.h: use parentheses around argument in u64_to_user_ptr() From: Jann Horn To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , jannh@google.com Cc: x86@kernel.org, linux-kernel@vger.kernel.org, Andrew Morton , "Signed-off-by : Qiaowei Ren" 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 Use parentheses around uses of the argument in u64_to_user_ptr() to ensure that the cast doesn't apply to part of the argument. There are existing uses of the macro of the form `u64_to_user_ptr(A + B)`, which expands to `(void __user *)(uintptr_t)A + B` (the cast applies to the first operand of the addition, the addition is a pointer addition). This happens to still work as intended, the semantic difference doesn't cause a difference in behavior. But I want to use u64_to_user_ptr() with a ternary operator in the argument, like so: `u64_to_user_ptr(A ? B : C)`. This currently doesn't work as intended. Fixes: f09174c501f8 ("x86: add user_atomic_cmpxchg_inatomic at uaccess.h") Signed-off-by: Jann Horn --- Can we take this patch through the x86 tree with the following one, or do we need to get this one through akpm's tree first? include/linux/kernel.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 34a5036debd3..2d14e21c16c0 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -47,8 +47,8 @@ #define u64_to_user_ptr(x) ( \ { \ - typecheck(u64, x); \ - (void __user *)(uintptr_t)x; \ + typecheck(u64, (x)); \ + (void __user *)(uintptr_t)(x); \ } \ ) -- 2.21.0.392.gf8f6787159e-goog