original_kernel/drivers/acpi
Huang Ying 885b976fad ACPI, APEI, Add ERST record ID cache
APEI ERST firmware interface and implementation has no multiple users
in mind.  For example, if there is four records in storage with ID: 1,
2, 3 and 4, if two ERST readers enumerate the records via
GET_NEXT_RECORD_ID as follow,

reader 1		reader 2
1
			2
3
			4
-1
			-1

where -1 signals there is no more record ID.

Reader 1 has no chance to check record 2 and 4, while reader 2 has no
chance to check record 1 and 3.  And any other GET_NEXT_RECORD_ID will
return -1, that is, other readers will has no chance to check any
record even they are not cleared by anyone.

This makes raw GET_NEXT_RECORD_ID not suitable for used by multiple
users.

To solve the issue, an in-memory ERST record ID cache is designed and
implemented.  When enumerating record ID, the ID returned by
GET_NEXT_RECORD_ID is added into cache in addition to be returned to
caller.  So other readers can check the cache to get all record ID
available.

Signed-off-by: Huang Ying <ying.huang@intel.com>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2011-03-21 22:59:06 -04:00
..
acpica ACPI / ACPICA: Avoid crashing if _PRW is defined for the root object 2011-02-12 01:39:15 +01:00
apei ACPI, APEI, Add ERST record ID cache 2011-03-21 22:59:06 -04:00
Kconfig kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
Makefile
ac.c
acpi_ipmi.c
acpi_memhotplug.c
acpi_pad.c
atomicio.c
battery.c ACPI / Battery: remove battery refresh on resume 2011-01-20 13:14:10 -08:00
blacklist.c
bus.c
button.c
cm_sbs.c
container.c
debugfs.c
dock.c
ec.c
ec_sys.c
event.c
fan.c
glue.c
hed.c
internal.h Merge branch 'suspend-ioremap-cache' into release 2011-01-12 16:11:46 -05:00
numa.c
nvs.c ACPI: Introduce acpi_os_ioremap() 2011-01-20 18:30:17 -08:00
osl.c ACPI: Fix acpi_os_read_memory() and acpi_os_write_memory() (v2) 2011-02-08 23:37:16 +01:00
pci_bind.c
pci_irq.c
pci_link.c
pci_root.c ACPI: Fix boot problem related to APEI with acpi_disabled set 2011-01-16 11:56:26 -08:00
pci_slot.c
power.c
power_meter.c
proc.c
processor_core.c ACPI, intel_idle: Cleanup idle= internal variables 2011-01-12 12:47:30 -05:00
processor_driver.c
processor_idle.c Merge branch 'linus' into idle-test 2011-01-12 18:06:06 -05:00
processor_perflib.c
processor_thermal.c
processor_throttling.c
reboot.c
sbs.c
sbshc.c
sbshc.h
scan.c
sleep.c ACPI / PM: Call suspend_nvs_free() earlier during resume 2011-01-20 18:30:17 -08:00
sleep.h
sysfs.c
tables.c
thermal.c
utils.c
video.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2011-01-13 20:15:35 -08:00
video_detect.c ACPI / Video: Probe for output switch method when searching video devices. 2011-02-12 01:40:16 +01:00
wakeup.c ACPI / Wakeup: Enable button GPEs unconditionally during initialization 2011-02-12 01:39:53 +01:00