diff options
Diffstat (limited to 'source/components/dispatcher')
| -rw-r--r-- | source/components/dispatcher/dswload.c | 14 | ||||
| -rw-r--r-- | source/components/dispatcher/dswload2.c | 14 | 
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 */ | 
