diff options
Diffstat (limited to 'drivers/acpi/acpi_pad.c')
| -rw-r--r-- | drivers/acpi/acpi_pad.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c index a43fa1a57d5..1502c50273b 100644 --- a/drivers/acpi/acpi_pad.c +++ b/drivers/acpi/acpi_pad.c @@ -36,6 +36,7 @@  #define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"  #define ACPI_PROCESSOR_AGGREGATOR_NOTIFY 0x80  static DEFINE_MUTEX(isolated_cpus_lock); +static DEFINE_MUTEX(round_robin_lock);  static unsigned long power_saving_mwait_eax; @@ -107,7 +108,7 @@ static void round_robin_cpu(unsigned int tsk_index)  	if (!alloc_cpumask_var(&tmp, GFP_KERNEL))  		return; -	mutex_lock(&isolated_cpus_lock); +	mutex_lock(&round_robin_lock);  	cpumask_clear(tmp);  	for_each_cpu(cpu, pad_busy_cpus)  		cpumask_or(tmp, tmp, topology_thread_cpumask(cpu)); @@ -116,7 +117,7 @@ static void round_robin_cpu(unsigned int tsk_index)  	if (cpumask_empty(tmp))  		cpumask_andnot(tmp, cpu_online_mask, pad_busy_cpus);  	if (cpumask_empty(tmp)) { -		mutex_unlock(&isolated_cpus_lock); +		mutex_unlock(&round_robin_lock);  		return;  	}  	for_each_cpu(cpu, tmp) { @@ -131,7 +132,7 @@ static void round_robin_cpu(unsigned int tsk_index)  	tsk_in_cpu[tsk_index] = preferred_cpu;  	cpumask_set_cpu(preferred_cpu, pad_busy_cpus);  	cpu_weight[preferred_cpu]++; -	mutex_unlock(&isolated_cpus_lock); +	mutex_unlock(&round_robin_lock);  	set_cpus_allowed_ptr(current, cpumask_of(preferred_cpu));  }  |