objtool: Fix function fallthrough detection for vmlinux
Objtool's function fallthrough detection only works on C objects.
The distinction between C and assembly objects no longer makes sense
with objtool running on vmlinux.o.
Now that copy_user_64.S has been fixed up, and an objtool sibling call
detection bug has been fixed, the asm code is in "compliance" and this
hack is no longer needed. Remove it.
Fixes: ed53a0d971
("x86/alternative: Use .ibt_endbr_seal to seal indirect calls")
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/b434cff98eca3a60dcc64c620d7d5d405a0f441c.1649718562.git.jpoimboe@redhat.com
This commit is contained in:
parent
34c861e806
commit
08feafe8d1
|
@ -3310,7 +3310,7 @@ static int validate_branch(struct objtool_file *file, struct symbol *func,
|
||||||
while (1) {
|
while (1) {
|
||||||
next_insn = next_insn_to_validate(file, insn);
|
next_insn = next_insn_to_validate(file, insn);
|
||||||
|
|
||||||
if (file->c_file && func && insn->func && func != insn->func->pfunc) {
|
if (func && insn->func && func != insn->func->pfunc) {
|
||||||
WARN("%s() falls through to next function %s()",
|
WARN("%s() falls through to next function %s()",
|
||||||
func->name, insn->func->name);
|
func->name, insn->func->name);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -27,7 +27,7 @@ struct objtool_file {
|
||||||
struct list_head static_call_list;
|
struct list_head static_call_list;
|
||||||
struct list_head mcount_loc_list;
|
struct list_head mcount_loc_list;
|
||||||
struct list_head endbr_list;
|
struct list_head endbr_list;
|
||||||
bool ignore_unreachables, c_file, hints, rodata;
|
bool ignore_unreachables, hints, rodata;
|
||||||
|
|
||||||
unsigned int nr_endbr;
|
unsigned int nr_endbr;
|
||||||
unsigned int nr_endbr_int;
|
unsigned int nr_endbr_int;
|
||||||
|
|
|
@ -129,7 +129,6 @@ struct objtool_file *objtool_open_read(const char *_objname)
|
||||||
INIT_LIST_HEAD(&file.static_call_list);
|
INIT_LIST_HEAD(&file.static_call_list);
|
||||||
INIT_LIST_HEAD(&file.mcount_loc_list);
|
INIT_LIST_HEAD(&file.mcount_loc_list);
|
||||||
INIT_LIST_HEAD(&file.endbr_list);
|
INIT_LIST_HEAD(&file.endbr_list);
|
||||||
file.c_file = !vmlinux && find_section_by_name(file.elf, ".comment");
|
|
||||||
file.ignore_unreachables = no_unreachable;
|
file.ignore_unreachables = no_unreachable;
|
||||||
file.hints = false;
|
file.hints = false;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue