From 5e80cd68c3143bb52a273885425e1a3b7634c1de Mon Sep 17 00:00:00 2001 From: Dave Kleikamp Date: Tue, 6 Oct 2015 17:57:39 -0500 Subject: [PATCH] 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 --- arch/sparc/vdso/vclock_gettime.c | 8 ++++---- arch/sparc/vdso/vma.c | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) 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"); -- 2.50.1