Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9cbc7960288d28aec95257af59854e1d14ba23b8
Commit:     9cbc7960288d28aec95257af59854e1d14ba23b8
Parent:     6ed31e92e94830c138fbd470486383380710069a
Author:     √Čric Piel <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 5 00:04:58 2008 +0100
Committer:  Len Brown <[EMAIL PROTECTED]>
CommitDate: Thu Feb 7 04:00:24 2008 -0500

    ACPI: Add "acpi_no_initrd_override" kernel parameter
    
    The acpi_no_initrd_override parameter permits to disable the load of an ACPI
    table from the initramfs.
    
    Signed-off-by: Eric Piel <[EMAIL PROTECTED]>
    Signed-off-by: Len Brown <[EMAIL PROTECTED]>
---
 Documentation/kernel-parameters.txt |    3 +++
 drivers/acpi/osl.c                  |   16 +++++++++++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/Documentation/kernel-parameters.txt 
b/Documentation/kernel-parameters.txt
index 8fd5aa4..ef2316a 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -175,6 +175,9 @@ and is between 256 and 4096 characters. It is defined in 
the file
 
        acpi_no_auto_ssdt       [HW,ACPI] Disable automatic loading of SSDT
 
+       acpi_no_initrd_override [KNL,ACPI]
+                       Disable loading custom ACPI tables from the initramfs
+
        acpi_os_name=   [HW,ACPI] Tell ACPI BIOS the name of the OS
                        Format: To spoof as Windows 98: ="Microsoft Windows"
 
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index bbd8360..2b41bdd 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -77,6 +77,10 @@ static struct workqueue_struct *kacpi_notify_wq;
 #define        OSI_STRING_LENGTH_MAX 64        /* arbitrary */
 static char osi_additional_string[OSI_STRING_LENGTH_MAX];
 
+#ifdef CONFIG_ACPI_CUSTOM_DSDT_INITRD
+static int acpi_no_initrd_override;
+#endif
+
 /*
  * "Ode to _OSI(Linux)"
  *
@@ -386,7 +390,8 @@ acpi_os_table_override(struct acpi_table_header * 
existing_table,
                *new_table = (struct acpi_table_header *)AmlCode;
 #endif
 #ifdef CONFIG_ACPI_CUSTOM_DSDT_INITRD
-       if (strncmp(existing_table->signature, "DSDT", 4) == 0) {
+       if ((strncmp(existing_table->signature, "DSDT", 4) == 0) &&
+           !acpi_no_initrd_override) {
                struct acpi_table_header *initrd_table = 
acpi_find_dsdt_initrd();
                if (initrd_table)
                        *new_table = initrd_table;
@@ -402,6 +407,15 @@ acpi_os_table_override(struct acpi_table_header * 
existing_table,
        return AE_OK;
 }
 
+#ifdef CONFIG_ACPI_CUSTOM_DSDT_INITRD
+int __init acpi_no_initrd_override_setup(char *s)
+{
+       acpi_no_initrd_override = 1;
+       return 1;
+}
+__setup("acpi_no_initrd_override", acpi_no_initrd_override_setup);
+#endif
+
 static irqreturn_t acpi_irq(int irq, void *dev_id)
 {
        return (*acpi_irq_handler) (acpi_irq_context) ? IRQ_HANDLED : IRQ_NONE;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to