android_kernel_motorola_sm6225/drivers
Ashok Raj a9d9baa1e8 [PATCH] clean up lock_cpu_hotplug() in cpufreq
There are some callers in cpufreq hotplug notify path that the lowest
function calls lock_cpu_hotplug().  The lock is already held during
cpu_up() and cpu_down() calls when the notify calls are broadcast to
registered clients.

Ideally if possible, we could disable_preempt() at the highest caller and
make sure we dont sleep in the path down in cpufreq->driver_target() calls
but the calls are so intertwined and cumbersome to cleanup.

Hence we consistently use lock_cpu_hotplug() and unlock_cpu_hotplug() in
all places.

 - Removed export of cpucontrol semaphore and made it static.
 - removed explicit uses of up/down with lock_cpu_hotplug()
   so we can keep track of the the callers in same thread context and
   just keep refcounts without calling a down() that causes a deadlock.
 - Removed current_in_hotplug() uses
 - Removed PF_HOTPLUG_CPU in sched.h introduced for the current_in_hotplug()
   temporary workaround.

Tested with insmod of cpufreq_stat.ko, and logical online/offline
to make sure we dont have any hang situations.

Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Cc: Zwane Mwaikambo <zwane@linuxpower.ca>
Cc: Shaohua Li <shaohua.li@intel.com>
Cc: "Siddha, Suresh B" <suresh.b.siddha@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-28 14:42:23 -08:00
..
acorn [ARM] Turn ARM RiscPC PCF8583 i2c RTC driver into a proper module 2005-10-30 19:07:59 +00:00
acpi Fix ACPI processor power block initialization 2005-11-18 07:29:51 -08:00
atm [ATM]: [horizon] fix sparse warnings 2005-11-10 12:55:52 -08:00
base [PATCH] Small fixes to driver core 2005-11-23 23:03:06 -08:00
block [PATCH] revert floppy-fix-read-only-handling 2005-11-23 16:08:38 -08:00
bluetooth [Bluetooth]: Add endian annotations to the core 2005-11-08 09:57:21 -08:00
cdrom [PATCH] drivers/cdrom: kmalloc + memset -> kzalloc conversion 2005-11-07 07:53:59 -08:00
char mm: re-architect the VM_UNPAGED logic 2005-11-28 14:34:23 -08:00
connector [PATCH] Process Events Connector 2005-11-07 07:53:35 -08:00
cpufreq [PATCH] clean up lock_cpu_hotplug() in cpufreq 2005-11-28 14:42:23 -08:00
crypto [PATCH] CONFIG_IA32 2005-10-30 17:37:10 -08:00
dio [PATCH] drivers/dio: kmalloc + memset -> kzalloc conversion 2005-11-07 07:53:59 -08:00
eisa [PATCH] drivers/eisa: kmalloc + memset -> kzalloc conversion 2005-11-07 07:53:59 -08:00
fc4 [PATCH] kfree cleanup: misc remaining drivers 2005-11-07 07:54:05 -08:00
firmware [PATCH] dell_rbu driver depends on x86[64] 2005-11-22 09:13:44 -08:00
hwmon [PATCH] hwmon: hdaps missing an axis 2005-11-23 23:04:27 -08:00
i2c [PATCH] Fix IXP4xx I2C driver build breakage 2005-11-17 11:23:48 -08:00
ide [PATCH] ide: add missing __init tags to device drivers 2005-11-19 22:24:35 +01:00
ieee1394 sbp2_command_orb_lock must be held when accessing the _orb_inuse list. 2005-11-18 16:41:39 -05:00
infiniband [PATCH] drivers/infiniband/core/mad.c: fix use-after-release case 2005-11-27 20:23:13 -08:00
input Input: make serio and gameport more swsusp friendly 2005-11-20 00:56:43 -05:00
isdn [PARISC] Mark hisax and pcbit ISDN drivers as not for parisc 2005-11-18 16:20:10 -05:00
macintosh macintosh: Always export pmu_[un]register_sleep_notifier if CONFIG_PM set 2005-11-08 12:14:50 +11:00
mca [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
md [PATCH] device-mapper raid1: drop mark_region spinlock fix 2005-11-22 09:14:31 -08:00
media [PATCH] Fix an OOPS is CinergyT2 2005-11-20 14:06:28 -08:00
message [PATCH] drivers/message/i2o/pci.c: fix a NULL pointer dereference 2005-11-27 20:22:32 -08:00
mfd [DRIVER MODEL] Convert platform drivers to use struct platform_driver 2005-11-09 22:32:44 +00:00
misc Merge master.kernel.org:/home/rmk/linux-2.6-drvmodel 2005-11-11 09:24:26 -08:00
mmc [MMC] mmci doesn't need asm/irq.h 2005-11-12 17:26:21 +00:00
mtd Merge master.kernel.org:/home/rmk/linux-2.6-drvmodel 2005-11-19 15:24:42 -08:00
net [PATCH] net: Fix compiler-error on dgrs.c when !CONFIG_PCI 2005-11-22 09:13:41 -08:00
nubus
oprofile
parisc [PARISC] Make superio.c initialize before any driver needs it 2005-11-17 16:44:57 -05:00
parport [PATCH] kfree cleanup: misc remaining drivers 2005-11-07 07:54:05 -08:00
pci [PATCH] PCI: kernel-doc fix for pci-acpi.c 2005-11-23 23:04:27 -08:00
pcmcia [PCMCIA] inform user of insertion and ejection events 2005-11-12 23:35:34 +01:00
pnp [PATCH] drivers/pnp/: cleanups 2005-11-07 07:54:09 -08:00
rapidio [PATCH] rapidio: message interface updates 2005-11-07 07:53:47 -08:00
s390 [PATCH] s390: fix class_device_create calls in 3270 the driver 2005-11-18 07:49:46 -08:00
sbus [SPARC]: drivers/sbus/char/aurora.c: "extern inline" -> "static inline" 2005-11-22 15:30:29 -08:00
scsi [PATCH] drivers/scsi/dpt_i2o.c: fix a NULL pointer dereference 2005-11-27 20:23:46 -08:00
serial [SERIAL] imx: Fix missed platform_driver_unregister 2005-11-21 17:05:21 +00:00
sh [PATCH] superhyway: multiple block support and VCR rework 2005-11-07 07:53:28 -08:00
sn
tc [MIPS] zs.c: Resurrect the deceased zs.c for now. 2005-11-17 16:23:39 +00:00
telephony [PATCH] changing CONFIG_LOCALVERSION rebuilds too much, for no good reason 2005-11-09 07:55:57 -08:00
usb [PATCH] usb serial: remove redundant include 2005-11-23 23:04:28 -08:00
video [PATCH] fbcon: fix obvious bug in fbcon logo rotation code 2005-11-24 18:40:34 -08:00
w1 [PATCH] kfree cleanup: misc remaining drivers 2005-11-07 07:54:05 -08:00
zorro [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
Kconfig [NET]: Add netlink connector. 2005-09-11 19:15:07 -07:00
Makefile [PATCH] RapidIO support: core base 2005-11-07 07:53:46 -08:00