• Arnd Bergmann's avatar
    s390: ctcm: fix ctcm_new_device error return code · 6abfbc04
    Arnd Bergmann authored
    [ Upstream commit 27b141fc ]
    
    clang points out that the return code from this function is
    undefined for one of the error paths:
    
    ../drivers/s390/net/ctcm_main.c:1595:7: warning: variable 'result' is used uninitialized whenever 'if' condition is true
          [-Wsometimes-uninitialized]
                    if (priv->channel[direction] == NULL) {
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../drivers/s390/net/ctcm_main.c:1638:9: note: uninitialized use occurs here
            return result;
                   ^~~~~~
    ../drivers/s390/net/ctcm_main.c:1595:3: note: remove the 'if' if its condition is always false
                    if (priv->channel[direction] == NULL) {
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../drivers/s390/net/ctcm_main.c:1539:12: note: initialize the variable 'result' to silence this warning
            int result;
                      ^
    
    Make it return -ENODEV here, as in the related failure cases.
    gcc has a known bug in underreporting some of these warnings
    when it has already eliminated the assignment of the return code
    based on some earlier optimization step.
    Reviewed-by: default avatarNathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    6abfbc04
ctcm_main.c 46.8 KB