On Wed, May 11, 2011 at 04:10:28PM -0700, john stultz wrote:
> Index: linux-2.6.32.y/kernel/time/timekeeping.c
> ===================================================================
> --- linux-2.6.32.y.orig/kernel/time/timekeeping.c       2011-05-04 
> 19:34:21.604314152 -0700
> +++ linux-2.6.32.y/kernel/time/timekeeping.c    2011-05-10 12:15:48.756236916 
> -0700
> @@ -168,8 +168,15 @@ int __read_mostly timekeeping_suspended;
>  static struct timespec xtime_cache __attribute__ ((aligned (16)));
>  void update_xtime_cache(u64 nsec)
>  {
> -       xtime_cache = xtime;
> -       timespec_add_ns(&xtime_cache, nsec);
> +       /*
> +        * Use temporary variable so get_seconds() cannot catch
> +        * an intermediate xtime_cache.tv_sec value.
> +        * The ACCESS_ONCE() keeps the compiler from optimizing
> +        * out the intermediate value.
> +        */
> +       struct timespec ts = xtime;
> +       timespec_add_ns(&ts, nsec);
> +       ACCESS_ONCE(xtime_cache) = ts;
>  }

What did you use to generate this?  Tabs went to spaces, and the last
bit of whitespace is gone :(

{grr}

I've fixed it by hand...

greg k-h

_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to