aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorJohn Keller <jpk@sgi.com>2007-02-28 17:47:27 -0600
committerLen Brown <len.brown@intel.com>2007-03-01 02:32:58 -0500
commit3fd0b2d9ad7612f249e5516d887ab7c61b24ddb9 (patch)
treeb2cbd00aae9599126ca588e08c9757066521303e /arch/ia64
parent690b8d9d54941c90af1d43b0cc24903d20386f5b (diff)
downloadkernel_samsung_espresso10-3fd0b2d9ad7612f249e5516d887ab7c61b24ddb9.zip
kernel_samsung_espresso10-3fd0b2d9ad7612f249e5516d887ab7c61b24ddb9.tar.gz
kernel_samsung_espresso10-3fd0b2d9ad7612f249e5516d887ab7c61b24ddb9.tar.bz2
ACPI: Altix: reinitialize acpi tables
To provide compatibilty with SN kernels that do and do not have ACPI IO support, the SN PROM must build different versions of some ACPI tables based on which kernel is booting. As such, the tables may have to change at kernel boot time. By default, prior to kernel boot, the PROM builds an empty DSDT (header only) and no SSDTs. If an ACPI capable kernel boots, the kernel will notify the PROM, at platform setup time, and the PROM will build full DSDT and SSDT tables. With the latest changes to acpi_table_init(), the table lengths are saved, and when our PROM changes them, the changes are not seen, and the kernel will crash on boot. Because of issues with kexec support, we are not able to create the tables prior to acpi_table_init(). As a result, we are making a second call to acpi_table_init() to process the rebuilt DSDT and SSDTs. Signed-off-by: John Keller <jpk@sgi.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/sn/kernel/setup.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c
index 8571e52..bd5373d 100644
--- a/arch/ia64/sn/kernel/setup.c
+++ b/arch/ia64/sn/kernel/setup.c
@@ -397,6 +397,8 @@ void __init sn_setup(char **cmdline_p)
ia64_sn_set_os_feature(OSF_PCISEGMENT_ENABLE);
ia64_sn_set_os_feature(OSF_ACPI_ENABLE);
+ /* Load the new DSDT and SSDT tables into the global table list. */
+ acpi_table_init();
#if defined(CONFIG_VT) && defined(CONFIG_VGA_CONSOLE)
/*