Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1157363

[PATCH 3.10 44/46] ACPI / init: Fix the ordering of acpi_reserve_resources()

From Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Newsgroups linux.kernel
Subject [PATCH 3.10 44/46] ACPI / init: Fix the ordering of acpi_reserve_resources()
Date 2015-06-03 13:50 +0200
Message-ID <pxflg-8gc-21@gated-at.bofh.it> (permalink)
References <pxflf-8gc-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>

commit b9a5e5e18fbf223502c0b2264c15024e393da928 upstream.

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
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/acpi/osl.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -173,7 +173,7 @@ static void __init acpi_request_region (
 		request_mem_region(addr, length, desc);
 }
 
-static int __init acpi_reserve_resources(void)
+static void __init acpi_reserve_resources(void)
 {
 	acpi_request_region(&acpi_gbl_FADT.xpm1a_event_block, acpi_gbl_FADT.pm1_event_length,
 		"ACPI PM1a_EVT_BLK");
@@ -202,10 +202,7 @@ static int __init acpi_reserve_resources
 	if (!(acpi_gbl_FADT.gpe1_block_length & 0x1))
 		acpi_request_region(&acpi_gbl_FADT.xgpe1_block,
 			       acpi_gbl_FADT.gpe1_block_length, "ACPI GPE1_BLK");
-
-	return 0;
 }
-device_initcall(acpi_reserve_resources);
 
 void acpi_os_printf(const char *fmt, ...)
 {
@@ -1727,6 +1724,7 @@ acpi_status __init acpi_os_initialize(vo
 
 acpi_status __init acpi_os_initialize1(void)
 {
+	acpi_reserve_resources();
 	kacpid_wq = alloc_workqueue("kacpid", 0, 1);
 	kacpi_notify_wq = alloc_workqueue("kacpi_notify", 0, 1);
 	kacpi_hotplug_wq = alloc_workqueue("kacpi_hotplug", 0, 1);


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 3.10 00/46] 3.10.80-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 07/46] net: socket: Fix the wrong returns for recvmsg and sendmsg Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 42/46] rtlwifi: rtl8192cu: Fix kernel deadlock Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 36/46] rt2x00: add new rt2800usb device DWA 130 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 44/46] ACPI / init: Fix the ordering of acpi_reserve_resources() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 11/46] libceph: request a new osdmap if lingering request maps to no osd Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 19/46] ASoC: wm8960: fix "RINPUT3" audio route error Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 23/46] xhci: Solve full event ring by increasing TRBS_PER_SEGMENT to 256 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 22/46] xhci: fix isoc endpoint dequeue from advancing too far on transaction error Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 10/46] lguest: fix out-by-one error in address checking. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 31/46] mmc: atmel-mci: fix bad variable type for clkdiv Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 12/46] hwmon: (ntc_thermistor) Ensure iio channel is of type IIO_VOLTAGE Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 09/46] fs, omfs: add NULL terminator in the end up the token list Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 15/46] ALSA: hda - Add Conexant codecs CX20721, CX20722, CX20723 and CX20724 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 16/46] ALSA: hda - Add headphone quirk for Lifebook E752 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 14/46] d_walk() might skip too much Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 43/46] Input: elantech - fix semi-mt protocol for v3 HW Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 46/46] fs/binfmt_elf.c:load_elf_binary(): return -EINVAL on zero-length mappings Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 24/46] xhci: gracefully handle xhci_irq dead device Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 01/46] staging: wlags49_h2: fix extern inline functions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 37/46] crypto: s390/ghash - Fix incorrect ghash icv buffer handling. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 08/46] KVM: MMU: fix CR4.SMEP=1, CR0.WP=0 with shadow pages Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 45/46] vfs: read file_handle only once in handle_to_path Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 06/46] kernel: use the gnu89 standard explicitly Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 18/46] ASoC: uda1380: Avoid accessing i2c bus when codec is disabled Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 13:50 +0200
  [PATCH 3.10 34/46] libata: Add helper to determine when PHY events should be ignored Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 25/46] USB: visor: Match I330 phone more precisely Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 20/46] ASoC: wm8994: correct BCLK DIV 348 to 384 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 04/46] staging: rtl8712, rtl8712: avoid lots of build warnings Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 32/46] ext4: convert write_begin methods to stable_page_writes semantics Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 30/46] powerpc: Align TOC to 256 bytes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 13/46] lib: Fix strnlen_user() to not touch memory after specified maximum Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 39/46] ARM: fix missing syscall trace exit Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 05/46] staging, rtl8192e, LLVMLinux: Remove unused inline prototype Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 03/46] staging, rtl8192e, LLVMLinux: Change extern inline to static inline Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 17/46] ASoC: mc13783: Fix wrong mask value used in mc13xxx_reg_rmw() calls Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 41/46] md/raid5: dont record new size if resize_stripes fails. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 26/46] USB: pl2303: Remove support for Samsung I330 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 29/46] usb: gadget: configfs: Fix interfaces array NULL-termination Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 33/46] ext4: check for zero length extent explicitly Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 40/46] svcrpc: fix potential GSSX_ACCEPT_SEC_CONTEXT decoding failures Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  [PATCH 3.10 27/46] USB: cp210x: add ID for KCF Technologies PRN device Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-06-03 14:00 +0200
  Re: [PATCH 3.10 00/46] 3.10.80-stable review Shuah Khan <shuahkh@osg.samsung.com> - 2015-06-03 19:00 +0200

csiph-web