summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sys.c5
-rw-r--r--kernel/time/hrtimer.c8
-rw-r--r--kernel/time/timer.c4
3 files changed, 10 insertions, 7 deletions
diff --git a/kernel/sys.c b/kernel/sys.c
index 78947de6f969..cf8ba545c7d3 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -2169,7 +2169,10 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
2169 error = perf_event_task_enable(); 2169 error = perf_event_task_enable();
2170 break; 2170 break;
2171 case PR_GET_TIMERSLACK: 2171 case PR_GET_TIMERSLACK:
2172 error = current->timer_slack_ns; 2172 if (current->timer_slack_ns > ULONG_MAX)
2173 error = ULONG_MAX;
2174 else
2175 error = current->timer_slack_ns;
2173 break; 2176 break;
2174 case PR_SET_TIMERSLACK: 2177 case PR_SET_TIMERSLACK:
2175 if (arg2 <= 0) 2178 if (arg2 <= 0)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
index fa909f9fd559..58a321c34cfb 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -979,7 +979,7 @@ static inline ktime_t hrtimer_update_lowres(struct hrtimer *timer, ktime_t tim,
979 * relative (HRTIMER_MODE_REL) 979 * relative (HRTIMER_MODE_REL)
980 */ 980 */
981void hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, 981void hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
982 unsigned long delta_ns, const enum hrtimer_mode mode) 982 u64 delta_ns, const enum hrtimer_mode mode)
983{ 983{
984 struct hrtimer_clock_base *base, *new_base; 984 struct hrtimer_clock_base *base, *new_base;
985 unsigned long flags; 985 unsigned long flags;
@@ -1548,7 +1548,7 @@ long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
1548 struct restart_block *restart; 1548 struct restart_block *restart;
1549 struct hrtimer_sleeper t; 1549 struct hrtimer_sleeper t;
1550 int ret = 0; 1550 int ret = 0;
1551 unsigned long slack; 1551 u64 slack;
1552 1552
1553 slack = current->timer_slack_ns; 1553 slack = current->timer_slack_ns;
1554 if (dl_task(current) || rt_task(current)) 1554 if (dl_task(current) || rt_task(current))
@@ -1724,7 +1724,7 @@ void __init hrtimers_init(void)
1724 * @clock: timer clock, CLOCK_MONOTONIC or CLOCK_REALTIME 1724 * @clock: timer clock, CLOCK_MONOTONIC or CLOCK_REALTIME
1725 */ 1725 */
1726int __sched 1726int __sched
1727schedule_hrtimeout_range_clock(ktime_t *expires, unsigned long delta, 1727schedule_hrtimeout_range_clock(ktime_t *expires, u64 delta,
1728 const enum hrtimer_mode mode, int clock) 1728 const enum hrtimer_mode mode, int clock)
1729{ 1729{
1730 struct hrtimer_sleeper t; 1730 struct hrtimer_sleeper t;
@@ -1792,7 +1792,7 @@ schedule_hrtimeout_range_clock(ktime_t *expires, unsigned long delta,
1792 * 1792 *
1793 * Returns 0 when the timer has expired otherwise -EINTR 1793 * Returns 0 when the timer has expired otherwise -EINTR
1794 */ 1794 */
1795int __sched schedule_hrtimeout_range(ktime_t *expires, unsigned long delta, 1795int __sched schedule_hrtimeout_range(ktime_t *expires, u64 delta,
1796 const enum hrtimer_mode mode) 1796 const enum hrtimer_mode mode)
1797{ 1797{
1798 return schedule_hrtimeout_range_clock(expires, delta, mode, 1798 return schedule_hrtimeout_range_clock(expires, delta, mode,
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
index bbc5d1114583..d1798fa0c743 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -1698,10 +1698,10 @@ EXPORT_SYMBOL(msleep_interruptible);
1698static void __sched do_usleep_range(unsigned long min, unsigned long max) 1698static void __sched do_usleep_range(unsigned long min, unsigned long max)
1699{ 1699{
1700 ktime_t kmin; 1700 ktime_t kmin;
1701 unsigned long delta; 1701 u64 delta;
1702 1702
1703 kmin = ktime_set(0, min * NSEC_PER_USEC); 1703 kmin = ktime_set(0, min * NSEC_PER_USEC);
1704 delta = (max - min) * NSEC_PER_USEC; 1704 delta = (u64)(max - min) * NSEC_PER_USEC;
1705 schedule_hrtimeout_range(&kmin, delta, HRTIMER_MODE_REL); 1705 schedule_hrtimeout_range(&kmin, delta, HRTIMER_MODE_REL);
1706} 1706}
1707 1707