aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/executer/exregion.c
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2005-11-17 13:07:00 -0500
committerLen Brown <len.brown@intel.com>2005-12-10 00:27:56 -0500
commitc51a4de85de720670f2fbc592a6f8040af72ad87 (patch)
treeccaa60c483fcc904abd63d936ff7dc380bf28e7b /drivers/acpi/executer/exregion.c
parent96db255c8f014ae3497507104e8df809785a619f (diff)
[ACPI] ACPICA 20051117
Fixed a problem in the AML parser where the method thread count could be decremented below zero if any errors occurred during the method parse phase. This should eliminate AE_AML_METHOD_LIMIT exceptions seen on some machines. This also fixed a related regression with the mechanism that detects and corrects methods that cannot properly handle reentrancy (related to the deployment of the new OwnerId mechanism.) Eliminated the pre-parsing of control methods (to detect errors) during table load. Related to the problem above, this was causing unwind issues if any errors occurred during the parse, and it seemed to be overkill. A table load should not be aborted if there are problems with any single control method, thus rendering this feature rather pointless. Fixed a problem with the new table-driven resource manager where an internal buffer overflow could occur for small resource templates. Implemented a new external interface, acpi_get_vendor_resource() This interface will find and return a vendor-defined resource descriptor within a _CRS or _PRS method via an ACPI 3.0 UUID match. (from Bjorn Helgaas) Removed the length limit (200) on string objects as per the upcoming ACPI 3.0A specification. This affects the following areas of the interpreter: 1) any implicit conversion of a Buffer to a String, 2) a String object result of the ASL Concatentate operator, 3) the String object result of the ASL ToString operator. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/executer/exregion.c')
-rw-r--r--drivers/acpi/executer/exregion.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/acpi/executer/exregion.c b/drivers/acpi/executer/exregion.c
index 1897379b5f9..80118be3f54 100644
--- a/drivers/acpi/executer/exregion.c
+++ b/drivers/acpi/executer/exregion.c
@@ -199,20 +199,20 @@ acpi_ex_system_memory_space_handler(u32 function,
199 *value = 0; 199 *value = 0;
200 switch (bit_width) { 200 switch (bit_width) {
201 case 8: 201 case 8:
202 *value = (acpi_integer) * ((u8 *) logical_addr_ptr); 202 *value = (acpi_integer) ACPI_GET8(logical_addr_ptr);
203 break; 203 break;
204 204
205 case 16: 205 case 16:
206 *value = (acpi_integer) * ((u16 *) logical_addr_ptr); 206 *value = (acpi_integer) ACPI_GET16(logical_addr_ptr);
207 break; 207 break;
208 208
209 case 32: 209 case 32:
210 *value = (acpi_integer) * ((u32 *) logical_addr_ptr); 210 *value = (acpi_integer) ACPI_GET32(logical_addr_ptr);
211 break; 211 break;
212 212
213#if ACPI_MACHINE_WIDTH != 16 213#if ACPI_MACHINE_WIDTH != 16
214 case 64: 214 case 64:
215 *value = (acpi_integer) * ((u64 *) logical_addr_ptr); 215 *value = (acpi_integer) ACPI_GET64(logical_addr_ptr);
216 break; 216 break;
217#endif 217#endif
218 default: 218 default:
@@ -225,20 +225,20 @@ acpi_ex_system_memory_space_handler(u32 function,
225 225
226 switch (bit_width) { 226 switch (bit_width) {
227 case 8: 227 case 8:
228 *(u8 *) logical_addr_ptr = (u8) * value; 228 ACPI_SET8(logical_addr_ptr) = (u8) * value;
229 break; 229 break;
230 230
231 case 16: 231 case 16:
232 *(u16 *) logical_addr_ptr = (u16) * value; 232 ACPI_SET16(logical_addr_ptr) = (u16) * value;
233 break; 233 break;
234 234
235 case 32: 235 case 32:
236 *(u32 *) logical_addr_ptr = (u32) * value; 236 ACPI_SET32(logical_addr_ptr) = (u32) * value;
237 break; 237 break;
238 238
239#if ACPI_MACHINE_WIDTH != 16 239#if ACPI_MACHINE_WIDTH != 16
240 case 64: 240 case 64:
241 *(u64 *) logical_addr_ptr = (u64) * value; 241 ACPI_SET64(logical_addr_ptr) = (u64) * value;
242 break; 242 break;
243#endif 243#endif
244 244