diff options
| author | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2011-12-21 02:01:18 +0400 | 
|---|---|---|
| committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2011-12-21 02:01:18 +0400 | 
| commit | cb85f123cd2393581bcffad335bfc6bcdd58569c (patch) | |
| tree | 7b0de48b2a13ca96251c02245ab906f7efa3ac18 /drivers/devfreq/devfreq.c | |
| parent | b79d2ff98caee60c07a7598aba3b26acd1655a99 (diff) | |
| parent | caca6a03d365883564885f2c1da3e88dcf65d139 (diff) | |
| download | linux-cb85f123cd2393581bcffad335bfc6bcdd58569c.tar.xz | |
Merge commit 'v3.2-rc3' into stable/for-linus-3.3
* commit 'v3.2-rc3': (412 commits)
  Linux 3.2-rc3
  virtio-pci: make reset operation safer
  virtio-mmio: Correct the name of the guest features selector
  virtio: add HAS_IOMEM dependency to MMIO platform bus driver
  eCryptfs: Extend array bounds for all filename chars
  eCryptfs: Flush file in vma close
  eCryptfs: Prevent file create race condition
  regulator: TPS65910: Fix VDD1/2 voltage selector count
  i2c: Make i2cdev_notifier_call static
  i2c: Delete ANY_I2C_BUS
  i2c: Fix device name for 10-bit slave address
  i2c-algo-bit: Generate correct i2c address sequence for 10-bit target
  drm: integer overflow in drm_mode_dirtyfb_ioctl()
  Revert "of/irq: of_irq_find_parent: check for parent equal to child"
  drivers/gpu/vga/vgaarb.c: add missing kfree
  drm/radeon/kms/atom: unify i2c gpio table handling
  drm/radeon/kms: fix up gpio i2c mask bits for r4xx for real
  ttm: Don't return the bo reserved on error path
  mount_subtree() pointless use-after-free
  iio: fix a leak due to improper use of anon_inode_getfd()
  ...
Diffstat (limited to 'drivers/devfreq/devfreq.c')
| -rw-r--r-- | drivers/devfreq/devfreq.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 5d15b812377b..59d24e9cb8c5 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -15,7 +15,9 @@  #include <linux/errno.h>  #include <linux/err.h>  #include <linux/init.h> +#include <linux/module.h>  #include <linux/slab.h> +#include <linux/stat.h>  #include <linux/opp.h>  #include <linux/devfreq.h>  #include <linux/workqueue.h> @@ -416,10 +418,14 @@ out:   */  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); @@ -431,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;  | 
