summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2009-07-25 17:07:48 +0200
committerThomas Gleixner <tglx@linutronix.de>2009-07-27 21:07:17 +0200
commitfea886ed3f18a93ab76fbeed13f1f73c97bd8982 (patch)
tree300c9a66739fd036a68c025f0d7f05931217cfd3
parentcb1ba1def99eaffe1b0f8afa8fdc617dae8760cc (diff)
downloadlwn-fea886ed3f18a93ab76fbeed13f1f73c97bd8982.tar.gz
lwn-fea886ed3f18a93ab76fbeed13f1f73c97bd8982.zip
clocksource: Convert clocksource_lock to atomic_spinlock
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--kernel/time/clocksource.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
index 7466cb811251..8a4273199476 100644
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -127,7 +127,7 @@ static struct clocksource *curr_clocksource = &clocksource_jiffies;
static struct clocksource *next_clocksource;
static struct clocksource *clocksource_override;
static LIST_HEAD(clocksource_list);
-static DEFINE_SPINLOCK(clocksource_lock);
+static DEFINE_ATOMIC_SPINLOCK(clocksource_lock);
static char override_name[32];
static int finished_booting;
@@ -296,7 +296,7 @@ void clocksource_resume(void)
struct clocksource *cs;
unsigned long flags;
- spin_lock_irqsave(&clocksource_lock, flags);
+ atomic_spin_lock_irqsave(&clocksource_lock, flags);
list_for_each_entry(cs, &clocksource_list, list) {
if (cs->resume)
@@ -305,7 +305,7 @@ void clocksource_resume(void)
clocksource_resume_watchdog();
- spin_unlock_irqrestore(&clocksource_lock, flags);
+ atomic_spin_unlock_irqrestore(&clocksource_lock, flags);
}
/**
@@ -328,12 +328,12 @@ struct clocksource *clocksource_get_next(void)
{
unsigned long flags;
- spin_lock_irqsave(&clocksource_lock, flags);
+ atomic_spin_lock_irqsave(&clocksource_lock, flags);
if (next_clocksource && finished_booting) {
curr_clocksource = next_clocksource;
next_clocksource = NULL;
}
- spin_unlock_irqrestore(&clocksource_lock, flags);
+ atomic_spin_unlock_irqrestore(&clocksource_lock, flags);
return curr_clocksource;
}
@@ -402,11 +402,11 @@ int clocksource_register(struct clocksource *c)
unsigned long flags;
int ret;
- spin_lock_irqsave(&clocksource_lock, flags);
+ atomic_spin_lock_irqsave(&clocksource_lock, flags);
ret = clocksource_enqueue(c);
if (!ret)
next_clocksource = select_clocksource();
- spin_unlock_irqrestore(&clocksource_lock, flags);
+ atomic_spin_unlock_irqrestore(&clocksource_lock, flags);
if (!ret)
clocksource_check_watchdog(c);
return ret;
@@ -421,12 +421,12 @@ void clocksource_change_rating(struct clocksource *cs, int rating)
{
unsigned long flags;
- spin_lock_irqsave(&clocksource_lock, flags);
+ atomic_spin_lock_irqsave(&clocksource_lock, flags);
list_del(&cs->list);
cs->rating = rating;
clocksource_enqueue(cs);
next_clocksource = select_clocksource();
- spin_unlock_irqrestore(&clocksource_lock, flags);
+ atomic_spin_unlock_irqrestore(&clocksource_lock, flags);
}
/**
@@ -436,12 +436,12 @@ void clocksource_unregister(struct clocksource *cs)
{
unsigned long flags;
- spin_lock_irqsave(&clocksource_lock, flags);
+ atomic_spin_lock_irqsave(&clocksource_lock, flags);
list_del(&cs->list);
if (clocksource_override == cs)
clocksource_override = NULL;
next_clocksource = select_clocksource();
- spin_unlock_irqrestore(&clocksource_lock, flags);
+ atomic_spin_unlock_irqrestore(&clocksource_lock, flags);
}
#ifdef CONFIG_SYSFS
@@ -458,9 +458,9 @@ sysfs_show_current_clocksources(struct sys_device *dev,
{
ssize_t count = 0;
- spin_lock_irq(&clocksource_lock);
+ atomic_spin_lock_irq(&clocksource_lock);
count = snprintf(buf, PAGE_SIZE, "%s\n", curr_clocksource->name);
- spin_unlock_irq(&clocksource_lock);
+ atomic_spin_unlock_irq(&clocksource_lock);
return count;
}
@@ -490,7 +490,7 @@ static ssize_t sysfs_override_clocksource(struct sys_device *dev,
if (buf[count-1] == '\n')
count--;
- spin_lock_irq(&clocksource_lock);
+ atomic_spin_lock_irq(&clocksource_lock);
if (count > 0)
memcpy(override_name, buf, count);
@@ -527,7 +527,7 @@ static ssize_t sysfs_override_clocksource(struct sys_device *dev,
next_clocksource = select_clocksource();
}
- spin_unlock_irq(&clocksource_lock);
+ atomic_spin_unlock_irq(&clocksource_lock);
return ret;
}
@@ -547,7 +547,7 @@ sysfs_show_available_clocksources(struct sys_device *dev,
struct clocksource *src;
ssize_t count = 0;
- spin_lock_irq(&clocksource_lock);
+ atomic_spin_lock_irq(&clocksource_lock);
list_for_each_entry(src, &clocksource_list, list) {
/*
* Don't show non-HRES clocksource if the tick code is
@@ -559,7 +559,7 @@ sysfs_show_available_clocksources(struct sys_device *dev,
max((ssize_t)PAGE_SIZE - count, (ssize_t)0),
"%s ", src->name);
}
- spin_unlock_irq(&clocksource_lock);
+ atomic_spin_unlock_irq(&clocksource_lock);
count += snprintf(buf + count,
max((ssize_t)PAGE_SIZE - count, (ssize_t)0), "\n");
@@ -615,10 +615,10 @@ device_initcall(init_clocksource_sysfs);
static int __init boot_override_clocksource(char* str)
{
unsigned long flags;
- spin_lock_irqsave(&clocksource_lock, flags);
+ atomic_spin_lock_irqsave(&clocksource_lock, flags);
if (str)
strlcpy(override_name, str, sizeof(override_name));
- spin_unlock_irqrestore(&clocksource_lock, flags);
+ atomic_spin_unlock_irqrestore(&clocksource_lock, flags);
return 1;
}