diff options
author | Heiko Carstens <hca@linux.ibm.com> | 2021-01-24 19:51:34 +0100 |
---|---|---|
committer | Vasily Gorbik <gor@linux.ibm.com> | 2021-02-09 15:57:05 +0100 |
commit | 96c0c7ae5266ec347041312ae22d947b5371e5b3 (patch) | |
tree | b97bd2b0b6f1e69fed3e0a0492a13a6b17a9836c /arch/s390 | |
parent | 1432cfe69e25819d96f653a4a44dad41e1163a83 (diff) |
s390/vdso: convert vdso_init() to arch_initcall
Convert vdso_init() to arch_initcall like it is on all other architectures.
This requires to remove the vdso_getcpu_init() call from vdso_init()
since it must be called before smp is enabled.
vdso_getcpu_init() is now an early_initcall like on powerpc.
Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/include/asm/vdso.h | 2 | ||||
-rw-r--r-- | arch/s390/kernel/vdso.c | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/arch/s390/include/asm/vdso.h b/arch/s390/include/asm/vdso.h index f46c2596c21f..e4ea142a082c 100644 --- a/arch/s390/include/asm/vdso.h +++ b/arch/s390/include/asm/vdso.h @@ -13,7 +13,7 @@ extern struct vdso_data *vdso_data; -void vdso_getcpu_init(void); +int vdso_getcpu_init(void); #endif /* __ASSEMBLY__ */ #endif /* __S390_VDSO_H__ */ diff --git a/arch/s390/kernel/vdso.c b/arch/s390/kernel/vdso.c index c6aeddcd687d..0bb287ae0f04 100644 --- a/arch/s390/kernel/vdso.c +++ b/arch/s390/kernel/vdso.c @@ -92,10 +92,12 @@ static union { } vdso_data_store __page_aligned_data; struct vdso_data *vdso_data = vdso_data_store.data; -void vdso_getcpu_init(void) +int vdso_getcpu_init(void) { set_tod_programmable_field(smp_processor_id()); + return 0; } +early_initcall(vdso_getcpu_init); /* Must be called before SMP init */ /* * This is called from binfmt_elf, we create the special vma for the @@ -167,7 +169,6 @@ static int __init vdso_init(void) { int i; - vdso_getcpu_init(); /* Calculate the size of the 64 bit vDSO */ vdso64_pages = ((&vdso64_end - &vdso64_start + PAGE_SIZE - 1) >> PAGE_SHIFT) + 1; @@ -188,4 +189,4 @@ static int __init vdso_init(void) return 0; } -early_initcall(vdso_init); +arch_initcall(vdso_init); |