mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-15 05:11:32 +00:00
ktime: Sanitize ktime_to_us/ms conversion
With the plain nanoseconds based ktime_t we can simply use ktime_divns() instead of going through loops and hoops of timespec/timeval conversion. Reported-by: John Stultz <john.stultz@linaro.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: John Stultz <john.stultz@linaro.org>
This commit is contained in:
parent
24e4a8c3e8
commit
166afb6451
@ -457,12 +457,6 @@ extern void hrtimer_run_pending(void);
|
|||||||
/* Bootup initialization: */
|
/* Bootup initialization: */
|
||||||
extern void __init hrtimers_init(void);
|
extern void __init hrtimers_init(void);
|
||||||
|
|
||||||
#if BITS_PER_LONG < 64
|
|
||||||
extern u64 ktime_divns(const ktime_t kt, s64 div);
|
|
||||||
#else /* BITS_PER_LONG < 64 */
|
|
||||||
# define ktime_divns(kt, div) (u64)((kt).tv64 / (div))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Show pending timers: */
|
/* Show pending timers: */
|
||||||
extern void sysrq_timer_list_show(void);
|
extern void sysrq_timer_list_show(void);
|
||||||
|
|
||||||
|
@ -157,16 +157,20 @@ static inline bool ktime_before(const ktime_t cmp1, const ktime_t cmp2)
|
|||||||
return ktime_compare(cmp1, cmp2) < 0;
|
return ktime_compare(cmp1, cmp2) < 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if BITS_PER_LONG < 64
|
||||||
|
extern u64 ktime_divns(const ktime_t kt, s64 div);
|
||||||
|
#else /* BITS_PER_LONG < 64 */
|
||||||
|
# define ktime_divns(kt, div) (u64)((kt).tv64 / (div))
|
||||||
|
#endif
|
||||||
|
|
||||||
static inline s64 ktime_to_us(const ktime_t kt)
|
static inline s64 ktime_to_us(const ktime_t kt)
|
||||||
{
|
{
|
||||||
struct timeval tv = ktime_to_timeval(kt);
|
return ktime_divns(kt, NSEC_PER_USEC);
|
||||||
return (s64) tv.tv_sec * USEC_PER_SEC + tv.tv_usec;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline s64 ktime_to_ms(const ktime_t kt)
|
static inline s64 ktime_to_ms(const ktime_t kt)
|
||||||
{
|
{
|
||||||
struct timeval tv = ktime_to_timeval(kt);
|
return ktime_divns(kt, NSEC_PER_MSEC);
|
||||||
return (s64) tv.tv_sec * MSEC_PER_SEC + tv.tv_usec / USEC_PER_MSEC;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline s64 ktime_us_delta(const ktime_t later, const ktime_t earlier)
|
static inline s64 ktime_us_delta(const ktime_t later, const ktime_t earlier)
|
||||||
|
@ -280,6 +280,7 @@ u64 ktime_divns(const ktime_t kt, s64 div)
|
|||||||
|
|
||||||
return dclc;
|
return dclc;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(ktime_divns);
|
||||||
#endif /* BITS_PER_LONG >= 64 */
|
#endif /* BITS_PER_LONG >= 64 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user