linux/drivers/acpi
Toshi Kani fbfddae696 ACPI: Add acpi_handle_<level>() interfaces
This patch introduces acpi_handle_<level>(), where <level> is
a kernel message level such as err/warn/info, to support improved
logging messages for ACPI, esp. hot-plug operations.
acpi_handle_<level>() appends "ACPI" prefix and ACPI object path
to the messages.  This improves diagnosis of hotplug operations
since an error message in a log file identifies an object that
caused an issue.  This interface acquires the global namespace
mutex to obtain an object path.  In interrupt context, it shows
the object path as <n/a>.

acpi_handle_<level>() takes acpi_handle as an argument, which is
passed to ACPI hotplug notify handlers from the ACPICA.  Therefore,
it is always available unlike other kernel objects, such as device.

For example:
  acpi_handle_err(handle, "Device don't exist, dropping EJECT\n");
logs an error message like this at KERN_ERR.
  ACPI: \_SB_.SCK4.CPU4: Device don't exist, dropping EJECT

ACPI hot-plug drivers can use acpi_handle_<level>() when they need
to identify a target ACPI object path in their messages, such as
error cases.  The usage model is similar to dev_<level>().
acpi_handle_<level>() can be used when a device is not created or
is invalid during hot-plug operations.  ACPI object path is also
consistent on the platform, unlike device name that gets incremented
over hotplug operations.

ACPI drivers should use dev_<level>() when a device object is valid.
Device name provides more user friendly information, and avoids
acquiring the global ACPI namespace mutex.  ACPI drivers also
continue to use pr_<level>() when they do not need to specify device
information, such as boot-up messages.

Note: ACPI_[WARNING|INFO|ERROR]() are intended for the ACPICA and
are not associated with the kernel message level.

Signed-off-by: Toshi Kani <toshi.kani@hp.com>
Tested-by: Vijay Mohan Pandarathil <vijaymohan.pandarathil@hp.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2012-11-21 23:20:22 +01:00
..
acpica ACPICA: Table Manager: Merge duplicate code (root table) 2012-09-21 00:35:12 -04:00
apei ACPI: remove use of __devexit 2012-11-21 23:13:09 +01:00
ac.c ACPI / PM: Fix unused function warnings for CONFIG_PM_SLEEP 2012-08-10 13:35:32 +02:00
acpi_ipmi.c
acpi_memhotplug.c ACPI / memhotplug: bind the memory device when the driver is being loaded 2012-11-16 02:12:38 +01:00
acpi_pad.c ACPI: strict_strtoul() and printk() cleanup in acpi_pad 2012-11-15 00:16:00 +01:00
battery.c ACPI / battery: Correct battery capacity values on Thinkpads 2012-11-16 22:28:58 +01:00
bgrt.c efi: Fix the ACPI BGRT driver for images located in EFI boot services memory 2012-09-29 12:21:03 -07:00
blacklist.c
bus.c ACPI: run _OSC after ACPI_FULL_INITIALIZATION 2012-09-25 00:15:07 -04:00
button.c ACPI/button: convert to module_acpi_driver() 2012-09-21 13:38:29 -04:00
cm_sbs.c
container.c ACPI: Fix a hard coding style when determining if a device is a container, v3 2012-11-15 00:16:01 +01:00
custom_method.c
debugfs.c
dock.c ACPI: dock: Remove redundant ACPI NS walk 2012-11-15 00:16:00 +01:00
ec_sys.c
ec.c ACPI / EC: Don't count a SCI interrupt as a false one 2012-11-15 00:15:59 +01:00
event.c
fan.c ACPI/fan: convert to module_acpi_driver() 2012-09-21 13:39:03 -04:00
glue.c ACPI: Fix memory leak in acpi_bind_one() 2012-10-23 00:53:58 +02:00
hed.c ACPI: remove use of __devexit 2012-11-21 23:13:09 +01:00
internal.h ACPI / EC: Cleanup the member name for spinlock/mutex in struct 2012-11-15 00:15:59 +01:00
Kconfig efi: Fix the ACPI BGRT driver for images located in EFI boot services memory 2012-09-29 12:21:03 -07:00
Makefile ACPI: Reorder IPMI driver before any other ACPI drivers 2012-10-16 18:07:12 -07:00
numa.c ACPI: Only count valid srat memory structures 2012-08-03 00:15:53 -04:00
nvs.c
osl.c ACPI: Make seemingly useless check in osl.c more understandable 2012-11-15 00:18:20 +01:00
pci_bind.c
pci_irq.c
pci_link.c
pci_root.c Merge branch 'pci/taku-acpi-pci-host-bridge-v3' into next 2012-09-24 16:36:10 -06:00
pci_slot.c PCI/ACPI: Use acpi_pci_root info rather than looking it up again 2012-09-24 15:29:40 -06:00
power.c ACPI: add newline in power.c message 2012-11-15 00:18:21 +01:00
proc.c ACPI: Allow ACPI binding with USB-3.0 hub 2012-09-21 13:30:29 -04:00
processor_core.c
processor_driver.c ACPI: Add ACPI CPU hot-remove support 2012-11-15 00:16:04 +01:00
processor_idle.c cpuidle / ACPI: fix potential NULL pointer dereference 2012-10-08 22:51:27 -04:00
processor_perflib.c ACPI: Add fixups for AMD P-state figures 2012-09-09 22:05:02 +02:00
processor_thermal.c
processor_throttling.c
reboot.c
sbs.c ACPI / PM: Fix unused function warnings for CONFIG_PM_SLEEP 2012-08-10 13:35:32 +02:00
sbshc.c ACPI/sbshc: convert to module_acpi_driver() 2012-09-21 13:39:40 -04:00
sbshc.h
scan.c ACPI: create _SUN sysfs file 2012-11-16 02:56:59 +01:00
sleep.c ACPI / PM: Add Sony Vaio VPCEB1S1E to nonvs blacklist. 2012-11-21 23:12:12 +01:00
sleep.h
sysfs.c ACPI: replace strlen("string") with sizeof("string") -1 2012-07-26 21:35:28 -04:00
tables.c ACPI: Harden acpi_table_parse_entries() against BIOS bug 2012-10-06 15:51:49 -04:00
thermal.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux into thermal 2012-10-09 01:35:52 -04:00
utils.c ACPI: Add acpi_handle_<level>() interfaces 2012-11-21 23:20:22 +01:00
video_detect.c acpi/video_detect: blacklist samsung x360 2012-07-28 00:11:48 -04:00
video.c ACPI video: Ignore errors after _DOD evaluation. 2012-11-03 09:52:54 +08:00
wakeup.c