• Nathan Chancellor's avatar
    IB/rdmavt: Fix variable shadowing issue in rvt_create_cq · 4d2b8517
    Nathan Chancellor authored
    clang warns:
    
    drivers/infiniband/sw/rdmavt/cq.c:260:7: warning: variable 'err' is used
    uninitialized whenever 'if' condition is true
    [-Wsometimes-uninitialized]
                    if (err)
                        ^~~
    drivers/infiniband/sw/rdmavt/cq.c:310:9: note: uninitialized use occurs
    here
            return err;
                   ^~~
    drivers/infiniband/sw/rdmavt/cq.c:260:3: note: remove the 'if' if its
    condition is always false
                    if (err)
                    ^~~~~~~~
    drivers/infiniband/sw/rdmavt/cq.c:253:7: warning: variable 'err' is used
    uninitialized whenever 'if' condition is true
    [-Wsometimes-uninitialized]
                    if (!cq->ip) {
                        ^~~~~~~
    drivers/infiniband/sw/rdmavt/cq.c:310:9: note: uninitialized use occurs
    here
            return err;
                   ^~~
    drivers/infiniband/sw/rdmavt/cq.c:253:3: note: remove the 'if' if its
    condition is always false
                    if (!cq->ip) {
                    ^~~~~~~~~~~~~~
    drivers/infiniband/sw/rdmavt/cq.c:211:9: note: initialize the variable
    'err' to silence this warning
            int err;
                   ^
                    = 0
    2 warnings generated.
    
    The function scoped err variable is uninitialized when the flow jumps into
    the if statement. The if scoped err variable shadows the function scoped
    err variable, preventing the err assignments within the if statement to be
    reflected at the function level, which will cause uninitialized use when
    the goto statements are taken.
    
    Just remove the if scoped err declaration so that there is only one copy
    of the err variable for this function.
    
    Fixes: 239b0e52 ("IB/hfi1: Move rvt_cq_wc struct into uapi directory")
    Link: https://github.com/ClangBuiltLinux/linux/issues/594Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: default avatarNathan Chancellor <natechancellor@gmail.com>
    Acked-by: default avatarMike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    4d2b8517
cq.c 14.6 KB