seqcount: Add lockdep functionality to seqcount/seqlock structures
authorJohn Stultz <john.stultz@linaro.org>
Mon, 7 Oct 2013 22:51:59 +0000 (15:51 -0700)
committerIngo Molnar <mingo@kernel.org>
Wed, 6 Nov 2013 11:40:26 +0000 (12:40 +0100)
commit1ca7d67cf5d5a2aef26a8d9afd789006fa098347
tree8f4f7d1f189d7a08983ab5ef522330f08f337459
parent827da44c61419f29ae3be198c342e2147f1a10cb
seqcount: Add lockdep functionality to seqcount/seqlock structures

Currently seqlocks and seqcounts don't support lockdep.

After running across a seqcount related deadlock in the timekeeping
code, I used a less-refined and more focused variant of this patch
to narrow down the cause of the issue.

This is a first-pass attempt to properly enable lockdep functionality
on seqlocks and seqcounts.

Since seqcounts are used in the vdso gettimeofday code, I've provided
non-lockdep accessors for those needs.

I've also handled one case where there were nested seqlock writers
and there may be more edge cases.

Comments and feedback would be appreciated!

Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Li Zefan <lizefan@huawei.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Link: http://lkml.kernel.org/r/1381186321-4906-3-git-send-email-john.stultz@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/vdso/vclock_gettime.c
fs/dcache.c
fs/fs_struct.c
include/linux/init_task.h
include/linux/lockdep.h
include/linux/seqlock.h
mm/filemap_xip.c