Can you try this patch with -current?  This should resolve the name
reference on the HP NX6320 system.  I haven't seen any other
systems that this affects, but want to regress as much as possible.

diff -u -p -u -p -b -r1.147 dsdt.c
--- dsdt.c      27 Apr 2009 23:39:14 -0000      1.147
+++ dsdt.c      21 May 2009 20:20:04 -0000
@@ -205,7 +205,7 @@ struct aml_opcode aml_table[] = {
        { AMLOP_MUTEX,          "Mutex",        "Nb",   },
        { AMLOP_DATAREGION,     "DataRegion",   "Nttt", },
        { AMLOP_OPREGION,       "OpRegion",     "Nbii", },
-       { AMLOP_SCOPE,          "Scope",        "pNT",  },
+       { AMLOP_SCOPE,          "Scope",        "pnT",  },
        { AMLOP_DEVICE,         "Device",       "pNT",  },
        { AMLOP_POWERRSRC,      "Power Resource", "pNbwT",},
        { AMLOP_THERMALZONE,    "ThermalZone",  "pNT",  },
@@ -1439,6 +1439,14 @@ struct aml_defval {
        { "_REV", AML_OBJTYPE_INTEGER, 2, NULL },
        { "_GL", AML_OBJTYPE_MUTEX, 1, NULL, &aml_global_lock },
        { "_OSI", AML_OBJTYPE_METHOD, 1, aml_callosi },
+
+       /* Create default scopes */
+       { "_GPE" },
+       { "_PR_" },
+       { "_SB_" },
+       { "_TZ_" },
+       { "_SI_" },
+
        { NULL }
 };

@@ -3895,6 +3903,10 @@ aml_xparse(struct aml_scope *scope, int
        case AMLOP_SCOPE:
                /* Scope: NT */
                rv = opargs[0];
+               if (rv->type == AML_OBJTYPE_NAMEREF) {
+                       printf("Undefined scope: %s\n", 
aml_getname(rv->v_nameref));
+                       break;
+               }
                mscope = aml_xpushscope(scope, opargs[1], rv->node, opcode);
                break;
        case AMLOP_DEVICE:

Reply via email to