aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/tables/tbgetall.c
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2006-01-27 16:43:00 -0500
committerLen Brown <len.brown@intel.com>2006-01-31 03:25:09 -0500
commitb8e4d89357fc434618a59c1047cac72641191805 (patch)
treeac97fcc6fdc277c682365900663872c96f2420bd /drivers/acpi/tables/tbgetall.c
parent292dd876ee765c478b27c93cc51e93a558ed58bf (diff)
[ACPI] ACPICA 20060127
Implemented support in the Resource Manager to allow unresolved namestring references within resource package objects for the _PRT method. This support is in addition to the previously implemented unresolved reference support within the AML parser. If the interpreter slack mode is enabled (true on Linux unless acpi=strict), these unresolved references will be passed through to the caller as a NULL package entry. http://bugzilla.kernel.org/show_bug.cgi?id=5741 Implemented and deployed new macros and functions for error and warning messages across the subsystem. These macros are simpler and generate less code than their predecessors. The new macros ACPI_ERROR, ACPI_EXCEPTION, ACPI_WARNING, and ACPI_INFO replace the ACPI_REPORT_* macros. Implemented the acpi_cpu_flags type to simplify host OS integration of the Acquire/Release Lock OSL interfaces. Suggested by Steven Rostedt and Andrew Morton. Fixed a problem where Alias ASL operators are sometimes not correctly resolved. causing AE_AML_INTERNAL http://bugzilla.kernel.org/show_bug.cgi?id=5189 http://bugzilla.kernel.org/show_bug.cgi?id=5674 Fixed several problems with the implementation of the ConcatenateResTemplate ASL operator. As per the ACPI specification, zero length buffers are now treated as a single EndTag. One-length buffers always cause a fatal exception. Non-zero length buffers that do not end with a full 2-byte EndTag cause a fatal exception. Fixed a possible structure overwrite in the AcpiGetObjectInfo external interface. (With assistance from Thomas Renninger) Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/tables/tbgetall.c')
-rw-r--r--drivers/acpi/tables/tbgetall.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/drivers/acpi/tables/tbgetall.c b/drivers/acpi/tables/tbgetall.c
index 496f336b3e3a..134e5dce0bc1 100644
--- a/drivers/acpi/tables/tbgetall.c
+++ b/drivers/acpi/tables/tbgetall.c
@@ -152,7 +152,9 @@ acpi_tb_get_secondary_table(struct acpi_pointer *address,
152 /* Signature must match request */ 152 /* Signature must match request */
153 153
154 if (ACPI_STRNCMP(header.signature, signature, ACPI_NAME_SIZE)) { 154 if (ACPI_STRNCMP(header.signature, signature, ACPI_NAME_SIZE)) {
155 ACPI_REPORT_ERROR(("Incorrect table signature - wanted [%s] found [%4.4s]\n", signature, header.signature)); 155 ACPI_ERROR((AE_INFO,
156 "Incorrect table signature - wanted [%s] found [%4.4s]",
157 signature, header.signature));
156 return_ACPI_STATUS(AE_BAD_SIGNATURE); 158 return_ACPI_STATUS(AE_BAD_SIGNATURE);
157 } 159 }
158 160
@@ -231,14 +233,18 @@ acpi_status acpi_tb_get_required_tables(void)
231 */ 233 */
232 status = acpi_tb_get_primary_table(&address, &table_info); 234 status = acpi_tb_get_primary_table(&address, &table_info);
233 if ((status != AE_OK) && (status != AE_TABLE_NOT_SUPPORTED)) { 235 if ((status != AE_OK) && (status != AE_TABLE_NOT_SUPPORTED)) {
234 ACPI_REPORT_WARNING(("%s, while getting table at %8.8X%8.8X\n", acpi_format_exception(status), ACPI_FORMAT_UINT64(address.pointer.value))); 236 ACPI_WARNING((AE_INFO,
237 "%s, while getting table at %8.8X%8.8X",
238 acpi_format_exception(status),
239 ACPI_FORMAT_UINT64(address.pointer.
240 value)));
235 } 241 }
236 } 242 }
237 243
238 /* We must have a FADT to continue */ 244 /* We must have a FADT to continue */
239 245
240 if (!acpi_gbl_FADT) { 246 if (!acpi_gbl_FADT) {
241 ACPI_REPORT_ERROR(("No FADT present in RSDT/XSDT\n")); 247 ACPI_ERROR((AE_INFO, "No FADT present in RSDT/XSDT"));
242 return_ACPI_STATUS(AE_NO_ACPI_TABLES); 248 return_ACPI_STATUS(AE_NO_ACPI_TABLES);
243 } 249 }
244 250
@@ -248,7 +254,8 @@ acpi_status acpi_tb_get_required_tables(void)
248 */ 254 */
249 status = acpi_tb_convert_table_fadt(); 255 status = acpi_tb_convert_table_fadt();
250 if (ACPI_FAILURE(status)) { 256 if (ACPI_FAILURE(status)) {
251 ACPI_REPORT_ERROR(("Could not convert FADT to internal common format\n")); 257 ACPI_ERROR((AE_INFO,
258 "Could not convert FADT to internal common format"));
252 return_ACPI_STATUS(status); 259 return_ACPI_STATUS(status);
253 } 260 }
254 261
@@ -258,8 +265,8 @@ acpi_status acpi_tb_get_required_tables(void)
258 265
259 status = acpi_tb_get_secondary_table(&address, FACS_SIG, &table_info); 266 status = acpi_tb_get_secondary_table(&address, FACS_SIG, &table_info);
260 if (ACPI_FAILURE(status)) { 267 if (ACPI_FAILURE(status)) {
261 ACPI_REPORT_ERROR(("Could not get/install the FACS, %s\n", 268 ACPI_EXCEPTION((AE_INFO, status,
262 acpi_format_exception(status))); 269 "Could not get/install the FACS"));
263 return_ACPI_STATUS(status); 270 return_ACPI_STATUS(status);
264 } 271 }
265 272
@@ -278,7 +285,7 @@ acpi_status acpi_tb_get_required_tables(void)
278 285
279 status = acpi_tb_get_secondary_table(&address, DSDT_SIG, &table_info); 286 status = acpi_tb_get_secondary_table(&address, DSDT_SIG, &table_info);
280 if (ACPI_FAILURE(status)) { 287 if (ACPI_FAILURE(status)) {
281 ACPI_REPORT_ERROR(("Could not get/install the DSDT\n")); 288 ACPI_ERROR((AE_INFO, "Could not get/install the DSDT"));
282 return_ACPI_STATUS(status); 289 return_ACPI_STATUS(status);
283 } 290 }
284 291