• Steve Twiss's avatar
    regulator: core: fix error path for regulator_set_voltage_unlocked · 70b46491
    Steve Twiss authored
    During several error paths in the function
    regulator_set_voltage_unlocked() the value of 'ret' can take on negative
    error values. However, in calls that go through the 'goto out' statement,
    this return value is lost and return 0 is used instead, indicating a
    'pass'.
    
    There are several cases where this function should legitimately return a
    fail instead of a pass: one such case includes constraints check during
    voltage selection in the call to regulator_check_voltage(), which can
    have -EINVAL for the case when an unsupported voltage is incorrectly
    requested. In that case, -22 is expected as the return value, not 0.
    
    Fixes: 9243a195 ("regulator: core: Change voltage setting path")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: default avatarSteve Twiss <stwiss.opensource@diasemi.com>
    Reviewed-by: default avatarDmitry Osipenko <digetx@gmail.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    70b46491
core.c 142 KB