2016-03-09 14:21:27

by Petr Mladek

[permalink] [raw]
Subject: [PATCH] livepatch: Fix the error message about unresolvable ambiguity

klp_find_callback() stops the search when sympos is not defined and
a second symbol of the same name is found. It means that the current
error message about the unresolvable ambiguity always prints "(2 matches)".

Let's remove this information. The total number of occurrences is
not much helpful. The author of the patch still must put a non-trivial
effort into searching the right position in the object file.

Signed-off-by: Petr Mladek <[email protected]>
---
kernel/livepatch/core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
index bc2c85c064c1..f2eda09e8357 100644
--- a/kernel/livepatch/core.c
+++ b/kernel/livepatch/core.c
@@ -190,8 +190,8 @@ static int klp_find_object_symbol(const char *objname, const char *name,
if (args.addr == 0)
pr_err("symbol '%s' not found in symbol table\n", name);
else if (args.count > 1 && sympos == 0) {
- pr_err("unresolvable ambiguity (%lu matches) on symbol '%s' in object '%s'\n",
- args.count, name, objname);
+ pr_err("unresolvable ambiguity on symbol '%s' in object '%s'\n",
+ name, objname);
} else if (sympos != args.count && sympos > 0) {
pr_err("symbol position %lu for symbol '%s' in object '%s' not found\n",
sympos, name, objname ? objname : "vmlinux");
--
1.8.5.6


2016-03-09 16:19:55

by Josh Poimboeuf

[permalink] [raw]
Subject: Re: [PATCH] livepatch: Fix the error message about unresolvable ambiguity

On Wed, Mar 09, 2016 at 03:20:59PM +0100, Petr Mladek wrote:
> klp_find_callback() stops the search when sympos is not defined and
> a second symbol of the same name is found. It means that the current
> error message about the unresolvable ambiguity always prints "(2 matches)".
>
> Let's remove this information. The total number of occurrences is
> not much helpful. The author of the patch still must put a non-trivial
> effort into searching the right position in the object file.
>
> Signed-off-by: Petr Mladek <[email protected]>
> ---
> kernel/livepatch/core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
> index bc2c85c064c1..f2eda09e8357 100644
> --- a/kernel/livepatch/core.c
> +++ b/kernel/livepatch/core.c
> @@ -190,8 +190,8 @@ static int klp_find_object_symbol(const char *objname, const char *name,
> if (args.addr == 0)
> pr_err("symbol '%s' not found in symbol table\n", name);
> else if (args.count > 1 && sympos == 0) {
> - pr_err("unresolvable ambiguity (%lu matches) on symbol '%s' in object '%s'\n",
> - args.count, name, objname);
> + pr_err("unresolvable ambiguity on symbol '%s' in object '%s'\n",

While you're at it, can you improve the grammar: s/on/for/ ?

"unresolvable ambiguity *for* symbol..."

Either way,

Acked-by: Josh Poimboeuf <[email protected]>

--
Josh

2016-03-09 16:40:43

by Chris J Arges

[permalink] [raw]
Subject: Re: [PATCH] livepatch: Fix the error message about unresolvable ambiguity

On Wed, Mar 09, 2016 at 10:19:46AM -0600, Josh Poimboeuf wrote:
> On Wed, Mar 09, 2016 at 03:20:59PM +0100, Petr Mladek wrote:
> > klp_find_callback() stops the search when sympos is not defined and
> > a second symbol of the same name is found. It means that the current
> > error message about the unresolvable ambiguity always prints "(2 matches)".
> >
> > Let's remove this information. The total number of occurrences is
> > not much helpful. The author of the patch still must put a non-trivial
> > effort into searching the right position in the object file.
> >
> > Signed-off-by: Petr Mladek <[email protected]>
> > ---
> > kernel/livepatch/core.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
> > index bc2c85c064c1..f2eda09e8357 100644
> > --- a/kernel/livepatch/core.c
> > +++ b/kernel/livepatch/core.c
> > @@ -190,8 +190,8 @@ static int klp_find_object_symbol(const char *objname, const char *name,
> > if (args.addr == 0)
> > pr_err("symbol '%s' not found in symbol table\n", name);
> > else if (args.count > 1 && sympos == 0) {
> > - pr_err("unresolvable ambiguity (%lu matches) on symbol '%s' in object '%s'\n",
> > - args.count, name, objname);
> > + pr_err("unresolvable ambiguity on symbol '%s' in object '%s'\n",
>
> While you're at it, can you improve the grammar: s/on/for/ ?
>
> "unresolvable ambiguity *for* symbol..."
>
> Either way,
>
> Acked-by: Josh Poimboeuf <[email protected]>
>
> --
> Josh
>

I agree that the 'matches' error message doesn't added anything helpful.
With the word change above:
Acked-by: Chris J Arges <[email protected]>

--chris

2016-03-09 20:59:41

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH] livepatch: Fix the error message about unresolvable ambiguity

On Wed, 9 Mar 2016, Petr Mladek wrote:

> klp_find_callback() stops the search when sympos is not defined and
> a second symbol of the same name is found. It means that the current
> error message about the unresolvable ambiguity always prints "(2 matches)".
>
> Let's remove this information. The total number of occurrences is
> not much helpful. The author of the patch still must put a non-trivial
> effort into searching the right position in the object file.
>
> Signed-off-by: Petr Mladek <[email protected]>

I've fixed the grammar as suggested by Josh and applied to
for-4.6/upstream.

--
Jiri Kosina
SUSE Labs