From cab1edc0e8daa0354b6fa6fa95057774a463f676 Mon Sep 17 00:00:00 2001 From: Jeffy Chen Date: Wed, 29 Aug 2018 09:41:33 +0800 Subject: [PATCH] rtc: rtc-rk-timer: Fix time64 to tick convert There's an u64 to int convert which may cause overflow. Change-Id: I7feb46e501828666353506c37a1f35db39ff45f7 Signed-off-by: Jeffy Chen --- drivers/rtc/rtc-rk-timer.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/rtc/rtc-rk-timer.c b/drivers/rtc/rtc-rk-timer.c index 4b516e971f11..aa88fd6de2a1 100644 --- a/drivers/rtc/rtc-rk-timer.c +++ b/drivers/rtc/rtc-rk-timer.c @@ -76,11 +76,6 @@ static inline u64 tick_to_sec(struct rk_timer_rtc *rk_timer_rtc, u64 tick) return tick; } -static inline u64 sec_to_tick(struct rk_timer_rtc *rk_timer_rtc, int sec) -{ - return sec * rk_timer_rtc->freq; -} - static inline u64 ms_to_tick(struct rk_timer_rtc *rk_timer_rtc, int ms) { return ms * rk_timer_rtc->freq / 1000; @@ -93,7 +88,7 @@ static inline u64 tick_to_time64(struct rk_timer_rtc *rk_timer_rtc, u64 tick) static inline u64 time64_to_tick(struct rk_timer_rtc *rk_timer_rtc, u64 time) { - return sec_to_tick(rk_timer_rtc, time - rk_timer_rtc->timebase); + return (time - rk_timer_rtc->timebase) * rk_timer_rtc->freq; } static inline int rk_timer_rtc_write64(struct rk_timer_rtc *rk_timer_rtc,