]> git.karo-electronics.de Git - linux-beck.git/commit
x86, vdso: Add 32 bit VDSO time support for 64 bit kernel
authorStefani Seibold <stefani@seibold.net>
Mon, 17 Mar 2014 22:22:10 +0000 (23:22 +0100)
committerH. Peter Anvin <hpa@linux.intel.com>
Tue, 18 Mar 2014 19:52:41 +0000 (12:52 -0700)
commit7c03156f34d113f885f045d8fb8cc3efd9e64751
tree4d63bb06f639e77cbb09c2d74f295148946ce3f0
parent7a59ed415f5b57469e22e41fc4188d5399e0b194
x86, vdso: Add 32 bit VDSO time support for 64 bit kernel

This patch add the VDSO time support for the IA32 Emulation Layer.

Due the nature of the kernel headers and the LP64 compiler where the
size of a long and a pointer differs against a 32 bit compiler, there
is some type hacking necessary for optimal performance.

The vsyscall_gtod_data struture must be a rearranged to serve 32- and
64-bit code access at the same time:

- The seqcount_t was replaced by an unsigned, this makes the
  vsyscall_gtod_data intedepend of kernel configuration and internal functions.
- All kernel internal structures are replaced by fix size elements
  which works for 32- and 64-bit access
- The inner struct clock was removed to pack the whole struct.

The "unsigned seq" would be handled by functions derivated from seqcount_t.

Signed-off-by: Stefani Seibold <stefani@seibold.net>
Link: http://lkml.kernel.org/r/1395094933-14252-11-git-send-email-stefani@seibold.net
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/include/asm/vgtod.h
arch/x86/include/asm/vvar.h
arch/x86/kernel/vsyscall_gtod.c
arch/x86/vdso/vclock_gettime.c
arch/x86/vdso/vdso32/vclock_gettime.c