Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp3940328pxy; Mon, 26 Apr 2021 13:37:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzLXqK+OdZ+5XTmn9wGOxBD4CZiElj/V9HDH490h4QRx5hdkDVZMMm80uY0oV8viGeR2acT X-Received: by 2002:aa7:96bb:0:b029:254:e8ed:2897 with SMTP id g27-20020aa796bb0000b0290254e8ed2897mr18908787pfk.24.1619469457498; Mon, 26 Apr 2021 13:37:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619469457; cv=none; d=google.com; s=arc-20160816; b=J3Gbw213rid8Ht8goOY2fJ041/6XkP1+cykzQm2fXKB7XPS2oa+LeIXp9DlTphdtJK kEpNCJaYMwCj5AaK23DXCYwZTikoDyKMatqzyllyFPmh5QnWql2YVDWKdYaCkHXJmoMw ojAK9d7zFOrE9+PnmX7onmAqHonPqZkMjWckJ4LppLFGEa8zE5vjY4eeh7l5U0/RY7BK pECA9GXhpKOU/6FrOoA7OJN4/79u+f40pl46pekd4Io5GPU1paxKWr/d6iCkw/np+4nK VeXTudOvh1G5/OZF/OqyOqXn0mBW6pObu4aoxLOkemcavj5neD8G+YKZepeFy1jQiX4W CHPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=SMaKaN6KDo3+h2alQ6vBBbjFmmDNZkOaFQbM2OVHh4Q=; b=x/oNtbxJ6RIeSy53Tynxl90aUFxpi3kD8Xr78q3G2mlHA6XuOpt/4AfBnmvun5nAXh H+eQTjn0i7z8NT3JZshhkXQ3ZBZbIxdgJPUYmAyOa1P8gUehAU5pyHb/OGTgG8L5Dta4 PVLjGZqgg8sUYMfnrXw0k9S4hYdWmrWKrsvLyEB3NPwKDm+rUBMyJzy8rkpKBysPMrzC J+cAsa4U0MG6aTpY8prl4zp0fVD1hWm+7qeHdfFgDV29tn+GHo8qdQQHw1TmdpaqNOXM GWAsIN2FeRN2b6vIzIpCJo570BqqndU/UyIWzQ9oGw39riYSCGGwKHgDHti+7ayiTxuE NZnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=JZKpcTWI; 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=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s23si18875642pgl.464.2021.04.26.13.37.24; Mon, 26 Apr 2021 13:37:37 -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=@kernel.org header.s=k20201202 header.b=JZKpcTWI; 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=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238875AbhDZUgT (ORCPT + 99 others); Mon, 26 Apr 2021 16:36:19 -0400 Received: from mail.kernel.org ([198.145.29.99]:49748 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235996AbhDZUgS (ORCPT ); Mon, 26 Apr 2021 16:36:18 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id E89D1601FC; Mon, 26 Apr 2021 20:35:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1619469336; bh=dWUS68fI1Cq65yaAuW1711yZzsjTCGo01+dzI5wZyOg=; h=From:To:Cc:Subject:Date:From; b=JZKpcTWIGHvo2ju0xvHbAMfO5KD+YY7U0Ui2tsf0R8vzyMCIIX4Es+MJ/kJu3w4sQ hEBHl4Hir0hPig9Yd6IFN/QA8hi47gloUMqvjkMg8RNUSuIcJnwQReMWBsJ2MRC/t7 hs5aKoR7KFQTl/8p43SZ/goygTlKXmI67ojsC1OSth5uJ+13flim6wBCM4BgwwE8u4 t7Qa59jYacCAtUZTSHUGS2y0CDeuGPuV9N3HZ0r49JE/HZdxDXo50zf/ypLQjwX31l YGLCzjzY6pVmvSKGzx4aFzxoScRtAcEbHUwok6qArwK1TbFvYwoy+vznqZroQ9XmPh h2PBbdE72lW/g== From: Nathan Chancellor To: Michael Ellerman Cc: Benjamin Herrenschmidt , Paul Mackerras , Nick Desaulniers , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com, Nathan Chancellor Subject: [PATCH] powerpc: Avoid clang uninitialized warning in __get_user_size_allowed Date: Mon, 26 Apr 2021 13:35:18 -0700 Message-Id: <20210426203518.981550-1-nathan@kernel.org> X-Mailer: git-send-email 2.31.1.362.g311531c9de MIME-Version: 1.0 X-Patchwork-Bot: notify Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit 9975f852ce1b ("powerpc/uaccess: Remove calls to __get_user_bad() and __put_user_bad()") switch to BUILD_BUG() in the default case, which leaves x uninitialized. This will not be an issue because the build will be broken in that case but clang does static analysis before it realizes the default case will be done so it warns about x being uninitialized (trimmed for brevity): In file included from mm/mprotect.c:13: In file included from ./include/linux/hugetlb.h:28: In file included from ./include/linux/mempolicy.h:16: ./include/linux/pagemap.h:772:16: warning: variable '__gu_val' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized] if (unlikely(__get_user(c, uaddr) != 0)) ^~~~~~~~~~~~~~~~~~~~ ./arch/powerpc/include/asm/uaccess.h:266:2: note: expanded from macro '__get_user' __get_user_size_allowed(__gu_val, __gu_addr, __gu_size, __gu_err); \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./arch/powerpc/include/asm/uaccess.h:235:2: note: expanded from macro '__get_user_size_allowed' default: BUILD_BUG(); \ ^~~~~~~ Commit 5cd29b1fd3e8 ("powerpc/uaccess: Use asm goto for get_user when compiler supports it") added an initialization for x because of the same reason. Do the same thing here so there is no warning across all versions of clang. Link: https://github.com/ClangBuiltLinux/linux/issues/1359 Signed-off-by: Nathan Chancellor --- arch/powerpc/include/asm/uaccess.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h index a4e791bcd3fe..a09e4240c5b1 100644 --- a/arch/powerpc/include/asm/uaccess.h +++ b/arch/powerpc/include/asm/uaccess.h @@ -232,7 +232,7 @@ do { \ case 2: __get_user_asm(x, (u16 __user *)ptr, retval, "lhz"); break; \ case 4: __get_user_asm(x, (u32 __user *)ptr, retval, "lwz"); break; \ case 8: __get_user_asm2(x, (u64 __user *)ptr, retval); break; \ - default: BUILD_BUG(); \ + default: x = 0; BUILD_BUG(); \ } \ } while (0) base-commit: ee6b25fa7c037e42cc5f3b5c024b2a779edab6dd -- 2.31.1.362.g311531c9de