summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/evregion.c
diff options
context:
space:
mode:
authormsmith <msmith@FreeBSD.org>2000-12-21 06:56:46 +0000
committermsmith <msmith@FreeBSD.org>2000-12-21 06:56:46 +0000
commit07e76fb2a28476ae54bb108098c0707743ab398c (patch)
tree75730fe174d9e937dfe3355d34c0bf027089aab8 /sys/contrib/dev/acpica/evregion.c
parentb92a08961bec1b7b6c9756c131e093978f2f9029 (diff)
parent68d9171019852e7a4325965a2539a5a2eb7571da (diff)
downloadFreeBSD-src-07e76fb2a28476ae54bb108098c0707743ab398c.zip
FreeBSD-src-07e76fb2a28476ae54bb108098c0707743ab398c.tar.gz
This commit was generated by cvs2svn to compensate for changes in r70243,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'sys/contrib/dev/acpica/evregion.c')
-rw-r--r--sys/contrib/dev/acpica/evregion.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/sys/contrib/dev/acpica/evregion.c b/sys/contrib/dev/acpica/evregion.c
index 0039c070..42732ef 100644
--- a/sys/contrib/dev/acpica/evregion.c
+++ b/sys/contrib/dev/acpica/evregion.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: evregion - ACPI AddressSpace (OpRegion) handler dispatch
- * $Revision: 90 $
+ * $Revision: 93 $
*
*****************************************************************************/
@@ -9,8 +9,8 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999, Intel Corp. All rights
- * reserved.
+ * Some or all of this work - Copyright (c) 1999, 2000, Intel Corp.
+ * All rights reserved.
*
* 2. License
*
@@ -418,8 +418,8 @@ AcpiEvAddressSpaceDispatch (
*
* FUNCTION: AcpiEvDisassociateRegionFromHandler
*
- * PARAMETERS: HandlerObj - Handler Object
- * RegionObj - Region Object
+ * PARAMETERS: RegionObj - Region Object
+ * AcpiNsIsLocked - Namespace Region Already Locked?
*
* RETURN: None
*
@@ -430,7 +430,8 @@ AcpiEvAddressSpaceDispatch (
void
AcpiEvDisassociateRegionFromHandler(
- ACPI_OPERAND_OBJECT *RegionObj)
+ ACPI_OPERAND_OBJECT *RegionObj,
+ BOOLEAN AcpiNsIsLocked)
{
ACPI_OPERAND_OBJECT *HandlerObj;
ACPI_OPERAND_OBJECT *ObjDesc;
@@ -481,11 +482,21 @@ AcpiEvDisassociateRegionFromHandler(
*LastObjPtr = ObjDesc->Region.Next;
ObjDesc->Region.Next = NULL; /* Must clear field */
+ if (AcpiNsIsLocked)
+ {
+ AcpiCmReleaseMutex (ACPI_MTX_NAMESPACE);
+ }
+
/*
* Now stop region accesses by executing the _REG method
*/
AcpiEvExecuteRegMethod (RegionObj, 0);
+ if (AcpiNsIsLocked)
+ {
+ AcpiCmAcquireMutex (ACPI_MTX_NAMESPACE);
+ }
+
/*
* Call the setup handler with the deactivate notification
*/
@@ -548,6 +559,7 @@ AcpiEvDisassociateRegionFromHandler(
*
* PARAMETERS: HandlerObj - Handler Object
* RegionObj - Region Object
+ * AcpiNsIsLocked - Namespace Region Already Locked?
*
* RETURN: None
*
@@ -752,7 +764,7 @@ AcpiEvAddrHandlerHelper (
*
* First disconnect region for any previous handler (if any)
*/
- AcpiEvDisassociateRegionFromHandler (ObjDesc);
+ AcpiEvDisassociateRegionFromHandler (ObjDesc, FALSE);
/*
* Then connect the region to the new handler
OpenPOWER on IntegriCloud