mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
Revert "objtool: Increase per-function WARN_FUNC() rate limit"
This reverts commit 0a7fb6f07e
.
The "skipping duplicate warnings" warning is technically not an actual
warning, which can cause confusion. This feature isn't all that useful
anyway. It's exceedingly rare for a function to have more than one
unrelated warning.
Suggested-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/e5abe5e858acf1a9207a5dfa0f37d17ac9dca872.1743481539.git.jpoimboe@kernel.org
This commit is contained in:
parent
188d90f817
commit
c5610071a6
3 changed files with 6 additions and 14 deletions
|
@ -3545,7 +3545,7 @@ static int validate_branch(struct objtool_file *file, struct symbol *func,
|
|||
|
||||
WARN("%s() falls through to next function %s()",
|
||||
func->name, insn_func(insn)->name);
|
||||
func->warnings++;
|
||||
func->warned = 1;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -4576,7 +4576,7 @@ static void disas_warned_funcs(struct objtool_file *file)
|
|||
char *funcs = NULL, *tmp;
|
||||
|
||||
for_each_sym(file, sym) {
|
||||
if (sym->warnings) {
|
||||
if (sym->warned) {
|
||||
if (!funcs) {
|
||||
funcs = malloc(strlen(sym->name) + 1);
|
||||
if (!funcs) {
|
||||
|
|
|
@ -65,11 +65,11 @@ struct symbol {
|
|||
u8 return_thunk : 1;
|
||||
u8 fentry : 1;
|
||||
u8 profiling_func : 1;
|
||||
u8 warned : 1;
|
||||
u8 embedded_insn : 1;
|
||||
u8 local_label : 1;
|
||||
u8 frame_pointer : 1;
|
||||
u8 ignore : 1;
|
||||
u8 warnings : 2;
|
||||
struct list_head pv_target;
|
||||
struct reloc *relocs;
|
||||
};
|
||||
|
|
|
@ -57,22 +57,14 @@ static inline char *offstr(struct section *sec, unsigned long offset)
|
|||
free(_str); \
|
||||
})
|
||||
|
||||
#define WARN_LIMIT 2
|
||||
|
||||
#define WARN_INSN(insn, format, ...) \
|
||||
({ \
|
||||
struct instruction *_insn = (insn); \
|
||||
BUILD_BUG_ON(WARN_LIMIT > 2); \
|
||||
if (!_insn->sym || _insn->sym->warnings < WARN_LIMIT) { \
|
||||
if (!_insn->sym || !_insn->sym->warned) \
|
||||
WARN_FUNC(format, _insn->sec, _insn->offset, \
|
||||
##__VA_ARGS__); \
|
||||
if (_insn->sym) \
|
||||
_insn->sym->warnings++; \
|
||||
} else if (_insn->sym && _insn->sym->warnings == WARN_LIMIT) { \
|
||||
WARN_FUNC("skipping duplicate warning(s)", \
|
||||
_insn->sec, _insn->offset); \
|
||||
_insn->sym->warnings++; \
|
||||
} \
|
||||
if (_insn->sym) \
|
||||
_insn->sym->warned = 1; \
|
||||
})
|
||||
|
||||
#define BT_INSN(insn, format, ...) \
|
||||
|
|
Loading…
Add table
Reference in a new issue