|
@@ -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;
|