lkml.org 
[lkml]   [2018]   [Apr]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.9 221/293] tools lib traceevent: Simplify pointer print logic and fix %pF
    Date
    From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

    [ Upstream commit 38d70b7ca1769f26c0b79f3c08ff2cc949712b59 ]

    When processing %pX in pretty_print(), simplify the logic slightly by
    incrementing the ptr to the format string if isalnum(ptr[1]) is true.
    This follows the logic a bit more closely to what is in the kernel.

    Also, this fixes a small bug where %pF was not giving the offset of the
    function.

    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Acked-by: Namhyung Kim <namhyung@kernel.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Link: http://lkml.kernel.org/r/20180112004822.260262257@goodmis.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    tools/lib/traceevent/event-parse.c | 17 +++++++++--------
    1 file changed, 9 insertions(+), 8 deletions(-)

    diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
    index 664c90c8e22b..669475300ba8 100644
    --- a/tools/lib/traceevent/event-parse.c
    +++ b/tools/lib/traceevent/event-parse.c
    @@ -4927,21 +4927,22 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct event
    else
    ls = 2;

    - if (*(ptr+1) == 'F' || *(ptr+1) == 'f' ||
    - *(ptr+1) == 'S' || *(ptr+1) == 's') {
    + if (isalnum(ptr[1]))
    ptr++;
    +
    + if (*ptr == 'F' || *ptr == 'f' ||
    + *ptr == 'S' || *ptr == 's') {
    show_func = *ptr;
    - } else if (*(ptr+1) == 'M' || *(ptr+1) == 'm') {
    - print_mac_arg(s, *(ptr+1), data, size, event, arg);
    - ptr++;
    + } else if (*ptr == 'M' || *ptr == 'm') {
    + print_mac_arg(s, *ptr, data, size, event, arg);
    arg = arg->next;
    break;
    - } else if (*(ptr+1) == 'I' || *(ptr+1) == 'i') {
    + } else if (*ptr == 'I' || *ptr == 'i') {
    int n;

    - n = print_ip_arg(s, ptr+1, data, size, event, arg);
    + n = print_ip_arg(s, ptr, data, size, event, arg);
    if (n > 0) {
    - ptr += n;
    + ptr += n - 1;
    arg = arg->next;
    break;
    }
    --
    2.15.1
    \
     
     \ /
      Last update: 2018-04-09 03:57    [W:2.469 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site