1
linux/drivers/acpi
Peter Zijlstra 7f424a8b08 fix idle (arch, acpi and apm) and lockdep
OK, so 25-mm1 gave a lockdep error which made me look into this.

The first thing that I noticed was the horrible mess; the second thing I
saw was hacks like: 71e93d1561

The problem is that arch idle routines are somewhat inconsitent with
their IRQ state handling and instead of fixing _that_, we go paper over
the problem.

So the thing I've tried to do is set a standard for idle routines and
fix them all up to adhere to that. So the rules are:

  idle routines are entered with IRQs disabled
  idle routines will exit with IRQs enabled

Nearly all already did this in one form or another.

Merge the 32 and 64 bit bits so they no longer have different bugs.

As for the actual lockdep warning; __sti_mwait() did a plainly un-annotated
irq-enable.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Tested-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-04-27 00:01:45 +02:00
..
dispatcher ACPI: track opregion names to avoid driver resource conflicts. 2008-02-07 00:59:18 -05:00
events Merge branches 'release' and 'stats' into release 2008-02-07 03:13:36 -05:00
executer ACPI: fix build warning 2008-02-21 02:01:30 -05:00
hardware ACPI suspend: Execute _WAK with the right argument 2008-02-14 00:28:05 -05:00
namespace ACPI: Check for any matching CID when walking namespace. 2008-01-23 14:43:44 -05:00
parser ACPICA: Lindent 2007-05-09 23:34:35 -04:00
resources fix compilation with gcc 4.2 2007-08-11 15:47:42 -07:00
sleep ACPI PM: Restore the 2.6.24 suspend ordering 2008-04-01 11:21:08 -07:00
tables Merge branches 'release', 'bugzilla-6217', 'bugzilla-6629', 'bugzilla-6933', 'bugzilla-7186', 'bugzilla-8269', 'bugzilla-8570', 'bugzilla-9139', 'bugzilla-9277', 'bugzilla-9341', 'bugzilla-9444', 'bugzilla-9614', 'bugzilla-9643' and 'bugzilla-9644' into release 2008-02-07 03:09:43 -05:00
utilities Merge branches 'release', 'button-sysfs', 'misc', 'mismatch', 'randconfig' and 'toshiba' into release 2008-03-13 01:59:49 -04:00
ac.c acpi: Storage class should be before const qualifier 2008-04-21 22:24:53 +00:00
acpi_memhotplug.c ACPI: autoload modules - Create __mod_acpi_device_table symbol for all ACPI drivers 2007-07-23 13:56:42 -04:00
asus_acpi.c asus_acpi: remove misleading mask 2008-03-18 02:31:34 -04:00
battery.c ACPI: battery: Don't return -EFAIL on broken packages. 2008-03-17 22:37:42 -04:00
bay.c Merge branches 'release' and 'fluff' into release 2008-02-07 03:38:22 -05:00
blacklist.c ACPI: DMI: quirk for FSC ESPRIMO Mobile V5505 2008-02-14 02:43:39 -05:00
bus.c acpi: bus: check once more for an empty list after locking it 2008-04-15 19:35:41 -07:00
button.c ACPI: button: make real parent for input devices in device tree 2008-03-11 13:38:49 -04:00
cm_sbs.c
container.c ACPI: autoload modules - Create __mod_acpi_device_table symbol for all ACPI drivers 2007-07-23 13:56:42 -04:00
debug.c ACPI: add control method tracing support 2007-11-19 12:25:46 -05:00
dock.c ACPI: Set flag DOCK_UNDOCKING when triggered via sysfs 2008-03-18 05:16:38 -04:00
ec.c Revert "ACPI: EC: Handle IRQ storm on Acer laptops" 2008-03-18 21:32:24 -07:00
event.c ACPI: static acpi_chain_head 2008-02-14 01:04:18 -05:00
fan.c revert "ACPI: drivers/acpi: elide a non-zero test on a result that is never 0" 2008-03-28 10:16:53 -07:00
glue.c ACPI: misc cleanups 2008-02-07 03:33:23 -05:00
Kconfig ACPI: Remove ACPI_CUSTOM_DSDT_INITRD option 2008-03-15 11:58:04 -07:00
Makefile ACPI: SBS: Host controller must initialize before SBS. 2008-02-09 03:22:13 -05:00
numa.c ACPI: misc cleanups 2008-02-07 03:33:23 -05:00
osl.c Add down_timeout and change ACPI to use it 2008-04-17 10:42:46 -04:00
pci_bind.c ACPI: misc cleanups 2008-02-07 03:33:23 -05:00
pci_irq.c ACPI: fix Medion _PRT quirk (use "ISA_", not "ISA") 2008-03-25 15:21:30 -07:00
pci_link.c ACPI: misc cleanups 2008-02-07 03:33:23 -05:00
pci_root.c ACPI: fix section mismatch in acpi_pci_root_add 2008-02-21 02:56:32 -05:00
power.c ACPI: remove duplicated warning message 2008-02-07 00:49:28 -05:00
processor_core.c acpi: fix "buggy BIOS check" when CPUs are hot removed 2008-04-08 18:25:53 -07:00
processor_idle.c fix idle (arch, acpi and apm) and lockdep 2008-04-27 00:01:45 +02:00
processor_perflib.c ACPI: cpufreq: Print _PPC changes via cpufreq debug layer 2008-02-07 14:47:40 -05:00
processor_thermal.c ACPI: register ACPI Processor as generic thermal cooling device 2008-02-01 23:18:19 -05:00
processor_throttling.c generic: use new set_cpus_allowed_ptr function 2008-04-19 19:44:58 +02:00
sbs.c ACPI: SBS: Host controller must initialize before SBS. 2008-02-09 03:22:13 -05:00
sbshc.c ACPI: SBS: remove typo from sbchc.c 2008-03-18 05:13:14 -04:00
sbshc.h ACPI: SBS: Ignore alarms coming from unknown devices 2007-12-14 15:14:06 -05:00
scan.c ACPI: fix a regression of ACPI device driver autoloading 2008-03-25 22:48:37 -04:00
system.c ACPI: buffer array too short in drivers/acpi/system.c 2008-03-12 17:57:22 -04:00
tables.c Revert "ACPI: parse 2nd MADT by default" 2007-03-30 14:16:10 -04:00
thermal.c acpi thermal: fix result check 2008-04-08 18:25:52 -07:00
toshiba_acpi.c toshiba_acpi: Enable autoloading 2008-03-11 13:35:08 -04:00
utils.c ACPICA: Warn if packages with invalid references are evaluated 2008-03-11 23:57:20 -04:00
video.c Revert "ACPI: Ignore _BQC object when registering backlight device" 2008-04-05 12:14:13 -07:00
wmi.c ACPI: WMI: Clean up handling of spec violating data blocks 2008-03-11 17:59:05 -04:00