aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi')
-rw-r--r--drivers/acpi/bus.c9
-rw-r--r--drivers/acpi/numa.c2
-rw-r--r--drivers/acpi/osl.c50
-rw-r--r--drivers/acpi/sleep.c16
4 files changed, 18 insertions, 59 deletions
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 765fd1c56cd6..bee64b73c919 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -758,8 +758,7 @@ static int __init acpi_bus_init(void)
758 acpi_status status = AE_OK; 758 acpi_status status = AE_OK;
759 extern acpi_status acpi_os_initialize1(void); 759 extern acpi_status acpi_os_initialize1(void);
760 760
761 761 acpi_os_initialize1();
762 status = acpi_os_initialize1();
763 762
764 status = 763 status =
765 acpi_enable_subsystem(ACPI_NO_HARDWARE_INIT | ACPI_NO_ACPI_ENABLE); 764 acpi_enable_subsystem(ACPI_NO_HARDWARE_INIT | ACPI_NO_ACPI_ENABLE);
@@ -769,12 +768,6 @@ static int __init acpi_bus_init(void)
769 goto error1; 768 goto error1;
770 } 769 }
771 770
772 if (ACPI_FAILURE(status)) {
773 printk(KERN_ERR PREFIX
774 "Unable to initialize ACPI OS objects\n");
775 goto error1;
776 }
777
778 /* 771 /*
779 * ACPI 2.0 requires the EC driver to be loaded and work before 772 * ACPI 2.0 requires the EC driver to be loaded and work before
780 * the EC device is found in the namespace (i.e. before acpi_initialize_objects() 773 * the EC device is found in the namespace (i.e. before acpi_initialize_objects()
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
index c5e292aab0e3..3a0d8ef25c75 100644
--- a/drivers/acpi/numa.c
+++ b/drivers/acpi/numa.c
@@ -277,7 +277,7 @@ int acpi_get_node(acpi_handle *handle)
277 int pxm, node = -1; 277 int pxm, node = -1;
278 278
279 pxm = acpi_get_pxm(handle); 279 pxm = acpi_get_pxm(handle);
280 if (pxm >= 0) 280 if (pxm >= 0 && pxm < MAX_PXM_DOMAINS)
281 node = acpi_map_pxm_to_node(pxm); 281 node = acpi_map_pxm_to_node(pxm);
282 282
283 return node; 283 return node;
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 2b6c59028254..eb8980d67368 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -1324,54 +1324,6 @@ acpi_os_validate_interface (char *interface)
1324 return AE_SUPPORT; 1324 return AE_SUPPORT;
1325} 1325}
1326 1326
1327#ifdef CONFIG_X86
1328
1329struct aml_port_desc {
1330 uint start;
1331 uint end;
1332 char* name;
1333 char warned;
1334};
1335
1336static struct aml_port_desc aml_invalid_port_list[] = {
1337 {0x20, 0x21, "PIC0", 0},
1338 {0xA0, 0xA1, "PIC1", 0},
1339 {0x4D0, 0x4D1, "ELCR", 0}
1340};
1341
1342/*
1343 * valid_aml_io_address()
1344 *
1345 * if valid, return true
1346 * else invalid, warn once, return false
1347 */
1348static bool valid_aml_io_address(uint address, uint length)
1349{
1350 int i;
1351 int entries = sizeof(aml_invalid_port_list) / sizeof(struct aml_port_desc);
1352
1353 for (i = 0; i < entries; ++i) {
1354 if ((address >= aml_invalid_port_list[i].start &&
1355 address <= aml_invalid_port_list[i].end) ||
1356 (address + length >= aml_invalid_port_list[i].start &&
1357 address + length <= aml_invalid_port_list[i].end))
1358 {
1359 if (!aml_invalid_port_list[i].warned)
1360 {
1361 printk(KERN_ERR "ACPI: Denied BIOS AML access"
1362 " to invalid port 0x%x+0x%x (%s)\n",
1363 address, length,
1364 aml_invalid_port_list[i].name);
1365 aml_invalid_port_list[i].warned = 1;
1366 }
1367 return false; /* invalid */
1368 }
1369 }
1370 return true; /* valid */
1371}
1372#else
1373static inline bool valid_aml_io_address(uint address, uint length) { return true; }
1374#endif
1375/****************************************************************************** 1327/******************************************************************************
1376 * 1328 *
1377 * FUNCTION: acpi_os_validate_address 1329 * FUNCTION: acpi_os_validate_address
@@ -1401,8 +1353,6 @@ acpi_os_validate_address (
1401 1353
1402 switch (space_id) { 1354 switch (space_id) {
1403 case ACPI_ADR_SPACE_SYSTEM_IO: 1355 case ACPI_ADR_SPACE_SYSTEM_IO:
1404 if (!valid_aml_io_address(address, length))
1405 return AE_AML_ILLEGAL_ADDRESS;
1406 case ACPI_ADR_SPACE_SYSTEM_MEMORY: 1356 case ACPI_ADR_SPACE_SYSTEM_MEMORY:
1407 /* Only interference checks against SystemIO and SytemMemory 1357 /* Only interference checks against SystemIO and SytemMemory
1408 are needed */ 1358 are needed */
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 519266654f06..00456fccfa38 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -378,6 +378,22 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
378 DMI_MATCH(DMI_PRODUCT_NAME, "Macmini1,1"), 378 DMI_MATCH(DMI_PRODUCT_NAME, "Macmini1,1"),
379 }, 379 },
380 }, 380 },
381 {
382 .callback = init_old_suspend_ordering,
383 .ident = "Asus Pundit P1-AH2 (M2N8L motherboard)",
384 .matches = {
385 DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTek Computer INC."),
386 DMI_MATCH(DMI_BOARD_NAME, "M2N8L"),
387 },
388 },
389 {
390 .callback = init_set_sci_en_on_resume,
391 .ident = "Toshiba Satellite L300",
392 .matches = {
393 DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
394 DMI_MATCH(DMI_PRODUCT_NAME, "Satellite L300"),
395 },
396 },
381 {}, 397 {},
382}; 398};
383#endif /* CONFIG_SUSPEND */ 399#endif /* CONFIG_SUSPEND */