aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/utilities/utmisc.c
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2005-08-15 07:42:00 -0400
committerLen Brown <len.brown@intel.com>2005-08-29 23:44:25 -0400
commita18ecf413ca9846becb760f7f990c2c62c15965e (patch)
treecbcb4e7c8818e3e57f07c9104d5a74e3d6b30565 /drivers/acpi/utilities/utmisc.c
parent27a639a92d3289c4851105efcbc2f8b88969194f (diff)
[ACPI] ACPICA 20050815
Implemented a full bytewise compare to determine if a table load request is attempting to load a duplicate table. The compare is performed if the table signatures and table lengths match. This will allow different tables with the same OEM Table ID and revision to be loaded. Although the BIOS is technically violating the ACPI spec when this happens -- it does happen -- so Linux must handle it. Signed-off-by: Robert Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/utilities/utmisc.c')
-rw-r--r--drivers/acpi/utilities/utmisc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/acpi/utilities/utmisc.c b/drivers/acpi/utilities/utmisc.c
index 474fe7cb6c09..f0275025b718 100644
--- a/drivers/acpi/utilities/utmisc.c
+++ b/drivers/acpi/utilities/utmisc.c
@@ -78,6 +78,10 @@ acpi_status acpi_ut_allocate_owner_id(acpi_owner_id * owner_id)
78 78
79 for (i = 0; i < 32; i++) { 79 for (i = 0; i < 32; i++) {
80 if (!(acpi_gbl_owner_id_mask & (1 << i))) { 80 if (!(acpi_gbl_owner_id_mask & (1 << i))) {
81 ACPI_DEBUG_PRINT((ACPI_DB_VALUES,
82 "Current owner_id mask: %8.8X New ID: %2.2X\n",
83 acpi_gbl_owner_id_mask, (i + 1)));
84
81 acpi_gbl_owner_id_mask |= (1 << i); 85 acpi_gbl_owner_id_mask |= (1 << i);
82 *owner_id = (acpi_owner_id) (i + 1); 86 *owner_id = (acpi_owner_id) (i + 1);
83 goto exit; 87 goto exit;
@@ -119,7 +123,7 @@ void acpi_ut_release_owner_id(acpi_owner_id * owner_id_ptr)
119 acpi_owner_id owner_id = *owner_id_ptr; 123 acpi_owner_id owner_id = *owner_id_ptr;
120 acpi_status status; 124 acpi_status status;
121 125
122 ACPI_FUNCTION_TRACE("ut_release_owner_id"); 126 ACPI_FUNCTION_TRACE_U32("ut_release_owner_id", owner_id);
123 127
124 /* Always clear the input owner_id (zero is an invalid ID) */ 128 /* Always clear the input owner_id (zero is an invalid ID) */
125 129