patch-2.4.26 linux-2.4.26/drivers/acpi/resources/rsxface.c
Next file: linux-2.4.26/drivers/acpi/system.c
Previous file: linux-2.4.26/drivers/acpi/resources/rsaddr.c
Back to the patch index
Back to the overall index
- Lines: 47
- Date:
2004-04-14 06:05:29.000000000 -0700
- Orig file:
linux-2.4.25/drivers/acpi/resources/rsxface.c
- Orig date:
2004-02-18 05:36:31.000000000 -0800
diff -urN linux-2.4.25/drivers/acpi/resources/rsxface.c linux-2.4.26/drivers/acpi/resources/rsxface.c
@@ -239,6 +239,7 @@
acpi_status status;
struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
struct acpi_resource *resource;
+ struct acpi_resource *buffer_end;
ACPI_FUNCTION_TRACE ("acpi_walk_resources");
@@ -255,7 +256,13 @@
return_ACPI_STATUS (status);
}
- resource = (struct acpi_resource *) buffer.pointer;
+ /* Setup pointers */
+
+ resource = (struct acpi_resource *) buffer.pointer;
+ buffer_end = (struct acpi_resource *) ((u8 *) buffer.pointer + buffer.length);
+
+ /* Walk the resource list */
+
for (;;) {
if (!resource || resource->id == ACPI_RSTYPE_END_TAG) {
break;
@@ -268,6 +275,7 @@
case AE_CTRL_DEPTH:
/* Just keep going */
+
status = AE_OK;
break;
@@ -285,7 +293,15 @@
goto cleanup;
}
+ /* Get the next resource descriptor */
+
resource = ACPI_NEXT_RESOURCE (resource);
+
+ /* Check for end-of-buffer */
+
+ if (resource >= buffer_end) {
+ goto cleanup;
+ }
}
cleanup:
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)