lkml.org 
[lkml]   [2020]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 224/252] regulator: avoid resolve_supply() infinite recursion
    Date
    From: Michał Mirosław <mirq-linux@rere.qmqm.pl>

    commit 4b639e254d3d4f15ee4ff2b890a447204cfbeea9 upstream.

    When a regulator's name equals its supply's name the
    regulator_resolve_supply() recurses indefinitely. Add a check
    so that debugging the problem is easier. The "fixed" commit
    just exposed the problem.

    Fixes: aea6cb99703e ("regulator: resolve supply after creating regulator")
    Cc: stable@vger.kernel.org
    Reported-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
    Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
    Tested-by: Ahmad Fatoum <a.fatoum@pengutronix.de> # stpmic1
    Link: https://lore.kernel.org/r/c6171057cfc0896f950c4d8cb82df0f9f1b89ad9.1605226675.git.mirq-linux@rere.qmqm.pl
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/regulator/core.c | 6 ++++++
    1 file changed, 6 insertions(+)

    --- a/drivers/regulator/core.c
    +++ b/drivers/regulator/core.c
    @@ -1805,6 +1805,12 @@ static int regulator_resolve_supply(stru
    }
    }

    + if (r == rdev) {
    + dev_err(dev, "Supply for %s (%s) resolved to itself\n",
    + rdev->desc->name, rdev->supply_name);
    + return -EINVAL;
    + }
    +
    /*
    * If the supply's parent device is not the same as the
    * regulator's parent device, then ensure the parent device

    \
     
     \ /
      Last update: 2020-11-23 14:09    [W:4.395 / U:1.148 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site