From: Dave Kleikamp Date: Tue, 6 Oct 2015 22:57:39 +0000 (-0500) Subject: sparc: vdso: lockdep fixes X-Git-Tag: v4.1.12-92~257^2~14 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=5e80cd68c3143bb52a273885425e1a3b7634c1de;p=users%2Fjedix%2Flinux-maple.git sparc: vdso: lockdep fixes Allow UEK4 kernel to be built with CONFIG_LOCK_STAT and initialize seqcount in vdso data structure. Signed-off-by: Dave Kleikamp --- diff --git a/arch/sparc/vdso/vclock_gettime.c b/arch/sparc/vdso/vclock_gettime.c index 538532eeebb9..50ee343b9b92 100644 --- a/arch/sparc/vdso/vclock_gettime.c +++ b/arch/sparc/vdso/vclock_gettime.c @@ -132,7 +132,7 @@ do_realtime(struct vsyscall_gtod_data *gtod, struct timespec *ts) ts->tv_nsec = 0; do { - seq = read_seqcount_begin(>od->seq); + seq = raw_read_seqcount_begin(>od->seq); ts->tv_sec = gtod->wall_time_sec; ns = gtod->wall_time_snsec; ns += vgetsns(gtod); @@ -152,7 +152,7 @@ do_monotonic(struct vsyscall_gtod_data *gtod, struct timespec *ts) ts->tv_nsec = 0; do { - seq = read_seqcount_begin(>od->seq); + seq = raw_read_seqcount_begin(>od->seq); ts->tv_sec = gtod->monotonic_time_sec; ns = gtod->monotonic_time_snsec; ns += vgetsns(gtod); @@ -169,7 +169,7 @@ do_realtime_coarse(struct vsyscall_gtod_data *gtod, struct timespec *ts) { unsigned long seq; do { - seq = read_seqcount_begin(>od->seq); + seq = raw_read_seqcount_begin(>od->seq); ts->tv_sec = gtod->wall_time_coarse.tv_sec; ts->tv_nsec = gtod->wall_time_coarse.tv_nsec; } while (unlikely(read_seqcount_retry(>od->seq, seq))); @@ -181,7 +181,7 @@ do_monotonic_coarse(struct vsyscall_gtod_data *gtod, struct timespec *ts) { unsigned long seq; do { - seq = read_seqcount_begin(>od->seq); + seq = raw_read_seqcount_begin(>od->seq); ts->tv_sec = gtod->monotonic_time_coarse.tv_sec; ts->tv_nsec = gtod->monotonic_time_coarse.tv_nsec; } while (unlikely(read_seqcount_retry(>od->seq, seq))); diff --git a/arch/sparc/vdso/vma.c b/arch/sparc/vdso/vma.c index b49a527422e6..afc7e992030d 100644 --- a/arch/sparc/vdso/vma.c +++ b/arch/sparc/vdso/vma.c @@ -80,6 +80,8 @@ int __init init_vdso_image(struct vdso_image *image) vvar_data = page_address(p); memset(vvar_data, 0, PAGE_SIZE); + seqcount_init(&vvar_data->gtod.seq); + return 0; oom: printk(KERN_WARNING "Cannot allocate vdso\n");