summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/components/namespace/nsarguments.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/components/namespace/nsarguments.c')
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsarguments.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/sys/contrib/dev/acpica/components/namespace/nsarguments.c b/sys/contrib/dev/acpica/components/namespace/nsarguments.c
index a6fbe7f..b743e5d 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsarguments.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsarguments.c
@@ -183,9 +183,14 @@ AcpiNsCheckArgumentTypes (
UINT32 i;
- /* If not a predefined name, cannot typecheck args */
-
- if (!Info->Predefined)
+ /*
+ * If not a predefined name, cannot typecheck args, because
+ * we have no idea what argument types are expected.
+ * Also, ignore typecheck if warnings/errors if this method
+ * has already been evaluated at least once -- in order
+ * to suppress repetitive messages.
+ */
+ if (!Info->Predefined || (Info->Node->Flags & ANOBJ_EVALUATED))
{
return;
}
@@ -207,6 +212,10 @@ AcpiNsCheckArgumentTypes (
"Found [%s], ACPI requires [%s]", (i + 1),
AcpiUtGetTypeName (UserArgType),
AcpiUtGetTypeName (ArgType)));
+
+ /* Prevent any additional typechecking for this method */
+
+ Info->Node->Flags |= ANOBJ_EVALUATED;
}
}
}
@@ -238,7 +247,7 @@ AcpiNsCheckAcpiCompliance (
UINT32 RequiredParamCount;
- if (!Predefined)
+ if (!Predefined || (Node->Flags & ANOBJ_EVALUATED))
{
return;
}
@@ -332,6 +341,11 @@ AcpiNsCheckArgumentCount (
UINT32 RequiredParamCount;
+ if (Node->Flags & ANOBJ_EVALUATED)
+ {
+ return;
+ }
+
if (!Predefined)
{
/*
OpenPOWER on IntegriCloud