From 2ab395cbc4e85e008b14f3d21d36f1f64e6ab723 Mon Sep 17 00:00:00 2001 From: Len Brown Date: Thu, 14 Jul 2011 00:16:38 -0400 Subject: [PATCH] --- yaml --- r: 254951 b: refs/heads/master c: 7fb574a97f7147610c44cef55d0cde2409392a80 h: refs/heads/master i: 254949: 6ea2b94def39a40bcff885dfd5f635521632e56b 254947: 9d9499fe5a97a262d0ff741bae65efd42d4c35b8 254943: 516451bc6860c417c1a905b14605950086e79585 v: v3 --- [refs] | 2 +- trunk/drivers/acpi/apei/hest.c | 12 +++++++++++- trunk/include/acpi/acpi_bus.h | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 659fde003742..37cb7bf26e28 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 07e49a7a31153a95caa270d8ad7350a0bcd4d511 +refs/heads/master: 7fb574a97f7147610c44cef55d0cde2409392a80 diff --git a/trunk/drivers/acpi/apei/hest.c b/trunk/drivers/acpi/apei/hest.c index abda3786a5d7..181bc2f7bb74 100644 --- a/trunk/drivers/acpi/apei/hest.c +++ b/trunk/drivers/acpi/apei/hest.c @@ -139,13 +139,23 @@ static int __init hest_parse_ghes(struct acpi_hest_header *hest_hdr, void *data) { struct platform_device *ghes_dev; struct ghes_arr *ghes_arr = data; - int rc; + int rc, i; if (hest_hdr->type != ACPI_HEST_TYPE_GENERIC_ERROR) return 0; if (!((struct acpi_hest_generic *)hest_hdr)->enabled) return 0; + for (i = 0; i < ghes_arr->count; i++) { + struct acpi_hest_header *hdr; + ghes_dev = ghes_arr->ghes_devs[i]; + hdr = *(struct acpi_hest_header **)ghes_dev->dev.platform_data; + if (hdr->source_id == hest_hdr->source_id) { + pr_warning(FW_WARN HEST_PFX "Duplicated hardware error source ID: %d.\n", + hdr->source_id); + return -EIO; + } + } ghes_dev = platform_device_alloc("GHES", hest_hdr->source_id); if (!ghes_dev) return -ENOMEM; diff --git a/trunk/include/acpi/acpi_bus.h b/trunk/include/acpi/acpi_bus.h index 3a10ef5914eb..6cd5b6403a7b 100644 --- a/trunk/include/acpi/acpi_bus.h +++ b/trunk/include/acpi/acpi_bus.h @@ -210,7 +210,7 @@ struct acpi_device_power_state { struct acpi_device_power { int state; /* Current state */ struct acpi_device_power_flags flags; - struct acpi_device_power_state states[4]; /* Power states (D0-D3) */ + struct acpi_device_power_state states[ACPI_D_STATE_COUNT]; /* Power states (D0-D3Cold) */ }; /* Performance Management */