From 3c2abf0ae567eb5ec3dc86e150affff0dac340c8 Mon Sep 17 00:00:00 2001 From: Jin Dongming Date: Wed, 29 Sep 2010 19:53:53 +0800 Subject: [PATCH] --- yaml --- r: 211179 b: refs/heads/master c: 1dd6b20e368765223c31569d364219785b24700b h: refs/heads/master i: 211177: 0d42b26e9845bad009098c5a0c80814c2dffa0d4 211175: 48e1a7b1cb8664118f843ab32350eb61ba7aac78 v: v3 --- [refs] | 2 +- trunk/drivers/acpi/apei/ghes.c | 2 +- trunk/drivers/acpi/apei/hest.c | 11 +++++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 5baa67fc4016..601c2a1ac87a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bad97c37db9c1ee36de8ac58f9f73931d15a2e94 +refs/heads/master: 1dd6b20e368765223c31569d364219785b24700b diff --git a/trunk/drivers/acpi/apei/ghes.c b/trunk/drivers/acpi/apei/ghes.c index 385a6059714a..0d505e59214d 100644 --- a/trunk/drivers/acpi/apei/ghes.c +++ b/trunk/drivers/acpi/apei/ghes.c @@ -302,7 +302,7 @@ static int __devinit ghes_probe(struct platform_device *ghes_dev) struct ghes *ghes = NULL; int rc = -EINVAL; - generic = ghes_dev->dev.platform_data; + generic = *(struct acpi_hest_generic **)ghes_dev->dev.platform_data; if (!generic->enabled) return -ENODEV; diff --git a/trunk/drivers/acpi/apei/hest.c b/trunk/drivers/acpi/apei/hest.c index 343168d18266..1a3508a7fe03 100644 --- a/trunk/drivers/acpi/apei/hest.c +++ b/trunk/drivers/acpi/apei/hest.c @@ -137,20 +137,23 @@ static int hest_parse_ghes_count(struct acpi_hest_header *hest_hdr, void *data) static int hest_parse_ghes(struct acpi_hest_header *hest_hdr, void *data) { - struct acpi_hest_generic *generic; struct platform_device *ghes_dev; struct ghes_arr *ghes_arr = data; int rc; if (hest_hdr->type != ACPI_HEST_TYPE_GENERIC_ERROR) return 0; - generic = (struct acpi_hest_generic *)hest_hdr; - if (!generic->enabled) + + if (!((struct acpi_hest_generic *)hest_hdr)->enabled) return 0; ghes_dev = platform_device_alloc("GHES", hest_hdr->source_id); if (!ghes_dev) return -ENOMEM; - ghes_dev->dev.platform_data = generic; + + rc = platform_device_add_data(ghes_dev, &hest_hdr, sizeof(void *)); + if (rc) + goto err; + rc = platform_device_add(ghes_dev); if (rc) goto err;