aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/container.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/container.c')
-rw-r--r--drivers/acpi/container.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/acpi/container.c b/drivers/acpi/container.c
index fe0cdf83641a..642bb305cb65 100644
--- a/drivers/acpi/container.c
+++ b/drivers/acpi/container.c
@@ -35,6 +35,8 @@
35#include <acpi/acpi_drivers.h> 35#include <acpi/acpi_drivers.h>
36#include <acpi/container.h> 36#include <acpi/container.h>
37 37
38#define PREFIX "ACPI: "
39
38#define ACPI_CONTAINER_DEVICE_NAME "ACPI container device" 40#define ACPI_CONTAINER_DEVICE_NAME "ACPI container device"
39#define ACPI_CONTAINER_CLASS "container" 41#define ACPI_CONTAINER_CLASS "container"
40 42
@@ -200,20 +202,17 @@ container_walk_namespace_cb(acpi_handle handle,
200 u32 lvl, void *context, void **rv) 202 u32 lvl, void *context, void **rv)
201{ 203{
202 char *hid = NULL; 204 char *hid = NULL;
203 struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
204 struct acpi_device_info *info; 205 struct acpi_device_info *info;
205 acpi_status status; 206 acpi_status status;
206 int *action = context; 207 int *action = context;
207 208
208 209 status = acpi_get_object_info(handle, &info);
209 status = acpi_get_object_info(handle, &buffer); 210 if (ACPI_FAILURE(status)) {
210 if (ACPI_FAILURE(status) || !buffer.pointer) {
211 return AE_OK; 211 return AE_OK;
212 } 212 }
213 213
214 info = buffer.pointer;
215 if (info->valid & ACPI_VALID_HID) 214 if (info->valid & ACPI_VALID_HID)
216 hid = info->hardware_id.value; 215 hid = info->hardware_id.string;
217 216
218 if (hid == NULL) { 217 if (hid == NULL) {
219 goto end; 218 goto end;
@@ -240,7 +239,7 @@ container_walk_namespace_cb(acpi_handle handle,
240 } 239 }
241 240
242 end: 241 end:
243 kfree(buffer.pointer); 242 kfree(info);
244 243
245 return AE_OK; 244 return AE_OK;
246} 245}