Skip to content
  • Arnd Bergmann's avatar
    mfd: arizona: Fix undefined behavior · 5da6cbcd
    Arnd Bergmann authored
    
    
    When the driver is used with a subdevice that is disabled in the
    kernel configuration, clang gets a little confused about the
    control flow and fails to notice that n_subdevs is only
    uninitialized when subdevs is NULL, and we check for that,
    leading to a false-positive warning:
    
    drivers/mfd/arizona-core.c:1423:19: error: variable 'n_subdevs' is uninitialized when used here
          [-Werror,-Wuninitialized]
                                  subdevs, n_subdevs, NULL, 0, NULL);
                                           ^~~~~~~~~
    drivers/mfd/arizona-core.c:999:15: note: initialize the variable 'n_subdevs' to silence this warning
            int n_subdevs, ret, i;
                         ^
                          = 0
    
    Ideally, we would rearrange the code to avoid all those early
    initializations and have an explicit exit in each disabled case,
    but it's much easier to chicken out and add one more initialization
    here to shut up the warning.
    
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Reviewed-by: default avatarNathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
    Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
    5da6cbcd