diff options
author | 2014-11-18 19:43:46 -0700 | |
---|---|---|
committer | 2014-11-18 19:43:46 -0700 | |
commit | b3521729769ec71567a2e32a38609f87e781e41b (patch) | |
tree | 66a8494968706420c3eb043caa5868702d440d18 /drivers/acpi/utils.c | |
parent | NVMe: enable IO stats by default (diff) | |
parent | Linux 3.18-rc5 (diff) | |
download | linux-dev-b3521729769ec71567a2e32a38609f87e781e41b.tar.xz linux-dev-b3521729769ec71567a2e32a38609f87e781e41b.zip |
Merge branch 'master' into for-3.19/drivers
Diffstat (limited to 'drivers/acpi/utils.c')
-rw-r--r-- | drivers/acpi/utils.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c index 834f35c4bf8d..371ac12d25b1 100644 --- a/drivers/acpi/utils.c +++ b/drivers/acpi/utils.c @@ -149,6 +149,21 @@ acpi_extract_package(union acpi_object *package, break; } break; + case ACPI_TYPE_LOCAL_REFERENCE: + switch (format_string[i]) { + case 'R': + size_required += sizeof(void *); + tail_offset += sizeof(void *); + break; + default: + printk(KERN_WARNING PREFIX "Invalid package element" + " [%d] got reference," + " expecting [%c]\n", + i, format_string[i]); + return AE_BAD_DATA; + break; + } + break; case ACPI_TYPE_PACKAGE: default: @@ -247,7 +262,18 @@ acpi_extract_package(union acpi_object *package, break; } break; - + case ACPI_TYPE_LOCAL_REFERENCE: + switch (format_string[i]) { + case 'R': + *(void **)head = + (void *)element->reference.handle; + head += sizeof(void *); + break; + default: + /* Should never get here */ + break; + } + break; case ACPI_TYPE_PACKAGE: /* TBD: handle nested packages... */ default: |