Loading drivers/acpi/acpica/acresrc.h +3 −3 Original line number Diff line number Diff line Loading @@ -184,7 +184,7 @@ acpi_rs_create_resource_list(union acpi_operand_object *aml_buffer, struct acpi_buffer *output_buffer); acpi_status acpi_rs_create_aml_resources(struct acpi_resource *linked_list_buffer, acpi_rs_create_aml_resources(struct acpi_buffer *resource_list, struct acpi_buffer *output_buffer); acpi_status Loading Loading @@ -227,8 +227,8 @@ acpi_rs_get_list_length(u8 * aml_buffer, u32 aml_buffer_length, acpi_size * size_needed); acpi_status acpi_rs_get_aml_length(struct acpi_resource *linked_list_buffer, acpi_size * size_needed); acpi_rs_get_aml_length(struct acpi_resource *resource_list, acpi_size resource_list_size, acpi_size * size_needed); acpi_status acpi_rs_get_pci_routing_table_length(union acpi_operand_object *package_object, Loading drivers/acpi/acpica/nsalloc.c +14 −4 Original line number Diff line number Diff line Loading @@ -106,6 +106,7 @@ struct acpi_namespace_node *acpi_ns_create_node(u32 name) void acpi_ns_delete_node(struct acpi_namespace_node *node) { union acpi_operand_object *obj_desc; union acpi_operand_object *next_desc; ACPI_FUNCTION_NAME(ns_delete_node); Loading @@ -114,12 +115,13 @@ void acpi_ns_delete_node(struct acpi_namespace_node *node) acpi_ns_detach_object(node); /* * Delete an attached data object if present (an object that was created * and attached via acpi_attach_data). Note: After any normal object is * detached above, the only possible remaining object is a data object. * Delete an attached data object list if present (objects that were * attached via acpi_attach_data). Note: After any normal object is * detached above, the only possible remaining object(s) are data * objects, in a linked list. */ obj_desc = node->object; if (obj_desc && (obj_desc->common.type == ACPI_TYPE_LOCAL_DATA)) { while (obj_desc && (obj_desc->common.type == ACPI_TYPE_LOCAL_DATA)) { /* Invoke the attached data deletion handler if present */ Loading @@ -127,7 +129,15 @@ void acpi_ns_delete_node(struct acpi_namespace_node *node) obj_desc->data.handler(node, obj_desc->data.pointer); } next_desc = obj_desc->common.next_object; acpi_ut_remove_reference(obj_desc); obj_desc = next_desc; } /* Special case for the statically allocated root node */ if (node == acpi_gbl_root_node) { return; } /* Now we can delete the node */ Loading drivers/acpi/acpica/nsutils.c +10 −8 Original line number Diff line number Diff line Loading @@ -593,24 +593,26 @@ struct acpi_namespace_node *acpi_ns_validate_handle(acpi_handle handle) void acpi_ns_terminate(void) { union acpi_operand_object *obj_desc; acpi_status status; ACPI_FUNCTION_TRACE(ns_terminate); /* * 1) Free the entire namespace -- all nodes and objects * * Delete all object descriptors attached to namepsace nodes * Free the entire namespace -- all nodes and all objects * attached to the nodes */ acpi_ns_delete_namespace_subtree(acpi_gbl_root_node); /* Detach any objects attached to the root */ /* Delete any objects attached to the root node */ obj_desc = acpi_ns_get_attached_object(acpi_gbl_root_node); if (obj_desc) { acpi_ns_detach_object(acpi_gbl_root_node); status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); if (ACPI_FAILURE(status)) { return_VOID; } acpi_ns_delete_node(acpi_gbl_root_node); (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Namespace freed\n")); return_VOID; } Loading drivers/acpi/acpica/rscalc.c +7 −2 Original line number Diff line number Diff line Loading @@ -174,6 +174,7 @@ acpi_rs_stream_option_length(u32 resource_length, * FUNCTION: acpi_rs_get_aml_length * * PARAMETERS: resource - Pointer to the resource linked list * resource_list_size - Size of the resource linked list * size_needed - Where the required size is returned * * RETURN: Status Loading @@ -185,16 +186,20 @@ acpi_rs_stream_option_length(u32 resource_length, ******************************************************************************/ acpi_status acpi_rs_get_aml_length(struct acpi_resource * resource, acpi_size * size_needed) acpi_rs_get_aml_length(struct acpi_resource *resource, acpi_size resource_list_size, acpi_size * size_needed) { acpi_size aml_size_needed = 0; struct acpi_resource *resource_end; acpi_rs_length total_size; ACPI_FUNCTION_TRACE(rs_get_aml_length); /* Traverse entire list of internal resource descriptors */ while (resource) { resource_end = ACPI_ADD_PTR(struct acpi_resource, resource, resource_list_size); while (resource < resource_end) { /* Validate the descriptor type */ Loading drivers/acpi/acpica/rscreate.c +17 −19 Original line number Diff line number Diff line Loading @@ -418,22 +418,21 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object, * * FUNCTION: acpi_rs_create_aml_resources * * PARAMETERS: linked_list_buffer - Pointer to the resource linked list * output_buffer - Pointer to the user's buffer * PARAMETERS: resource_list - Pointer to the resource list buffer * output_buffer - Where the AML buffer is returned * * RETURN: Status AE_OK if okay, else a valid acpi_status code. * If the output_buffer is too small, the error will be * AE_BUFFER_OVERFLOW and output_buffer->Length will point * to the size buffer needed. * * DESCRIPTION: Takes the linked list of device resources and * creates a bytestream to be used as input for the * _SRS control method. * DESCRIPTION: Converts a list of device resources to an AML bytestream * to be used as input for the _SRS control method. * ******************************************************************************/ acpi_status acpi_rs_create_aml_resources(struct acpi_resource *linked_list_buffer, acpi_rs_create_aml_resources(struct acpi_buffer *resource_list, struct acpi_buffer *output_buffer) { acpi_status status; Loading @@ -441,16 +440,16 @@ acpi_rs_create_aml_resources(struct acpi_resource *linked_list_buffer, ACPI_FUNCTION_TRACE(rs_create_aml_resources); ACPI_DEBUG_PRINT((ACPI_DB_INFO, "LinkedListBuffer = %p\n", linked_list_buffer)); /* Params already validated, no need to re-validate here */ /* * Params already validated, so we don't re-validate here * * Pass the linked_list_buffer into a module that calculates * the buffer size needed for the byte stream. */ status = acpi_rs_get_aml_length(linked_list_buffer, &aml_size_needed); ACPI_DEBUG_PRINT((ACPI_DB_INFO, "ResourceList Buffer = %p\n", resource_list->pointer)); /* Get the buffer size needed for the AML byte stream */ status = acpi_rs_get_aml_length(resource_list->pointer, resource_list->length, &aml_size_needed); ACPI_DEBUG_PRINT((ACPI_DB_INFO, "AmlSizeNeeded=%X, %s\n", (u32)aml_size_needed, acpi_format_exception(status))); Loading @@ -467,8 +466,7 @@ acpi_rs_create_aml_resources(struct acpi_resource *linked_list_buffer, /* Do the conversion */ status = acpi_rs_convert_resources_to_aml(linked_list_buffer, status = acpi_rs_convert_resources_to_aml(resource_list->pointer, aml_size_needed, output_buffer->pointer); if (ACPI_FAILURE(status)) { Loading Loading
drivers/acpi/acpica/acresrc.h +3 −3 Original line number Diff line number Diff line Loading @@ -184,7 +184,7 @@ acpi_rs_create_resource_list(union acpi_operand_object *aml_buffer, struct acpi_buffer *output_buffer); acpi_status acpi_rs_create_aml_resources(struct acpi_resource *linked_list_buffer, acpi_rs_create_aml_resources(struct acpi_buffer *resource_list, struct acpi_buffer *output_buffer); acpi_status Loading Loading @@ -227,8 +227,8 @@ acpi_rs_get_list_length(u8 * aml_buffer, u32 aml_buffer_length, acpi_size * size_needed); acpi_status acpi_rs_get_aml_length(struct acpi_resource *linked_list_buffer, acpi_size * size_needed); acpi_rs_get_aml_length(struct acpi_resource *resource_list, acpi_size resource_list_size, acpi_size * size_needed); acpi_status acpi_rs_get_pci_routing_table_length(union acpi_operand_object *package_object, Loading
drivers/acpi/acpica/nsalloc.c +14 −4 Original line number Diff line number Diff line Loading @@ -106,6 +106,7 @@ struct acpi_namespace_node *acpi_ns_create_node(u32 name) void acpi_ns_delete_node(struct acpi_namespace_node *node) { union acpi_operand_object *obj_desc; union acpi_operand_object *next_desc; ACPI_FUNCTION_NAME(ns_delete_node); Loading @@ -114,12 +115,13 @@ void acpi_ns_delete_node(struct acpi_namespace_node *node) acpi_ns_detach_object(node); /* * Delete an attached data object if present (an object that was created * and attached via acpi_attach_data). Note: After any normal object is * detached above, the only possible remaining object is a data object. * Delete an attached data object list if present (objects that were * attached via acpi_attach_data). Note: After any normal object is * detached above, the only possible remaining object(s) are data * objects, in a linked list. */ obj_desc = node->object; if (obj_desc && (obj_desc->common.type == ACPI_TYPE_LOCAL_DATA)) { while (obj_desc && (obj_desc->common.type == ACPI_TYPE_LOCAL_DATA)) { /* Invoke the attached data deletion handler if present */ Loading @@ -127,7 +129,15 @@ void acpi_ns_delete_node(struct acpi_namespace_node *node) obj_desc->data.handler(node, obj_desc->data.pointer); } next_desc = obj_desc->common.next_object; acpi_ut_remove_reference(obj_desc); obj_desc = next_desc; } /* Special case for the statically allocated root node */ if (node == acpi_gbl_root_node) { return; } /* Now we can delete the node */ Loading
drivers/acpi/acpica/nsutils.c +10 −8 Original line number Diff line number Diff line Loading @@ -593,24 +593,26 @@ struct acpi_namespace_node *acpi_ns_validate_handle(acpi_handle handle) void acpi_ns_terminate(void) { union acpi_operand_object *obj_desc; acpi_status status; ACPI_FUNCTION_TRACE(ns_terminate); /* * 1) Free the entire namespace -- all nodes and objects * * Delete all object descriptors attached to namepsace nodes * Free the entire namespace -- all nodes and all objects * attached to the nodes */ acpi_ns_delete_namespace_subtree(acpi_gbl_root_node); /* Detach any objects attached to the root */ /* Delete any objects attached to the root node */ obj_desc = acpi_ns_get_attached_object(acpi_gbl_root_node); if (obj_desc) { acpi_ns_detach_object(acpi_gbl_root_node); status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); if (ACPI_FAILURE(status)) { return_VOID; } acpi_ns_delete_node(acpi_gbl_root_node); (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Namespace freed\n")); return_VOID; } Loading
drivers/acpi/acpica/rscalc.c +7 −2 Original line number Diff line number Diff line Loading @@ -174,6 +174,7 @@ acpi_rs_stream_option_length(u32 resource_length, * FUNCTION: acpi_rs_get_aml_length * * PARAMETERS: resource - Pointer to the resource linked list * resource_list_size - Size of the resource linked list * size_needed - Where the required size is returned * * RETURN: Status Loading @@ -185,16 +186,20 @@ acpi_rs_stream_option_length(u32 resource_length, ******************************************************************************/ acpi_status acpi_rs_get_aml_length(struct acpi_resource * resource, acpi_size * size_needed) acpi_rs_get_aml_length(struct acpi_resource *resource, acpi_size resource_list_size, acpi_size * size_needed) { acpi_size aml_size_needed = 0; struct acpi_resource *resource_end; acpi_rs_length total_size; ACPI_FUNCTION_TRACE(rs_get_aml_length); /* Traverse entire list of internal resource descriptors */ while (resource) { resource_end = ACPI_ADD_PTR(struct acpi_resource, resource, resource_list_size); while (resource < resource_end) { /* Validate the descriptor type */ Loading
drivers/acpi/acpica/rscreate.c +17 −19 Original line number Diff line number Diff line Loading @@ -418,22 +418,21 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object, * * FUNCTION: acpi_rs_create_aml_resources * * PARAMETERS: linked_list_buffer - Pointer to the resource linked list * output_buffer - Pointer to the user's buffer * PARAMETERS: resource_list - Pointer to the resource list buffer * output_buffer - Where the AML buffer is returned * * RETURN: Status AE_OK if okay, else a valid acpi_status code. * If the output_buffer is too small, the error will be * AE_BUFFER_OVERFLOW and output_buffer->Length will point * to the size buffer needed. * * DESCRIPTION: Takes the linked list of device resources and * creates a bytestream to be used as input for the * _SRS control method. * DESCRIPTION: Converts a list of device resources to an AML bytestream * to be used as input for the _SRS control method. * ******************************************************************************/ acpi_status acpi_rs_create_aml_resources(struct acpi_resource *linked_list_buffer, acpi_rs_create_aml_resources(struct acpi_buffer *resource_list, struct acpi_buffer *output_buffer) { acpi_status status; Loading @@ -441,16 +440,16 @@ acpi_rs_create_aml_resources(struct acpi_resource *linked_list_buffer, ACPI_FUNCTION_TRACE(rs_create_aml_resources); ACPI_DEBUG_PRINT((ACPI_DB_INFO, "LinkedListBuffer = %p\n", linked_list_buffer)); /* Params already validated, no need to re-validate here */ /* * Params already validated, so we don't re-validate here * * Pass the linked_list_buffer into a module that calculates * the buffer size needed for the byte stream. */ status = acpi_rs_get_aml_length(linked_list_buffer, &aml_size_needed); ACPI_DEBUG_PRINT((ACPI_DB_INFO, "ResourceList Buffer = %p\n", resource_list->pointer)); /* Get the buffer size needed for the AML byte stream */ status = acpi_rs_get_aml_length(resource_list->pointer, resource_list->length, &aml_size_needed); ACPI_DEBUG_PRINT((ACPI_DB_INFO, "AmlSizeNeeded=%X, %s\n", (u32)aml_size_needed, acpi_format_exception(status))); Loading @@ -467,8 +466,7 @@ acpi_rs_create_aml_resources(struct acpi_resource *linked_list_buffer, /* Do the conversion */ status = acpi_rs_convert_resources_to_aml(linked_list_buffer, status = acpi_rs_convert_resources_to_aml(resource_list->pointer, aml_size_needed, output_buffer->pointer); if (ACPI_FAILURE(status)) { Loading