projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6
[powerpc.git]
/
arch
/
ia64
/
kernel
/
time.c
diff --git
a/arch/ia64/kernel/time.c
b/arch/ia64/kernel/time.c
index
62e07f9
..
39e0cd3
100644
(file)
--- a/
arch/ia64/kernel/time.c
+++ b/
arch/ia64/kernel/time.c
@@
-45,7
+45,7
@@
static struct time_interpolator itc_interpolator = {
};
static irqreturn_t
};
static irqreturn_t
-timer_interrupt (int irq, void *dev_id
, struct pt_regs *regs
)
+timer_interrupt (int irq, void *dev_id)
{
unsigned long new_itm;
{
unsigned long new_itm;
@@
-53,7
+53,7
@@
timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
return IRQ_HANDLED;
}
return IRQ_HANDLED;
}
- platform_timer_interrupt(irq, dev_id
, regs
);
+ platform_timer_interrupt(irq, dev_id);
new_itm = local_cpu_data->itm_next;
new_itm = local_cpu_data->itm_next;
@@
-61,10
+61,10
@@
timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
printk(KERN_ERR "Oops: timer tick before it's due (itc=%lx,itm=%lx)\n",
ia64_get_itc(), new_itm);
printk(KERN_ERR "Oops: timer tick before it's due (itc=%lx,itm=%lx)\n",
ia64_get_itc(), new_itm);
- profile_tick(CPU_PROFILING
, regs
);
+ profile_tick(CPU_PROFILING);
while (1) {
while (1) {
- update_process_times(user_mode(
regs
));
+ update_process_times(user_mode(
get_irq_regs()
));
new_itm += local_cpu_data->itm_delta;
new_itm += local_cpu_data->itm_delta;
@@
-84,6
+84,12
@@
timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
if (time_after(new_itm, ia64_get_itc()))
break;
if (time_after(new_itm, ia64_get_itc()))
break;
+
+ /*
+ * Allow IPIs to interrupt the timer loop.
+ */
+ local_irq_enable();
+ local_irq_disable();
}
do {
}
do {