diff options
Diffstat (limited to 'sys/contrib/dev/acpica/exfldio.c')
-rw-r--r-- | sys/contrib/dev/acpica/exfldio.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/sys/contrib/dev/acpica/exfldio.c b/sys/contrib/dev/acpica/exfldio.c index 4c9a1f1..25d6561 100644 --- a/sys/contrib/dev/acpica/exfldio.c +++ b/sys/contrib/dev/acpica/exfldio.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: exfldio - Aml Field I/O - * $Revision: 106 $ + * $Revision: 111 $ * *****************************************************************************/ @@ -212,6 +212,23 @@ AcpiExSetupRegion ( + FieldDatumByteOffset + ObjDesc->CommonField.AccessByteWidth)) { + if (AcpiGbl_EnableInterpreterSlack) + { + /* + * Slack mode only: We will go ahead and allow access to this + * field if it is within the region length rounded up to the next + * access width boundary. + */ + if (ACPI_ROUND_UP (RgnDesc->Region.Length, + ObjDesc->CommonField.AccessByteWidth) >= + (ObjDesc->CommonField.BaseByteOffset + + (ACPI_NATIVE_UINT) ObjDesc->CommonField.AccessByteWidth + + FieldDatumByteOffset)) + { + return_ACPI_STATUS (AE_OK); + } + } + if (RgnDesc->Region.Length < ObjDesc->CommonField.AccessByteWidth) { /* @@ -891,7 +908,7 @@ AcpiExCommonBufferSetup ( return_ACPI_STATUS (AE_BUFFER_OVERFLOW); } - /* + /* * Create "actual" field byte count (minimum number of bytes that * must be read), then convert to datum count (minimum number * of datum-sized units that must be read) |