s390/vdso: use correct memory barrier
authorChristian Borntraeger <borntraeger@de.ibm.com>
Fri, 11 Sep 2015 14:23:06 +0000 (16:23 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 14 Oct 2015 12:32:01 +0000 (14:32 +0200)
By definition smp_wmb only orders writes against writes. (Finish all
previous writes, and do not start any future write). To protect the
vdso init code against early reads on other CPUs, let's use a full
smp_mb at the end of vdso init. As right now smp_wmb is implemented
as full serialization, this needs no stable backport, but this change
will be necessary if we reimplement smp_wmb.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/vdso.c

index 0d58269..59eddb0 100644 (file)
@@ -299,7 +299,7 @@ static int __init vdso_init(void)
 
        get_page(virt_to_page(vdso_data));
 
-       smp_wmb();
+       smp_mb();
 
        return 0;
 }