void xen_wmi_print_buffer(struct acpi_buffer *acpi_buf)
{
int count;
+ union acpi_object *acpi_obj = acpi_buf->pointer;
+
+ if ( acpi_obj == NULL || acpi_obj->type != ACPI_TYPE_BUFFER )
+ {
+ printk("XEN WMI: Unsupported output buffer data!\n");
+ return ;
+ }
- printk("XEN WMI: Output buffer length is - %d\n", acpi_buf->buffer.length);
+ printk("XEN WMI: Output buffer length is - %d\n", acpi_obj->buffer.length);
printk("XEN WMI: Buffer: ");
- for (count=0; count < acpi_buf->buffer.length; count++)
- printk("%d ", ((byte *)(acpi_buf->buffer.pointer))[count]);
+ for (count=0; count < acpi_obj->buffer.length; count++)
+ printk("%d ", ((byte *)(acpi_obj->buffer.pointer))[count]);
printk("\n");
}