mirror of https://gitee.com/openkylin/linux.git
s390: have unique symbol for __switch_to address
After linking there are several symbols for the same address that the __switch_to symbol points to. E.g.: 000000000089b9c0 T __kprobes_text_start 000000000089b9c0 T __lock_text_end 000000000089b9c0 T __lock_text_start 000000000089b9c0 T __sched_text_end 000000000089b9c0 T __switch_to When disassembling with "objdump -d" this results in a missing __switch_to function. It would be named __kprobes_text_start instead. To unconfuse objdump add a nop in front of the kprobes text section. That way __switch_to appears again. Obviously this solution is sort of a hack, since it also depends on link order if this works or not. However it is the best I can come up with for now. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
10f4954ae6
commit
46210c440c
|
@ -163,6 +163,16 @@ _PIF_WORK = (_PIF_PER_TRAP)
|
|||
.endm
|
||||
|
||||
.section .kprobes.text, "ax"
|
||||
.Ldummy:
|
||||
/*
|
||||
* This nop exists only in order to avoid that __switch_to starts at
|
||||
* the beginning of the kprobes text section. In that case we would
|
||||
* have several symbols at the same address. E.g. objdump would take
|
||||
* an arbitrary symbol name when disassembling this code.
|
||||
* With the added nop in between the __switch_to symbol is unique
|
||||
* again.
|
||||
*/
|
||||
nop 0
|
||||
|
||||
/*
|
||||
* Scheduler resume function, called by switch_to
|
||||
|
|
Loading…
Reference in New Issue