diff mbox series

ipmi: Change to ktime_get_ts64()

Message ID 20180618142717.3683096-1-arnd@arndb.de
State Accepted
Commit dd3535b937c192941daa9b966caa707fa31c2c4d
Headers show
Series ipmi: Change to ktime_get_ts64() | expand

Commit Message

Arnd Bergmann June 18, 2018, 2:27 p.m. UTC
getnstimeofday64() is deprecated because of the inconsistent naming,
it is only a wrapper around ktime_get_real_ts64() now, which could be
used as a direct replacement.

However, it is generally better to use CLOCK_MONOTONIC timestamps
where possible, to avoid glitches with a concurrent settimeofday()
or leap second.

The uses in ipmi are either for debugging prints or for comparing against
a prior timestamp, so using a monotonic ktime_get_ts64() is probably
best here.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/char/ipmi/ipmi_si_intf.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

-- 
2.9.0

Comments

Corey Minyard June 18, 2018, 5:39 p.m. UTC | #1
On 06/18/2018 09:27 AM, Arnd Bergmann wrote:
> getnstimeofday64() is deprecated because of the inconsistent naming,

> it is only a wrapper around ktime_get_real_ts64() now, which could be

> used as a direct replacement.

>

> However, it is generally better to use CLOCK_MONOTONIC timestamps

> where possible, to avoid glitches with a concurrent settimeofday()

> or leap second.

>

> The uses in ipmi are either for debugging prints or for comparing against

> a prior timestamp, so using a monotonic ktime_get_ts64() is probably

> best here.


This is definitely better.  Queued for 4.19 (or whatever it will be called).

Thanks,

-corey

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> ---

>   drivers/char/ipmi/ipmi_si_intf.c | 6 +++---

>   1 file changed, 3 insertions(+), 3 deletions(-)

>

> diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c

> index ad353be871bf..fb19c796f0fa 100644

> --- a/drivers/char/ipmi/ipmi_si_intf.c

> +++ b/drivers/char/ipmi/ipmi_si_intf.c

> @@ -269,7 +269,7 @@ void debug_timestamp(char *msg)

>   {

>   	struct timespec64 t;

>   

> -	getnstimeofday64(&t);

> +	ktime_get_ts64(&t);

>   	pr_debug("**%s: %lld.%9.9ld\n", msg, (long long) t.tv_sec, t.tv_nsec);

>   }

>   #else

> @@ -961,12 +961,12 @@ static inline int ipmi_thread_busy_wait(enum si_sm_result smi_result,

>   	if (max_busy_us == 0 || smi_result != SI_SM_CALL_WITH_DELAY)

>   		ipmi_si_set_not_busy(busy_until);

>   	else if (!ipmi_si_is_busy(busy_until)) {

> -		getnstimeofday64(busy_until);

> +		ktime_get_ts64(busy_until);

>   		timespec64_add_ns(busy_until, max_busy_us*NSEC_PER_USEC);

>   	} else {

>   		struct timespec64 now;

>   

> -		getnstimeofday64(&now);

> +		ktime_get_ts64(&now);

>   		if (unlikely(timespec64_compare(&now, busy_until) > 0)) {

>   			ipmi_si_set_not_busy(busy_until);

>   			return 0;
diff mbox series

Patch

diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index ad353be871bf..fb19c796f0fa 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -269,7 +269,7 @@  void debug_timestamp(char *msg)
 {
 	struct timespec64 t;
 
-	getnstimeofday64(&t);
+	ktime_get_ts64(&t);
 	pr_debug("**%s: %lld.%9.9ld\n", msg, (long long) t.tv_sec, t.tv_nsec);
 }
 #else
@@ -961,12 +961,12 @@  static inline int ipmi_thread_busy_wait(enum si_sm_result smi_result,
 	if (max_busy_us == 0 || smi_result != SI_SM_CALL_WITH_DELAY)
 		ipmi_si_set_not_busy(busy_until);
 	else if (!ipmi_si_is_busy(busy_until)) {
-		getnstimeofday64(busy_until);
+		ktime_get_ts64(busy_until);
 		timespec64_add_ns(busy_until, max_busy_us*NSEC_PER_USEC);
 	} else {
 		struct timespec64 now;
 
-		getnstimeofday64(&now);
+		ktime_get_ts64(&now);
 		if (unlikely(timespec64_compare(&now, busy_until) > 0)) {
 			ipmi_si_set_not_busy(busy_until);
 			return 0;