summaryrefslogtreecommitdiff
path: root/source/components/dispatcher
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2012-08-16 17:26:22 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2012-08-16 17:26:22 +0000
commitfc8e34d9a95f87b780f9ee3d400dd995aba2ce27 (patch)
treea28a9676fa0b9e969cfd83d7a508660c754c8b3e /source/components/dispatcher
parent8724452f676e45bfd39cfb47234f7def5551f067 (diff)
Notes
Diffstat (limited to 'source/components/dispatcher')
-rw-r--r--source/components/dispatcher/dswload.c14
-rw-r--r--source/components/dispatcher/dswload2.c14
2 files changed, 28 insertions, 0 deletions
diff --git a/source/components/dispatcher/dswload.c b/source/components/dispatcher/dswload.c
index d40f911f417c..c2431155a1f4 100644
--- a/source/components/dispatcher/dswload.c
+++ b/source/components/dispatcher/dswload.c
@@ -241,6 +241,20 @@ AcpiDsLoad1BeginOp (
WalkState->ScopeInfo->Common.Value = ACPI_TYPE_ANY;
break;
+ case ACPI_TYPE_METHOD:
+
+ /*
+ * Allow scope change to root during execution of module-level
+ * code. Root is typed METHOD during this time.
+ */
+ if ((Node == AcpiGbl_RootNode) &&
+ (WalkState->ParseFlags & ACPI_PARSE_MODULE_LEVEL))
+ {
+ break;
+ }
+
+ /*lint -fallthrough */
+
default:
/* All other types are an error */
diff --git a/source/components/dispatcher/dswload2.c b/source/components/dispatcher/dswload2.c
index 27e317620911..90d85d6501da 100644
--- a/source/components/dispatcher/dswload2.c
+++ b/source/components/dispatcher/dswload2.c
@@ -243,6 +243,20 @@ AcpiDsLoad2BeginOp (
WalkState->ScopeInfo->Common.Value = ACPI_TYPE_ANY;
break;
+ case ACPI_TYPE_METHOD:
+
+ /*
+ * Allow scope change to root during execution of module-level
+ * code. Root is typed METHOD during this time.
+ */
+ if ((Node == AcpiGbl_RootNode) &&
+ (WalkState->ParseFlags & ACPI_PARSE_MODULE_LEVEL))
+ {
+ break;
+ }
+
+ /*lint -fallthrough */
+
default:
/* All other types are an error */