[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c6794e78b9425c84f090d3058b93319bbb17e10f.camel@pengutronix.de>
Date: Wed, 29 Jun 2022 16:02:43 +0200
From: Philipp Zabel <p.zabel@...gutronix.de>
To: Serge Semin <Sergey.Semin@...kalelectronics.ru>,
Stephen Boyd <sboyd@...nel.org>,
Michael Turquette <mturquette@...libre.com>,
Dmitry Osipenko <digetx@...il.com>,
Mark Brown <broonie@...nel.org>
Cc: Serge Semin <fancer.lancer@...il.com>,
Alexey Malahov <Alexey.Malahov@...kalelectronics.ru>,
Pavel Parkhomenko <Pavel.Parkhomenko@...kalelectronics.ru>,
Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
linux-clk@...r.kernel.org, linux-mips@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH RESEND v5 1/8] reset: Fix devm bulk optional exclusive
control getter
Hi Serge,
On Fr, 2022-06-24 at 17:18 +0300, Serge Semin wrote:
> Most likely due to copy-paste mistake the device managed version of the
> denoted reset control getter has been implemented with invalid semantic,
> which can be immediately spotted by having "WARN_ON(shared && acquired)"
> warning in the system log as soon as the method is called. Anyway let's
> fix it by altering the boolean arguments passed to the
> __devm_reset_control_bulk_get() method from
> - shared = true, optional = false, acquired = true
> to
> + shared = false, optional = true, acquired = true
> That's what they were supposed to be in the first place (see the non-devm
> version of the same method: reset_control_bulk_get_optional_exclusive()).
>
> Fixes: 48d71395896d ("reset: Add reset_control_bulk API")
> Signed-off-by: Serge Semin <Sergey.Semin@...kalelectronics.ru>
>
> ---
>
> Changelog v4:
> - This is a new patch added on v4 lap of the series.
> ---
> include/linux/reset.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/reset.h b/include/linux/reset.h
> index 8a21b5756c3e..514ddf003efc 100644
> --- a/include/linux/reset.h
> +++ b/include/linux/reset.h
> @@ -731,7 +731,7 @@ static inline int __must_check
> devm_reset_control_bulk_get_optional_exclusive(struct device *dev, int num_rstcs,
> struct reset_control_bulk_data *rstcs)
> {
> - return __devm_reset_control_bulk_get(dev, num_rstcs, rstcs, true, false, true);
> + return __devm_reset_control_bulk_get(dev, num_rstcs, rstcs, false, true, true);
> }
You are right, thank you. I'll take this as a sign that the internal
functions should probably switch from collecting ever more boolean
arguments to a flags parameter, similar to enum gpiod_flags.
I'll pick this up separately into the reset/fixes branch.
regards
Philipp
Powered by blists - more mailing lists