• Ashay Jaiswal's avatar
    regulator: core: fix race condition in regulator_put() · 28140574
    Ashay Jaiswal authored
    commit 83b0302d
    
     upstream.
    
    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>
    Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
    28140574
core.c 97.1 KB