• Ashay Jaiswal's avatar
    regulator: core: fix race condition in regulator_put() · 83b0302d
    Ashay Jaiswal authored
    The regulator framework maintains a list of consumer regulators
    for a regulator device and protects it from concurrent access using
    the regulator device's mutex lock.
    
    In the case of regulator_put() the consumer is removed and regulator
    device's parameters are updated without holding the regulator device's
    mutex. This would lead to a race condition between the regulator_put()
    and any function which traverses the consumer list or modifies regulator
    device's parameters.
    Fix this race condition by holding the regulator device's mutex in case
    of regulator_put.
    Signed-off-by: default avatarAshay Jaiswal <ashayj@codeaurora.org>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    83b0302d
core.c 105 KB