lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <59c7f897-4280-5f45-81a1-45b070377c22@acm.org>
Date:   Mon, 18 Jun 2018 12:39:06 -0500
From:   Corey Minyard <minyard@....org>
To:     Arnd Bergmann <arnd@...db.de>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:     y2038@...ts.linaro.org, openipmi-developer@...ts.sourceforge.net,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ipmi: Change to ktime_get_ts64()

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@...db.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;


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ