linux_old1/arch
John Stultz 1ca7d67cf5 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>
2013-11-06 12:40:26 +01:00
..
alpha sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
arc Merge branch 'sched/core' into core/locking, to prepare the kernel/locking/ file move 2013-11-06 07:50:37 +01:00
arm Merge branch 'linus' into sched/core 2013-11-01 08:24:41 +01:00
arm64 Linux 3.12-rc4 2013-10-09 12:36:13 +02:00
avr32 Linux 3.12-rc4 2013-10-09 12:36:13 +02:00
blackfin sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
c6x sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
cris sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
frv sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
h8300 sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
hexagon sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
ia64 sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
m32r sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
m68k sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
metag sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
microblaze sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
mips Merge branch 'sched/core' into core/locking, to prepare the kernel/locking/ file move 2013-11-06 07:50:37 +01:00
mn10300 sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
openrisc Linux 3.12-rc4 2013-10-09 12:36:13 +02:00
parisc Merge branch 'linus' into sched/core 2013-11-01 08:24:41 +01:00
powerpc Merge branch 'linus' into sched/core 2013-11-01 08:24:41 +01:00
s390 Merge branch 'linus' into sched/core 2013-11-01 08:24:41 +01:00
score Linux 3.12-rc4 2013-10-09 12:36:13 +02:00
sh sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
sparc Merge branch 'linus' into sched/core 2013-11-01 08:24:41 +01:00
tile Merge branch 'core/urgent' into sched/core 2013-10-11 07:39:37 +02:00
um Merge branch 'linus' into sched/core 2013-11-01 08:24:41 +01:00
unicore32 sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
x86 seqcount: Add lockdep functionality to seqcount/seqlock structures 2013-11-06 12:40:26 +01:00
xtensa Merge branch 'linus' into sched/core 2013-11-01 08:24:41 +01:00
.gitignore
Kconfig mutex: replace CONFIG_HAVE_ARCH_MUTEX_CPU_RELAX with simple ifdef 2013-09-28 12:46:21 +02:00