seqcount: Add raw_write_seqcount_latch()
authorMathieu Desnoyers <[email protected]>
Wed, 16 Jul 2014 21:05:21 +0000 (21:05 +0000)
committerJohn Stultz <[email protected]>
Wed, 23 Jul 2014 22:01:54 +0000 (15:01 -0700)
commit9b0fd802e8c0545148324916055e7b40d97963fa
treeed3332e022543a236e187cd976a657433d35c786
parent0ea5a520f73ca31abc4c10b6d5bc14a884a0641b
seqcount: Add raw_write_seqcount_latch()

For NMI safe access to clock monotonic we use the seqcount LSB as
index of a timekeeper array. The update sequence looks like this:

      smp_wmb();      <- prior stores to a[1]
      seq++;
      smp_wmb();      <- seq increment before update of a[0]
      update(a[0]);
      smp_wmb();      <- update of a[0]
      seq++;
      smp_wmb();      <- seq increment before update of a[1]
      update(a[1]);

To avoid open coded barriers, provide a helper function.

[ tglx: Split out of a combo patch against the first implementation of
   the NMI safe accessor ]

Signed-off-by: Mathieu Desnoyers <[email protected]>
Cc: John Stultz <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Steven Rostedt <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Signed-off-by: John Stultz <[email protected]>
include/linux/seqlock.h