diff options
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/namespace/nseval.c | 21 |
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 |