From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-f193.google.com (mail-pl1-f193.google.com [209.85.214.193]) by mail19.linbit.com (LINBIT Mail Daemon) with ESMTP id 04CD9420302 for ; Thu, 4 Jun 2020 06:02:34 +0200 (CEST) Received: by mail-pl1-f193.google.com with SMTP id bg4so1614825plb.3 for ; Wed, 03 Jun 2020 21:02:34 -0700 (PDT) Date: Wed, 3 Jun 2020 21:02:31 -0700 From: Kees Cook To: Nathan Chancellor Message-ID: <202006032048.E7B1D18A1@keescook> References: <20200603233203.1695403-1-keescook@chromium.org> <20200603233203.1695403-10-keescook@chromium.org> <20200604033315.GA1131596@ubuntu-n2-xlarge-x86> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200604033315.GA1131596@ubuntu-n2-xlarge-x86> Cc: Andy Whitcroft , clang-built-linux@googlegroups.com, linux-ide@vger.kernel.org, netdev@vger.kernel.org, x86@kernel.org, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org, linux-block@vger.kernel.org, Miguel Ojeda , linux-mm@kvack.org, Alexander Potapenko , b43-dev@lists.infradead.org, Joe Perches , Linus Torvalds , linux-clk@vger.kernel.org, drbd-dev@lists.linbit.com Subject: Re: [Drbd-dev] [PATCH 09/10] treewide: Remove uninitialized_var() usage List-Id: "*Coordination* of development, patches, contributions -- *Questions* \(even to developers\) go to drbd-user, please." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Wed, Jun 03, 2020 at 08:33:15PM -0700, Nathan Chancellor wrote: > On Wed, Jun 03, 2020 at 04:32:02PM -0700, Kees Cook wrote: > > Using uninitialized_var() is dangerous as it papers over real bugs[1] > > (or can in the future), and suppresses unrelated compiler warnings > > (e.g. "unused variable"). If the compiler thinks it is uninitialized, > > either simply initialize the variable or make compiler changes. > > > > I preparation for removing[2] the[3] macro[4], remove all remaining > > needless uses with the following script: > > > > git grep '\buninitialized_var\b' | cut -d: -f1 | sort -u | \ > > xargs perl -pi -e \ > > 's/\buninitialized_var\(([^\)]+)\)/\1/g; > > s:\s*/\* (GCC be quiet|to make compiler happy) \*/$::g;' > > > > drivers/video/fbdev/riva/riva_hw.c was manually tweaked to avoid > > pathological white-space. > > > > No outstanding warnings were found building allmodconfig with GCC 9.3.0 > > for x86_64, i386, arm64, arm, powerpc, powerpc64le, s390x, mips, sparc64, > > alpha, and m68k. > > > > [1] https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/ > > [2] https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/ > > [3] https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/ > > [4] https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/ > > > > Signed-off-by: Kees Cook > > > > > diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c > > index a0f6813f4560..a71fa7204882 100644 > > --- a/arch/powerpc/kvm/book3s_pr.c > > +++ b/arch/powerpc/kvm/book3s_pr.c > > @@ -1829,7 +1829,7 @@ static int kvmppc_vcpu_run_pr(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu) > > { > > int ret; > > #ifdef CONFIG_ALTIVEC > > - unsigned long uninitialized_var(vrsave); > > + unsigned long vrsave; > > #endif > > This variable is actually unused: > > ../arch/powerpc/kvm/book3s_pr.c:1832:16: warning: unused variable 'vrsave' [-Wunused-variable] > unsigned long vrsave; > ^ > 1 warning generated. > > It has been unused since commit 99dae3bad28d ("KVM: PPC: Load/save > FP/VMX/VSX state directly to/from vcpu struct"). > > $ git grep vrsave 99dae3bad28d8fdd32b7bfdd5e2ec7bb2d4d019d arch/powerpc/kvm/book3s_pr.c > 99dae3bad28d8fdd32b7bfdd5e2ec7bb2d4d019d:arch/powerpc/kvm/book3s_pr.c: unsigned long uninitialized_var(vrsave); > > I would nuke the whole '#ifdef' block. Ah, thanks! I wonder why I don't have CONFIG_ALTIVEC in any of my ppc builds. Hmmm. -Kees -- Kees Cook