[ACPI] ACPICA 20050902
Fixed a problem with the internal Owner ID allocation and
deallocation mechanisms for control method execution and
recursive method invocation. This should eliminate the
OWNER_ID_LIMIT exceptions and "Invalid OwnerId" messages
seen on some systems. Recursive method invocation depth
is currently limited to 255. (Alexey Starikovskiy)
http://bugzilla.kernel.org/show_bug.cgi?id=4892
Completely eliminated all vestiges of support for the
"module-level executable code" until this support is
fully implemented and debugged. This should eliminate the
NO_RETURN_VALUE exceptions seen during table load on some
systems that invoke this support.
http://bugzilla.kernel.org/show_bug.cgi?id=5162
Fixed a problem within the resource manager code where
the transaction flags for a 64-bit address descriptor were
handled incorrectly in the type-specific flag byte.
Consolidated duplicate code within the address descriptor
resource manager code, reducing overall subsystem code size.
Signed-off-by: Robert Moore <Robert.Moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
diff --git a/drivers/acpi/resources/rsirq.c b/drivers/acpi/resources/rsirq.c
index 7179b62..56043fe 100644
--- a/drivers/acpi/resources/rsirq.c
+++ b/drivers/acpi/resources/rsirq.c
@@ -290,7 +290,7 @@
ACPI_FUNCTION_TRACE("rs_extended_irq_resource");
- /* Point past the Descriptor to get the number of bytes consumed */
+ /* Get the Descriptor Length field */
buffer += 1;
ACPI_MOVE_16_TO_16(&temp16, buffer);
@@ -398,7 +398,7 @@
/* Copy the string into the buffer */
index = 0;
- while (0x00 != *buffer) {
+ while (*buffer) {
*temp_ptr = *buffer;
temp_ptr += 1;
@@ -408,7 +408,7 @@
/* Add the terminating null */
- *temp_ptr = 0x00;
+ *temp_ptr = 0;
output_struct->data.extended_irq.resource_source.string_length =
index + 1;
@@ -420,7 +420,7 @@
temp8 = (u8) (index + 1);
struct_size += ACPI_ROUND_UP_to_32_bITS(temp8);
} else {
- output_struct->data.extended_irq.resource_source.index = 0x00;
+ output_struct->data.extended_irq.resource_source.index = 0;
output_struct->data.extended_irq.resource_source.string_length =
0;
output_struct->data.extended_irq.resource_source.string_ptr =
@@ -461,16 +461,15 @@
u16 *length_field;
u8 temp8 = 0;
u8 index;
- char *temp_pointer = NULL;
ACPI_FUNCTION_TRACE("rs_extended_irq_stream");
- /* The descriptor field is static */
+ /* Set the Descriptor Type field */
- *buffer = 0x89;
+ *buffer = ACPI_RDESC_TYPE_EXTENDED_XRUPT;
buffer += 1;
- /* Set a pointer to the Length field - to be filled in later */
+ /* Save a pointer to the Length field - to be filled in later */
length_field = ACPI_CAST_PTR(u16, buffer);
buffer += 2;
@@ -524,16 +523,14 @@
(u8) linked_list->data.extended_irq.resource_source.index;
buffer += 1;
- temp_pointer = (char *)buffer;
-
/* Copy the string */
- ACPI_STRCPY(temp_pointer,
+ ACPI_STRCPY((char *)buffer,
linked_list->data.extended_irq.resource_source.
string_ptr);
/*
- * Buffer needs to be set to the length of the sting + one for the
+ * Buffer needs to be set to the length of the string + one for the
* terminating null
*/
buffer +=