Re: [RFC PATCH] regulator: Fix recursive mutex lockdep warning

From: Krzysztof Kozlowski
Date: Thu Aug 06 2015 - 03:35:39 EST


On 06.08.2015 16:29, Srinivas Kandagatla wrote:
> Thanks Krzysztof
>
> On 06/08/15 02:39, Krzysztof Kozlowski wrote:
>>> --- a/drivers/regulator/core.c
>>> >+++ b/drivers/regulator/core.c
>>> >@@ -2919,7 +2919,7 @@ static int _regulator_get_voltage(struct
>>> regulator_dev *rdev)
>>> > } else if (rdev->desc->fixed_uV && (rdev->desc->n_voltages
>>> == 1)) {
>>> > ret = rdev->desc->fixed_uV;
>>> > } else if (rdev->supply) {
>>> >- ret = regulator_get_voltage(rdev->supply);
>>> >+ ret = _regulator_get_voltage(rdev->supply->rdev);
>> Is the 'rdev' and 'rdev->supply' same regulators? If not then you are
>> just hiding false warning by removing locks thus introducing real
>> issue...
> They are the not the same regulators, and hence they are not locking the
> same mutex, looks like this is a false positive warning from lockdep. I
> can't think of any use case which could result in ABBA type lockup too,
> so we can ignore this patch for now.
>
> Not sure why did the lockdep think that this is same lock :-)

I think the warning appears because the class of lock is the same but
there is nesting information:
"May be due to missing lock nesting notation"
Fixing this would require adding the nesting information.

Best regards,
Krzysztof


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/