lkml.org 
[lkml]   [2020]   [Jun]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 09/10] treewide: Remove uninitialized_var() usage
    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 <keescook@chromium.org>
    >
    > <snip>
    >
    > > 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

    \
     
     \ /
      Last update: 2020-06-04 06:05    [W:3.266 / U:0.536 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site