Re: [RFC PATCH v2 11/20] objtool: Flesh out warning related to pv_ops[] calls

From: Josh Poimboeuf
Date: Fri Jul 28 2023 - 11:33:52 EST


On Thu, Jul 20, 2023 at 05:30:47PM +0100, Valentin Schneider wrote:
> I had to look into objtool itself to understand what this warning was
> about; make it more explicit.
>
> Signed-off-by: Valentin Schneider <vschneid@xxxxxxxxxx>
> ---
> tools/objtool/check.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/objtool/check.c b/tools/objtool/check.c
> index 8936a05f0e5ac..d308330f2910e 100644
> --- a/tools/objtool/check.c
> +++ b/tools/objtool/check.c
> @@ -3360,7 +3360,7 @@ static bool pv_call_dest(struct objtool_file *file, struct instruction *insn)
>
> list_for_each_entry(target, &file->pv_ops[idx].targets, pv_target) {
> if (!target->sec->noinstr) {
> - WARN("pv_ops[%d]: %s", idx, target->name);
> + WARN("pv_ops[%d]: indirect call to %s() leaves .noinstr.text section", idx, target->name);
> file->pv_ops[idx].clean = false;

This is an improvement, though I think it still results in two warnings,
with the second not-so-useful warning happening in validate_call().

Ideally it would only show a single warning, I guess that would need a
little bit of restructuring the code.

--
Josh