* RE: utmisc-0131: *** Error: Invalid owner_id: 00
@ 2005-08-25 10:14 Starikovskiy, Alexey Y
2005-08-25 10:36 ` Mattia Dongili
2005-08-25 15:20 ` Norbert Preining
0 siblings, 2 replies; 17+ messages in thread
From: Starikovskiy, Alexey Y @ 2005-08-25 10:14 UTC (permalink / raw)
To: Mattia Dongili, Norbert Preining; +Cc: Thomas Renninger, ACPI Devel Maling List
[-- Attachment #1: Type: text/plain, Size: 868 bytes --]
Could you try this patch?
Thanks,
--alex.
-----Original Message-----
From: Mattia Dongili [mailto:malattia-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org]
Sent: Thursday, August 25, 2005 12:56 PM
To: Starikovskiy, Alexey Y
Cc: Thomas Renninger; ACPI Devel Maling List
Subject: Re: [ACPI] utmisc-0131: *** Error: Invalid owner_id: 00
On 8/25/05, Starikovskiy, Alexey Y <alexey.y.starikovskiy-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
wrote:
> Could you please try attached patch? It was made for
> 2.6.12+acpica-unix-20050729.patch, but it should apply cleanly to mm
> tree as well.
not that cleanly actually :) I manually applied the patch (attached
the diff with a clean .13-rc6-mm2 if you wish to check it).
Anyway this patch fixes the owner_id issue but creates a whole lot of
other problems (see attached dmesg).
thanks
--
mattia
:wq!
[-- Attachment #2: owner_id-2.patch --]
[-- Type: application/octet-stream, Size: 4314 bytes --]
diff -ru reference/linux-2.6.12/drivers/acpi/dispatcher/dsmethod.c linux-2.6.12/drivers/acpi/dispatcher/dsmethod.c
--- reference/linux-2.6.12/drivers/acpi/dispatcher/dsmethod.c 2005-08-25 13:53:50.000000000 +0400
+++ linux-2.6.12/drivers/acpi/dispatcher/dsmethod.c 2005-08-25 17:57:22.000000000 +0400
@@ -299,11 +299,6 @@
return_ACPI_STATUS (AE_NULL_OBJECT);
}
- status = acpi_ut_allocate_owner_id (&obj_desc->method.owner_id);
- if (ACPI_FAILURE (status)) {
- return_ACPI_STATUS (status);
- }
-
/* Init for new method, wait on concurrency semaphore */
status = acpi_ds_begin_method_execution (method_node, obj_desc,
@@ -312,6 +307,13 @@
goto cleanup;
}
+ if (obj_desc->method.thread_count == 1) {
+ status = acpi_ut_allocate_owner_id (&obj_desc->method.owner_id);
+ if (ACPI_FAILURE (status)) {
+ return_ACPI_STATUS (status);
+ }
+ }
+
if (!(obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY)) {
/* 1) Parse: Create a new walk state for the preempting walk */
@@ -343,6 +345,8 @@
acpi_ps_delete_parse_tree (op);
}
+ obj_desc->method.thread_count--;
+
/* 2) Execute: Create a new state for the preempting walk */
next_walk_state = acpi_ds_create_walk_state (obj_desc->method.owner_id,
@@ -396,7 +400,9 @@
/* On error, we must delete the new walk state */
cleanup:
- acpi_ut_release_owner_id (&obj_desc->method.owner_id);
+ if (!obj_desc->method.thread_count && obj_desc->method.owner_id) {
+ acpi_ut_release_owner_id (&obj_desc->method.owner_id);
+ }
if (next_walk_state && (next_walk_state->method_desc)) {
/* Decrement the thread count on the method parse tree */
@@ -549,13 +555,11 @@
}
}
- if (walk_state->method_desc->method.thread_count) {
+ if (walk_state->method_desc->method.thread_count > 1) {
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
"*** Not deleting method namespace, there are still %d threads\n",
walk_state->method_desc->method.thread_count));
- }
-
- if (!walk_state->method_desc->method.thread_count) {
+ } else {
/*
* Support to dynamically change a method from not_serialized to
* Serialized if it appears that the method is written foolishly and
diff -ru reference/linux-2.6.12/drivers/acpi/parser/psparse.c linux-2.6.12/drivers/acpi/parser/psparse.c
--- reference/linux-2.6.12/drivers/acpi/parser/psparse.c 2005-08-25 13:53:50.000000000 +0400
+++ linux-2.6.12/drivers/acpi/parser/psparse.c 2005-08-24 17:51:30.000000000 +0400
@@ -523,14 +523,6 @@
}
}
- if (walk_state->method_desc) {
- /* Decrement the thread count on the method parse tree */
-
- if (walk_state->method_desc->method.thread_count) {
- walk_state->method_desc->method.thread_count--;
- }
- }
-
/* We are done with this walk, move on to the parent if any */
walk_state = acpi_ds_pop_walk_state (thread);
diff -ru reference/linux-2.6.12/drivers/acpi/parser/psxface.c linux-2.6.12/drivers/acpi/parser/psxface.c
--- reference/linux-2.6.12/drivers/acpi/parser/psxface.c 2005-08-25 13:53:50.000000000 +0400
+++ linux-2.6.12/drivers/acpi/parser/psxface.c 2005-08-24 17:54:38.000000000 +0400
@@ -114,9 +114,12 @@
* objects (such as Operation Regions) can be created during the
* first pass parse.
*/
- status = acpi_ut_allocate_owner_id (&info->obj_desc->method.owner_id);
- if (ACPI_FAILURE (status)) {
- return_ACPI_STATUS (status);
+
+ if (info->obj_desc->method.thread_count == 1) {
+ status = acpi_ut_allocate_owner_id (&info->obj_desc->method.owner_id);
+ if (ACPI_FAILURE (status)) {
+ return_ACPI_STATUS (status);
+ }
}
/*
@@ -149,9 +152,11 @@
info->pass_number = 3;
status = acpi_ps_execute_pass (info);
+ info->obj_desc->method.thread_count--;
cleanup:
- if (info->obj_desc->method.owner_id) {
+ if (!info->obj_desc->method.thread_count &&
+ info->obj_desc->method.owner_id) {
acpi_ut_release_owner_id (&info->obj_desc->method.owner_id);
}
diff -ru reference/linux-2.6.12/drivers/acpi/utilities/utmisc.c linux-2.6.12/drivers/acpi/utilities/utmisc.c
--- reference/linux-2.6.12/drivers/acpi/utilities/utmisc.c 2005-08-25 13:53:50.000000000 +0400
+++ linux-2.6.12/drivers/acpi/utilities/utmisc.c 2005-08-24 17:56:22.000000000 +0400
@@ -74,6 +74,7 @@
ACPI_FUNCTION_TRACE ("ut_allocate_owner_id");
+ WARN_ON (*owner_id);
/* Mutex for the global ID mask */
^ permalink raw reply [flat|nested] 17+ messages in thread* Re: utmisc-0131: *** Error: Invalid owner_id: 00
2005-08-25 10:14 utmisc-0131: *** Error: Invalid owner_id: 00 Starikovskiy, Alexey Y
@ 2005-08-25 10:36 ` Mattia Dongili
[not found] ` <2fc0cdd205082503364f255347-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2005-08-25 15:20 ` Norbert Preining
1 sibling, 1 reply; 17+ messages in thread
From: Mattia Dongili @ 2005-08-25 10:36 UTC (permalink / raw)
To: Starikovskiy, Alexey Y
Cc: Norbert Preining, Thomas Renninger, ACPI Devel Maling List
[-- Attachment #1: Type: text/plain, Size: 335 bytes --]
On 8/25/05, Starikovskiy, Alexey Y <alexey.y.starikovskiy-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> wrote:
> Could you try this patch?
That fixes it! (I attached again the diff to apply cleanly to .13-rc6-mm2)
I'll test the thing some more to verify that the random "Invalid
owner_id" don't appear anymore.
--
mattia
:wq!
[-- Attachment #2: owner_id-2.patch.rc6-mm2 --]
[-- Type: application/octet-stream, Size: 4724 bytes --]
diff -rup linux-2.6.13-rc6-mm2/drivers/acpi/dispatcher/dsmethod.c linux-clean/drivers/acpi/dispatcher/dsmethod.c
--- linux-2.6.13-rc6-mm2/drivers/acpi/dispatcher/dsmethod.c 2005-08-25 10:23:18.949991250 +0200
+++ linux-clean/drivers/acpi/dispatcher/dsmethod.c 2005-08-25 12:22:47.413992250 +0200
@@ -289,11 +289,6 @@ acpi_ds_call_control_method(struct acpi_
return_ACPI_STATUS(AE_NULL_OBJECT);
}
- status = acpi_ut_allocate_owner_id(&obj_desc->method.owner_id);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
/* Init for new method, wait on concurrency semaphore */
status = acpi_ds_begin_method_execution(method_node, obj_desc,
@@ -302,6 +297,13 @@ acpi_ds_call_control_method(struct acpi_
goto cleanup;
}
+ if (obj_desc->method.thread_count == 1) {
+ status = acpi_ut_allocate_owner_id (&obj_desc->method.owner_id);
+ if (ACPI_FAILURE (status)) {
+ return_ACPI_STATUS (status);
+ }
+ }
+
if (!(obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY)) {
/* 1) Parse: Create a new walk state for the preempting walk */
@@ -335,6 +337,8 @@ acpi_ds_call_control_method(struct acpi_
acpi_ps_delete_parse_tree(op);
}
+ obj_desc->method.thread_count--;
+
/* 2) Execute: Create a new state for the preempting walk */
next_walk_state = acpi_ds_create_walk_state(obj_desc->method.owner_id,
@@ -388,7 +392,9 @@ acpi_ds_call_control_method(struct acpi_
/* On error, we must delete the new walk state */
cleanup:
- acpi_ut_release_owner_id(&obj_desc->method.owner_id);
+ if (!obj_desc->method.thread_count && obj_desc->method.owner_id) {
+ acpi_ut_release_owner_id (&obj_desc->method.owner_id);
+ }
if (next_walk_state && (next_walk_state->method_desc)) {
/* Decrement the thread count on the method parse tree */
@@ -534,14 +540,12 @@ acpi_status acpi_ds_terminate_control_me
}
}
- if (walk_state->method_desc->method.thread_count) {
+ if (walk_state->method_desc->method.thread_count > 1) {
ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
"*** Not deleting method namespace, there are still %d threads\n",
walk_state->method_desc->method.
thread_count));
- }
-
- if (!walk_state->method_desc->method.thread_count) {
+ } else {
/*
* Support to dynamically change a method from not_serialized to
* Serialized if it appears that the method is written foolishly and
diff -rup linux-2.6.13-rc6-mm2/drivers/acpi/parser/psparse.c linux-clean/drivers/acpi/parser/psparse.c
--- linux-2.6.13-rc6-mm2/drivers/acpi/parser/psparse.c 2005-08-25 10:23:19.970055000 +0200
+++ linux-clean/drivers/acpi/parser/psparse.c 2005-08-25 12:23:37.425117750 +0200
@@ -524,14 +524,6 @@ acpi_status acpi_ps_parse_aml(struct acp
}
}
- if (walk_state->method_desc) {
- /* Decrement the thread count on the method parse tree */
-
- if (walk_state->method_desc->method.thread_count) {
- walk_state->method_desc->method.thread_count--;
- }
- }
-
/* We are done with this walk, move on to the parent if any */
walk_state = acpi_ds_pop_walk_state(thread);
diff -rup linux-2.6.13-rc6-mm2/drivers/acpi/parser/psxface.c linux-clean/drivers/acpi/parser/psxface.c
--- linux-2.6.13-rc6-mm2/drivers/acpi/parser/psxface.c 2005-08-25 10:23:20.014057750 +0200
+++ linux-clean/drivers/acpi/parser/psxface.c 2005-08-25 12:25:04.870582750 +0200
@@ -103,9 +103,11 @@ acpi_status acpi_ps_execute_method(struc
* objects (such as Operation Regions) can be created during the
* first pass parse.
*/
- status = acpi_ut_allocate_owner_id(&info->obj_desc->method.owner_id);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
+ if (info->obj_desc->method.thread_count == 1) {
+ status = acpi_ut_allocate_owner_id (&info->obj_desc->method.owner_id);
+ if (ACPI_FAILURE (status)) {
+ return_ACPI_STATUS (status);
+ }
}
/*
@@ -138,8 +140,11 @@ acpi_status acpi_ps_execute_method(struc
info->pass_number = 3;
status = acpi_ps_execute_pass(info);
+ info->obj_desc->method.thread_count--;
+
cleanup:
- if (info->obj_desc->method.owner_id) {
+ if (!info->obj_desc->method.thread_count &&
+ info->obj_desc->method.owner_id) {
acpi_ut_release_owner_id(&info->obj_desc->method.owner_id);
}
diff -rup linux-2.6.13-rc6-mm2/drivers/acpi/utilities/utmisc.c linux-clean/drivers/acpi/utilities/utmisc.c
--- linux-2.6.13-rc6-mm2/drivers/acpi/utilities/utmisc.c 2005-08-25 10:23:20.550091250 +0200
+++ linux-clean/drivers/acpi/utilities/utmisc.c 2005-08-25 12:25:36.632567750 +0200
@@ -67,6 +67,8 @@ acpi_status acpi_ut_allocate_owner_id(ac
ACPI_FUNCTION_TRACE("ut_allocate_owner_id");
+ WARN_ON (*owner_id);
+
/* Mutex for the global ID mask */
status = acpi_ut_acquire_mutex(ACPI_MTX_CACHES);
^ permalink raw reply [flat|nested] 17+ messages in thread* Re: utmisc-0131: *** Error: Invalid owner_id: 00
2005-08-25 10:14 utmisc-0131: *** Error: Invalid owner_id: 00 Starikovskiy, Alexey Y
2005-08-25 10:36 ` Mattia Dongili
@ 2005-08-25 15:20 ` Norbert Preining
1 sibling, 0 replies; 17+ messages in thread
From: Norbert Preining @ 2005-08-25 15:20 UTC (permalink / raw)
To: Starikovskiy, Alexey Y
Cc: Mattia Dongili, Thomas Renninger, ACPI Devel Maling List
Hi Alexey!
On Don, 25 Aug 2005, Starikovskiy, Alexey Y wrote:
> Could you try this patch?
I have used the patch for 2.6.11-rc6-mm2 from Mattia and also here no
strange messages from the ACPI system anymore. Thanks a lot.
Best wishes
Norbert
-------------------------------------------------------------------------------
Dr. Norbert Preining <preining AT logic DOT at> Università di Siena
sip:preining-5G14tY4QmKiDqU6vP1vexV6hYfS7NtTn@public.gmane.org +43 (0) 59966-690018
gpg DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094
-------------------------------------------------------------------------------
BOLSOVER
One of those brown plastic trays with bumps on, placed upside down in
boxes of chocolates to make you think you're-getting two layers.
--- Douglas Adams, The Meaning of Liff
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: utmisc-0131: *** Error: Invalid owner_id: 00
@ 2005-08-26 15:51 Starikovskiy, Alexey Y
2005-08-26 21:18 ` Norbert Preining
2005-08-27 18:28 ` Mattia Dongili
0 siblings, 2 replies; 17+ messages in thread
From: Starikovskiy, Alexey Y @ 2005-08-26 15:51 UTC (permalink / raw)
To: Mattia Dongili, Norbert Preining, Thomas Renninger,
ACPI Devel Maling List
[-- Attachment #1: Type: text/plain, Size: 1359 bytes --]
Looks like I went into wrong direction with previous patch, could you
please try new one?
Regards,
Alex.
-----Original Message-----
From: Mattia Dongili [mailto:malattia-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org]
Sent: Thursday, August 25, 2005 9:32 PM
To: Starikovskiy, Alexey Y; Norbert Preining; Thomas Renninger; ACPI
Devel Maling List
Subject: Re: [ACPI] utmisc-0131: *** Error: Invalid owner_id: 00
On Thu, Aug 25, 2005 at 07:22:28PM +0200, Mattia Dongili wrote:
> On Thu, Aug 25, 2005 at 12:36:52PM +0200, Mattia Dongili wrote:
> > On 8/25/05, Starikovskiy, Alexey Y <alexey.y.starikovskiy-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
wrote:
[...]
> I'll restore the WARN_ON(*owner_id!=0) in acpi_ut_allocate_owner_id
and
> see if I can get more out of it.
[...]
> Badness in acpi_ut_allocate_owner_id at
drivers/acpi/utilities/utmisc.c:70
> [<c02170c1>] acpi_ut_allocate_owner_id+0x3d/0xdb
> [<c01f64ae>] acpi_ds_call_control_method+0xed/0x303
> [<c020e471>] acpi_ps_parse_aml+0xf1/0x2d0
> [<c020e485>] acpi_ps_parse_aml+0x105/0x2d0
doh... the mentioned WARN_ON was already there and was the author of
that
stack dump
> [<c0228673>] acpi_thermal_get_temperature+0x63/0xdb
> [<c02298cb>] acpi_thermal_temp_seq_show+0x30/0x8d
and polling the thermal_zone was actually what issued it...
--
mattia
:wq!
[-- Attachment #2: owner_id-3.patch --]
[-- Type: application/octet-stream, Size: 7631 bytes --]
diff -ru /home/aystarik/reference/linux-2.6.12/drivers/acpi/dispatcher/dsmethod.c ./drivers/acpi/dispatcher/dsmethod.c
--- /home/aystarik/reference/linux-2.6.12/drivers/acpi/dispatcher/dsmethod.c 2005-08-25 13:53:50.000000000 +0400
+++ ./drivers/acpi/dispatcher/dsmethod.c 2005-08-26 23:21:14.000000000 +0400
@@ -243,6 +243,15 @@
status = acpi_ex_system_wait_semaphore (obj_desc->method.semaphore,
ACPI_WAIT_FOREVER);
}
+ /*
+ * allocate owner id for this method
+ */
+ if (!obj_desc->method.thread_count) {
+ status = acpi_ut_allocate_owner_id (&obj_desc->method.owner_id);
+ if (ACPI_FAILURE (status)) {
+ return_ACPI_STATUS (status);
+ }
+ }
/*
* Increment the method parse tree thread count since it has been
@@ -299,11 +308,6 @@
return_ACPI_STATUS (AE_NULL_OBJECT);
}
- status = acpi_ut_allocate_owner_id (&obj_desc->method.owner_id);
- if (ACPI_FAILURE (status)) {
- return_ACPI_STATUS (status);
- }
-
/* Init for new method, wait on concurrency semaphore */
status = acpi_ds_begin_method_execution (method_node, obj_desc,
@@ -387,23 +391,17 @@
if (obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY) {
status = obj_desc->method.implementation (next_walk_state);
- return_ACPI_STATUS (status);
}
-
- return_ACPI_STATUS (AE_OK);
-
-
- /* On error, we must delete the new walk state */
-
+ goto end;
cleanup:
- acpi_ut_release_owner_id (&obj_desc->method.owner_id);
+ /* Decrement the thread count on the method parse tree */
if (next_walk_state && (next_walk_state->method_desc)) {
- /* Decrement the thread count on the method parse tree */
-
- next_walk_state->method_desc->method.thread_count--;
+ next_walk_state->method_desc->method.thread_count--;
}
- (void) acpi_ds_terminate_control_method (next_walk_state);
+ /* On error, we must delete the new walk state */
+ acpi_ds_terminate_control_method (next_walk_state);
acpi_ds_delete_walk_state (next_walk_state);
+end:
return_ACPI_STATUS (status);
}
@@ -491,7 +489,7 @@
*
* PARAMETERS: walk_state - State of the method
*
- * RETURN: Status
+ * RETURN: None
*
* DESCRIPTION: Terminate a control method. Delete everything that the method
* created, delete all locals and arguments, and delete the parse
@@ -499,7 +497,7 @@
*
******************************************************************************/
-acpi_status
+void
acpi_ds_terminate_control_method (
struct acpi_walk_state *walk_state)
{
@@ -512,14 +510,14 @@
if (!walk_state) {
- return (AE_BAD_PARAMETER);
+ return_VOID;
}
/* The current method object was saved in the walk state */
obj_desc = walk_state->method_desc;
if (!obj_desc) {
- return_ACPI_STATUS (AE_OK);
+ return_VOID;
}
/* Delete all arguments and locals */
@@ -533,7 +531,7 @@
*/
status = acpi_ut_acquire_mutex (ACPI_MTX_PARSER);
if (ACPI_FAILURE (status)) {
- return_ACPI_STATUS (status);
+ return_VOID;
}
/* Signal completion of the execution of this method if necessary */
@@ -586,7 +584,7 @@
*/
status = acpi_ut_acquire_mutex (ACPI_MTX_NAMESPACE);
if (ACPI_FAILURE (status)) {
- return_ACPI_STATUS (status);
+ goto cleanup;
}
if (method_node->child) {
@@ -602,12 +600,11 @@
acpi_ut_release_owner_id (&walk_state->method_desc->method.owner_id);
if (ACPI_FAILURE (status)) {
- return_ACPI_STATUS (status);
+ goto cleanup;
}
}
-
- status = acpi_ut_release_mutex (ACPI_MTX_PARSER);
- return_ACPI_STATUS (status);
+cleanup:
+ acpi_ut_release_mutex (ACPI_MTX_PARSER);
}
diff -ru /home/aystarik/reference/linux-2.6.12/drivers/acpi/parser/psparse.c ./drivers/acpi/parser/psparse.c
--- /home/aystarik/reference/linux-2.6.12/drivers/acpi/parser/psparse.c 2005-08-25 13:53:50.000000000 +0400
+++ ./drivers/acpi/parser/psparse.c 2005-08-26 23:40:25.000000000 +0400
@@ -437,7 +437,6 @@
struct acpi_walk_state *walk_state)
{
acpi_status status;
- acpi_status terminate_status;
struct acpi_thread_state *thread;
struct acpi_thread_state *prev_walk_list = acpi_gbl_current_walk_list;
struct acpi_walk_state *previous_walk_state;
@@ -507,7 +506,10 @@
else if ((status != AE_OK) && (walk_state->method_desc)) {
ACPI_REPORT_METHOD_ERROR ("Method execution failed",
walk_state->method_node, NULL, status);
-
+
+ /* Make sure that failed method will be cleaned as if it was executed */
+ walk_state->parse_flags |= ACPI_PARSE_EXECUTE;
+
/* Check for possible multi-thread reentrancy problem */
if ((status == AE_ALREADY_EXISTS) &&
@@ -523,14 +525,6 @@
}
}
- if (walk_state->method_desc) {
- /* Decrement the thread count on the method parse tree */
-
- if (walk_state->method_desc->method.thread_count) {
- walk_state->method_desc->method.thread_count--;
- }
- }
-
/* We are done with this walk, move on to the parent if any */
walk_state = acpi_ds_pop_walk_state (thread);
@@ -544,13 +538,11 @@
* there's lots of cleanup to do
*/
if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) == ACPI_PARSE_EXECUTE) {
- terminate_status = acpi_ds_terminate_control_method (walk_state);
- if (ACPI_FAILURE (terminate_status)) {
- ACPI_REPORT_ERROR ((
- "Could not terminate control method properly\n"));
-
- /* Ignore error and continue */
+ /* Decrement the thread count on the method parse tree */
+ if (walk_state->method_desc) {
+ walk_state->method_desc->method.thread_count--;
}
+ acpi_ds_terminate_control_method (walk_state);
}
/* Delete this walk state and all linked control states */
diff -ru /home/aystarik/reference/linux-2.6.12/drivers/acpi/parser/psxface.c ./drivers/acpi/parser/psxface.c
--- /home/aystarik/reference/linux-2.6.12/drivers/acpi/parser/psxface.c 2005-08-25 13:53:50.000000000 +0400
+++ ./drivers/acpi/parser/psxface.c 2005-08-26 23:40:28.000000000 +0400
@@ -110,16 +110,6 @@
}
/*
- * Get a new owner_id for objects created by this method. Namespace
- * objects (such as Operation Regions) can be created during the
- * first pass parse.
- */
- status = acpi_ut_allocate_owner_id (&info->obj_desc->method.owner_id);
- if (ACPI_FAILURE (status)) {
- return_ACPI_STATUS (status);
- }
-
- /*
* The caller "owns" the parameters, so give each one an extra
* reference
*/
@@ -151,10 +141,6 @@
cleanup:
- if (info->obj_desc->method.owner_id) {
- acpi_ut_release_owner_id (&info->obj_desc->method.owner_id);
- }
-
/* Take away the extra reference that we gave the parameters above */
acpi_ps_update_parameter_list (info, REF_DECREMENT);
diff -ru /home/aystarik/reference/linux-2.6.12/drivers/acpi/utilities/utmisc.c ./drivers/acpi/utilities/utmisc.c
--- /home/aystarik/reference/linux-2.6.12/drivers/acpi/utilities/utmisc.c 2005-08-25 13:53:50.000000000 +0400
+++ ./drivers/acpi/utilities/utmisc.c 2005-08-26 23:40:57.000000000 +0400
@@ -74,7 +74,8 @@
ACPI_FUNCTION_TRACE ("ut_allocate_owner_id");
-
+ WARN_ON(*owner_id);
+
/* Mutex for the global ID mask */
status = acpi_ut_acquire_mutex (ACPI_MTX_CACHES);
diff -ru /home/aystarik/reference/linux-2.6.12/include/acpi/acdispat.h ./include/acpi/acdispat.h
--- /home/aystarik/reference/linux-2.6.12/include/acpi/acdispat.h 2005-08-25 13:41:16.000000000 +0400
+++ ./include/acpi/acdispat.h 2005-08-26 23:09:28.000000000 +0400
@@ -249,7 +249,7 @@
struct acpi_walk_state *walk_state,
union acpi_operand_object *return_desc);
-acpi_status
+void
acpi_ds_terminate_control_method (
struct acpi_walk_state *walk_state);
^ permalink raw reply [flat|nested] 17+ messages in thread* Re: utmisc-0131: *** Error: Invalid owner_id: 00
2005-08-26 15:51 Starikovskiy, Alexey Y
@ 2005-08-26 21:18 ` Norbert Preining
2005-08-27 18:28 ` Mattia Dongili
1 sibling, 0 replies; 17+ messages in thread
From: Norbert Preining @ 2005-08-26 21:18 UTC (permalink / raw)
To: Starikovskiy, Alexey Y
Cc: Mattia Dongili, Thomas Renninger, ACPI Devel Maling List
On Fre, 26 Aug 2005, Starikovskiy, Alexey Y wrote:
> Looks like I went into wrong direction with previous patch, could you
> please try new one?
Better. No strange kernel Ooops, no ACPI messages here. Only hard to
merge into the 2.6.13-rc6-mm2 kernel.
I report if I find something more.
Best wishes
Norbert
-------------------------------------------------------------------------------
Dr. Norbert Preining <preining AT logic DOT at> Università di Siena
sip:preining-5G14tY4QmKiDqU6vP1vexV6hYfS7NtTn@public.gmane.org +43 (0) 59966-690018
gpg DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094
-------------------------------------------------------------------------------
POLLOCH (n.)
One of those tiny ribbed-plastic and aluminium foil tubs of milk
served on trains enabling you to carry one safely back to you
compartment where your legs in comfort trying to get the bloody things
open.
--- Douglas Adams, The Meaning of Liff
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: utmisc-0131: *** Error: Invalid owner_id: 00
2005-08-26 15:51 Starikovskiy, Alexey Y
2005-08-26 21:18 ` Norbert Preining
@ 2005-08-27 18:28 ` Mattia Dongili
1 sibling, 0 replies; 17+ messages in thread
From: Mattia Dongili @ 2005-08-27 18:28 UTC (permalink / raw)
To: Starikovskiy, Alexey Y
Cc: Norbert Preining, Thomas Renninger, ACPI Devel Maling List
[-- Attachment #1: Type: text/plain, Size: 420 bytes --]
On Fri, Aug 26, 2005 at 07:51:37PM +0400, Starikovskiy, Alexey Y wrote:
> Looks like I went into wrong direction with previous patch, could you
> please try new one?
with this patch it boots fine (no error executing the _REG method) and
after 3 hours of uptime still no random-time errors.
I'll raise my hand again if I see the dump again :)
(attached the diff with a clean .13-rc6-mm2 for reference)
--
mattia
:wq!
[-- Attachment #2: owner_id-3.patch.rc6-mm2 --]
[-- Type: text/plain, Size: 7600 bytes --]
diff -rup linux-2.6.13-rc6-mm2/drivers/acpi/dispatcher/dsmethod.c linux-clean/drivers/acpi/dispatcher/dsmethod.c
--- linux-2.6.13-rc6-mm2/drivers/acpi/dispatcher/dsmethod.c 2005-08-25 10:23:18.949991250 +0200
+++ linux-clean/drivers/acpi/dispatcher/dsmethod.c 2005-08-27 15:39:47.029311750 +0200
@@ -235,6 +235,16 @@ acpi_ds_begin_method_execution(struct ac
acpi_ex_system_wait_semaphore(obj_desc->method.semaphore,
ACPI_WAIT_FOREVER);
}
+ /*
+ * allocate owner id for this method
+ */
+ if (!obj_desc->method.thread_count) {
+ status = acpi_ut_allocate_owner_id (&obj_desc->method.owner_id);
+ if (ACPI_FAILURE (status)) {
+ return_ACPI_STATUS (status);
+ }
+ }
+
/*
* Increment the method parse tree thread count since it has been
@@ -289,11 +299,6 @@ acpi_ds_call_control_method(struct acpi_
return_ACPI_STATUS(AE_NULL_OBJECT);
}
- status = acpi_ut_allocate_owner_id(&obj_desc->method.owner_id);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
/* Init for new method, wait on concurrency semaphore */
status = acpi_ds_begin_method_execution(method_node, obj_desc,
@@ -380,22 +385,18 @@ acpi_ds_call_control_method(struct acpi_
if (obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY) {
status = obj_desc->method.implementation(next_walk_state);
- return_ACPI_STATUS(status);
}
+ goto end;
- return_ACPI_STATUS(AE_OK);
-
- /* On error, we must delete the new walk state */
-
- cleanup:
- acpi_ut_release_owner_id(&obj_desc->method.owner_id);
+cleanup:
+ /* Decrement the thread count on the method parse tree */
if (next_walk_state && (next_walk_state->method_desc)) {
- /* Decrement the thread count on the method parse tree */
-
next_walk_state->method_desc->method.thread_count--;
}
- (void)acpi_ds_terminate_control_method(next_walk_state);
- acpi_ds_delete_walk_state(next_walk_state);
+ /* On error, we must delete the new walk state */
+ acpi_ds_terminate_control_method (next_walk_state);
+ acpi_ds_delete_walk_state (next_walk_state);
+end:
return_ACPI_STATUS(status);
}
@@ -479,7 +480,7 @@ acpi_ds_restart_control_method(struct ac
*
* PARAMETERS: walk_state - State of the method
*
- * RETURN: Status
+ * RETURN: None
*
* DESCRIPTION: Terminate a control method. Delete everything that the method
* created, delete all locals and arguments, and delete the parse
@@ -487,7 +488,7 @@ acpi_ds_restart_control_method(struct ac
*
******************************************************************************/
-acpi_status acpi_ds_terminate_control_method(struct acpi_walk_state *walk_state)
+void acpi_ds_terminate_control_method(struct acpi_walk_state *walk_state)
{
union acpi_operand_object *obj_desc;
struct acpi_namespace_node *method_node;
@@ -496,14 +497,14 @@ acpi_status acpi_ds_terminate_control_me
ACPI_FUNCTION_TRACE_PTR("ds_terminate_control_method", walk_state);
if (!walk_state) {
- return (AE_BAD_PARAMETER);
+ return_VOID;
}
/* The current method object was saved in the walk state */
obj_desc = walk_state->method_desc;
if (!obj_desc) {
- return_ACPI_STATUS(AE_OK);
+ return_VOID;
}
/* Delete all arguments and locals */
@@ -517,7 +518,7 @@ acpi_status acpi_ds_terminate_control_me
*/
status = acpi_ut_acquire_mutex(ACPI_MTX_PARSER);
if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
+ return_VOID;
}
/* Signal completion of the execution of this method if necessary */
@@ -574,7 +575,7 @@ acpi_status acpi_ds_terminate_control_me
*/
status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
+ goto cleanup;
}
if (method_node->child) {
@@ -592,10 +593,9 @@ acpi_status acpi_ds_terminate_control_me
owner_id);
if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
+ goto cleanup;
}
}
-
- status = acpi_ut_release_mutex(ACPI_MTX_PARSER);
- return_ACPI_STATUS(status);
+cleanup:
+ acpi_ut_release_mutex (ACPI_MTX_PARSER);
}
diff -rup linux-2.6.13-rc6-mm2/drivers/acpi/parser/psparse.c linux-clean/drivers/acpi/parser/psparse.c
--- linux-2.6.13-rc6-mm2/drivers/acpi/parser/psparse.c 2005-08-25 10:23:19.970055000 +0200
+++ linux-clean/drivers/acpi/parser/psparse.c 2005-08-27 15:33:51.443089000 +0200
@@ -438,7 +438,6 @@ acpi_ps_next_parse_state(struct acpi_wal
acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state)
{
acpi_status status;
- acpi_status terminate_status;
struct acpi_thread_state *thread;
struct acpi_thread_state *prev_walk_list = acpi_gbl_current_walk_list;
struct acpi_walk_state *previous_walk_state;
@@ -508,6 +507,9 @@ acpi_status acpi_ps_parse_aml(struct acp
walk_state->method_node, NULL,
status);
+ /* Make sure that failed method will be cleaned as if it was executed */
+ walk_state->parse_flags |= ACPI_PARSE_EXECUTE;
+
/* Check for possible multi-thread reentrancy problem */
if ((status == AE_ALREADY_EXISTS) &&
@@ -524,14 +526,6 @@ acpi_status acpi_ps_parse_aml(struct acp
}
}
- if (walk_state->method_desc) {
- /* Decrement the thread count on the method parse tree */
-
- if (walk_state->method_desc->method.thread_count) {
- walk_state->method_desc->method.thread_count--;
- }
- }
-
/* We are done with this walk, move on to the parent if any */
walk_state = acpi_ds_pop_walk_state(thread);
@@ -546,13 +540,10 @@ acpi_status acpi_ps_parse_aml(struct acp
*/
if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) ==
ACPI_PARSE_EXECUTE) {
- terminate_status =
- acpi_ds_terminate_control_method(walk_state);
- if (ACPI_FAILURE(terminate_status)) {
- ACPI_REPORT_ERROR(("Could not terminate control method properly\n"));
-
- /* Ignore error and continue */
+ if (walk_state->method_desc) {
+ walk_state->method_desc->method.thread_count--;
}
+ acpi_ds_terminate_control_method (walk_state);
}
/* Delete this walk state and all linked control states */
diff -rup linux-2.6.13-rc6-mm2/drivers/acpi/parser/psxface.c linux-clean/drivers/acpi/parser/psxface.c
--- linux-2.6.13-rc6-mm2/drivers/acpi/parser/psxface.c 2005-08-25 10:23:20.014057750 +0200
+++ linux-clean/drivers/acpi/parser/psxface.c 2005-08-27 15:34:57.903242500 +0200
@@ -99,16 +99,6 @@ acpi_status acpi_ps_execute_method(struc
}
/*
- * Get a new owner_id for objects created by this method. Namespace
- * objects (such as Operation Regions) can be created during the
- * first pass parse.
- */
- status = acpi_ut_allocate_owner_id(&info->obj_desc->method.owner_id);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
- /*
* The caller "owns" the parameters, so give each one an extra
* reference
*/
@@ -139,9 +129,6 @@ acpi_status acpi_ps_execute_method(struc
status = acpi_ps_execute_pass(info);
cleanup:
- if (info->obj_desc->method.owner_id) {
- acpi_ut_release_owner_id(&info->obj_desc->method.owner_id);
- }
/* Take away the extra reference that we gave the parameters above */
diff -rup linux-2.6.13-rc6-mm2/drivers/acpi/utilities/utmisc.c linux-clean/drivers/acpi/utilities/utmisc.c
--- linux-2.6.13-rc6-mm2/drivers/acpi/utilities/utmisc.c 2005-08-25 10:23:20.550091250 +0200
+++ linux-clean/drivers/acpi/utilities/utmisc.c 2005-08-27 15:35:32.769421500 +0200
@@ -67,6 +67,8 @@ acpi_status acpi_ut_allocate_owner_id(ac
ACPI_FUNCTION_TRACE("ut_allocate_owner_id");
+ WARN_ON(*owner_id);
+
/* Mutex for the global ID mask */
status = acpi_ut_acquire_mutex(ACPI_MTX_CACHES);
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: utmisc-0131: *** Error: Invalid owner_id: 00
@ 2005-08-25 5:56 Starikovskiy, Alexey Y
2005-08-25 8:55 ` Mattia Dongili
0 siblings, 1 reply; 17+ messages in thread
From: Starikovskiy, Alexey Y @ 2005-08-25 5:56 UTC (permalink / raw)
To: Mattia Dongili; +Cc: Thomas Renninger, ACPI Devel Maling List
[-- Attachment #1: Type: text/plain, Size: 9525 bytes --]
Could you please try attached patch? It was made for
2.6.12+acpica-unix-20050729.patch, but it should apply cleanly to mm
tree as well.
Regards,
Alex.
-----Original Message-----
From: Mattia Dongili [mailto:malattia-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org]
Sent: Wednesday, August 24, 2005 11:20 PM
To: Starikovskiy, Alexey Y
Cc: Thomas Renninger; ACPI Devel Maling List
Subject: Re: [ACPI] utmisc-0131: *** Error: Invalid owner_id: 00
On Wed, Aug 24, 2005 at 02:51:38PM +0400, Starikovskiy, Alexey Y wrote:
> Hi Mattia,
>
> Thanks for helping with this issue...
> There are can be two causes to this -- we either overwrite allocated
> owner_id (this can be checked with the WARN_ON (owner_id != 0)
> in acpi_ut_allocate_owner_id -- we never copy owner_id) or we give
just
> released owner_id location instead of right one to release_owner_id
> function.
As I suspected :)
Anyway it seems to be the former, see the log (with
WARN_ON(*owner_id!=0) it'll hopefully give a better idea on what's
happening:
...
evgpeblk-0996 [06] ev_create_gpe_block : Found 1 Wake, Enabled 0
Runtime GPEs in this block
Badness in acpi_ut_allocate_owner_id at
drivers/acpi/utilities/utmisc.c:70
[<c02170b5>] acpi_ut_allocate_owner_id+0x3d/0xdb
[<c020f7f0>] acpi_ps_execute_method+0x7c/0x195
[<c020b141>] acpi_ns_execute_control_method+0x10b/0x132
[<c020affd>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f97f7>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c01f9bfe>] acpi_ev_detach_region+0x104/0x225
[<c01f9e59>] acpi_ev_install_handler+0x7f/0xd7
[<c020d440>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c020506a>] acpi_ex_pci_config_space_handler+0x0/0xd8
[<c01fa12d>] acpi_ev_install_space_handler+0x27c/0x2b8
[<c01f9dda>] acpi_ev_install_handler+0x0/0xd7
[<c01fc42d>] acpi_install_address_space_handler+0x9d/0xd7
[<c01fb396>] acpi_ev_pci_config_region_setup+0x0/0x2c7
[<c01fb4eb>] acpi_ev_pci_config_region_setup+0x155/0x2c7
[<c01fb396>] acpi_ev_pci_config_region_setup+0x0/0x2c7
[<c01f9954>] acpi_ev_address_space_dispatch+0x122/0x2c8
[<c0200950>] acpi_ex_access_region+0x149/0x1e9
[<c0200b9e>] acpi_ex_field_datum_io+0x177/0x31f
[<c0200f20>] acpi_ex_write_with_update_rule+0x1da/0x204
[<c02013bc>] acpi_ex_insert_into_field+0x1ac/0x31c
[<c0216358>] acpi_ut_value_exit+0x2d/0x37
[<c01feacb>] acpi_ex_write_data_to_field+0x39b/0x3f4
[<c0205b60>] acpi_ex_store_object_to_node+0x10b/0x217
[<c02056d0>] acpi_ex_store+0x9c/0x27d
[<c0201bdb>] acpi_ex_opcode_1A_1T_1R+0x460/0x660
[<c01f5926>] acpi_ds_exec_end_op+0x140/0x5d2
[<c01f5935>] acpi_ds_exec_end_op+0x14f/0x5d2
[<c020edb5>] acpi_ps_parse_loop+0x75d/0xb6c
[<c020e43c>] acpi_ps_parse_aml+0xc8/0x2e4
[<c020f9e8>] acpi_ps_execute_pass+0xa9/0xd5
[<c020f878>] acpi_ps_execute_method+0x104/0x195
[<c020b141>] acpi_ns_execute_control_method+0x10b/0x132
[<c020affd>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f97f7>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c020d440>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c01fa1a4>] acpi_ev_execute_reg_methods+0x3b/0x5f
[<c01fa1c8>] acpi_ev_reg_run+0x0/0x50
[<c01f9695>] acpi_ev_initialize_op_regions+0x5b/0x8e
[<c0217cbc>] acpi_initialize_objects+0x4e/0x132
[<c038eaa2>] acpi_bus_init+0x40/0xe5
[<c038ebc1>] acpi_init+0x7a/0x11e
[<c037e914>] do_initcalls+0x54/0xd0
[<c0397875>] netfilter_init+0x65/0xa0
[<c01002a0>] init+0x0/0x170
[<c01002cf>] init+0x2f/0x170
[<c0101394>] kernel_thread_helper+0x0/0xc
[<c0101399>] kernel_thread_helper+0x5/0xc
utmisc-0133: *** Error: Invalid owner_id: 00
> Could you please try suggested check in acpi_ut_allocate_owner_id ?
> Also it can be extremely helpful if you can print the name of the AML
> method there this fault accurs, for this you need to turn the check
> above into return error code.
here you are, with
if (*owner_id!=0) {
WARN_ON(1);
return_ACPI_STATUS(1);
}
the log is:
...
evgpeblk-0996 [06] ev_create_gpe_block : Found 1 Wake, Enabled 0
Runtime GPEs in this block
Badness in acpi_ut_allocate_owner_id at
drivers/acpi/utilities/utmisc.c:71
[<c02170ba>] acpi_ut_allocate_owner_id+0x42/0xfb
[<c020f7f0>] acpi_ps_execute_method+0x7c/0x195
[<c020b141>] acpi_ns_execute_control_method+0x10b/0x132
[<c020affd>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f97f7>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c01f9bfe>] acpi_ev_detach_region+0x104/0x225
[<c01f9e59>] acpi_ev_install_handler+0x7f/0xd7
[<c020d440>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c020506a>] acpi_ex_pci_config_space_handler+0x0/0xd8
[<c01fa12d>] acpi_ev_install_space_handler+0x27c/0x2b8
[<c01f9dda>] acpi_ev_install_handler+0x0/0xd7
[<c01fc42d>] acpi_install_address_space_handler+0x9d/0xd7
[<c01fb396>] acpi_ev_pci_config_region_setup+0x0/0x2c7
[<c01fb4eb>] acpi_ev_pci_config_region_setup+0x155/0x2c7
[<c01fb396>] acpi_ev_pci_config_region_setup+0x0/0x2c7
[<c01f9954>] acpi_ev_address_space_dispatch+0x122/0x2c8
[<c0200950>] acpi_ex_access_region+0x149/0x1e9
[<c0200b9e>] acpi_ex_field_datum_io+0x177/0x31f
[<c0200f20>] acpi_ex_write_with_update_rule+0x1da/0x204
[<c02013bc>] acpi_ex_insert_into_field+0x1ac/0x31c
[<c0216358>] acpi_ut_value_exit+0x2d/0x37
[<c01feacb>] acpi_ex_write_data_to_field+0x39b/0x3f4
[<c0205b60>] acpi_ex_store_object_to_node+0x10b/0x217
[<c02056d0>] acpi_ex_store+0x9c/0x27d
[<c0201bdb>] acpi_ex_opcode_1A_1T_1R+0x460/0x660
[<c01f5926>] acpi_ds_exec_end_op+0x140/0x5d2
[<c01f5935>] acpi_ds_exec_end_op+0x14f/0x5d2
[<c020edb5>] acpi_ps_parse_loop+0x75d/0xb6c
[<c020e43c>] acpi_ps_parse_aml+0xc8/0x2e4
[<c020f9e8>] acpi_ps_execute_pass+0xa9/0xd5
[<c020f878>] acpi_ps_execute_method+0x104/0x195
[<c020b141>] acpi_ns_execute_control_method+0x10b/0x132
[<c020affd>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f97f7>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c020d440>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c01fa1a4>] acpi_ev_execute_reg_methods+0x3b/0x5f
[<c01fa1c8>] acpi_ev_reg_run+0x0/0x50
[<c01f9695>] acpi_ev_initialize_op_regions+0x5b/0x8e
[<c0217cdc>] acpi_initialize_objects+0x4e/0x132
[<c038eaa2>] acpi_bus_init+0x40/0xe5
[<c038ebc1>] acpi_init+0x7a/0x11e
[<c037e914>] do_initcalls+0x54/0xd0
[<c0397875>] netfilter_init+0x65/0xa0
[<c01002a0>] init+0x0/0x170
[<c01002cf>] init+0x2f/0x170
[<c0101394>] kernel_thread_helper+0x0/0xc
[<c0101399>] kernel_thread_helper+0x5/0xc
evregion-0509 [28] ev_detach_region : AE_ERROR from region _REG,
[PCI_Config]
Badness in acpi_ut_allocate_owner_id at
drivers/acpi/utilities/utmisc.c:71
[<c02170ba>] acpi_ut_allocate_owner_id+0x42/0xfb
[<c020f7f0>] acpi_ps_execute_method+0x7c/0x195
[<c020b141>] acpi_ns_execute_control_method+0x10b/0x132
[<c020affd>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f97f7>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c020d440>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c01fa1a4>] acpi_ev_execute_reg_methods+0x3b/0x5f
[<c01fa1c8>] acpi_ev_reg_run+0x0/0x50
[<c01fc43d>] acpi_install_address_space_handler+0xad/0xd7
[<c01fb4eb>] acpi_ev_pci_config_region_setup+0x155/0x2c7
[<c01fb396>] acpi_ev_pci_config_region_setup+0x0/0x2c7
[<c01f9954>] acpi_ev_address_space_dispatch+0x122/0x2c8
[<c0200950>] acpi_ex_access_region+0x149/0x1e9
[<c0200b9e>] acpi_ex_field_datum_io+0x177/0x31f
[<c0200f20>] acpi_ex_write_with_update_rule+0x1da/0x204
[<c02013bc>] acpi_ex_insert_into_field+0x1ac/0x31c
[<c0216358>] acpi_ut_value_exit+0x2d/0x37
[<c01feacb>] acpi_ex_write_data_to_field+0x39b/0x3f4
[<c0205b60>] acpi_ex_store_object_to_node+0x10b/0x217
[<c02056d0>] acpi_ex_store+0x9c/0x27d
[<c0201bdb>] acpi_ex_opcode_1A_1T_1R+0x460/0x660
[<c01f5926>] acpi_ds_exec_end_op+0x140/0x5d2
[<c01f5935>] acpi_ds_exec_end_op+0x14f/0x5d2
[<c020edb5>] acpi_ps_parse_loop+0x75d/0xb6c
[<c020e43c>] acpi_ps_parse_aml+0xc8/0x2e4
[<c020f9e8>] acpi_ps_execute_pass+0xa9/0xd5
[<c020f878>] acpi_ps_execute_method+0x104/0x195
[<c020b141>] acpi_ns_execute_control_method+0x10b/0x132
[<c020affd>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f97f7>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c020d440>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c01fa1a4>] acpi_ev_execute_reg_methods+0x3b/0x5f
[<c01fa1c8>] acpi_ev_reg_run+0x0/0x50
[<c01f9695>] acpi_ev_initialize_op_regions+0x5b/0x8e
[<c0217cdc>] acpi_initialize_objects+0x4e/0x132
[<c038eaa2>] acpi_bus_init+0x40/0xe5
[<c038ebc1>] acpi_init+0x7a/0x11e
[<c037e914>] do_initcalls+0x54/0xd0
[<c0397875>] netfilter_init+0x65/0xa0
[<c01002a0>] init+0x0/0x170
[<c01002cf>] init+0x2f/0x170
[<c0101394>] kernel_thread_helper+0x0/0xc
[<c0101399>] kernel_thread_helper+0x5/0xc
evrgnini-0236: *** Error: Could not install pci_config handler for Root
Bridge PCI0, AE_ERROR
Completing Region/Field/Buffer/Package
initialization:.........................................................
.....
Initialized 20/21 Regions 0/0 Fields 25/25 Buffers 17/27 Packages (564
nodes)
Ah, note that all of the above is with 2.6.13-rc6-mm2
Last question: what am I doing wrong in the following?
# acpidump -o dsdt.dat
# iasl -d dsdt.dat
Intel ACPI Component Architecture
ASL Optimizing Compiler / AML Disassembler version 20050624 [Aug 24
2005]
Copyright (C) 2000 - 2005 Intel Corporation
Supports ACPI Specification Revision 3.0
Loading Acpi table from file dsdt.dat
TableHeader length [0x30204020] greater than the input file size
[0x14CF9]
Could not get table from the file
#
--
mattia
:wq!
[-- Attachment #2: owner_id.patch --]
[-- Type: application/octet-stream, Size: 3740 bytes --]
diff -ru ./drivers/acpi/dispatcher/dsmethod.c /home/aystarik/linux-2.6.12/drivers/acpi/dispatcher/dsmethod.c
--- ./drivers/acpi/dispatcher/dsmethod.c 2005-08-25 13:41:15.000000000 +0400
+++ /home/aystarik/linux-2.6.12/drivers/acpi/dispatcher/dsmethod.c 2005-08-24 17:50:25.000000000 +0400
@@ -299,11 +299,6 @@
return_ACPI_STATUS (AE_NULL_OBJECT);
}
- status = acpi_ut_allocate_owner_id (&obj_desc->method.owner_id);
- if (ACPI_FAILURE (status)) {
- return_ACPI_STATUS (status);
- }
-
/* Init for new method, wait on concurrency semaphore */
status = acpi_ds_begin_method_execution (method_node, obj_desc,
@@ -312,6 +307,13 @@
goto cleanup;
}
+ if (obj_desc->method.thread_count == 1) {
+ status = acpi_ut_allocate_owner_id (&obj_desc->method.owner_id);
+ if (ACPI_FAILURE (status)) {
+ return_ACPI_STATUS (status);
+ }
+ }
+
if (!(obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY)) {
/* 1) Parse: Create a new walk state for the preempting walk */
@@ -343,6 +345,8 @@
acpi_ps_delete_parse_tree (op);
}
+ obj_desc->method.thread_count--;
+
/* 2) Execute: Create a new state for the preempting walk */
next_walk_state = acpi_ds_create_walk_state (obj_desc->method.owner_id,
@@ -396,7 +400,9 @@
/* On error, we must delete the new walk state */
cleanup:
- acpi_ut_release_owner_id (&obj_desc->method.owner_id);
+ if (!obj_desc->method.thread_count && obj_desc->method.owner_id) {
+ acpi_ut_release_owner_id (&obj_desc->method.owner_id);
+ }
if (next_walk_state && (next_walk_state->method_desc)) {
/* Decrement the thread count on the method parse tree */
diff -ru ./drivers/acpi/parser/psparse.c /home/aystarik/linux-2.6.12/drivers/acpi/parser/psparse.c
--- ./drivers/acpi/parser/psparse.c 2005-08-25 13:41:15.000000000 +0400
+++ /home/aystarik/linux-2.6.12/drivers/acpi/parser/psparse.c 2005-08-24 17:51:30.000000000 +0400
@@ -523,14 +523,6 @@
}
}
- if (walk_state->method_desc) {
- /* Decrement the thread count on the method parse tree */
-
- if (walk_state->method_desc->method.thread_count) {
- walk_state->method_desc->method.thread_count--;
- }
- }
-
/* We are done with this walk, move on to the parent if any */
walk_state = acpi_ds_pop_walk_state (thread);
diff -ru ./drivers/acpi/parser/psxface.c /home/aystarik/linux-2.6.12/drivers/acpi/parser/psxface.c
--- ./drivers/acpi/parser/psxface.c 2005-08-25 13:41:15.000000000 +0400
+++ /home/aystarik/linux-2.6.12/drivers/acpi/parser/psxface.c 2005-08-24 17:54:38.000000000 +0400
@@ -114,9 +114,12 @@
* objects (such as Operation Regions) can be created during the
* first pass parse.
*/
- status = acpi_ut_allocate_owner_id (&info->obj_desc->method.owner_id);
- if (ACPI_FAILURE (status)) {
- return_ACPI_STATUS (status);
+
+ if (info->obj_desc->method.thread_count == 1) {
+ status = acpi_ut_allocate_owner_id (&info->obj_desc->method.owner_id);
+ if (ACPI_FAILURE (status)) {
+ return_ACPI_STATUS (status);
+ }
}
/*
@@ -149,9 +152,11 @@
info->pass_number = 3;
status = acpi_ps_execute_pass (info);
+ info->obj_desc->method.thread_count--;
cleanup:
- if (info->obj_desc->method.owner_id) {
+ if (!info->obj_desc->method.thread_count &&
+ info->obj_desc->method.owner_id) {
acpi_ut_release_owner_id (&info->obj_desc->method.owner_id);
}
diff -ru ./drivers/acpi/utilities/utmisc.c /home/aystarik/linux-2.6.12/drivers/acpi/utilities/utmisc.c
--- ./drivers/acpi/utilities/utmisc.c 2005-08-25 13:41:15.000000000 +0400
+++ /home/aystarik/linux-2.6.12/drivers/acpi/utilities/utmisc.c 2005-08-24 17:56:22.000000000 +0400
@@ -74,6 +74,7 @@
ACPI_FUNCTION_TRACE ("ut_allocate_owner_id");
+ WARN_ON (*owner_id);
/* Mutex for the global ID mask */
^ permalink raw reply [flat|nested] 17+ messages in thread* Re: utmisc-0131: *** Error: Invalid owner_id: 00
2005-08-25 5:56 Starikovskiy, Alexey Y
@ 2005-08-25 8:55 ` Mattia Dongili
0 siblings, 0 replies; 17+ messages in thread
From: Mattia Dongili @ 2005-08-25 8:55 UTC (permalink / raw)
To: Starikovskiy, Alexey Y; +Cc: Thomas Renninger, ACPI Devel Maling List
[-- Attachment #1: Type: text/plain, Size: 524 bytes --]
On 8/25/05, Starikovskiy, Alexey Y <alexey.y.starikovskiy-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> wrote:
> Could you please try attached patch? It was made for
> 2.6.12+acpica-unix-20050729.patch, but it should apply cleanly to mm
> tree as well.
not that cleanly actually :) I manually applied the patch (attached
the diff with a clean .13-rc6-mm2 if you wish to check it).
Anyway this patch fixes the owner_id issue but creates a whole lot of
other problems (see attached dmesg).
thanks
--
mattia
:wq!
[-- Attachment #2: owner_id.kern.log --]
[-- Type: application/octet-stream, Size: 21399 bytes --]
Linux version 2.6.13-rc6-mm2-2 (mattia@inferi) (gcc version 4.0.1 (Debian 4.0.1-2)) #1 PREEMPT Thu Aug 25 08:57:17 CEST 2005
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009e800 (usable)
BIOS-e820: 000000000009e800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000c0000 - 00000000000d0000 (reserved)
BIOS-e820: 00000000000d8000 - 00000000000e0000 (reserved)
BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000000fef0000 (usable)
BIOS-e820: 000000000fef0000 - 000000000feff000 (ACPI data)
BIOS-e820: 000000000feff000 - 000000000ff00000 (ACPI NVS)
BIOS-e820: 000000000ff00000 - 000000000ff80000 (usable)
BIOS-e820: 000000000ff80000 - 0000000010000000 (reserved)
BIOS-e820: 00000000ff800000 - 00000000ffc00000 (reserved)
BIOS-e820: 00000000fffffc00 - 0000000100000000 (reserved)
255MB LOWMEM available.
On node 0, present: 65408, spanned: 65408
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 61312 pages, LIFO batch:31
HighMem zone: 0 pages, LIFO batch:1
DMI present.
ACPI: RSDP (v000 PTLTD ) @ 0x000f6cd0
ACPI: RSDT (v001 SONY C0 0x20010809 PTL 0x00000000) @ 0x0fefa88f
ACPI: FADT (v001 SONY C0 0x20010809 PTL 0x01000000) @ 0x0fefef64
ACPI: BOOT (v001 SONY C0 0x20010809 PTL 0x00000001) @ 0x0fefefd8
ACPI: DSDT (v001 SONY C0 0x20010809 PTL 0x0100000d) @ 0x00000000
Allocating PCI resources starting at 10000000 (gap: 10000000:ef800000)
Built 1 zonelists
Local APIC disabled by BIOS -- you can enable it with "lapic"
mapped APIC to ffffd000 (01200000)
Initializing CPU#0
Kernel command line: root=/dev/hda1 ro vga=extended
PID hash table entries: 1024 (order: 10, 16384 bytes)
Detected 994.451 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80x50
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 255576k/261632k available (1999k kernel code, 5420k reserved, 541k data, 148k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 1991.11 BogoMIPS (lpj=3982223)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 0383f9ff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: After vendor identify, caps: 0383f9ff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 512K
CPU: After all inits, caps: 0383f9ff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
mtrr: v2.0 (20020519)
CPU: Intel(R) Pentium(R) III Mobile CPU 1000MHz stepping 01
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
tbxface-0109 [02] load_tables : ACPI Tables successfully acquired
Parsing all Control Methods:...............................................................................................................................................................................................
Table [DSDT](id 0005) - 555 Objects with 54 Devices 191 Methods 21 Regions
ACPI Namespace successfully loaded at root c03d1618
evxfevnt-0091 [03] enable : Transition to ACPI mode successful
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xfd9aa, last bus=2
PCI: Using configuration type 1
ACPI: Subsystem revision 20050729
evgpeblk-0988 [06] ev_create_gpe_block : GPE 00 to 0F [_GPE] 2 regs on int 0x9
evgpeblk-0996 [06] ev_create_gpe_block : Found 6 Wake, Enabled 0 Runtime GPEs in this block
evgpeblk-0988 [06] ev_create_gpe_block : GPE 10 to 1F [_GPE] 2 regs on int 0x9
evgpeblk-0996 [06] ev_create_gpe_block : Found 1 Wake, Enabled 0 Runtime GPEs in this block
Completing Region/Field/Buffer/Package initialization:..............................................................
Initialized 20/21 Regions 0/0 Fields 25/25 Buffers 17/27 Packages (564 nodes)
Executing all Device _STA and_INI methods:..........................................................
58 Devices found containing: 58 _STA, 3 _INI methods
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
Boot video device is 0000:01:00.0
PCI: Transparent bridge - 0000:00:1e.0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB_._PRT]
ACPI: Embedded Controller [EC0] (gpe 28)
ACPI: PCI Interrupt Link [LNKA] (IRQs *9)
ACPI: PCI Interrupt Link [LNKB] (IRQs 9) *0, disabled.
ACPI: PCI Interrupt Link [LNKC] (IRQs 9) *0, disabled.
ACPI: PCI Interrupt Link [LNKD] (IRQs *9)
ACPI: PCI Interrupt Link [LNKE] (IRQs *9)
ACPI: PCI Interrupt Link [LNKF] (IRQs 9) *0
ACPI: PCI Interrupt Link [LNKG] (IRQs 9) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 9) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report
PCI: Bridge: 0000:00:01.0
IO window: 3000-3fff
MEM window: d0100000-d01fffff
PREFETCH window: d8000000-dfffffff
PCI: Bus 3, cardbus bridge: 0000:02:05.0
IO window: 00005000-00005fff
IO window: 00006000-00006fff
PREFETCH window: 10000000-11ffffff
MEM window: 14000000-15ffffff
PCI: Bus 7, cardbus bridge: 0000:02:05.1
IO window: 00007000-00007fff
IO window: 00008000-00008fff
PREFETCH window: 12000000-13ffffff
MEM window: 16000000-17ffffff
PCI: Bridge: 0000:00:1e.0
IO window: 4000-4fff
MEM window: d0200000-d02fffff
PREFETCH window: 10000000-13ffffff
PCI: Setting latency timer of device 0000:00:1e.0 to 64
dswload-0292: *** Error: Looking up [BUFA] in namespace, AE_ALREADY_EXISTS
psloop-0287 [19] ps_parse_loop : During name lookup/catalog, AE_ALREADY_EXISTS
psparse-0509: *** Error: Method execution failed [\_SB_.LNKF._CRS] (Node c1269a48), AE_ALREADY_EXISTS
uteval-0156: *** Error: Method execution failed [\_SB_.LNKF._CRS] (Node c1269a48), AE_ALREADY_EXISTS
pci_link-0286 [09] pci_link_get_current : Error evaluating _CRS
ACPI: Unable to set IRQ for PCI Interrupt Link [LNKF] (likely buggy ACPI BIOS).
Try pci=noacpi or acpi=off
pci_irq-0273 [05] pci_allocate_irq : Invalid IRQ link routing entry
pci_irq-0385 [04] pci_irq_derive : Unable to derive IRQ for device 0000:02:05.0
ACPI: PCI Interrupt 0000:02:05.0[A]: no GSI - using IRQ 3
PCI: setting IRQ 3 as level-triggered
PCI: Setting latency timer of device 0000:02:05.0 to 64
dswload-0292: *** Error: Looking up [BUFA] in namespace, AE_ALREADY_EXISTS
psloop-0287 [19] ps_parse_loop : During name lookup/catalog, AE_ALREADY_EXISTS
psparse-0509: *** Error: Method execution failed [\_SB_.LNKG._CRS] (Node c1269848), AE_ALREADY_EXISTS
uteval-0156: *** Error: Method execution failed [\_SB_.LNKG._CRS] (Node c1269848), AE_ALREADY_EXISTS
pci_link-0286 [09] pci_link_get_current : Error evaluating _CRS
ACPI: Unable to set IRQ for PCI Interrupt Link [LNKG] (likely buggy ACPI BIOS).
Try pci=noacpi or acpi=off
pci_irq-0273 [05] pci_allocate_irq : Invalid IRQ link routing entry
pci_irq-0385 [04] pci_irq_derive : Unable to derive IRQ for device 0000:02:05.1
ACPI: PCI Interrupt 0000:02:05.1[B]: no GSI
PCI: Setting latency timer of device 0000:02:05.1 to 64
Simple Boot Flag at 0x36 set to 0x1
Initializing Cryptographic API
ACPI: AC Adapter [ACAD] (on-line)
ACPI: Battery Slot [BAT1] (battery present)
ACPI: Battery Slot [BAT2] (battery absent)
ACPI: Lid Switch [LID]
ACPI: Power Button (CM) [PWRB]
ACPI: CPU0 (power states: C1[C1] C2[C2])
ACPI: Thermal Zone [ATF0] (56 C)
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
PNP: No PS/2 controller found. Probing ports directly.
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
mice: PS/2 mouse device common for all mice
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH3M: IDE controller at PCI slot 0000:00:1f.1
PCI: Enabling device 0000:00:1f.1 (0005 -> 0007)
pci_irq-0385 [10] pci_irq_derive : Unable to derive IRQ for device 0000:00:1f.1
ACPI: PCI Interrupt 0000:00:1f.1[A]: no GSI
ICH3M: chipset revision 1
ICH3M: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x1860-0x1867, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0x1868-0x186f, BIOS settings: hdc:pio, hdd:pio
Probing IDE interface ide0...
input: AT Translated Set 2 keyboard on isa0060/serio0
hda: FUJITSU MHV2080AH, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
Probing IDE interface ide1...
hda: max request size: 128KiB
hda: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=65535/16/63, UDMA(100)
hda: cache flushes supported
hda: hda1 hda2 hda3 hda4 < hda5 hda6 >
perfctr: driver 2.7.17, cpu type Intel P6 at 994451 kHz
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Using IPI Shortcut mode
ACPI wakeup devices:
PWRB USB1 USB2 USB3 CRD0 CRD1 LAN EC0 COMA MODE
ACPI: (supports S0 S3 S4 S5)
ReiserFS: hda1: found reiserfs format "3.6" with standard journal
ReiserFS: hda1: using ordered data mode
ReiserFS: hda1: journal params: device hda1, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda1: checking transaction log (hda1)
ReiserFS: hda1: Using r5 hash to sort names
VFS: Mounted root (reiserfs filesystem) readonly.
Freeing unused kernel memory: 148k freed
Adding 248996k swap on /dev/hda2. Priority:-1 extents:1 across:248996k
usbcore: registered new driver usbfs
usbcore: registered new driver hub
USB Universal Host Controller Interface driver v2.3
dswload-0292: *** Error: Looking up [BUFA] in namespace, AE_ALREADY_EXISTS
psloop-0287 [25] ps_parse_loop : During name lookup/catalog, AE_ALREADY_EXISTS
psparse-0509: *** Error: Method execution failed [\_SB_.LNKA._CRS] (Node c126b588), AE_ALREADY_EXISTS
uteval-0156: *** Error: Method execution failed [\_SB_.LNKA._CRS] (Node c126b588), AE_ALREADY_EXISTS
pci_link-0286 [15] pci_link_get_current : Error evaluating _CRS
ACPI: Unable to set IRQ for PCI Interrupt Link [LNKA] (likely buggy ACPI BIOS).
Try pci=noacpi or acpi=off
pci_irq-0273 [11] pci_allocate_irq : Invalid IRQ link routing entry
pci_irq-0385 [10] pci_irq_derive : Unable to derive IRQ for device 0000:00:1d.0
ACPI: PCI Interrupt 0000:00:1d.0[A]: no GSI - using IRQ 9
PCI: setting IRQ 9 as level-triggered
PCI: Setting latency timer of device 0000:00:1d.0 to 64
uhci_hcd 0000:00:1d.0: UHCI Host Controller
uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 1
uhci_hcd 0000:00:1d.0: irq 9, io base 0x00001800
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
dswload-0292: *** Error: Looking up [BUFA] in namespace, AE_ALREADY_EXISTS
psloop-0287 [25] ps_parse_loop : During name lookup/catalog, AE_ALREADY_EXISTS
psparse-0509: *** Error: Method execution failed [\_SB_.LNKD._CRS] (Node c1269e48), AE_ALREADY_EXISTS
uteval-0156: *** Error: Method execution failed [\_SB_.LNKD._CRS] (Node c1269e48), AE_ALREADY_EXISTS
pci_link-0286 [15] pci_link_get_current : Error evaluating _CRS
ACPI: Unable to set IRQ for PCI Interrupt Link [LNKD] (likely buggy ACPI BIOS).
Try pci=noacpi or acpi=off
pci_irq-0273 [11] pci_allocate_irq : Invalid IRQ link routing entry
pci_irq-0385 [10] pci_irq_derive : Unable to derive IRQ for device 0000:00:1d.1
ACPI: PCI Interrupt 0000:00:1d.1[B]: no GSI - using IRQ 9
PCI: Setting latency timer of device 0000:00:1d.1 to 64
uhci_hcd 0000:00:1d.1: UHCI Host Controller
uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 2
uhci_hcd 0000:00:1d.1: irq 9, io base 0x00001820
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
dswload-0292: *** Error: Looking up [BUFA] in namespace, AE_ALREADY_EXISTS
psloop-0287 [25] ps_parse_loop : During name lookup/catalog, AE_ALREADY_EXISTS
psparse-0509: *** Error: Method execution failed [\_SB_.LNKC._CRS] (Node c126b188), AE_ALREADY_EXISTS
uteval-0156: *** Error: Method execution failed [\_SB_.LNKC._CRS] (Node c126b188), AE_ALREADY_EXISTS
pci_link-0286 [15] pci_link_get_current : Error evaluating _CRS
ACPI: Unable to set IRQ for PCI Interrupt Link [LNKC] (likely buggy ACPI BIOS).
Try pci=noacpi or acpi=off
pci_irq-0273 [11] pci_allocate_irq : Invalid IRQ link routing entry
pci_irq-0385 [10] pci_irq_derive : Unable to derive IRQ for device 0000:00:1d.2
ACPI: PCI Interrupt 0000:00:1d.2[C]: no GSI
PCI: Setting latency timer of device 0000:00:1d.2 to 64
uhci_hcd 0000:00:1d.2: UHCI Host Controller
uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 3
uhci_hcd 0000:00:1d.2: request interrupt 255 failed
uhci_hcd 0000:00:1d.2: USB bus 3 deregistered
pci_link-0695 [12] pci_link_free_irq : Link isn't initialized
pci_irq-0385 [10] pci_irq_derive : Unable to derive IRQ for device 0000:00:1d.2
uhci_hcd 0000:00:1d.2: init 0000:00:1d.2 fail, -22
uhci_hcd: probe of 0000:00:1d.2 failed with error -22
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
Linux agpgart interface v0.101 (c) Dave Jones
agpgart: Detected an Intel 830M Chipset.
agpgart: AGP aperture is 256M @ 0xe0000000
input: PC Speaker
Sony Vaio Jogdial input method installed.
Sony Vaio Keys input method installed.
sonypi: Sony Programmable I/O Controller Driverv1.26.
sonypi: detected type2 model, verbose = 0, fnkeyinit = off, camera = off, compat = off, mask = 0xffffffff, useinput = on, acpi = on
sonypi: enabled at irq=11, port1=0x1080, port2=0x1084
sonypi: device allocated minor is 63
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
Real Time Clock Driver v1.12
Synaptics Touchpad, model: 1, fw: 5.9, id: 0x2548b1, caps: 0x804753/0x0
input: SynPS/2 Synaptics TouchPad on isa0060/serio1
device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.com
ReiserFS: hda3: found reiserfs format "3.6" with standard journal
ReiserFS: hda3: using ordered data mode
ReiserFS: hda3: journal params: device hda3, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda3: checking transaction log (hda3)
ReiserFS: hda3: Using r5 hash to sort names
ReiserFS: hda6: found reiserfs format "3.6" with standard journal
ReiserFS: hda6: using ordered data mode
ReiserFS: hda6: journal params: device hda6, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda6: checking transaction log (hda6)
ReiserFS: hda6: Using r5 hash to sort names
hw_random hardware driver 1.0.0 loaded
PCI: Enabling device 0000:00:1f.5 (0000 -> 0001)
dswload-0292: *** Error: Looking up [BUFA] in namespace, AE_ALREADY_EXISTS
psloop-0287 [28] ps_parse_loop : During name lookup/catalog, AE_ALREADY_EXISTS
psparse-0509: *** Error: Method execution failed [\_SB_.LNKB._CRS] (Node c126b388), AE_ALREADY_EXISTS
uteval-0156: *** Error: Method execution failed [\_SB_.LNKB._CRS] (Node c126b388), AE_ALREADY_EXISTS
pci_link-0286 [18] pci_link_get_current : Error evaluating _CRS
ACPI: Unable to set IRQ for PCI Interrupt Link [LNKB] (likely buggy ACPI BIOS).
Try pci=noacpi or acpi=off
pci_irq-0273 [14] pci_allocate_irq : Invalid IRQ link routing entry
pci_irq-0385 [13] pci_irq_derive : Unable to derive IRQ for device 0000:00:1f.5
ACPI: PCI Interrupt 0000:00:1f.5[B]: no GSI - using IRQ 9
PCI: Setting latency timer of device 0000:00:1f.5 to 64
intel8x0_measure_ac97_clock: measured 55481 usecs
intel8x0: clocking to 48000
dswload-0292: *** Error: Looking up [BUFA] in namespace, AE_ALREADY_EXISTS
psloop-0287 [28] ps_parse_loop : During name lookup/catalog, AE_ALREADY_EXISTS
psparse-0509: *** Error: Method execution failed [\_SB_.LNKF._CRS] (Node c1269a48), AE_ALREADY_EXISTS
uteval-0156: *** Error: Method execution failed [\_SB_.LNKF._CRS] (Node c1269a48), AE_ALREADY_EXISTS
pci_link-0286 [18] pci_link_get_current : Error evaluating _CRS
ACPI: Unable to set IRQ for PCI Interrupt Link [LNKF] (likely buggy ACPI BIOS).
Try pci=noacpi or acpi=off
pci_irq-0273 [14] pci_allocate_irq : Invalid IRQ link routing entry
pci_irq-0385 [13] pci_irq_derive : Unable to derive IRQ for device 0000:02:05.0
ACPI: PCI Interrupt 0000:02:05.0[A]: no GSI - using IRQ 3
Yenta: CardBus bridge found at 0000:02:05.0 [104d:80e7]
irq 3: nobody cared (try booting with the "irqpoll" option)
[<c013b5fa>] __report_bad_irq+0x2a/0xa0
[<c013ae2d>] handle_IRQ_event+0x3d/0x70
[<c013b717>] note_interrupt+0x87/0xe0
[<c013af48>] __do_IRQ+0xe8/0x110
[<c0104df9>] do_IRQ+0x19/0x30
[<c0103446>] common_interrupt+0x1a/0x20
[<c011f59e>] __do_softirq+0x2e/0xa0
[<c011f636>] do_softirq+0x26/0x30
[<c011f705>] irq_exit+0x35/0x40
[<c0104dfe>] do_IRQ+0x1e/0x30
[<c0103446>] common_interrupt+0x1a/0x20
[<c013b1ab>] setup_irq+0x8b/0x130
[<d0b3cb50>] yenta_interrupt+0x0/0xc0 [yenta_socket]
[<c013b417>] request_irq+0xa7/0xc0
[<d0b3f4bd>] yenta_probe+0x25d/0x2a0 [yenta_socket]
[<d0b3cb50>] yenta_interrupt+0x0/0xc0 [yenta_socket]
[<c01e6166>] __pci_device_probe+0x56/0x70
[<c01e61af>] pci_device_probe+0x2f/0x50
[<c0251b23>] driver_probe_device+0x43/0xd0
[<c0251c20>] __driver_attach+0x0/0x50
[<c0251c61>] __driver_attach+0x41/0x50
[<c02510ed>] bus_for_each_dev+0x5d/0x80
[<c0251c95>] driver_attach+0x25/0x30
[<c0251c20>] __driver_attach+0x0/0x50
[<c0251649>] bus_add_driver+0x89/0xf0
[<c01e6422>] pci_register_driver+0x62/0x90
[<d0afc00f>] yenta_socket_init+0xf/0x11 [yenta_socket]
[<c01382d2>] sys_init_module+0xd2/0x210
[<c0103281>] syscall_call+0x7/0xb
handlers:
[<d0b3cb50>] (yenta_interrupt+0x0/0xc0 [yenta_socket])
Disabling IRQ #3
Yenta: ISA IRQ mask 0x04b0, PCI irq 3
Socket status: 30000006
pcmcia: parent PCI bridge I/O window: 0x4000 - 0x4fff
cs: IO port probe 0x4000-0x4fff: clean.
pcmcia: parent PCI bridge Memory window: 0xd0200000 - 0xd02fffff
pcmcia: parent PCI bridge Memory window: 0x10000000 - 0x13ffffff
dswload-0292: *** Error: Looking up [BUFA] in namespace, AE_ALREADY_EXISTS
psloop-0287 [28] ps_parse_loop : During name lookup/catalog, AE_ALREADY_EXISTS
psparse-0509: *** Error: Method execution failed [\_SB_.LNKG._CRS] (Node c1269848), AE_ALREADY_EXISTS
uteval-0156: *** Error: Method execution failed [\_SB_.LNKG._CRS] (Node c1269848), AE_ALREADY_EXISTS
pci_link-0286 [18] pci_link_get_current : Error evaluating _CRS
ACPI: Unable to set IRQ for PCI Interrupt Link [LNKG] (likely buggy ACPI BIOS).
Try pci=noacpi or acpi=off
pci_irq-0273 [14] pci_allocate_irq : Invalid IRQ link routing entry
pci_irq-0385 [13] pci_irq_derive : Unable to derive IRQ for device 0000:02:05.1
ACPI: PCI Interrupt 0000:02:05.1[B]: no GSI
Yenta: CardBus bridge found at 0000:02:05.1 [104d:80e7]
Yenta: no PCI IRQ, CardBus support disabled for this socket.
Yenta: check your BIOS CardBus, BIOS IRQ or ACPI settings.
Yenta: ISA IRQ mask 0x00b0, PCI irq 0
Socket status: 30000006
pcmcia: parent PCI bridge I/O window: 0x4000 - 0x4fff
cs: IO port probe 0x4000-0x4fff: clean.
pcmcia: parent PCI bridge Memory window: 0xd0200000 - 0xd02fffff
pcmcia: parent PCI bridge Memory window: 0x10000000 - 0x13ffffff
e100: Intel(R) PRO/100 Network Driver, 3.4.10-k2-NAPI
e100: Copyright(c) 1999-2005 Intel Corporation
acpi_bus-0200 [12] bus_set_power : Device is not power manageable
dswload-0292: *** Error: Looking up [BUFA] in namespace, AE_ALREADY_EXISTS
psloop-0287 [28] ps_parse_loop : During name lookup/catalog, AE_ALREADY_EXISTS
psparse-0509: *** Error: Method execution failed [\_SB_.LNKE._CRS] (Node c1269c48), AE_ALREADY_EXISTS
uteval-0156: *** Error: Method execution failed [\_SB_.LNKE._CRS] (Node c1269c48), AE_ALREADY_EXISTS
pci_link-0286 [18] pci_link_get_current : Error evaluating _CRS
ACPI: Unable to set IRQ for PCI Interrupt Link [LNKE] (likely buggy ACPI BIOS).
Try pci=noacpi or acpi=off
pci_irq-0273 [14] pci_allocate_irq : Invalid IRQ link routing entry
pci_irq-0385 [13] pci_irq_derive : Unable to derive IRQ for device 0000:02:08.0
ACPI: PCI Interrupt 0000:02:08.0[A]: no GSI - using IRQ 9
e100: eth0: e100_probe: addr 0xd0204000, irq 9, MAC addr 08:00:46:26:50:59
ip_tables: (C) 2000-2002 Netfilter core team
Netfilter messages via NETLINK v0.30.
ip_conntrack version 2.3 (2044 buckets, 16352 max) - 252 bytes per conntrack
e100: eth0: e100_watchdog: link up, 100Mbps, half-duplex
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[-- Attachment #3: owner_id.patch.rc6-mm2 --]
[-- Type: application/octet-stream, Size: 4140 bytes --]
diff -rup linux-2.6.13-rc6-mm2/drivers/acpi/dispatcher/dsmethod.c linux-clean/drivers/acpi/dispatcher/dsmethod.c
--- linux-2.6.13-rc6-mm2/drivers/acpi/dispatcher/dsmethod.c 2005-08-25 10:23:18.949991250 +0200
+++ linux-clean/drivers/acpi/dispatcher/dsmethod.c 2005-08-25 08:36:32.250742500 +0200
@@ -289,11 +289,6 @@ acpi_ds_call_control_method(struct acpi_
return_ACPI_STATUS(AE_NULL_OBJECT);
}
- status = acpi_ut_allocate_owner_id(&obj_desc->method.owner_id);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
/* Init for new method, wait on concurrency semaphore */
status = acpi_ds_begin_method_execution(method_node, obj_desc,
@@ -302,6 +297,13 @@ acpi_ds_call_control_method(struct acpi_
goto cleanup;
}
+ if (obj_desc->method.thread_count == 1) {
+ status = acpi_ut_allocate_owner_id (&obj_desc->method.owner_id);
+ if (ACPI_FAILURE (status)) {
+ return_ACPI_STATUS (status);
+ }
+ }
+
if (!(obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY)) {
/* 1) Parse: Create a new walk state for the preempting walk */
@@ -335,6 +337,8 @@ acpi_ds_call_control_method(struct acpi_
acpi_ps_delete_parse_tree(op);
}
+ obj_desc->method.thread_count--;
+
/* 2) Execute: Create a new state for the preempting walk */
next_walk_state = acpi_ds_create_walk_state(obj_desc->method.owner_id,
@@ -388,7 +392,9 @@ acpi_ds_call_control_method(struct acpi_
/* On error, we must delete the new walk state */
cleanup:
- acpi_ut_release_owner_id(&obj_desc->method.owner_id);
+ if (!obj_desc->method.thread_count && obj_desc->method.owner_id) {
+ acpi_ut_release_owner_id (&obj_desc->method.owner_id);
+ }
if (next_walk_state && (next_walk_state->method_desc)) {
/* Decrement the thread count on the method parse tree */
diff -rup linux-2.6.13-rc6-mm2/drivers/acpi/parser/psparse.c linux-clean/drivers/acpi/parser/psparse.c
--- linux-2.6.13-rc6-mm2/drivers/acpi/parser/psparse.c 2005-08-25 10:23:19.970055000 +0200
+++ linux-clean/drivers/acpi/parser/psparse.c 2005-08-25 08:38:13.453067250 +0200
@@ -524,14 +524,6 @@ acpi_status acpi_ps_parse_aml(struct acp
}
}
- if (walk_state->method_desc) {
- /* Decrement the thread count on the method parse tree */
-
- if (walk_state->method_desc->method.thread_count) {
- walk_state->method_desc->method.thread_count--;
- }
- }
-
/* We are done with this walk, move on to the parent if any */
walk_state = acpi_ds_pop_walk_state(thread);
diff -rup linux-2.6.13-rc6-mm2/drivers/acpi/parser/psxface.c linux-clean/drivers/acpi/parser/psxface.c
--- linux-2.6.13-rc6-mm2/drivers/acpi/parser/psxface.c 2005-08-25 10:23:20.014057750 +0200
+++ linux-clean/drivers/acpi/parser/psxface.c 2005-08-25 08:45:04.826776500 +0200
@@ -103,9 +103,11 @@ acpi_status acpi_ps_execute_method(struc
* objects (such as Operation Regions) can be created during the
* first pass parse.
*/
- status = acpi_ut_allocate_owner_id(&info->obj_desc->method.owner_id);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
+ if (info->obj_desc->method.thread_count == 1) {
+ status = acpi_ut_allocate_owner_id (&info->obj_desc->method.owner_id);
+ if (ACPI_FAILURE (status)) {
+ return_ACPI_STATUS (status);
+ }
}
/*
@@ -138,8 +140,11 @@ acpi_status acpi_ps_execute_method(struc
info->pass_number = 3;
status = acpi_ps_execute_pass(info);
+ info->obj_desc->method.thread_count--;
+
cleanup:
- if (info->obj_desc->method.owner_id) {
+ if (!info->obj_desc->method.thread_count &&
+ info->obj_desc->method.owner_id) {
acpi_ut_release_owner_id(&info->obj_desc->method.owner_id);
}
diff -rup linux-2.6.13-rc6-mm2/drivers/acpi/utilities/utmisc.c linux-clean/drivers/acpi/utilities/utmisc.c
--- linux-2.6.13-rc6-mm2/drivers/acpi/utilities/utmisc.c 2005-08-25 10:23:20.550091250 +0200
+++ linux-clean/drivers/acpi/utilities/utmisc.c 2005-08-25 08:45:38.024851250 +0200
@@ -67,6 +67,8 @@ acpi_status acpi_ut_allocate_owner_id(ac
ACPI_FUNCTION_TRACE("ut_allocate_owner_id");
+ WARN_ON (*owner_id);
+
/* Mutex for the global ID mask */
status = acpi_ut_acquire_mutex(ACPI_MTX_CACHES);
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: utmisc-0131: *** Error: Invalid owner_id: 00
@ 2005-08-24 10:51 Starikovskiy, Alexey Y
2005-08-24 19:20 ` Mattia Dongili
0 siblings, 1 reply; 17+ messages in thread
From: Starikovskiy, Alexey Y @ 2005-08-24 10:51 UTC (permalink / raw)
To: Mattia Dongili, Thomas Renninger; +Cc: ACPI Devel Maling List
Hi Mattia,
Thanks for helping with this issue...
There are can be two causes to this -- we either overwrite allocated
owner_id (this can be checked with the WARN_ON (owner_id != 0)
in acpi_ut_allocate_owner_id -- we never copy owner_id) or we give just
released owner_id location instead of right one to release_owner_id
function.
Could you please try suggested check in acpi_ut_allocate_owner_id ?
Also it can be extremely helpful if you can print the name of the AML
method there this fault accurs, for this you need to turn the check
above into return error code.
Thanks again,
Alex.
-----Original Message-----
From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
[mailto:acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Mattia
Dongili
Sent: Sunday, August 21, 2005 9:42 PM
To: Thomas Renninger
Cc: ACPI Devel Maling List
Subject: Re: [ACPI] utmisc-0131: *** Error: Invalid owner_id: 00
On Sat, Aug 20, 2005 at 07:13:42PM +0200, Thomas Renninger wrote:
> Mattia Dongili wrote:
> > On Thu, Aug 18, 2005 at 08:21:53PM +0200, Mattia Dongili wrote:
> >>Hello,
> >>
> >>I'm seeing the error (almost randomly and at with a varying
frequence)
> >>utmisc-0131: *** Error: Invalid owner_id: 00
> >>
> >>It seems completely harmless but after some hours of work however
this
> >>other related warning appears when reading the battery state:
> >>psparse-0509: *** Error: Method execution failed [\_SB_.PCI0.LPC0.EC
> >>0_.ACAD._PSR] (Node c126e7c8), AE_OWNER_ID_LIMIT
I found a place where the Invalid owner_id error always happens and
added a WARN_ON.
Also, adding a couple of printks to track IDs I had:
[...]
Checking 'hlt' instruction... OK.
Allocated: 1
Allocated: 2
Allocated: 3
Allocated: 4
Allocated: 5
tbxface-0109 [02] load_tables : ACPI Tables successfully
acquired
Parsing all Control Methods:.
<4>Allocated: 6
Released: 6
6 is then allocated and released 190 times
Table [DSDT](id 0005) - 555 Objects with 54 Devices 191 Methods 21
Regions
ACPI Namespace successfully loaded at root c03cf5b8
evxfevnt-0091 [03] enable : Transition to ACPI mode
successful
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xfd9aa, last bus=2
PCI: Using configuration type 1
ACPI: Subsystem revision 20050729
evgpeblk-0988 [06] ev_create_gpe_block : GPE 00 to 0F [_GPE] 2 regs
on int 0x9
evgpeblk-0996 [06] ev_create_gpe_block : Found 6 Wake, Enabled 0
Runtime GPEs in this block
evgpeblk-0988 [06] ev_create_gpe_block : GPE 10 to 1F [_GPE] 2 regs
on int 0x9
evgpeblk-0996 [06] ev_create_gpe_block : Found 1 Wake, Enabled 0
Runtime GPEs in this block
Allocated: 6
Allocated: 7
Released: 7
Allocated: 7
Released: 7
Released: 0
------------^
should this be 6?
6 is never allocated anymore.
utmisc-0133: *** Error: Invalid owner_id: 00
Badness in acpi_ut_release_owner_id at
drivers/acpi/utilities/utmisc.c:134
[<c021766a>] acpi_ut_release_owner_id+0x75/0x11d
[<c01f6df7>] acpi_ds_terminate_control_method+0x187/0x1d0
[<c020e9d6>] acpi_ps_parse_aml+0x1aa/0x2e4
[<c020fea0>] acpi_ps_execute_pass+0xa9/0xd5
[<c020fd30>] acpi_ps_execute_method+0x104/0x195
[<c020b5f9>] acpi_ns_execute_control_method+0x10b/0x132
[<c020b4b5>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f9caf>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c020d8f8>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c01fa65c>] acpi_ev_execute_reg_methods+0x3b/0x5f
[<c01fa680>] acpi_ev_reg_run+0x0/0x50
[<c01f9b4d>] acpi_ev_initialize_op_regions+0x5b/0x8e
[<c02181a8>] acpi_initialize_objects+0x4e/0x132
[<c038c8f2>] acpi_bus_init+0x40/0xe5
[<c038ca11>] acpi_init+0x7a/0x11e
[<c037c914>] do_initcalls+0x54/0xd0
[<c03941ea>] netfilter_init+0x9a/0xd0
[<c01002a0>] init+0x0/0x170
[<c01002cf>] init+0x2f/0x170
[<c0101394>] kernel_thread_helper+0x0/0xc
[<c0101399>] kernel_thread_helper+0x5/0xc
Completing Region/Field/Buffer/Package
initialization:.........................................................
.....
Initialized 20/21 Regions 0/0 Fields 25/25 Buffers 17/27 Packages (564
nodes)
Executing all Device _STA and_INI methods:....<4>Allocated: 7
Released: 7
.............<4>Allocated: 7
Released: 7
Allocated: 7
Allocated: 8
Released: 8
Released: 7
I'm going through the code trying to follow possible paths but it'll
take long :) so I'm sharing these thoughts.
--
mattia
:wq!
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle
Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing &
QA
Security * Process Improvement & Measurement *
http://www.sqe.com/bsce5sf
_______________________________________________
Acpi-devel mailing list
Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/acpi-devel
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
^ permalink raw reply [flat|nested] 17+ messages in thread* Re: utmisc-0131: *** Error: Invalid owner_id: 00
2005-08-24 10:51 Starikovskiy, Alexey Y
@ 2005-08-24 19:20 ` Mattia Dongili
0 siblings, 0 replies; 17+ messages in thread
From: Mattia Dongili @ 2005-08-24 19:20 UTC (permalink / raw)
To: Starikovskiy, Alexey Y; +Cc: Thomas Renninger, ACPI Devel Maling List
On Wed, Aug 24, 2005 at 02:51:38PM +0400, Starikovskiy, Alexey Y wrote:
> Hi Mattia,
>
> Thanks for helping with this issue...
> There are can be two causes to this -- we either overwrite allocated
> owner_id (this can be checked with the WARN_ON (owner_id != 0)
> in acpi_ut_allocate_owner_id -- we never copy owner_id) or we give just
> released owner_id location instead of right one to release_owner_id
> function.
As I suspected :)
Anyway it seems to be the former, see the log (with
WARN_ON(*owner_id!=0) it'll hopefully give a better idea on what's
happening:
...
evgpeblk-0996 [06] ev_create_gpe_block : Found 1 Wake, Enabled 0 Runtime GPEs in this block
Badness in acpi_ut_allocate_owner_id at drivers/acpi/utilities/utmisc.c:70
[<c02170b5>] acpi_ut_allocate_owner_id+0x3d/0xdb
[<c020f7f0>] acpi_ps_execute_method+0x7c/0x195
[<c020b141>] acpi_ns_execute_control_method+0x10b/0x132
[<c020affd>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f97f7>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c01f9bfe>] acpi_ev_detach_region+0x104/0x225
[<c01f9e59>] acpi_ev_install_handler+0x7f/0xd7
[<c020d440>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c020506a>] acpi_ex_pci_config_space_handler+0x0/0xd8
[<c01fa12d>] acpi_ev_install_space_handler+0x27c/0x2b8
[<c01f9dda>] acpi_ev_install_handler+0x0/0xd7
[<c01fc42d>] acpi_install_address_space_handler+0x9d/0xd7
[<c01fb396>] acpi_ev_pci_config_region_setup+0x0/0x2c7
[<c01fb4eb>] acpi_ev_pci_config_region_setup+0x155/0x2c7
[<c01fb396>] acpi_ev_pci_config_region_setup+0x0/0x2c7
[<c01f9954>] acpi_ev_address_space_dispatch+0x122/0x2c8
[<c0200950>] acpi_ex_access_region+0x149/0x1e9
[<c0200b9e>] acpi_ex_field_datum_io+0x177/0x31f
[<c0200f20>] acpi_ex_write_with_update_rule+0x1da/0x204
[<c02013bc>] acpi_ex_insert_into_field+0x1ac/0x31c
[<c0216358>] acpi_ut_value_exit+0x2d/0x37
[<c01feacb>] acpi_ex_write_data_to_field+0x39b/0x3f4
[<c0205b60>] acpi_ex_store_object_to_node+0x10b/0x217
[<c02056d0>] acpi_ex_store+0x9c/0x27d
[<c0201bdb>] acpi_ex_opcode_1A_1T_1R+0x460/0x660
[<c01f5926>] acpi_ds_exec_end_op+0x140/0x5d2
[<c01f5935>] acpi_ds_exec_end_op+0x14f/0x5d2
[<c020edb5>] acpi_ps_parse_loop+0x75d/0xb6c
[<c020e43c>] acpi_ps_parse_aml+0xc8/0x2e4
[<c020f9e8>] acpi_ps_execute_pass+0xa9/0xd5
[<c020f878>] acpi_ps_execute_method+0x104/0x195
[<c020b141>] acpi_ns_execute_control_method+0x10b/0x132
[<c020affd>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f97f7>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c020d440>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c01fa1a4>] acpi_ev_execute_reg_methods+0x3b/0x5f
[<c01fa1c8>] acpi_ev_reg_run+0x0/0x50
[<c01f9695>] acpi_ev_initialize_op_regions+0x5b/0x8e
[<c0217cbc>] acpi_initialize_objects+0x4e/0x132
[<c038eaa2>] acpi_bus_init+0x40/0xe5
[<c038ebc1>] acpi_init+0x7a/0x11e
[<c037e914>] do_initcalls+0x54/0xd0
[<c0397875>] netfilter_init+0x65/0xa0
[<c01002a0>] init+0x0/0x170
[<c01002cf>] init+0x2f/0x170
[<c0101394>] kernel_thread_helper+0x0/0xc
[<c0101399>] kernel_thread_helper+0x5/0xc
utmisc-0133: *** Error: Invalid owner_id: 00
> Could you please try suggested check in acpi_ut_allocate_owner_id ?
> Also it can be extremely helpful if you can print the name of the AML
> method there this fault accurs, for this you need to turn the check
> above into return error code.
here you are, with
if (*owner_id!=0) {
WARN_ON(1);
return_ACPI_STATUS(1);
}
the log is:
...
evgpeblk-0996 [06] ev_create_gpe_block : Found 1 Wake, Enabled 0 Runtime GPEs in this block
Badness in acpi_ut_allocate_owner_id at drivers/acpi/utilities/utmisc.c:71
[<c02170ba>] acpi_ut_allocate_owner_id+0x42/0xfb
[<c020f7f0>] acpi_ps_execute_method+0x7c/0x195
[<c020b141>] acpi_ns_execute_control_method+0x10b/0x132
[<c020affd>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f97f7>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c01f9bfe>] acpi_ev_detach_region+0x104/0x225
[<c01f9e59>] acpi_ev_install_handler+0x7f/0xd7
[<c020d440>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c020506a>] acpi_ex_pci_config_space_handler+0x0/0xd8
[<c01fa12d>] acpi_ev_install_space_handler+0x27c/0x2b8
[<c01f9dda>] acpi_ev_install_handler+0x0/0xd7
[<c01fc42d>] acpi_install_address_space_handler+0x9d/0xd7
[<c01fb396>] acpi_ev_pci_config_region_setup+0x0/0x2c7
[<c01fb4eb>] acpi_ev_pci_config_region_setup+0x155/0x2c7
[<c01fb396>] acpi_ev_pci_config_region_setup+0x0/0x2c7
[<c01f9954>] acpi_ev_address_space_dispatch+0x122/0x2c8
[<c0200950>] acpi_ex_access_region+0x149/0x1e9
[<c0200b9e>] acpi_ex_field_datum_io+0x177/0x31f
[<c0200f20>] acpi_ex_write_with_update_rule+0x1da/0x204
[<c02013bc>] acpi_ex_insert_into_field+0x1ac/0x31c
[<c0216358>] acpi_ut_value_exit+0x2d/0x37
[<c01feacb>] acpi_ex_write_data_to_field+0x39b/0x3f4
[<c0205b60>] acpi_ex_store_object_to_node+0x10b/0x217
[<c02056d0>] acpi_ex_store+0x9c/0x27d
[<c0201bdb>] acpi_ex_opcode_1A_1T_1R+0x460/0x660
[<c01f5926>] acpi_ds_exec_end_op+0x140/0x5d2
[<c01f5935>] acpi_ds_exec_end_op+0x14f/0x5d2
[<c020edb5>] acpi_ps_parse_loop+0x75d/0xb6c
[<c020e43c>] acpi_ps_parse_aml+0xc8/0x2e4
[<c020f9e8>] acpi_ps_execute_pass+0xa9/0xd5
[<c020f878>] acpi_ps_execute_method+0x104/0x195
[<c020b141>] acpi_ns_execute_control_method+0x10b/0x132
[<c020affd>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f97f7>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c020d440>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c01fa1a4>] acpi_ev_execute_reg_methods+0x3b/0x5f
[<c01fa1c8>] acpi_ev_reg_run+0x0/0x50
[<c01f9695>] acpi_ev_initialize_op_regions+0x5b/0x8e
[<c0217cdc>] acpi_initialize_objects+0x4e/0x132
[<c038eaa2>] acpi_bus_init+0x40/0xe5
[<c038ebc1>] acpi_init+0x7a/0x11e
[<c037e914>] do_initcalls+0x54/0xd0
[<c0397875>] netfilter_init+0x65/0xa0
[<c01002a0>] init+0x0/0x170
[<c01002cf>] init+0x2f/0x170
[<c0101394>] kernel_thread_helper+0x0/0xc
[<c0101399>] kernel_thread_helper+0x5/0xc
evregion-0509 [28] ev_detach_region : AE_ERROR from region _REG, [PCI_Config]
Badness in acpi_ut_allocate_owner_id at drivers/acpi/utilities/utmisc.c:71
[<c02170ba>] acpi_ut_allocate_owner_id+0x42/0xfb
[<c020f7f0>] acpi_ps_execute_method+0x7c/0x195
[<c020b141>] acpi_ns_execute_control_method+0x10b/0x132
[<c020affd>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f97f7>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c020d440>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c01fa1a4>] acpi_ev_execute_reg_methods+0x3b/0x5f
[<c01fa1c8>] acpi_ev_reg_run+0x0/0x50
[<c01fc43d>] acpi_install_address_space_handler+0xad/0xd7
[<c01fb4eb>] acpi_ev_pci_config_region_setup+0x155/0x2c7
[<c01fb396>] acpi_ev_pci_config_region_setup+0x0/0x2c7
[<c01f9954>] acpi_ev_address_space_dispatch+0x122/0x2c8
[<c0200950>] acpi_ex_access_region+0x149/0x1e9
[<c0200b9e>] acpi_ex_field_datum_io+0x177/0x31f
[<c0200f20>] acpi_ex_write_with_update_rule+0x1da/0x204
[<c02013bc>] acpi_ex_insert_into_field+0x1ac/0x31c
[<c0216358>] acpi_ut_value_exit+0x2d/0x37
[<c01feacb>] acpi_ex_write_data_to_field+0x39b/0x3f4
[<c0205b60>] acpi_ex_store_object_to_node+0x10b/0x217
[<c02056d0>] acpi_ex_store+0x9c/0x27d
[<c0201bdb>] acpi_ex_opcode_1A_1T_1R+0x460/0x660
[<c01f5926>] acpi_ds_exec_end_op+0x140/0x5d2
[<c01f5935>] acpi_ds_exec_end_op+0x14f/0x5d2
[<c020edb5>] acpi_ps_parse_loop+0x75d/0xb6c
[<c020e43c>] acpi_ps_parse_aml+0xc8/0x2e4
[<c020f9e8>] acpi_ps_execute_pass+0xa9/0xd5
[<c020f878>] acpi_ps_execute_method+0x104/0x195
[<c020b141>] acpi_ns_execute_control_method+0x10b/0x132
[<c020affd>] acpi_ns_evaluate_by_handle+0x104/0x13d
[<c01f97f7>] acpi_ev_execute_reg_method+0x12f/0x16a
[<c020d440>] acpi_ns_walk_namespace+0xbb/0x1b7
[<c01fa1a4>] acpi_ev_execute_reg_methods+0x3b/0x5f
[<c01fa1c8>] acpi_ev_reg_run+0x0/0x50
[<c01f9695>] acpi_ev_initialize_op_regions+0x5b/0x8e
[<c0217cdc>] acpi_initialize_objects+0x4e/0x132
[<c038eaa2>] acpi_bus_init+0x40/0xe5
[<c038ebc1>] acpi_init+0x7a/0x11e
[<c037e914>] do_initcalls+0x54/0xd0
[<c0397875>] netfilter_init+0x65/0xa0
[<c01002a0>] init+0x0/0x170
[<c01002cf>] init+0x2f/0x170
[<c0101394>] kernel_thread_helper+0x0/0xc
[<c0101399>] kernel_thread_helper+0x5/0xc
evrgnini-0236: *** Error: Could not install pci_config handler for Root Bridge PCI0, AE_ERROR
Completing Region/Field/Buffer/Package initialization:..............................................................
Initialized 20/21 Regions 0/0 Fields 25/25 Buffers 17/27 Packages (564 nodes)
Ah, note that all of the above is with 2.6.13-rc6-mm2
Last question: what am I doing wrong in the following?
# acpidump -o dsdt.dat
# iasl -d dsdt.dat
Intel ACPI Component Architecture
ASL Optimizing Compiler / AML Disassembler version 20050624 [Aug 24
2005]
Copyright (C) 2000 - 2005 Intel Corporation
Supports ACPI Specification Revision 3.0
Loading Acpi table from file dsdt.dat
TableHeader length [0x30204020] greater than the input file size
[0x14CF9]
Could not get table from the file
#
--
mattia
:wq!
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
^ permalink raw reply [flat|nested] 17+ messages in thread
[parent not found: <971FCB6690CD0E4898387DBF7552B90E0272D21C@orsmsx403.amr.corp.intel.com>]
* utmisc-0131: *** Error: Invalid owner_id: 00
@ 2005-08-18 18:21 Mattia Dongili
[not found] ` <20050818182153.GA6032-MEqNC12sBsHxa7XIdbXXog@public.gmane.org>
0 siblings, 1 reply; 17+ messages in thread
From: Mattia Dongili @ 2005-08-18 18:21 UTC (permalink / raw)
To: ACPI Devel Maling List
Hello,
I'm seeing the error (almost randomly and at with a varying frequence)
utmisc-0131: *** Error: Invalid owner_id: 00
It seems completely harmless but after some hours of work however this
other related warning appears when reading the battery state:
psparse-0509: *** Error: Method execution failed [\_SB_.PCI0.LPC0.EC
0_.ACAD._PSR] (Node c126e7c8), AE_OWNER_ID_LIMIT
Kernel is 2.6.13-rc5-mm1 and acpi related options are
# Power management options (ACPI, APM)
# ACPI (Advanced Configuration and Power Interface) Support
CONFIG_ACPI=y
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_INTERPRETER=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_SLEEP_PROC_FS=y
# CONFIG_ACPI_SLEEP_PROC_SLEEP is not set
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_HOTKEY=m
# CONFIG_ACPI_FAN is not set
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_IBM is not set
# CONFIG_ACPI_TOSHIBA is not set
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
CONFIG_ACPI_DEBUG=y
CONFIG_ACPI_BUS=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_PCI=y
CONFIG_ACPI_SYSTEM=y
# CONFIG_ACPI_CONTAINER is not set
# CONFIG_X86_ACPI_CPUFREQ is not set
# CONFIG_PNPACPI is not set
--
mattia
:wq!
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2005-08-27 18:28 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-25 10:14 utmisc-0131: *** Error: Invalid owner_id: 00 Starikovskiy, Alexey Y
2005-08-25 10:36 ` Mattia Dongili
[not found] ` <2fc0cdd205082503364f255347-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2005-08-25 17:22 ` Mattia Dongili
[not found] ` <20050825172227.GA4055-MEqNC12sBsHxa7XIdbXXog@public.gmane.org>
2005-08-25 17:32 ` Mattia Dongili
2005-08-25 15:20 ` Norbert Preining
-- strict thread matches above, loose matches on Subject: below --
2005-08-26 15:51 Starikovskiy, Alexey Y
2005-08-26 21:18 ` Norbert Preining
2005-08-27 18:28 ` Mattia Dongili
2005-08-25 5:56 Starikovskiy, Alexey Y
2005-08-25 8:55 ` Mattia Dongili
2005-08-24 10:51 Starikovskiy, Alexey Y
2005-08-24 19:20 ` Mattia Dongili
[not found] <971FCB6690CD0E4898387DBF7552B90E0272D21C@orsmsx403.amr.corp.intel.com>
[not found] ` <20050818201400.GA13121@inferi.kami.home>
[not found] ` <20050818201400.GA13121-MEqNC12sBsHxa7XIdbXXog@public.gmane.org>
2005-08-18 20:15 ` Mattia Dongili
2005-08-18 18:21 Mattia Dongili
[not found] ` <20050818182153.GA6032-MEqNC12sBsHxa7XIdbXXog@public.gmane.org>
2005-08-18 19:09 ` Mattia Dongili
[not found] ` <430764C6.508@suse.de>
[not found] ` <430764C6.508-l3A5Bk7waGM@public.gmane.org>
2005-08-21 8:25 ` Mattia Dongili
2005-08-21 17:41 ` Mattia Dongili
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox