aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/namespace
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2008-09-26 22:29:31 -0400
committerLen Brown <len.brown@intel.com>2008-10-22 23:14:43 -0400
commitb68bacf225e5e9758472e99505d76125ced3ea88 (patch)
tree82d552e04aca32fa590a84bb6fada78adddc19e4 /drivers/acpi/namespace
parent65f4692c5220330e1ea044796c4cfa603e349c84 (diff)
ACPICA: Disallow evaluation of named object types with no value
Return AE_TYPE for objects that have no value and therefore evaluation is undefined: Device, Event, Mutex, Region, Thermal, and Scope. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lin Ming <ming.m.lin@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/namespace')
-rw-r--r--drivers/acpi/namespace/nseval.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/acpi/namespace/nseval.c b/drivers/acpi/namespace/nseval.c
index d369164e00b0..0a1ae670a847 100644
--- a/drivers/acpi/namespace/nseval.c
+++ b/drivers/acpi/namespace/nseval.c
@@ -195,7 +195,28 @@ acpi_status acpi_ns_evaluate(struct acpi_evaluate_info * info)
195 } else { 195 } else {
196 /* 196 /*
197 * 2) Object is not a method, return its current value 197 * 2) Object is not a method, return its current value
198 *
199 * Disallow certain object types. For these, "evaluation" is undefined.
198 */ 200 */
201 switch (info->resolved_node->type) {
202 case ACPI_TYPE_DEVICE:
203 case ACPI_TYPE_EVENT:
204 case ACPI_TYPE_MUTEX:
205 case ACPI_TYPE_REGION:
206 case ACPI_TYPE_THERMAL:
207 case ACPI_TYPE_LOCAL_SCOPE:
208
209 ACPI_ERROR((AE_INFO,
210 "[%4.4s] Evaluation of object type [%s] is not supported",
211 info->resolved_node->name.ascii,
212 acpi_ut_get_type_name(info->resolved_node->
213 type)));
214
215 return_ACPI_STATUS(AE_TYPE);
216
217 default:
218 break;
219 }
199 220
200 /* 221 /*
201 * Objects require additional resolution steps (e.g., the Node may be 222 * Objects require additional resolution steps (e.g., the Node may be