diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 13:53:02 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 13:53:02 -0400 |
| commit | 1f6d6e8ebe73ba9d9d4c693f7f6f50f661dbd6e4 (patch) | |
| tree | be7a2d20b1728da5a0d844a6f4cd382b2c2569fb /kernel/time.c | |
| parent | db563fc2e80534f98c7f9121a6f7dfe41f177a79 (diff) | |
| parent | 268a3dcfea2077fca60d3715caa5c96f9b5e6ea7 (diff) | |
Merge branch 'v28-range-hrtimers-for-linus-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'v28-range-hrtimers-for-linus-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (37 commits)
hrtimers: add missing docbook comments to struct hrtimer
hrtimers: simplify hrtimer_peek_ahead_timers()
hrtimers: fix docbook comments
DECLARE_PER_CPU needs linux/percpu.h
hrtimers: fix typo
rangetimers: fix the bug reported by Ingo for real
rangetimer: fix BUG_ON reported by Ingo
rangetimer: fix x86 build failure for the !HRTIMERS case
select: fix alpha OSF wrapper
select: fix alpha OSF wrapper
hrtimer: peek at the timer queue just before going idle
hrtimer: make the futex() system call use the per process slack value
hrtimer: make the nanosleep() syscall use the per process slack
hrtimer: fix signed/unsigned bug in slack estimator
hrtimer: show the timer ranges in /proc/timer_list
hrtimer: incorporate feedback from Peter Zijlstra
hrtimer: add a hrtimer_start_range() function
hrtimer: another build fix
hrtimer: fix build bug found by Ingo
hrtimer: make select() and poll() use the hrtimer range feature
...
Diffstat (limited to 'kernel/time.c')
| -rw-r--r-- | kernel/time.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/kernel/time.c b/kernel/time.c index 6a08660b4fac..d63a4336fad6 100644 --- a/kernel/time.c +++ b/kernel/time.c | |||
| @@ -669,3 +669,21 @@ EXPORT_SYMBOL(get_jiffies_64); | |||
| 669 | #endif | 669 | #endif |
| 670 | 670 | ||
| 671 | EXPORT_SYMBOL(jiffies); | 671 | EXPORT_SYMBOL(jiffies); |
| 672 | |||
| 673 | /* | ||
| 674 | * Add two timespec values and do a safety check for overflow. | ||
| 675 | * It's assumed that both values are valid (>= 0) | ||
| 676 | */ | ||
| 677 | struct timespec timespec_add_safe(const struct timespec lhs, | ||
| 678 | const struct timespec rhs) | ||
| 679 | { | ||
| 680 | struct timespec res; | ||
| 681 | |||
| 682 | set_normalized_timespec(&res, lhs.tv_sec + rhs.tv_sec, | ||
| 683 | lhs.tv_nsec + rhs.tv_nsec); | ||
| 684 | |||
| 685 | if (res.tv_sec < lhs.tv_sec || res.tv_sec < rhs.tv_sec) | ||
| 686 | res.tv_sec = TIME_T_MAX; | ||
| 687 | |||
| 688 | return res; | ||
| 689 | } | ||
