]> asedeno.scripts.mit.edu Git - linux.git/commit
s390/vdso: revise CFI annotations of vDSO functions
authorHendrik Brueckner <brueckner@linux.vnet.ibm.com>
Mon, 20 Nov 2017 10:46:13 +0000 (11:46 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 13 Dec 2017 09:51:36 +0000 (10:51 +0100)
commit7bceec4e58ee23be653c0dd366479d6cb64ae686
treecd285499f296c534522f812c6d4af6febd7aa8a2
parentbc3703f21cec8a2ac6a64f6fb3686fbcb1ba1513
s390/vdso: revise CFI annotations of vDSO functions

Revise and add CFI CFA and register rule annotations to the vDSO
functions for proper stack unwinding and debugging.

Because glibc might call the vDSO in special ways, the vDSO code
does not rely on a stack frame created by the caller.  The TOD clock
value can be therefore not stored in the pre-allocated stack area
and additional stack space is required.
To correctly annotate these situations with CFI, the .cfi_val_offset
directive is required to create relative offsets on the value of the
stack register %r15.  Because the .cfi_val_offset directive is
available with recent GNU assembler versions only, additional checks
are necessary.

Note that if the vDSO is assembled with an older assembler version,
stack unwinding and debugging from within the vDSO code might not
be possible.

Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/Makefile
arch/s390/include/asm/dwarf.h
arch/s390/kernel/vdso32/clock_getres.S
arch/s390/kernel/vdso32/clock_gettime.S
arch/s390/kernel/vdso32/getcpu.S
arch/s390/kernel/vdso32/gettimeofday.S
arch/s390/kernel/vdso64/clock_getres.S
arch/s390/kernel/vdso64/clock_gettime.S
arch/s390/kernel/vdso64/getcpu.S
arch/s390/kernel/vdso64/gettimeofday.S