Messages in this thread | | | Subject | Re: [RFC/RFT 05/14] soc: amlogic: meson-clk-measure: protect measure with a mutex | From | Neil Armstrong <> | Date | Wed, 26 Jun 2019 10:24:47 +0200 |
| |
On 25/06/2019 22:27, Stephen Boyd wrote: > Quoting Neil Armstrong (2019-06-20 08:00:04) >> In order to protect clock measuring when multiple process asks for >> a mesure, protect the main measure function with mutexes. >> >> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> >> --- >> drivers/soc/amlogic/meson-clk-measure.c | 12 +++++++++++- >> 1 file changed, 11 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/soc/amlogic/meson-clk-measure.c b/drivers/soc/amlogic/meson-clk-measure.c >> index 19d4cbc93a17..c470e24f1dfa 100644 >> --- a/drivers/soc/amlogic/meson-clk-measure.c >> +++ b/drivers/soc/amlogic/meson-clk-measure.c >> @@ -11,6 +11,8 @@ >> #include <linux/debugfs.h> >> #include <linux/regmap.h> >> >> +static DEFINE_MUTEX(measure_lock); >> + >> #define MSR_CLK_DUTY 0x0 >> #define MSR_CLK_REG0 0x4 >> #define MSR_CLK_REG1 0x8 >> @@ -360,6 +362,10 @@ static int meson_measure_id(struct meson_msr_id *clk_msr_id, >> unsigned int val; >> int ret; >> >> + ret = mutex_lock_interruptible(&measure_lock); > > Why interruptible?
I supposed _interruptible was needed since it's called from userspace via debugfs, locking indefinitely isn't wanted, no ? or maybe I missed something...
Neil
> >> + if (ret) >> + return ret; >> + >> regmap_write(priv->regmap, MSR_CLK_REG0, 0); >> >> /* Set measurement duration */
| |