aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/osl.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/osl.c')
-rw-r--r--drivers/acpi/osl.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 6ab2c3505520..e8baa408faef 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -140,7 +140,8 @@ static struct osi_linux {
140 unsigned int enable:1; 140 unsigned int enable:1;
141 unsigned int dmi:1; 141 unsigned int dmi:1;
142 unsigned int cmdline:1; 142 unsigned int cmdline:1;
143} osi_linux = {0, 0, 0}; 143 unsigned int default_disabling:1;
144} osi_linux = {0, 0, 0, 0};
144 145
145static u32 acpi_osi_handler(acpi_string interface, u32 supported) 146static u32 acpi_osi_handler(acpi_string interface, u32 supported)
146{ 147{
@@ -1376,6 +1377,10 @@ void __init acpi_osi_setup(char *str)
1376 1377
1377 if (*str == '!') { 1378 if (*str == '!') {
1378 str++; 1379 str++;
1380 if (*str == '\0') {
1381 osi_linux.default_disabling = 1;
1382 return;
1383 }
1379 enable = false; 1384 enable = false;
1380 } 1385 }
1381 1386
@@ -1441,6 +1446,13 @@ static void __init acpi_osi_setup_late(void)
1441 int i; 1446 int i;
1442 acpi_status status; 1447 acpi_status status;
1443 1448
1449 if (osi_linux.default_disabling) {
1450 status = acpi_update_interfaces(ACPI_DISABLE_ALL_VENDOR_STRINGS);
1451
1452 if (ACPI_SUCCESS(status))
1453 printk(KERN_INFO PREFIX "Disabled all _OSI OS vendors\n");
1454 }
1455
1444 for (i = 0; i < OSI_STRING_ENTRIES_MAX; i++) { 1456 for (i = 0; i < OSI_STRING_ENTRIES_MAX; i++) {
1445 osi = &osi_setup_entries[i]; 1457 osi = &osi_setup_entries[i];
1446 str = osi->string; 1458 str = osi->string;