Commit 96c0c7ae authored by Heiko Carstens's avatar Heiko Carstens Committed by Vasily Gorbik
Browse files

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: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent 1432cfe6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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__ */
+4 −3
Original line number Diff line number Diff line
@@ -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);