forked from Minki/linux
Pull sem2mutex into release branch
This commit is contained in:
commit
c080a3e69d
@ -38,6 +38,7 @@
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/pm.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/mutex.h>
|
||||
|
||||
#include <acpi/acpi_bus.h>
|
||||
#include <acpi/acpi_drivers.h>
|
||||
@ -91,7 +92,7 @@ static struct {
|
||||
int count;
|
||||
struct list_head entries;
|
||||
} acpi_link;
|
||||
DECLARE_MUTEX(acpi_link_lock);
|
||||
DEFINE_MUTEX(acpi_link_lock);
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
PCI Link Device Management
|
||||
@ -641,19 +642,19 @@ acpi_pci_link_allocate_irq(acpi_handle handle,
|
||||
return_VALUE(-1);
|
||||
}
|
||||
|
||||
down(&acpi_link_lock);
|
||||
mutex_lock(&acpi_link_lock);
|
||||
if (acpi_pci_link_allocate(link)) {
|
||||
up(&acpi_link_lock);
|
||||
mutex_unlock(&acpi_link_lock);
|
||||
return_VALUE(-1);
|
||||
}
|
||||
|
||||
if (!link->irq.active) {
|
||||
up(&acpi_link_lock);
|
||||
mutex_unlock(&acpi_link_lock);
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Link active IRQ is 0!\n"));
|
||||
return_VALUE(-1);
|
||||
}
|
||||
link->refcnt++;
|
||||
up(&acpi_link_lock);
|
||||
mutex_unlock(&acpi_link_lock);
|
||||
|
||||
if (triggering)
|
||||
*triggering = link->irq.triggering;
|
||||
@ -691,9 +692,9 @@ int acpi_pci_link_free_irq(acpi_handle handle)
|
||||
return_VALUE(-1);
|
||||
}
|
||||
|
||||
down(&acpi_link_lock);
|
||||
mutex_lock(&acpi_link_lock);
|
||||
if (!link->irq.initialized) {
|
||||
up(&acpi_link_lock);
|
||||
mutex_unlock(&acpi_link_lock);
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Link isn't initialized\n"));
|
||||
return_VALUE(-1);
|
||||
}
|
||||
@ -716,7 +717,7 @@ int acpi_pci_link_free_irq(acpi_handle handle)
|
||||
if (link->refcnt == 0) {
|
||||
acpi_ut_evaluate_object(link->handle, "_DIS", 0, NULL);
|
||||
}
|
||||
up(&acpi_link_lock);
|
||||
mutex_unlock(&acpi_link_lock);
|
||||
return_VALUE(link->irq.active);
|
||||
}
|
||||
|
||||
@ -747,7 +748,7 @@ static int acpi_pci_link_add(struct acpi_device *device)
|
||||
strcpy(acpi_device_class(device), ACPI_PCI_LINK_CLASS);
|
||||
acpi_driver_data(device) = link;
|
||||
|
||||
down(&acpi_link_lock);
|
||||
mutex_lock(&acpi_link_lock);
|
||||
result = acpi_pci_link_get_possible(link);
|
||||
if (result)
|
||||
goto end;
|
||||
@ -782,7 +783,7 @@ static int acpi_pci_link_add(struct acpi_device *device)
|
||||
end:
|
||||
/* disable all links -- to be activated on use */
|
||||
acpi_ut_evaluate_object(link->handle, "_DIS", 0, NULL);
|
||||
up(&acpi_link_lock);
|
||||
mutex_unlock(&acpi_link_lock);
|
||||
|
||||
if (result)
|
||||
kfree(link);
|
||||
@ -837,9 +838,9 @@ static int acpi_pci_link_remove(struct acpi_device *device, int type)
|
||||
|
||||
link = (struct acpi_pci_link *)acpi_driver_data(device);
|
||||
|
||||
down(&acpi_link_lock);
|
||||
mutex_lock(&acpi_link_lock);
|
||||
list_del(&link->node);
|
||||
up(&acpi_link_lock);
|
||||
mutex_unlock(&acpi_link_lock);
|
||||
|
||||
kfree(link);
|
||||
|
||||
|
@ -34,6 +34,7 @@
|
||||
#ifdef CONFIG_X86_ACPI_CPUFREQ_PROC_INTF
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/mutex.h>
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
#endif
|
||||
@ -48,7 +49,7 @@
|
||||
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
|
||||
ACPI_MODULE_NAME("acpi_processor")
|
||||
|
||||
static DECLARE_MUTEX(performance_sem);
|
||||
static DEFINE_MUTEX(performance_mutex);
|
||||
|
||||
/*
|
||||
* _PPC support is implemented as a CPUfreq policy notifier:
|
||||
@ -72,7 +73,7 @@ static int acpi_processor_ppc_notifier(struct notifier_block *nb,
|
||||
struct acpi_processor *pr;
|
||||
unsigned int ppc = 0;
|
||||
|
||||
down(&performance_sem);
|
||||
mutex_lock(&performance_mutex);
|
||||
|
||||
if (event != CPUFREQ_INCOMPATIBLE)
|
||||
goto out;
|
||||
@ -93,7 +94,7 @@ static int acpi_processor_ppc_notifier(struct notifier_block *nb,
|
||||
core_frequency * 1000);
|
||||
|
||||
out:
|
||||
up(&performance_sem);
|
||||
mutex_unlock(&performance_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -564,16 +565,16 @@ acpi_processor_register_performance(struct acpi_processor_performance
|
||||
if (!(acpi_processor_ppc_status & PPC_REGISTERED))
|
||||
return_VALUE(-EINVAL);
|
||||
|
||||
down(&performance_sem);
|
||||
mutex_lock(&performance_mutex);
|
||||
|
||||
pr = processors[cpu];
|
||||
if (!pr) {
|
||||
up(&performance_sem);
|
||||
mutex_unlock(&performance_mutex);
|
||||
return_VALUE(-ENODEV);
|
||||
}
|
||||
|
||||
if (pr->performance) {
|
||||
up(&performance_sem);
|
||||
mutex_unlock(&performance_mutex);
|
||||
return_VALUE(-EBUSY);
|
||||
}
|
||||
|
||||
@ -583,13 +584,13 @@ acpi_processor_register_performance(struct acpi_processor_performance
|
||||
|
||||
if (acpi_processor_get_performance_info(pr)) {
|
||||
pr->performance = NULL;
|
||||
up(&performance_sem);
|
||||
mutex_unlock(&performance_mutex);
|
||||
return_VALUE(-EIO);
|
||||
}
|
||||
|
||||
acpi_cpufreq_add_file(pr);
|
||||
|
||||
up(&performance_sem);
|
||||
mutex_unlock(&performance_mutex);
|
||||
return_VALUE(0);
|
||||
}
|
||||
|
||||
@ -603,11 +604,11 @@ acpi_processor_unregister_performance(struct acpi_processor_performance
|
||||
|
||||
ACPI_FUNCTION_TRACE("acpi_processor_unregister_performance");
|
||||
|
||||
down(&performance_sem);
|
||||
mutex_lock(&performance_mutex);
|
||||
|
||||
pr = processors[cpu];
|
||||
if (!pr) {
|
||||
up(&performance_sem);
|
||||
mutex_unlock(&performance_mutex);
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
@ -617,7 +618,7 @@ acpi_processor_unregister_performance(struct acpi_processor_performance
|
||||
|
||||
acpi_cpufreq_remove_file(pr);
|
||||
|
||||
up(&performance_sem);
|
||||
mutex_unlock(&performance_mutex);
|
||||
|
||||
return_VOID;
|
||||
}
|
||||
|
@ -459,7 +459,6 @@ static int acpi_bus_get_perf_flags(struct acpi_device *device)
|
||||
-------------------------------------------------------------------------- */
|
||||
|
||||
static LIST_HEAD(acpi_bus_drivers);
|
||||
static DECLARE_MUTEX(acpi_bus_drivers_lock);
|
||||
|
||||
/**
|
||||
* acpi_bus_match - match device IDs to driver's supported IDs
|
||||
|
Loading…
Reference in New Issue
Block a user