• Mark Brown's avatar
    Merge series "regulator: fix deadlock vs memory reclaim" from Michał Mirosław... · 4c13f934
    Mark Brown authored
    Merge series "regulator: fix deadlock vs memory reclaim" from Michał Mirosław <mirq-linux@rere.qmqm.pl>:
    
    For systems that have eg. eMMC storage using voltage regulator, memory
    reclaim path might call back into regulator subsystem. This means we
    have to make sure no allocations happen with a regulator or regulator
    list locked.
    
    After this series I see no more lockdep complaints on my test system,
    but please review and test further.
    
    First four patches move allocations out of locked regions, next three
    came as a drive-by cleanups.
    
    ---
    v2: fix bug in patch #4 spotted by kernel test robot
        reworded commit #7 description
    
    Michał Mirosław (7):
      regulator: push allocation in regulator_init_coupling() outside of
        lock
      regulator: push allocation in regulator_ena_gpio_request() out of lock
      regulator: push allocations in create_regulator() outside of lock
      regulator: push allocation in set_consumer_device_supply() out of lock
      regulator: plug of_node leak in regulator_register()'s error path
      regulator: cleanup regulator_ena_gpio_free()
      regulator: remove superfluous lock in regulator_resolve_coupling()
    
     drivers/regulator/core.c | 164 +++++++++++++++++++++------------------
     1 file changed, 87 insertions(+), 77 deletions(-)
    
    --
    2.20.1
    4c13f934
core.c 150 KB