linux/drivers/acpi
Rafael J. Wysocki beeaeeac0f ACPI / init: Fix the ordering of acpi_reserve_resources()
[ Upstream commit b9a5e5e18f ]

Since acpi_reserve_resources() is defined as a device_initcall(),
there's no guarantee that it will be executed in the right order
with respect to the rest of the ACPI initialization code.  On some
systems this leads to breakage if, for example, the address range
that should be reserved for the ACPI fixed registers is given to
the PCI host bridge instead if the race is won by the wrong code
path.

Fix this by turning acpi_reserve_resources() into a void function
and calling it directly from within the ACPI initialization sequence.

Reported-and-tested-by: George McCollister <george.mccollister@gmail.com>
Link: http://marc.info/?t=143092384600002&r=1&w=2
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
History 2015-06-10 13:42:40 -04:00
..
acpica ACPICA: Utilities: Cleanup to remove useless ACPI_PRINTF/FORMAT_xxx helpers. 2015-06-09 13:43:42 -04:00
apei ACPI and power management updates for 3.17-rc1 2014-08-06 20:34:19 -07:00
ac.c Revert "ACPI / AC: Remove AC's proc directory." 2014-07-07 01:13:46 +02:00
acpi_cmos_rtc.c ACPI / RTC: Fix CMOS RTC opregion handler accesses to wrong addresses 2014-09-08 15:38:41 +02:00
acpi_extlog.c ACPI and power management updates for 3.17-rc1 2014-08-06 20:34:19 -07:00
acpi_ipmi.c ACPI / IPMI: Cleanup coding styles 2013-09-30 19:46:13 +02:00
acpi_lpss.c ACPI / LPSS: provide con_id for the clkdev 2015-03-23 21:02:51 -04:00
acpi_memhotplug.c ACPI / scan: always register memory hotplug scan handler 2014-05-30 16:04:36 +02:00
acpi_pad.c ACPI / PAD: Use time_before() for time comparison 2014-05-27 01:38:23 +02:00
acpi_platform.c ACPI and power management updates for 3.18-rc2 2014-10-24 11:29:31 -07:00
acpi_pnp.c ACPI / PNP: add two IDs to list for PNPACPI device enumeration 2015-05-23 15:42:32 -04:00
acpi_processor.c ACPI: Don't use acpi_lapic in ACPI core code 2014-07-21 13:50:58 +02:00
battery.c ACPI / battery: Replace strnicmp with strncasecmp 2014-09-24 23:26:32 +02:00
battery.h ACPI / battery: move some ACPI_BATTERY_* definitions to header 2014-03-19 01:57:46 +01:00
bgrt.c acpi: bgrt: fix build error due to attribute change 2013-08-22 08:34:39 -07:00
blacklist.c ACPI / blacklist: blacklist Win8 OSI for Dell Vostro 3546 2014-10-30 01:32:43 +01:00
bus.c ACPIPHP / radeon / nouveau: Remove acpi_bus_no_hotplug() 2014-09-15 13:15:34 -06:00
button.c ACPI / button: Do not propagate wakeup-from-suspend events 2014-07-23 00:59:04 +02:00
cm_sbs.c ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c" 2014-05-06 01:52:09 +02:00
container.c ACPI / hotplug: Generate online uevents for ACPI containers 2014-09-21 02:58:18 +02:00
custom_method.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
debugfs.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
device_pm.c ACPI / PM: Do not disable wakeup GPEs that have not been enabled 2015-01-29 17:40:46 -08:00
dock.c ACPI / dock: Drop dock_device_ids[] table 2014-04-07 14:11:35 +02:00
ec.c ACPI / EC: Fix regression due to conflicting firmware behavior between Samsung and Acer. 2014-10-29 16:52:35 +01:00
ec_sys.c ACPI / EC: Mark the function acpi_ec_add_debugfs() as static in ec_sys.c 2014-01-06 00:13:22 +01:00
event.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
fan.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2014-10-24 11:21:43 -07:00
glue.c ACPI / scan: Add bind/unbind callbacks to struct acpi_scan_handler 2014-02-11 00:35:46 +01:00
hed.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
int340x_thermal.c Thermal: introduce int3400 thermal driver 2014-10-10 13:57:09 +08:00
internal.h ACPI / fan: use acpi_device_xxx_power instead of acpi_bus equivelant 2014-10-10 13:57:12 +08:00
Kconfig Thermal: int340x thermal: select ACPI fan driver 2014-10-17 14:30:41 +08:00
Makefile ACPI: introduce ACPI int340x thermal scan handler 2014-09-11 23:35:15 +08:00
numa.c ACPI / numa: Use __weak, not the gcc-specific version 2014-02-03 10:39:43 -07:00
nvs.c ACPI: Clean up acpi_os_map/unmap_memory() to eliminate __iomem. 2014-05-27 18:13:08 +02:00
osl.c ACPI / init: Fix the ordering of acpi_reserve_resources() 2015-06-10 13:42:40 -04:00
pci_irq.c x86, irq, PCI: Keep IRQ assignment for runtime power management 2014-08-29 13:38:00 +02:00
pci_link.c ACPI: Remove duplicate definitions of PREFIX 2014-03-19 02:01:57 +01:00
pci_root.c ACPI: Support _OSI("Darwin") correctly 2014-09-24 23:31:12 +02:00
pci_slot.c ACPI / PCI: Include appropriate header file in pci_slot.c 2014-01-06 00:13:22 +01:00
power.c ACPI: Remove duplicate definitions of PREFIX 2014-03-19 02:01:57 +01:00
proc.c ACPI / proc: remove unneeded NULL check 2014-02-05 01:06:21 +01:00
processor_core.c ACPI / processor: use container_of instead of casting first structure member 2014-09-24 23:13:02 +02:00
processor_driver.c ACPI / processor: Make acpi_cpu_soft_notify() process CPU FROZEN events 2014-08-06 22:22:03 +02:00
processor_idle.c cpuidle: ACPI: do not overwrite name and description of C0 2015-04-24 17:13:57 -04:00
processor_pdc.c ACPI / processor: Introduce ARCH_MIGHT_HAVE_ACPI_PDC 2014-07-21 13:50:58 +02:00
processor_perflib.c ACPI / processor: use acpi_evaluate_ost() to replace open-coded version 2014-02-21 00:27:47 +01:00
processor_thermal.c ACPI: correct minor typos 2013-12-07 01:38:45 +01:00
processor_throttling.c ACPI / processor: Rework processor throttling with work_on_cpu() 2014-02-27 00:21:05 +01:00
reboot.c Revert "ACPI: ignore FADT reset-reg-sup flag" 2012-04-20 11:19:35 -07:00
resource.c ACPI / resources: only reject zero length resources based at address zero 2014-07-07 22:11:09 +02:00
sbs.c ACPI / SBS: Enable battery manager when present 2015-05-17 19:12:39 -04:00
sbshc.c ACPI / SBS: Add 5 us delay to fix SBS hangs on MacBook 2015-05-23 15:41:42 -04:00
sbshc.h ACPI: SBS: Ignore alarms coming from unknown devices 2007-12-14 15:14:06 -05:00
scan.c ACPI / scan: Annotate physical_node_lock in acpi_scan_is_offline() 2015-05-17 19:12:16 -04:00
sleep.c ACPI / sleep: Rework the handling of ACPI GPE wakeup from suspend-to-idle 2014-09-30 21:06:07 +02:00
sleep.h ACPI: Drop power resources driver 2013-01-17 14:11:06 +01:00
sysfs.c ACPICA: Events: Reduce source code difference for the ACPI_EVENT_FLAG_HANDLE renaming. 2014-10-21 00:39:40 +02:00
tables.c ACPI: use kstrto*() instead of simple_strto*() 2014-06-17 14:01:56 +02:00
thermal.c Thermal: move the KELVIN_TO_MILLICELSIUS macro to thermal.h 2014-10-10 13:57:15 +08:00
utils.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2014-10-24 11:21:43 -07:00
video.c ACPI / video: Load the module even if ACPI is disabled 2015-03-23 21:02:51 -04:00
video_detect.c ACPI / video: force vendor backlight on Lenovo Ideapad Z570 2014-09-24 23:09:41 +02:00
wakeup.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00