aboutsummaryrefslogtreecommitdiffstats
path: root/xen/drivers/cpufreq
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-01-07 11:21:50 +0000
committerKeir Fraser <keir.fraser@citrix.com>2009-01-07 11:21:50 +0000
commitb988ec6b11dab6a5048c6c39b5119fb50c5928fa (patch)
tree835214a2ff679717e040ef134388b4be3b4829f2 /xen/drivers/cpufreq
parent21887335cdd69cf4adef0f3702b6b22dabb19038 (diff)
downloadxen-b988ec6b11dab6a5048c6c39b5119fb50c5928fa.tar.gz
xen-b988ec6b11dab6a5048c6c39b5119fb50c5928fa.tar.bz2
xen-b988ec6b11dab6a5048c6c39b5119fb50c5928fa.zip
cpufreq: stats_lock doesn't appear to need to be irq-safe.
Changing this fixes some bugchecks (xmalloc() with irqs disabled). Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/drivers/cpufreq')
-rw-r--r--xen/drivers/cpufreq/utility.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c
index 24e070deda..91225b9199 100644
--- a/xen/drivers/cpufreq/utility.c
+++ b/xen/drivers/cpufreq/utility.c
@@ -68,10 +68,10 @@ void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to)
spinlock_t *cpufreq_statistic_lock =
&per_cpu(cpufreq_statistic_lock, cpu);
- spin_lock_irq(cpufreq_statistic_lock);
+ spin_lock(cpufreq_statistic_lock);
if ( !pxpt || !pmpt ) {
- spin_unlock_irq(cpufreq_statistic_lock);
+ spin_unlock(cpufreq_statistic_lock);
return;
}
@@ -83,7 +83,7 @@ void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to)
(*(pxpt->u.trans_pt + from * pmpt->perf.state_count + to))++;
- spin_unlock_irq(cpufreq_statistic_lock);
+ spin_unlock(cpufreq_statistic_lock);
}
int cpufreq_statistic_init(unsigned int cpuid)
@@ -97,10 +97,10 @@ int cpufreq_statistic_init(unsigned int cpuid)
if ( !pmpt )
return -EINVAL;
- spin_lock_irq(cpufreq_statistic_lock);
+ spin_lock(cpufreq_statistic_lock);
if ( pxpt ) {
- spin_unlock_irq(cpufreq_statistic_lock);
+ spin_unlock(cpufreq_statistic_lock);
return 0;
}
@@ -108,7 +108,7 @@ int cpufreq_statistic_init(unsigned int cpuid)
pxpt = xmalloc(struct pm_px);
if ( !pxpt ) {
- spin_unlock_irq(cpufreq_statistic_lock);
+ spin_unlock(cpufreq_statistic_lock);
return -ENOMEM;
}
memset(pxpt, 0, sizeof(*pxpt));
@@ -117,7 +117,7 @@ int cpufreq_statistic_init(unsigned int cpuid)
pxpt->u.trans_pt = xmalloc_array(uint64_t, count * count);
if (!pxpt->u.trans_pt) {
xfree(pxpt);
- spin_unlock_irq(cpufreq_statistic_lock);
+ spin_unlock(cpufreq_statistic_lock);
return -ENOMEM;
}
@@ -125,7 +125,7 @@ int cpufreq_statistic_init(unsigned int cpuid)
if (!pxpt->u.pt) {
xfree(pxpt->u.trans_pt);
xfree(pxpt);
- spin_unlock_irq(cpufreq_statistic_lock);
+ spin_unlock(cpufreq_statistic_lock);
return -ENOMEM;
}
@@ -141,7 +141,7 @@ int cpufreq_statistic_init(unsigned int cpuid)
pxpt->prev_state_wall = NOW();
pxpt->prev_idle_wall = get_cpu_idle_time(cpuid);
- spin_unlock_irq(cpufreq_statistic_lock);
+ spin_unlock(cpufreq_statistic_lock);
return 0;
}
@@ -152,10 +152,10 @@ void cpufreq_statistic_exit(unsigned int cpuid)
spinlock_t *cpufreq_statistic_lock =
&per_cpu(cpufreq_statistic_lock, cpuid);
- spin_lock_irq(cpufreq_statistic_lock);
+ spin_lock(cpufreq_statistic_lock);
if (!pxpt) {
- spin_unlock_irq(cpufreq_statistic_lock);
+ spin_unlock(cpufreq_statistic_lock);
return;
}
@@ -164,7 +164,7 @@ void cpufreq_statistic_exit(unsigned int cpuid)
xfree(pxpt);
cpufreq_statistic_data[cpuid] = NULL;
- spin_unlock_irq(cpufreq_statistic_lock);
+ spin_unlock(cpufreq_statistic_lock);
}
void cpufreq_statistic_reset(unsigned int cpuid)
@@ -175,10 +175,10 @@ void cpufreq_statistic_reset(unsigned int cpuid)
spinlock_t *cpufreq_statistic_lock =
&per_cpu(cpufreq_statistic_lock, cpuid);
- spin_lock_irq(cpufreq_statistic_lock);
+ spin_lock(cpufreq_statistic_lock);
if ( !pmpt || !pxpt || !pxpt->u.pt || !pxpt->u.trans_pt ) {
- spin_unlock_irq(cpufreq_statistic_lock);
+ spin_unlock(cpufreq_statistic_lock);
return;
}
@@ -195,7 +195,7 @@ void cpufreq_statistic_reset(unsigned int cpuid)
pxpt->prev_state_wall = NOW();
pxpt->prev_idle_wall = get_cpu_idle_time(cpuid);
- spin_unlock_irq(cpufreq_statistic_lock);
+ spin_unlock(cpufreq_statistic_lock);
}