linux/drivers/acpi
Matt Fleming 83e6818974 efi: Make 'efi_enabled' a function to query EFI facilities
Originally 'efi_enabled' indicated whether a kernel was booted from
EFI firmware. Over time its semantics have changed, and it now
indicates whether or not we are booted on an EFI machine with
bit-native firmware, e.g. 64-bit kernel with 64-bit firmware.

The immediate motivation for this patch is the bug report at,

    https://bugs.launchpad.net/ubuntu-cdimage/+bug/1040557

which details how running a platform driver on an EFI machine that is
designed to run under BIOS can cause the machine to become
bricked. Also, the following report,

    https://bugzilla.kernel.org/show_bug.cgi?id=47121

details how running said driver can also cause Machine Check
Exceptions. Drivers need a new means of detecting whether they're
running on an EFI machine, as sadly the expression,

    if (!efi_enabled)

hasn't been a sufficient condition for quite some time.

Users actually want to query 'efi_enabled' for different reasons -
what they really want access to is the list of available EFI
facilities.

For instance, the x86 reboot code needs to know whether it can invoke
the ResetSystem() function provided by the EFI runtime services, while
the ACPI OSL code wants to know whether the EFI config tables were
mapped successfully. There are also checks in some of the platform
driver code to simply see if they're running on an EFI machine (which
would make it a bad idea to do BIOS-y things).

This patch is a prereq for the samsung-laptop fix patch.

Cc: David Airlie <airlied@linux.ie>
Cc: Corentin Chary <corentincj@iksaif.net>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Olof Johansson <olof@lixom.net>
Cc: Peter Jones <pjones@redhat.com>
Cc: Colin Ian King <colin.king@canonical.com>
Cc: Steve Langasek <steve.langasek@canonical.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Cc: <stable@vger.kernel.org>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2013-01-30 11:51:59 -08:00
..
acpica ACPICA: Remove useless mini-C library. 2013-01-03 13:09:10 +01:00
apei ACPI / APEI: Fix the returned value in erst_dbg_read 2013-01-03 13:10:20 +01:00
ac.c ACPI / PM: Fix unused function warnings for CONFIG_PM_SLEEP 2012-08-10 13:35:32 +02:00
acpi_i2c.c i2c / ACPI: add ACPI enumeration support 2012-11-23 12:23:40 +01:00
acpi_ipmi.c IPMI/ACPI: Add the IPMI opregion driver to enable ACPI to access BMC controller 2010-12-14 00:22:14 -05:00
acpi_memhotplug.c ACPI / memhotplug: remove redundant logic of acpi memory hotadd 2013-01-03 13:10:21 +01:00
acpi_pad.c ACPI: strict_strtoul() and printk() cleanup in acpi_pad 2012-11-15 00:16:00 +01:00
acpi_platform.c ACPI / platform: include missed header into acpi_platform.c 2012-11-27 13:44:58 +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 acpi: delete module.h include from files explicitly not needing it 2011-10-31 19:30:33 -04:00
bus.c ACPI / PM: Add check preventing transitioning to non-D0 state from D3. 2012-11-16 02:46:28 +01:00
button.c ACPI/button: convert to module_acpi_driver() 2012-09-21 13:38:29 -04:00
cm_sbs.c
container.c ACPI: Update Container hotplug error messages 2012-11-21 23:20:23 +01:00
custom_method.c ACPI: Split out custom_method functionality into an own driver 2011-05-29 01:50:40 -04:00
debugfs.c acpi: add export.h to files using THIS_MODULE/EXPORT_SYMBOL 2011-10-31 19:30:34 -04:00
device_pm.c ACPI / PM: Do not apply ACPI_SUCCESS() to acpi_bus_get_device() result 2013-01-03 13:10:21 +01:00
dock.c ACPI: Update Dock hotplug error messages 2012-11-21 23:20:23 +01:00
ec_sys.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
ec.c ACPI / EC: Don't count a SCI interrupt as a false one 2012-11-15 00:15:59 +01:00
event.c acpi: add export.h to files using THIS_MODULE/EXPORT_SYMBOL 2011-10-31 19:30:34 -04:00
fan.c ACPI/fan: convert to module_acpi_driver() 2012-09-21 13:39:03 -04:00
glue.c ACPI / glue: Fix build with ACPI_GLUE_DEBUG set 2013-01-12 14:00:06 +01:00
hed.c Driver core updates for 3.8-rc1 2012-12-11 13:13:55 -08:00
internal.h Merge branch 'acpi-general' 2012-11-29 21:43:06 +01:00
Kconfig Merge branch 'x86-acpi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-12-14 10:03:23 -08:00
Makefile Merge branch 'acpi-dev-pm' into acpi-enumeration 2012-11-27 13:42:42 +01:00
numa.c ACPI: Only count valid srat memory structures 2012-08-03 00:15:53 -04:00
nvs.c ACPI / PM: print physical addresses consistently with other parts of kernel 2012-03-30 02:46:57 -04:00
osl.c efi: Make 'efi_enabled' a function to query EFI facilities 2013-01-30 11:51:59 -08:00
pci_bind.c Merge branch 'pci/misc' into next 2012-11-13 14:34:06 -07:00
pci_irq.c PCI changes for the v3.8 merge window: 2012-12-13 12:14:47 -08:00
pci_link.c acpi: use KERN_CONT in printk() continuation lines 2012-05-08 08:55:26 -07:00
pci_root.c PCI changes for the v3.8 merge window: 2012-12-13 12:14:47 -08: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 / power: Remove useless message from device registering routine 2013-01-03 13:10:22 +01:00
proc.c ACPI: drop unnecessary local variable from acpi_system_write_wakeup_device() 2012-11-22 23:20:31 +01:00
processor_core.c cpufreq / ACPI: Fix not loading acpi-cpufreq driver regression 2012-07-12 22:39:32 +02:00
processor_driver.c ACPI: Update CPU hotplug error messages 2012-11-21 23:20:22 +01:00
processor_idle.c cpuidle: Measure idle state durations with monotonic clock 2012-11-27 14:17:58 +01:00
processor_perflib.c ACPI: Add fixups for AMD P-state figures 2012-09-09 22:05:02 +02:00
processor_thermal.c ACPI: Do cpufreq clamping for throttling per package v2 2012-03-22 02:16:14 -04:00
processor_throttling.c ACPI throttling: fix endian bug in acpi_read_throttling_status() 2012-03-30 16:06:12 -04:00
reboot.c Revert "ACPI: ignore FADT reset-reg-sup flag" 2012-04-20 11:19:35 -07:00
resource.c ACPI: remove unnecessary INIT_LIST_HEAD 2012-11-27 13:49:36 +01:00
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 / scan: Do not use dummy HID for system bus ACPI nodes 2013-01-04 23:00:54 +01:00
sleep.c Merge branch 'acpi-general' 2012-12-04 13:46:08 +01:00
sleep.h ACPI: static sleep_states[] and acpi_gts_bfs_check 2010-10-19 13:44:37 -04:00
sysfs.c ACPICA: Fix AcpiSrc caused divergences. 2012-11-15 00:31:23 +01: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 2012-12-12 07:57:13 -08:00
utils.c ACPI: Add acpi_handle_<level>() interfaces 2012-11-21 23:20:22 +01:00
video_detect.c ACPI / video: Add "Asus UL30VT" to ACPI video detect blacklist 2012-11-30 13:02:50 +01:00
video.c ACPI / video: ignore BIOS initial backlight value for HP Folio 13-2000 2012-12-04 23:30:19 +01:00
wakeup.c ACPI / Wakeup: Enable button GPEs unconditionally during initialization 2011-02-12 01:39:53 +01:00