diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-15 21:53:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-15 21:53:35 -0400 |
commit | 420c1c572d4ceaa2f37b6311b7017ac6cf049fe2 (patch) | |
tree | df04e6b4b756b7a46d9887462d54a3ad0e1f91d5 /arch/frv | |
parent | 9620639b7ea3843983f4ced8b4c81eb4d8974838 (diff) | |
parent | 6e6823d17b157f185be09f4c70181299f9273f0b (diff) |
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (62 commits)
posix-clocks: Check write permissions in posix syscalls
hrtimer: Remove empty hrtimer_init_hres_timer()
hrtimer: Update hrtimer->state documentation
hrtimer: Update base[CLOCK_BOOTTIME].offset correctly
timers: Export CLOCK_BOOTTIME via the posix timers interface
timers: Add CLOCK_BOOTTIME hrtimer base
time: Extend get_xtime_and_monotonic_offset() to also return sleep
time: Introduce get_monotonic_boottime and ktime_get_boottime
hrtimers: extend hrtimer base code to handle more then 2 clockids
ntp: Remove redundant and incorrect parameter check
mn10300: Switch do_timer() to xtimer_update()
posix clocks: Introduce dynamic clocks
posix-timers: Cleanup namespace
posix-timers: Add support for fd based clocks
x86: Add clock_adjtime for x86
posix-timers: Introduce a syscall for clock tuning.
time: Splitout compat timex accessors
ntp: Add ADJ_SETOFFSET mode bit
time: Introduce timekeeping_inject_offset
posix-timer: Update comment
...
Fix up new system-call-related conflicts in
arch/x86/ia32/ia32entry.S
arch/x86/include/asm/unistd_32.h
arch/x86/include/asm/unistd_64.h
arch/x86/kernel/syscall_table_32.S
(name_to_handle_at()/open_by_handle_at() vs clock_adjtime()), and some
due to movement of get_jiffies_64() in:
kernel/time.c
Diffstat (limited to 'arch/frv')
-rw-r--r-- | arch/frv/kernel/time.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/arch/frv/kernel/time.c b/arch/frv/kernel/time.c index 0ddbbae83cb2..b457de496b70 100644 --- a/arch/frv/kernel/time.c +++ b/arch/frv/kernel/time.c | |||
@@ -50,21 +50,13 @@ static struct irqaction timer_irq = { | |||
50 | 50 | ||
51 | /* | 51 | /* |
52 | * timer_interrupt() needs to keep up the real-time clock, | 52 | * timer_interrupt() needs to keep up the real-time clock, |
53 | * as well as call the "do_timer()" routine every clocktick | 53 | * as well as call the "xtime_update()" routine every clocktick |
54 | */ | 54 | */ |
55 | static irqreturn_t timer_interrupt(int irq, void *dummy) | 55 | static irqreturn_t timer_interrupt(int irq, void *dummy) |
56 | { | 56 | { |
57 | profile_tick(CPU_PROFILING); | 57 | profile_tick(CPU_PROFILING); |
58 | /* | ||
59 | * Here we are in the timer irq handler. We just have irqs locally | ||
60 | * disabled but we don't know if the timer_bh is running on the other | ||
61 | * CPU. We need to avoid to SMP race with it. NOTE: we don't need | ||
62 | * the irq version of write_lock because as just said we have irq | ||
63 | * locally disabled. -arca | ||
64 | */ | ||
65 | write_seqlock(&xtime_lock); | ||
66 | 58 | ||
67 | do_timer(1); | 59 | xtime_update(1); |
68 | 60 | ||
69 | #ifdef CONFIG_HEARTBEAT | 61 | #ifdef CONFIG_HEARTBEAT |
70 | static unsigned short n; | 62 | static unsigned short n; |
@@ -72,8 +64,6 @@ static irqreturn_t timer_interrupt(int irq, void *dummy) | |||
72 | __set_LEDS(n); | 64 | __set_LEDS(n); |
73 | #endif /* CONFIG_HEARTBEAT */ | 65 | #endif /* CONFIG_HEARTBEAT */ |
74 | 66 | ||
75 | write_sequnlock(&xtime_lock); | ||
76 | |||
77 | update_process_times(user_mode(get_irq_regs())); | 67 | update_process_times(user_mode(get_irq_regs())); |
78 | 68 | ||
79 | return IRQ_HANDLED; | 69 | return IRQ_HANDLED; |