Commit 2b776b54 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer fixes from Thomas Gleixner:
 "A small set of fixes for time(keeping):

   - Add a missing include to prevent compiler warnings.

   - Make the VDSO implementation of clock_getres() POSIX compliant
     again. A recent change dropped the NULL pointer guard which is
     required as NULL is a valid pointer value for this function.

   - Fix two function documentation typos"

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  posix-cpu-timers: Fix two trivial comments
  timers/sched_clock: Include local timekeeping.h for missing declarations
  lib/vdso: Make clock_getres() POSIX compliant again
parents a8a31fdc 7f2cbcbc
...@@ -266,7 +266,7 @@ static void update_gt_cputime(struct task_cputime_atomic *cputime_atomic, ...@@ -266,7 +266,7 @@ static void update_gt_cputime(struct task_cputime_atomic *cputime_atomic,
/** /**
* thread_group_sample_cputime - Sample cputime for a given task * thread_group_sample_cputime - Sample cputime for a given task
* @tsk: Task for which cputime needs to be started * @tsk: Task for which cputime needs to be started
* @iimes: Storage for time samples * @samples: Storage for time samples
* *
* Called from sys_getitimer() to calculate the expiry time of an active * Called from sys_getitimer() to calculate the expiry time of an active
* timer. That means group cputime accounting is already active. Called * timer. That means group cputime accounting is already active. Called
...@@ -1038,12 +1038,12 @@ static void posix_cpu_timer_rearm(struct k_itimer *timer) ...@@ -1038,12 +1038,12 @@ static void posix_cpu_timer_rearm(struct k_itimer *timer)
* member of @pct->bases[CLK].nextevt. False otherwise * member of @pct->bases[CLK].nextevt. False otherwise
*/ */
static inline bool static inline bool
task_cputimers_expired(const u64 *sample, struct posix_cputimers *pct) task_cputimers_expired(const u64 *samples, struct posix_cputimers *pct)
{ {
int i; int i;
for (i = 0; i < CPUCLOCK_MAX; i++) { for (i = 0; i < CPUCLOCK_MAX; i++) {
if (sample[i] >= pct->bases[i].nextevt) if (samples[i] >= pct->bases[i].nextevt)
return true; return true;
} }
return false; return false;
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
#include <linux/seqlock.h> #include <linux/seqlock.h>
#include <linux/bitops.h> #include <linux/bitops.h>
#include "timekeeping.h"
/** /**
* struct clock_read_data - data required to read from sched_clock() * struct clock_read_data - data required to read from sched_clock()
* *
......
...@@ -214,9 +214,10 @@ int __cvdso_clock_getres_common(clockid_t clock, struct __kernel_timespec *res) ...@@ -214,9 +214,10 @@ int __cvdso_clock_getres_common(clockid_t clock, struct __kernel_timespec *res)
return -1; return -1;
} }
res->tv_sec = 0; if (likely(res)) {
res->tv_nsec = ns; res->tv_sec = 0;
res->tv_nsec = ns;
}
return 0; return 0;
} }
...@@ -245,7 +246,7 @@ __cvdso_clock_getres_time32(clockid_t clock, struct old_timespec32 *res) ...@@ -245,7 +246,7 @@ __cvdso_clock_getres_time32(clockid_t clock, struct old_timespec32 *res)
ret = clock_getres_fallback(clock, &ts); ret = clock_getres_fallback(clock, &ts);
#endif #endif
if (likely(!ret)) { if (likely(!ret && res)) {
res->tv_sec = ts.tv_sec; res->tv_sec = ts.tv_sec;
res->tv_nsec = ts.tv_nsec; res->tv_nsec = ts.tv_nsec;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment