summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/acpica/utxface.c
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2013-04-12 00:24:34 +0000
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-04-12 13:29:46 +0200
commit388a9902074c3cfe57d2425d766c491d072d2948 (patch)
treef4cb5406cf6d65eaf3a78146934dd0ad1fc8917d /drivers/acpi/acpica/utxface.c
parentc34c82bc9634a099a2652889806c5997f2a3d56f (diff)
downloadlinux-388a9902074c3cfe57d2425d766c491d072d2948.tar.gz
linux-388a9902074c3cfe57d2425d766c491d072d2948.tar.bz2
linux-388a9902074c3cfe57d2425d766c491d072d2948.zip
ACPICA: _OSI Support: handle any errors from acpi_os_acquire_mutex()
Check for any errors. Handles possible timeout case if ACPI_WAIT_FOREVER is changed to be less than "forever". Jung-uk Kim. Signed-off-by: Jung-uk Kim <jkim@FreeBSD.org> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/acpica/utxface.c')
-rw-r--r--drivers/acpi/acpica/utxface.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/acpi/acpica/utxface.c b/drivers/acpi/acpica/utxface.c
index 48efb446258c..6505774f223e 100644
--- a/drivers/acpi/acpica/utxface.c
+++ b/drivers/acpi/acpica/utxface.c
@@ -287,7 +287,10 @@ acpi_status acpi_install_interface(acpi_string interface_name)
return (AE_BAD_PARAMETER);
}
- (void)acpi_os_acquire_mutex(acpi_gbl_osi_mutex, ACPI_WAIT_FOREVER);
+ status = acpi_os_acquire_mutex(acpi_gbl_osi_mutex, ACPI_WAIT_FOREVER);
+ if (ACPI_FAILURE(status)) {
+ return (status);
+ }
/* Check if the interface name is already in the global list */
@@ -336,7 +339,10 @@ acpi_status acpi_remove_interface(acpi_string interface_name)
return (AE_BAD_PARAMETER);
}
- (void)acpi_os_acquire_mutex(acpi_gbl_osi_mutex, ACPI_WAIT_FOREVER);
+ status = acpi_os_acquire_mutex(acpi_gbl_osi_mutex, ACPI_WAIT_FOREVER);
+ if (ACPI_FAILURE(status)) {
+ return (status);
+ }
status = acpi_ut_remove_interface(interface_name);
@@ -362,9 +368,12 @@ ACPI_EXPORT_SYMBOL(acpi_remove_interface)
****************************************************************************/
acpi_status acpi_install_interface_handler(acpi_interface_handler handler)
{
- acpi_status status = AE_OK;
+ acpi_status status;
- (void)acpi_os_acquire_mutex(acpi_gbl_osi_mutex, ACPI_WAIT_FOREVER);
+ status = acpi_os_acquire_mutex(acpi_gbl_osi_mutex, ACPI_WAIT_FOREVER);
+ if (ACPI_FAILURE(status)) {
+ return (status);
+ }
if (handler && acpi_gbl_interface_handler) {
status = AE_ALREADY_EXISTS;