lkml.org 
[lkml]   [2010]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] ACPI: EC: limit multibyte access to EC to 8 byte
Date
commit dadf28a10c3eb29421837a2e413ab869ebd9e168 enabled multibyte
access to EC, but ignored that the consuming function expects the
bitfields to be in chunks of maximal 64 bit. So limit multibyte
access to 8 byte to prevent error in the ACPI layer.

Signed-off-by: Alexander Rauth <alexander.rauth@promotion-ie.de>
---
drivers/acpi/acpica/exprep.c | 17 +++++++++++------
1 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/drivers/acpi/acpica/exprep.c b/drivers/acpi/acpica/exprep.c
index a610ebe..58659af 100644
--- a/drivers/acpi/acpica/exprep.c
+++ b/drivers/acpi/acpica/exprep.c
@@ -471,13 +471,18 @@ acpi_status acpi_ex_prep_field_value(struct acpi_create_field_info *info)
/* allow full data read from EC address space */
if (obj_desc->field.region_obj->region.space_id ==
ACPI_ADR_SPACE_EC) {
- if (obj_desc->common_field.bit_length > 8)
- obj_desc->common_field.access_bit_width =
- ACPI_ROUND_UP(obj_desc->common_field.
- bit_length, 8);
+ if (obj_desc->common_field.bit_length > 8) {
+ if (obj_desc->common_field.bit_length <= 64) {
+ obj_desc->common_field.access_bit_width =
+ ACPI_ROUND_UP(obj_desc->common_field.
+ bit_length, 8);
+ } else {
+ obj_desc->common_field.access_bit_width = 64;
+ }
obj_desc->common_field.access_byte_width =
- ACPI_DIV_8(obj_desc->common_field.
- access_bit_width);
+ ACPI_DIV_8(obj_desc->common_field.
+ access_bit_width);
+ }
}

ACPI_DEBUG_PRINT((ACPI_DB_BFIELD,
--
1.6.4.4


\
 
 \ /
  Last update: 2010-04-16 18:17    [W:0.038 / U:0.176 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site