git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
[safe/jmp/linux-2.6]
/
kernel
/
time
/
clockevents.c
diff --git
a/kernel/time/clockevents.c
b/kernel/time/clockevents.c
index
1ad6dd4
..
620b58a
100644
(file)
--- a/
kernel/time/clockevents.c
+++ b/
kernel/time/clockevents.c
@@
-137,11
+137,12
@@
int clockevents_program_event(struct clock_event_device *dev, ktime_t expires,
*/
int clockevents_register_notifier(struct notifier_block *nb)
{
*/
int clockevents_register_notifier(struct notifier_block *nb)
{
+ unsigned long flags;
int ret;
int ret;
- spin_lock
(&clockevents_lock
);
+ spin_lock
_irqsave(&clockevents_lock, flags
);
ret = raw_notifier_chain_register(&clockevents_chain, nb);
ret = raw_notifier_chain_register(&clockevents_chain, nb);
- spin_unlock
(&clockevents_lock
);
+ spin_unlock
_irqrestore(&clockevents_lock, flags
);
return ret;
}
return ret;
}
@@
-178,16
+179,18
@@
static void clockevents_notify_released(void)
*/
void clockevents_register_device(struct clock_event_device *dev)
{
*/
void clockevents_register_device(struct clock_event_device *dev)
{
+ unsigned long flags;
+
BUG_ON(dev->mode != CLOCK_EVT_MODE_UNUSED);
BUG_ON(!dev->cpumask);
BUG_ON(dev->mode != CLOCK_EVT_MODE_UNUSED);
BUG_ON(!dev->cpumask);
- spin_lock
(&clockevents_lock
);
+ spin_lock
_irqsave(&clockevents_lock, flags
);
list_add(&dev->list, &clockevent_devices);
clockevents_do_notify(CLOCK_EVT_NOTIFY_ADD, dev);
clockevents_notify_released();
list_add(&dev->list, &clockevent_devices);
clockevents_do_notify(CLOCK_EVT_NOTIFY_ADD, dev);
clockevents_notify_released();
- spin_unlock
(&clockevents_lock
);
+ spin_unlock
_irqrestore(&clockevents_lock, flags
);
}
EXPORT_SYMBOL_GPL(clockevents_register_device);
}
EXPORT_SYMBOL_GPL(clockevents_register_device);
@@
-235,8
+238,9
@@
void clockevents_exchange_device(struct clock_event_device *old,
void clockevents_notify(unsigned long reason, void *arg)
{
struct list_head *node, *tmp;
void clockevents_notify(unsigned long reason, void *arg)
{
struct list_head *node, *tmp;
+ unsigned long flags;
- spin_lock
(&clockevents_lock
);
+ spin_lock
_irqsave(&clockevents_lock, flags
);
clockevents_do_notify(reason, arg);
switch (reason) {
clockevents_do_notify(reason, arg);
switch (reason) {
@@
-251,18
+255,7
@@
void clockevents_notify(unsigned long reason, void *arg)
default:
break;
}
default:
break;
}
- spin_unlock
(&clockevents_lock
);
+ spin_unlock
_irqrestore(&clockevents_lock, flags
);
}
EXPORT_SYMBOL_GPL(clockevents_notify);
}
EXPORT_SYMBOL_GPL(clockevents_notify);
-
-ktime_t clockevents_get_next_event(int cpu)
-{
- struct tick_device *td;
- struct clock_event_device *dev;
-
- td = &per_cpu(tick_cpu_device, cpu);
- dev = td->evtdev;
-
- return dev->next_event;
-}
#endif
#endif