From 888e64df7e088ca169fbf72964d425444e52ac7e Mon Sep 17 00:00:00 2001 From: Axel Lin Date: Mon, 14 Nov 2011 23:31:29 +0100 Subject: [PATCH] --- yaml --- r: 275623 b: refs/heads/master c: 9f3bdd4f937a75c4589a867dc1f8fefe09c1a618 h: refs/heads/master i: 275621: 0a532c9b75515068a3b5ec0ce5ebff4e29cafaca 275619: f052dc38a1f7fae9955d5ff508afdbc25d429043 275615: c029e98c637cda835d86020244bcecb7426a0b4d v: v3 --- [refs] | 2 +- trunk/drivers/devfreq/devfreq.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index cf6ac3cc80f6..124c52b17bc9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bc9f54498eadc5254378e376e8d2111cfd30b229 +refs/heads/master: 9f3bdd4f937a75c4589a867dc1f8fefe09c1a618 diff --git a/trunk/drivers/devfreq/devfreq.c b/trunk/drivers/devfreq/devfreq.c index d0659253387a..59d24e9cb8c5 100644 --- a/trunk/drivers/devfreq/devfreq.c +++ b/trunk/drivers/devfreq/devfreq.c @@ -418,10 +418,14 @@ struct devfreq *devfreq_add_device(struct device *dev, */ int devfreq_remove_device(struct devfreq *devfreq) { + bool central_polling; + if (!devfreq) return -EINVAL; - if (!devfreq->governor->no_central_polling) { + central_polling = !devfreq->governor->no_central_polling; + + if (central_polling) { mutex_lock(&devfreq_list_lock); while (wait_remove_device == devfreq) { mutex_unlock(&devfreq_list_lock); @@ -433,7 +437,7 @@ int devfreq_remove_device(struct devfreq *devfreq) mutex_lock(&devfreq->lock); _remove_devfreq(devfreq, false); /* it unlocks devfreq->lock */ - if (!devfreq->governor->no_central_polling) + if (central_polling) mutex_unlock(&devfreq_list_lock); return 0;