aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/dev/acpica/evxfregn.c
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2007-03-22 17:24:05 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2007-03-22 17:24:05 +0000
commit1a39cfb03c6797452971010e59462692d346a22b (patch)
tree69d0fa3b3760b0abcc0335ff748e39701a8bf064 /sys/contrib/dev/acpica/evxfregn.c
parente9bfb92a8e683016c7f6c24104fce9db9567ee1c (diff)
downloadsrc-1a39cfb03c6797452971010e59462692d346a22b.tar.gz
src-1a39cfb03c6797452971010e59462692d346a22b.zip
Vendor import of Intel ACPI-CA 20070320
Notes
Notes: svn path=/vendor-sys/acpica/dist/; revision=167802
Diffstat (limited to 'sys/contrib/dev/acpica/evxfregn.c')
-rw-r--r--sys/contrib/dev/acpica/evxfregn.c27
1 files changed, 21 insertions, 6 deletions
diff --git a/sys/contrib/dev/acpica/evxfregn.c b/sys/contrib/dev/acpica/evxfregn.c
index a4f3c745cfcd..7058683fae10 100644
--- a/sys/contrib/dev/acpica/evxfregn.c
+++ b/sys/contrib/dev/acpica/evxfregn.c
@@ -2,7 +2,7 @@
*
* Module Name: evxfregn - External Interfaces, ACPI Operation Regions and
* Address Spaces.
- * $Revision: 1.64 $
+ * $Revision: 1.70 $
*
*****************************************************************************/
@@ -10,7 +10,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2005, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2007, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -42,7 +42,7 @@
* 3. Conditions
*
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial prton of the Covered
+ * Redistribution of source code of any substantial portion of the Covered
* Code or modification with rights to further distribute source must include
* the above Copyright Notice, the above License, this list of Conditions,
* and the following Disclaimer and Export Compliance provision. In addition,
@@ -153,7 +153,7 @@ AcpiInstallAddressSpaceHandler (
ACPI_STATUS Status;
- ACPI_FUNCTION_TRACE ("AcpiInstallAddressSpaceHandler");
+ ACPI_FUNCTION_TRACE (AcpiInstallAddressSpaceHandler);
/* Parameter validation */
@@ -195,6 +195,8 @@ UnlockAndExit:
return_ACPI_STATUS (Status);
}
+ACPI_EXPORT_SYMBOL (AcpiInstallAddressSpaceHandler)
+
/*******************************************************************************
*
@@ -224,7 +226,7 @@ AcpiRemoveAddressSpaceHandler (
ACPI_STATUS Status;
- ACPI_FUNCTION_TRACE ("AcpiRemoveAddressSpaceHandler");
+ ACPI_FUNCTION_TRACE (AcpiRemoveAddressSpaceHandler);
/* Parameter validation */
@@ -243,7 +245,11 @@ AcpiRemoveAddressSpaceHandler (
/* Convert and validate the device handle */
Node = AcpiNsMapHandleToNode (Device);
- if (!Node)
+ if (!Node ||
+ ((Node->Type != ACPI_TYPE_DEVICE) &&
+ (Node->Type != ACPI_TYPE_PROCESSOR) &&
+ (Node->Type != ACPI_TYPE_THERMAL) &&
+ (Node != AcpiGbl_RootNode)))
{
Status = AE_BAD_PARAMETER;
goto UnlockAndExit;
@@ -268,6 +274,14 @@ AcpiRemoveAddressSpaceHandler (
if (HandlerObj->AddressSpace.SpaceId == SpaceId)
{
+ /* Handler must be the same as the installed handler */
+
+ if (HandlerObj->AddressSpace.Handler != Handler)
+ {
+ Status = AE_BAD_PARAMETER;
+ goto UnlockAndExit;
+ }
+
/* Matched SpaceId, first dereference this in the Regions */
ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
@@ -327,4 +341,5 @@ UnlockAndExit:
return_ACPI_STATUS (Status);
}
+ACPI_EXPORT_SYMBOL (AcpiRemoveAddressSpaceHandler)