lkml.org 
[lkml]   [2019]   [Sep]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.2 34/70] powerpc/futex: Fix warning: 'oldval' may be used uninitialized in this function
    Date
    From: Christophe Leroy <christophe.leroy@c-s.fr>

    [ Upstream commit 38a0d0cdb46d3f91534e5b9839ec2d67be14c59d ]

    We see warnings such as:
    kernel/futex.c: In function 'do_futex':
    kernel/futex.c:1676:17: warning: 'oldval' may be used uninitialized in this function [-Wmaybe-uninitialized]
    return oldval == cmparg;
    ^
    kernel/futex.c:1651:6: note: 'oldval' was declared here
    int oldval, ret;
    ^

    This is because arch_futex_atomic_op_inuser() only sets *oval if ret
    is 0 and GCC doesn't see that it will only use it when ret is 0.

    Anyway, the non-zero ret path is an error path that won't suffer from
    setting *oval, and as *oval is a local var in futex_atomic_op_inuser()
    it will have no impact.

    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    [mpe: reword change log slightly]
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/86b72f0c134367b214910b27b9a6dd3321af93bb.1565774657.git.christophe.leroy@c-s.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/powerpc/include/asm/futex.h | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    diff --git a/arch/powerpc/include/asm/futex.h b/arch/powerpc/include/asm/futex.h
    index 3a6aa57b9d901..eea28ca679dbb 100644
    --- a/arch/powerpc/include/asm/futex.h
    +++ b/arch/powerpc/include/asm/futex.h
    @@ -60,8 +60,7 @@ static inline int arch_futex_atomic_op_inuser(int op, int oparg, int *oval,

    pagefault_enable();

    - if (!ret)
    - *oval = oldval;
    + *oval = oldval;

    prevent_write_to_user(uaddr, sizeof(*uaddr));
    return ret;
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-09-24 18:59    [W:4.192 / U:0.348 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site