Merge tag 'objtool-core-2024-07-16' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull objtool updates from Ingo Molnar: - Fix bug that caused objtool to confuse certain memory ops added by KASAN instrumentation as stack accesses - Various faddr2line optimizations - Improve error messages * tag 'objtool-core-2024-07-16' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: objtool/x86: objtool can confuse memory and stack access objtool: Use "action" in error message to be consistent with help scripts/faddr2line: Check only two symbols when calculating symbol size scripts/faddr2line: Remove call to addr2line from find_dir_prefix() scripts/faddr2line: Invoke addr2line as a single long-running process scripts/faddr2line: Pass --addresses argument to addr2line scripts/faddr2line: Check vmlinux only once scripts/faddr2line: Combine three readelf calls into one scripts/faddr2line: Reduce number of readelf calls to three
This commit is contained in:
@@ -125,8 +125,14 @@ bool arch_pc_relative_reloc(struct reloc *reloc)
|
||||
#define is_RIP() ((modrm_rm & 7) == CFI_BP && modrm_mod == 0)
|
||||
#define have_SIB() ((modrm_rm & 7) == CFI_SP && mod_is_mem())
|
||||
|
||||
/*
|
||||
* Check the ModRM register. If there is a SIB byte then check with
|
||||
* the SIB base register. But if the SIB base is 5 (i.e. CFI_BP) and
|
||||
* ModRM mod is 0 then there is no base register.
|
||||
*/
|
||||
#define rm_is(reg) (have_SIB() ? \
|
||||
sib_base == (reg) && sib_index == CFI_SP : \
|
||||
sib_base == (reg) && sib_index == CFI_SP && \
|
||||
(sib_base != CFI_BP || modrm_mod != 0) : \
|
||||
modrm_rm == (reg))
|
||||
|
||||
#define rm_is_mem(reg) (mod_is_mem() && !is_RIP() && rm_is(reg))
|
||||
|
||||
Reference in New Issue
Block a user