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 <narmstr...@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? > + if (ret) > + return ret; > + > regmap_write(priv->regmap, MSR_CLK_REG0, 0); > > /* Set measurement duration */