All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: Xunlei Pang <xlpang@126.com>
Cc: linux-kernel@vger.kernel.org, rtc-linux@googlegroups.com,
	Thomas Gleixner <tglx@linutronix.de>,
	Alessandro Zummo <a.zummo@towertech.it>,
	John Stultz <john.stultz@linaro.org>,
	Arnd Bergmann <arnd.bergmann@linaro.org>,
	linux-omap@vger.kernel.org, linux-tegra@vger.kernel.org,
	Stephen Warren <swarren@wwwdotorg.org>,
	linux390@de.ibm.com, Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Ralf Baechle <ralf@linux-mips.org>, Arnd Bergmann <arnd@arndb.de>,
	Xunlei Pang <pang.xunlei@linaro.org>
Subject: Re: [PATCH 4/8] ARM: OMAP: 32k counter: Provide y2038-safe omap_read_persistent_clock() replacement
Date: Wed, 11 Mar 2015 08:28:28 -0700	[thread overview]
Message-ID: <20150311152827.GY5264@atomide.com> (raw)
In-Reply-To: <1426043715-22043-5-git-send-email-xlpang@126.com>

* Xunlei Pang <xlpang@126.com> [150310 20:18]:
> From: Xunlei Pang <pang.xunlei@linaro.org>
> 
> As part of addressing "y2038 problem" for in-kernel uses, this
> patch adds the y2038-safe omap_read_persistent_clock64() using
> timespec64.
> 
> Because we rely on some subsequent changes to convert arm multiarch
> support, omap_read_persistent_clock() will be removed then.
> 
> Also remove the needless spinlock, because read_persistent_clock()
> doesn't run simultaneously.
> 
> Signed-off-by: Xunlei Pang <pang.xunlei@linaro.org>

Looks OK to me:

Acked-by: Tony Lindgren <tony@atomide.com>

> ---
>  arch/arm/plat-omap/counter_32k.c | 22 ++++++++++++----------
>  1 file changed, 12 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/arm/plat-omap/counter_32k.c b/arch/arm/plat-omap/counter_32k.c
> index 61b4d70..d422e36 100644
> --- a/arch/arm/plat-omap/counter_32k.c
> +++ b/arch/arm/plat-omap/counter_32k.c
> @@ -44,24 +44,20 @@ static u64 notrace omap_32k_read_sched_clock(void)
>  }
>  
>  /**
> - * omap_read_persistent_clock -  Return time from a persistent clock.
> + * omap_read_persistent_clock64 -  Return time from a persistent clock.
>   *
>   * Reads the time from a source which isn't disabled during PM, the
>   * 32k sync timer.  Convert the cycles elapsed since last read into
> - * nsecs and adds to a monotonically increasing timespec.
> + * nsecs and adds to a monotonically increasing timespec64.
>   */
> -static struct timespec persistent_ts;
> +static struct timespec64 persistent_ts;
>  static cycles_t cycles;
>  static unsigned int persistent_mult, persistent_shift;
> -static DEFINE_SPINLOCK(read_persistent_clock_lock);
>  
> -static void omap_read_persistent_clock(struct timespec *ts)
> +static void omap_read_persistent_clock64(struct timespec64 *ts)
>  {
>  	unsigned long long nsecs;
>  	cycles_t last_cycles;
> -	unsigned long flags;
> -
> -	spin_lock_irqsave(&read_persistent_clock_lock, flags);
>  
>  	last_cycles = cycles;
>  	cycles = sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0;
> @@ -69,11 +65,17 @@ static void omap_read_persistent_clock(struct timespec *ts)
>  	nsecs = clocksource_cyc2ns(cycles - last_cycles,
>  					persistent_mult, persistent_shift);
>  
> -	timespec_add_ns(&persistent_ts, nsecs);
> +	timespec64_add_ns(&persistent_ts, nsecs);
>  
>  	*ts = persistent_ts;
> +}
> +
> +static void omap_read_persistent_clock(struct timespec *ts)
> +{
> +	struct timespec64 ts64;
>  
> -	spin_unlock_irqrestore(&read_persistent_clock_lock, flags);
> +	omap_read_persistent_clock64(&ts64);
> +	*ts = timespec64_to_timespec(ts64);
>  }
>  
>  /**
> -- 
> 1.9.1
> 
> 

      reply	other threads:[~2015-03-11 15:28 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-11  3:15 [PATCH 0/8] Add y2038 safe replacements for read_boot_clock(), read_persistent_clock() and update_persistent_clock() Xunlei Pang
2015-03-11  3:15 ` Xunlei Pang
     [not found] ` <1426043715-22043-1-git-send-email-xlpang-KN7UnAbNpbg@public.gmane.org>
2015-03-11  3:15   ` [PATCH 1/8] time: Add y2038 safe read_boot_clock64() Xunlei Pang
2015-03-11  3:15     ` Xunlei Pang
     [not found]     ` <OF2C7428FA.095162DD-ON48257E0C.004641E0-48257E0C.004652BC@zte.com.cn>
2015-03-18 16:30       ` John Stultz
2015-03-11  3:15   ` [PATCH 2/8] time: Add y2038 safe read_persistent_clock64() Xunlei Pang
2015-03-11  3:15     ` Xunlei Pang
2015-03-11  3:15 ` [PATCH 3/8] time: Add y2038 safe update_persistent_clock64() Xunlei Pang
2015-03-11  3:15 ` [PATCH 4/8] ARM: OMAP: 32k counter: Provide y2038-safe omap_read_persistent_clock() replacement Xunlei Pang
2015-03-11 15:28   ` Tony Lindgren [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150311152827.GY5264@atomide.com \
    --to=tony@atomide.com \
    --cc=a.zummo@towertech.it \
    --cc=arnd.bergmann@linaro.org \
    --cc=arnd@arndb.de \
    --cc=john.stultz@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux390@de.ibm.com \
    --cc=pang.xunlei@linaro.org \
    --cc=ralf@linux-mips.org \
    --cc=rtc-linux@googlegroups.com \
    --cc=schwidefsky@de.ibm.com \
    --cc=swarren@wwwdotorg.org \
    --cc=tglx@linutronix.de \
    --cc=xlpang@126.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.