|
@@ -750,7 +750,8 @@ WMI_execute_u32(u32 method_id, u32 in, u32 *out)
|
|
|
|
|
|
obj = (union acpi_object *) result.pointer;
|
|
|
if (obj && obj->type == ACPI_TYPE_BUFFER &&
|
|
|
- obj->buffer.length == sizeof(u32)) {
|
|
|
+ (obj->buffer.length == sizeof(u32) ||
|
|
|
+ obj->buffer.length == sizeof(u64))) {
|
|
|
tmp = *((u32 *) obj->buffer.pointer);
|
|
|
} else {
|
|
|
tmp = 0;
|
|
@@ -879,7 +880,8 @@ static acpi_status WMID_set_capabilities(void)
|
|
|
|
|
|
obj = (union acpi_object *) out.pointer;
|
|
|
if (obj && obj->type == ACPI_TYPE_BUFFER &&
|
|
|
- obj->buffer.length == sizeof(u32)) {
|
|
|
+ (obj->buffer.length == sizeof(u32) ||
|
|
|
+ obj->buffer.length == sizeof(u64))) {
|
|
|
devices = *((u32 *) obj->buffer.pointer);
|
|
|
} else {
|
|
|
kfree(out.pointer);
|
|
@@ -1522,7 +1524,8 @@ static u32 get_wmid_devices(void)
|
|
|
|
|
|
obj = (union acpi_object *) out.pointer;
|
|
|
if (obj && obj->type == ACPI_TYPE_BUFFER &&
|
|
|
- obj->buffer.length == sizeof(u32)) {
|
|
|
+ (obj->buffer.length == sizeof(u32) ||
|
|
|
+ obj->buffer.length == sizeof(u64))) {
|
|
|
devices = *((u32 *) obj->buffer.pointer);
|
|
|
}
|
|
|
|