ACPI: ACPICA 20060608
Converted the locking mutex used for the ACPI hardware to a spinlock. This change should eliminate all problems caused by attempting to acquire a semaphore at interrupt level, and it means that all ACPICA external interfaces that directly access the ACPI hardware can be safely called from interrupt level. Fixed a regression introduced in 20060526 where the ACPI device initialization could be prematurely aborted with an AE_NOT_FOUND if a device did not have an optional _INI method. Fixed an IndexField issue where a write to the Data Register should be limited in size to the AccessSize (width) of the IndexField itself. (BZ 433, Fiodor Suietov) Fixed problem reports (Valery Podrezov) integrated: - Allow store of ThermalZone objects to Debug object. http://bugzilla.kernel.org/show_bug.cgi?id=5369 http://bugzilla.kernel.org/show_bug.cgi?id=5370 Fixed problem reports (Fiodor Suietov) integrated: - acpi_get_table_header() doesn't handle multiple instances correctly (BZ 364) Removed four global mutexes that were obsolete and were no longer being used. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
@@ -785,6 +785,7 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
|
||||
{
|
||||
acpi_status status;
|
||||
acpi_integer mask;
|
||||
acpi_integer width_mask;
|
||||
acpi_integer merged_datum;
|
||||
acpi_integer raw_datum = 0;
|
||||
u32 field_offset = 0;
|
||||
@@ -809,8 +810,11 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
|
||||
|
||||
/* Compute the number of datums (access width data items) */
|
||||
|
||||
width_mask =
|
||||
ACPI_MASK_BITS_ABOVE(obj_desc->common_field.access_bit_width);
|
||||
mask =
|
||||
ACPI_MASK_BITS_BELOW(obj_desc->common_field.start_field_bit_offset);
|
||||
width_mask & ACPI_MASK_BITS_BELOW(obj_desc->common_field.
|
||||
start_field_bit_offset);
|
||||
|
||||
datum_count = ACPI_ROUND_UP_TO(obj_desc->common_field.bit_length,
|
||||
obj_desc->common_field.access_bit_width);
|
||||
@@ -850,7 +854,7 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
|
||||
merged_datum = raw_datum >>
|
||||
(obj_desc->common_field.access_bit_width -
|
||||
obj_desc->common_field.start_field_bit_offset);
|
||||
mask = ACPI_INTEGER_MAX;
|
||||
mask = width_mask;
|
||||
|
||||
if (i == datum_count) {
|
||||
break;
|
||||
|
Reference in New Issue
Block a user