Hi Lukasz, On Thu, Feb 14, 2019 at 07:01:36PM +0100, Lukasz Luba wrote: > Hi Matthias, > > I have compiled and run your changes on Odroid xu3 and v5.0-rc6. > There are kernel warnings because of mutex not held in function > devfreq_monitor_[start|stop]() in use cases: > 1) a few times during registration of new devices devfreq_add_device() > 2) poking the device from sysfs Thanks testing! I messed up carrying over changes from my v4.19 device kernel to the tree used for upstreaming :( Do you still see warnings with the below patch? Thanks Matthias diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index a42c37543c190..866fe711b43ca 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -440,7 +440,6 @@ static void devfreq_monitor_stop(struct devfreq *devfreq) mutex_lock(&devfreq->lock); devfreq->monitor_state = DEVFREQ_MONITOR_STOPPED; - mutex_unlock(&devfreq->lock); } /** @@ -596,7 +595,9 @@ static int governor_start(struct devfreq *devfreq) return err; } + mutex_lock(&devfreq->lock); devfreq_monitor_start(devfreq); + mutex_unlock(&devfreq->lock); return 0; } @@ -614,7 +615,9 @@ static int governor_stop(struct devfreq *devfreq) "mutex must *not* be held by the caller\n")) return -EINVAL; + mutex_lock(&devfreq->lock); devfreq_monitor_stop(devfreq); + mutex_unlock(&devfreq->lock); err = devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_STOP, NULL); if (err) {